diff --git a/packages/module/build.js b/packages/module/build.js index a315a5e..5b2db4c 100644 --- a/packages/module/build.js +++ b/packages/module/build.js @@ -216,24 +216,24 @@ const build = (selector) => { const layersHighContrastDarkSD = StyleDictionary.extend(__dirname + '/config.layers.highcontrast-dark.json'); layersHighContrastDarkSD.buildAllPlatforms(); - console.log('Building layer configs for redhat themes...'); - const layersRedhatSD = StyleDictionary.extend(__dirname + '/config.layers.redhat.json'); - layersRedhatSD.buildAllPlatforms(); + console.log('Building layer configs for felt themes...'); + const layersFeltSD = StyleDictionary.extend(__dirname + '/config.layers.felt.json'); + layersFeltSD.buildAllPlatforms(); - const layersRedhatDarkSD = StyleDictionary.extend(__dirname + '/config.layers.redhat-dark.json'); - layersRedhatDarkSD.buildAllPlatforms(); + const layersFeltDarkSD = StyleDictionary.extend(__dirname + '/config.layers.felt-dark.json'); + layersFeltDarkSD.buildAllPlatforms(); - const layersRedhatGlassSD = StyleDictionary.extend(__dirname + '/config.layers.redhat-glass.json'); - layersRedhatGlassSD.buildAllPlatforms(); + const layersFeltGlassSD = StyleDictionary.extend(__dirname + '/config.layers.felt-glass.json'); + layersFeltGlassSD.buildAllPlatforms(); - const layersRedhatGlassDarkSD = StyleDictionary.extend(__dirname + '/config.layers.redhat-glass-dark.json'); - layersRedhatGlassDarkSD.buildAllPlatforms(); + const layersFeltGlassDarkSD = StyleDictionary.extend(__dirname + '/config.layers.felt-glass-dark.json'); + layersFeltGlassDarkSD.buildAllPlatforms(); - const layersRedhatHighContrastSD = StyleDictionary.extend(__dirname + '/config.layers.redhat-highcontrast.json'); - layersRedhatHighContrastSD.buildAllPlatforms(); + const layersFeltHighContrastSD = StyleDictionary.extend(__dirname + '/config.layers.felt-highcontrast.json'); + layersFeltHighContrastSD.buildAllPlatforms(); - const layersRedhatHighContrastDarkSD = StyleDictionary.extend(__dirname + '/config.layers.redhat-highcontrast-dark.json'); - layersRedhatHighContrastDarkSD.buildAllPlatforms(); + const layersFeltHighContrastDarkSD = StyleDictionary.extend(__dirname + '/config.layers.felt-highcontrast-dark.json'); + layersFeltHighContrastDarkSD.buildAllPlatforms(); // Step 3: Build glass themes console.log('Building glass themes...'); @@ -254,59 +254,59 @@ const build = (selector) => { path.join(buildPath, 'tokens-glass-dark.scss') ); - // Step 5: Build redhat themes - console.log('Building redhat themes...'); - const redhatExtendedSD = StyleDictionary.extend(__dirname + '/config.redhat.json'); - redhatExtendedSD.buildAllPlatforms(); + // Step 5: Build felt themes + console.log('Building felt themes...'); + const feltExtendedSD = StyleDictionary.extend(__dirname + '/config.felt.json'); + feltExtendedSD.buildAllPlatforms(); - const redhatDarkExtendedSD = StyleDictionary.extend(__dirname + '/config.redhat-dark.json'); - redhatDarkExtendedSD.buildAllPlatforms(); + const feltDarkExtendedSD = StyleDictionary.extend(__dirname + '/config.felt-dark.json'); + feltDarkExtendedSD.buildAllPlatforms(); - const redhatGlassExtendedSD = StyleDictionary.extend(__dirname + '/config.redhat-glass.json'); - redhatGlassExtendedSD.buildAllPlatforms(); + const feltGlassExtendedSD = StyleDictionary.extend(__dirname + '/config.felt-glass.json'); + feltGlassExtendedSD.buildAllPlatforms(); - const redhatGlassDarkExtendedSD = StyleDictionary.extend(__dirname + '/config.redhat-glass-dark.json'); - redhatGlassDarkExtendedSD.buildAllPlatforms(); + const feltGlassDarkExtendedSD = StyleDictionary.extend(__dirname + '/config.felt-glass-dark.json'); + feltGlassDarkExtendedSD.buildAllPlatforms(); - const redhatHighContrastExtendedSD = StyleDictionary.extend(__dirname + '/config.redhat-highcontrast.json'); - redhatHighContrastExtendedSD.buildAllPlatforms(); + const feltHighContrastExtendedSD = StyleDictionary.extend(__dirname + '/config.felt-highcontrast.json'); + feltHighContrastExtendedSD.buildAllPlatforms(); - const redhatHighContrastDarkExtendedSD = StyleDictionary.extend(__dirname + '/config.redhat-highcontrast-dark.json'); - redhatHighContrastDarkExtendedSD.buildAllPlatforms(); + const feltHighContrastDarkExtendedSD = StyleDictionary.extend(__dirname + '/config.felt-highcontrast-dark.json'); + feltHighContrastDarkExtendedSD.buildAllPlatforms(); - // Set glass tokens to initial in redhat non-glass themes - console.log('Setting glass tokens to initial in redhat themes...'); - setGlassTokensToInitial(path.join(buildPath, 'tokens-redhat.scss')); - setGlassTokensToInitial(path.join(buildPath, 'tokens-redhat-dark.scss')); - setGlassTokensToInitial(path.join(buildPath, 'tokens-redhat-highcontrast.scss')); - setGlassTokensToInitial(path.join(buildPath, 'tokens-redhat-highcontrast-dark.scss')); + // Set glass tokens to initial in felt non-glass themes + console.log('Setting glass tokens to initial in felt themes...'); + setGlassTokensToInitial(path.join(buildPath, 'tokens-felt.scss')); + setGlassTokensToInitial(path.join(buildPath, 'tokens-felt-dark.scss')); + setGlassTokensToInitial(path.join(buildPath, 'tokens-felt-highcontrast.scss')); + setGlassTokensToInitial(path.join(buildPath, 'tokens-felt-highcontrast-dark.scss')); - // Step 6: Remove duplicate variables from redhat SCSS files - console.log('Removing duplicate variables from redhat themes...'); + // Step 6: Remove duplicate variables from felt SCSS files + console.log('Removing duplicate variables from felt themes...'); removeDuplicateVariables( path.join(buildPath, 'tokens-default.scss'), - path.join(buildPath, 'tokens-redhat.scss') + path.join(buildPath, 'tokens-felt.scss') ); removeDuplicateVariables( path.join(buildPath, 'tokens-dark.scss'), - path.join(buildPath, 'tokens-redhat-dark.scss') + path.join(buildPath, 'tokens-felt-dark.scss') ); - // Redhat glass themes compare against default (not glass), because they source all default/glass tokens + // Felt glass themes compare against default (not glass), because they source all default/glass tokens removeDuplicateVariables( path.join(buildPath, 'tokens-default.scss'), - path.join(buildPath, 'tokens-redhat-glass.scss') + path.join(buildPath, 'tokens-felt-glass.scss') ); removeDuplicateVariables( path.join(buildPath, 'tokens-dark.scss'), - path.join(buildPath, 'tokens-redhat-glass-dark.scss') + path.join(buildPath, 'tokens-felt-glass-dark.scss') ); removeDuplicateVariables( path.join(buildPath, 'tokens-default.scss'), - path.join(buildPath, 'tokens-redhat-highcontrast.scss') + path.join(buildPath, 'tokens-felt-highcontrast.scss') ); removeDuplicateVariables( path.join(buildPath, 'tokens-dark.scss'), - path.join(buildPath, 'tokens-redhat-highcontrast-dark.scss') + path.join(buildPath, 'tokens-felt-highcontrast-dark.scss') ); console.log('\n============================'); diff --git a/packages/module/build/css/tokens-dark.scss b/packages/module/build/css/tokens-dark.scss index c7cd07d..cf687ff 100644 --- a/packages/module/build/css/tokens-dark.scss +++ b/packages/module/build/css/tokens-dark.scss @@ -1,6 +1,6 @@ // Do not edit directly -// Generated on Mon, 23 Mar 2026 14:56:21 GMT +// Generated on Thu, 30 Apr 2026 21:31:18 GMT @mixin pf-v6-tokens { --pf-t--global--background--color--action--plain--default: rgba(0, 0, 0, 0.0000); diff --git a/packages/module/build/css/tokens-default.scss b/packages/module/build/css/tokens-default.scss index f23b3c6..b99f457 100644 --- a/packages/module/build/css/tokens-default.scss +++ b/packages/module/build/css/tokens-default.scss @@ -1,6 +1,6 @@ // Do not edit directly -// Generated on Mon, 23 Mar 2026 14:56:21 GMT +// Generated on Thu, 30 Apr 2026 21:31:18 GMT @mixin pf-v6-tokens { --pf-t--global--background--color--500: rgba(21, 21, 21, 0.4000); @@ -420,7 +420,7 @@ --pf-t--global--border--color--clicked: var(--pf-t--global--color--brand--200); --pf-t--global--border--color--control--default: var(--pf-t--global--border--color--300); --pf-t--global--border--color--control--read-only: var(--pf-t--global--border--color--100); - --pf-t--global--border--color--default: var(--pf-t--global--border--color--100); + --pf-t--global--border--color--default: var(--pf-t--global--border--color--50); --pf-t--global--border--color--disabled: var(--pf-t--global--color--disabled--200); --pf-t--global--border--color--hover: var(--pf-t--global--color--brand--100); --pf-t--global--border--color--nonstatus--blue--clicked: var(--pf-t--global--color--nonstatus--blue--300); @@ -598,7 +598,7 @@ --pf-t--global--text-decoration--color--default: var(--pf-t--global--border--color--300); --pf-t--global--text-decoration--offset--default: var(--pf-t--global--spacer--xs); --pf-t--global--text-decoration--width--default: var(--pf-t--global--border--width--regular); - --pf-t--global--text-decoration--width--hover: var(--pf-t--global--border--width--strong); + --pf-t--global--text-decoration--width--hover: var(--pf-t--global--border--width--regular); --pf-t--global--background--color--control--default: var(--pf-t--global--background--color--primary--default); --pf-t--global--background--color--floating--secondary--default: var(--pf-t--global--background--color--secondary--default); --pf-t--global--background--color--glass--primary--default: initial; diff --git a/packages/module/build/css/tokens-redhat-dark.scss b/packages/module/build/css/tokens-felt-dark.scss similarity index 97% rename from packages/module/build/css/tokens-redhat-dark.scss rename to packages/module/build/css/tokens-felt-dark.scss index 5e27474..f4c7f1c 100644 --- a/packages/module/build/css/tokens-redhat-dark.scss +++ b/packages/module/build/css/tokens-felt-dark.scss @@ -1,6 +1,6 @@ // Do not edit directly -// Generated on Mon, 23 Mar 2026 14:56:21 GMT +// Generated on Thu, 30 Apr 2026 21:31:19 GMT // Only tokens that differ from base theme (14 tokens) @mixin pf-v6-tokens { diff --git a/packages/module/build/css/tokens-redhat-glass-dark.scss b/packages/module/build/css/tokens-felt-glass-dark.scss similarity index 98% rename from packages/module/build/css/tokens-redhat-glass-dark.scss rename to packages/module/build/css/tokens-felt-glass-dark.scss index c0837d7..c3b65c2 100644 --- a/packages/module/build/css/tokens-redhat-glass-dark.scss +++ b/packages/module/build/css/tokens-felt-glass-dark.scss @@ -1,6 +1,6 @@ // Do not edit directly -// Generated on Mon, 23 Mar 2026 14:56:21 GMT +// Generated on Thu, 30 Apr 2026 21:31:19 GMT // Only tokens that differ from base theme (33 tokens) @mixin pf-v6-tokens { diff --git a/packages/module/build/css/tokens-redhat-glass.scss b/packages/module/build/css/tokens-felt-glass.scss similarity index 98% rename from packages/module/build/css/tokens-redhat-glass.scss rename to packages/module/build/css/tokens-felt-glass.scss index a55c86c..1a79489 100644 --- a/packages/module/build/css/tokens-redhat-glass.scss +++ b/packages/module/build/css/tokens-felt-glass.scss @@ -1,6 +1,6 @@ // Do not edit directly -// Generated on Mon, 23 Mar 2026 14:56:21 GMT +// Generated on Thu, 30 Apr 2026 21:31:19 GMT // Only tokens that differ from base theme (23 tokens) @mixin pf-v6-tokens { diff --git a/packages/module/build/css/tokens-redhat-highcontrast-dark.scss b/packages/module/build/css/tokens-felt-highcontrast-dark.scss similarity index 98% rename from packages/module/build/css/tokens-redhat-highcontrast-dark.scss rename to packages/module/build/css/tokens-felt-highcontrast-dark.scss index 66720be..7c27aaa 100644 --- a/packages/module/build/css/tokens-redhat-highcontrast-dark.scss +++ b/packages/module/build/css/tokens-felt-highcontrast-dark.scss @@ -1,6 +1,6 @@ // Do not edit directly -// Generated on Mon, 23 Mar 2026 14:56:21 GMT +// Generated on Thu, 30 Apr 2026 21:31:19 GMT // Only tokens that differ from base theme (43 tokens) @mixin pf-v6-tokens { diff --git a/packages/module/build/css/tokens-felt-highcontrast.scss b/packages/module/build/css/tokens-felt-highcontrast.scss new file mode 100644 index 0000000..6448b10 --- /dev/null +++ b/packages/module/build/css/tokens-felt-highcontrast.scss @@ -0,0 +1,121 @@ + +// Do not edit directly +// Generated on Thu, 30 Apr 2026 21:30:42 GMT + +// Only tokens that differ from base theme (114 tokens) +@mixin pf-v6-tokens { + --pf-t--global--border--color--nonstatus--green--default: var(--pf-t--global--color--nonstatus--green--400); + --pf-t--global--border--color--status--success--default: var(--pf-t--global--color--status--success--150); + --pf-t--global--border--width--action--plain--clicked: var(--pf-t--global--border--width--200); + --pf-t--global--border--width--action--plain--hover: var(--pf-t--global--border--width--100); + --pf-t--global--border--width--control--hover: var(--pf-t--global--border--width--200); + --pf-t--global--border--width--main--default: var(--pf-t--global--border--width--200); + --pf-t--global--border--color--brand--subtle--clicked: var(--pf-t--global--color--brand--subtle--400); + --pf-t--global--border--color--brand--subtle--hover: var(--pf-t--global--color--brand--subtle--400); + --pf-t--global--border--color--clicked: var(--pf-t--global--color--brand--400); + --pf-t--global--border--color--control--default: var(--pf-t--global--border--color--400); + --pf-t--global--border--color--default: var(--pf-t--global--border--color--400); + --pf-t--global--border--color--hover: var(--pf-t--global--color--brand--300); + --pf-t--global--border--color--nonstatus--blue--clicked: var(--pf-t--global--color--nonstatus--blue--500); + --pf-t--global--border--color--nonstatus--blue--default: var(--pf-t--global--color--nonstatus--blue--400); + --pf-t--global--border--color--nonstatus--blue--hover: var(--pf-t--global--color--nonstatus--blue--500); + --pf-t--global--border--color--nonstatus--gray--clicked: var(--pf-t--global--color--nonstatus--gray--500); + --pf-t--global--border--color--nonstatus--gray--default: var(--pf-t--global--color--nonstatus--gray--400); + --pf-t--global--border--color--nonstatus--gray--hover: var(--pf-t--global--color--nonstatus--gray--500); + --pf-t--global--border--color--nonstatus--green--clicked: var(--pf-t--global--color--nonstatus--green--500); + --pf-t--global--border--color--nonstatus--green--hover: var(--pf-t--global--color--nonstatus--green--500); + --pf-t--global--border--color--nonstatus--orange--clicked: var(--pf-t--global--color--nonstatus--orange--500); + --pf-t--global--border--color--nonstatus--orange--default: var(--pf-t--global--color--nonstatus--orange--400); + --pf-t--global--border--color--nonstatus--orange--hover: var(--pf-t--global--color--nonstatus--orange--500); + --pf-t--global--border--color--nonstatus--orangered--clicked: var(--pf-t--global--color--nonstatus--orangered--500); + --pf-t--global--border--color--nonstatus--orangered--default: var(--pf-t--global--color--nonstatus--orangered--400); + --pf-t--global--border--color--nonstatus--orangered--hover: var(--pf-t--global--color--nonstatus--orangered--500); + --pf-t--global--border--color--nonstatus--purple--clicked: var(--pf-t--global--color--nonstatus--purple--500); + --pf-t--global--border--color--nonstatus--purple--default: var(--pf-t--global--color--nonstatus--purple--400); + --pf-t--global--border--color--nonstatus--purple--hover: var(--pf-t--global--color--nonstatus--purple--500); + --pf-t--global--border--color--nonstatus--red--clicked: var(--pf-t--global--color--nonstatus--red--500); + --pf-t--global--border--color--nonstatus--red--default: var(--pf-t--global--color--nonstatus--red--400); + --pf-t--global--border--color--nonstatus--red--hover: var(--pf-t--global--color--nonstatus--red--500); + --pf-t--global--border--color--nonstatus--teal--clicked: var(--pf-t--global--color--nonstatus--teal--500); + --pf-t--global--border--color--nonstatus--teal--default: var(--pf-t--global--color--nonstatus--teal--400); + --pf-t--global--border--color--nonstatus--teal--hover: var(--pf-t--global--color--nonstatus--teal--500); + --pf-t--global--border--color--nonstatus--yellow--clicked: var(--pf-t--global--color--nonstatus--yellow--500); + --pf-t--global--border--color--nonstatus--yellow--default: var(--pf-t--global--color--nonstatus--yellow--400); + --pf-t--global--border--color--nonstatus--yellow--hover: var(--pf-t--global--color--nonstatus--yellow--500); + --pf-t--global--border--color--on-secondary: var(--pf-t--global--border--color--400); + --pf-t--global--border--color--status--success--clicked: var(--pf-t--global--color--status--success--200); + --pf-t--global--border--color--status--success--hover: var(--pf-t--global--color--status--success--200); + --pf-t--global--border--color--status--warning--clicked: var(--pf-t--global--color--status--warning--600); + --pf-t--global--border--color--status--warning--default: var(--pf-t--global--color--status--warning--500); + --pf-t--global--border--color--status--warning--hover: var(--pf-t--global--color--status--warning--600); + --pf-t--global--border--color--subtle: var(--pf-t--global--border--color--400); + --pf-t--global--border--width--high-contrast--extra-strong: var(--pf-t--global--border--width--extra-strong); + --pf-t--global--border--width--high-contrast--regular: var(--pf-t--global--border--width--regular); + --pf-t--global--border--width--high-contrast--strong: var(--pf-t--global--border--width--strong); + --pf-t--global--color--brand--clicked: var(--pf-t--global--color--brand--400); + --pf-t--global--color--brand--default: var(--pf-t--global--color--brand--300); + --pf-t--global--color--brand--hover: var(--pf-t--global--color--brand--400); + --pf-t--global--color--favorite--clicked: var(--pf-t--global--color--favorite--400); + --pf-t--global--color--favorite--default: var(--pf-t--global--color--favorite--300); + --pf-t--global--color--favorite--hover: var(--pf-t--global--color--favorite--400); + --pf-t--global--color--nonstatus--gray--clicked: var(--pf-t--global--color--nonstatus--gray--100); + --pf-t--global--color--nonstatus--gray--default: var(--pf-t--global--color--nonstatus--gray--50); + --pf-t--global--color--nonstatus--gray--hover: var(--pf-t--global--color--nonstatus--gray--100); + --pf-t--global--color--status--custom--clicked: var(--pf-t--global--color--status--custom--300); + --pf-t--global--color--status--custom--default: var(--pf-t--global--color--status--custom--200); + --pf-t--global--color--status--custom--hover: var(--pf-t--global--color--status--custom--300); + --pf-t--global--color--status--danger--clicked: var(--pf-t--global--color--status--danger--300); + --pf-t--global--color--status--danger--default: var(--pf-t--global--color--status--danger--200); + --pf-t--global--color--status--danger--hover: var(--pf-t--global--color--status--danger--300); + --pf-t--global--color--status--info--clicked: var(--pf-t--global--color--status--info--300); + --pf-t--global--color--status--info--default: var(--pf-t--global--color--status--info--200); + --pf-t--global--color--status--info--hover: var(--pf-t--global--color--status--info--300); + --pf-t--global--color--status--success--clicked: var(--pf-t--global--color--status--success--300); + --pf-t--global--color--status--success--default: var(--pf-t--global--color--status--success--200); + --pf-t--global--color--status--success--hover: var(--pf-t--global--color--status--success--300); + --pf-t--global--color--status--warning--clicked: var(--pf-t--global--color--status--warning--600); + --pf-t--global--color--status--warning--default: var(--pf-t--global--color--status--warning--500); + --pf-t--global--color--status--warning--hover: var(--pf-t--global--color--status--warning--600); + --pf-t--global--focus-ring--color--default: var(--pf-t--global--focus-ring--color--200); + --pf-t--global--icon--color--brand--clicked: var(--pf-t--global--color--brand--400); + --pf-t--global--icon--color--brand--default: var(--pf-t--global--color--brand--300); + --pf-t--global--icon--color--brand--hover: var(--pf-t--global--color--brand--400); + --pf-t--global--icon--color--severity--important--default: var(--pf-t--global--color--severity--important--200); + --pf-t--global--icon--color--severity--minor--default: var(--pf-t--global--color--severity--minor--200); + --pf-t--global--icon--color--severity--moderate--default: var(--pf-t--global--color--severity--moderate--200); + --pf-t--global--icon--color--severity--none--default: var(--pf-t--global--color--severity--none--200); + --pf-t--global--icon--color--severity--undefined--default: var(--pf-t--global--color--severity--undefined--200); + --pf-t--global--icon--color--status--danger--clicked: var(--pf-t--global--color--status--danger--200); + --pf-t--global--icon--color--status--danger--default: var(--pf-t--global--color--status--danger--100); + --pf-t--global--icon--color--status--danger--hover: var(--pf-t--global--color--status--danger--200); + --pf-t--global--icon--color--status--warning--clicked: var(--pf-t--global--color--status--warning--600); + --pf-t--global--icon--color--status--warning--default: var(--pf-t--global--color--status--warning--500); + --pf-t--global--icon--color--status--warning--hover: var(--pf-t--global--color--status--warning--600); + --pf-t--global--icon--color--subtle: var(--pf-t--global--icon--color--150); + --pf-t--global--text--color--brand--clicked: var(--pf-t--global--color--brand--500); + --pf-t--global--text--color--brand--default: var(--pf-t--global--color--brand--400); + --pf-t--global--text--color--brand--hover: var(--pf-t--global--color--brand--500); + --pf-t--global--text--color--link--default: var(--pf-t--global--text--color--link--200); + --pf-t--global--text--color--link--hover: var(--pf-t--global--text--color--link--250); + --pf-t--global--text--color--link--visited: var(--pf-t--global--text--color--link--350); + --pf-t--global--text--color--required: var(--pf-t--global--text--color--500); + --pf-t--global--text--color--status--success--clicked: var(--pf-t--global--color--status--success--300); + --pf-t--global--text--color--status--success--default: var(--pf-t--global--color--status--success--200); + --pf-t--global--text--color--status--success--hover: var(--pf-t--global--color--status--success--300); + --pf-t--global--text--color--status--warning--clicked: var(--pf-t--global--color--status--warning--600); + --pf-t--global--text--color--status--warning--default: var(--pf-t--global--color--status--warning--500); + --pf-t--global--text--color--status--warning--hover: var(--pf-t--global--color--status--warning--600); + --pf-t--global--text--color--subtle: var(--pf-t--global--text--color--250); + --pf-t--global--text-decoration--color--default: var(--pf-t--global--border--color--400); + --pf-t--global--text-decoration--width--hover: var(--pf-t--global--border--width--strong); + --pf-t--global--background--color--action--plain--alt--clicked: var(--pf-t--global--background--color--primary--default); + --pf-t--global--background--color--action--plain--alt--hover: var(--pf-t--global--background--color--primary--default); + --pf-t--global--border--color--high-contrast: var(--pf-t--global--border--color--default); + --pf-t--global--border--color--main--default: var(--pf-t--global--border--color--default); + --pf-t--global--icon--color--status--on-warning--clicked: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--status--on-warning--default: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--status--on-warning--hover: var(--pf-t--global--icon--color--inverse); + --pf-t--global--text--color--status--on-warning--clicked: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--status--on-warning--default: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--status--on-warning--hover: var(--pf-t--global--text--color--inverse); +} diff --git a/packages/module/build/css/tokens-redhat.scss b/packages/module/build/css/tokens-felt.scss similarity index 95% rename from packages/module/build/css/tokens-redhat.scss rename to packages/module/build/css/tokens-felt.scss index 67bb30e..8ad5044 100644 --- a/packages/module/build/css/tokens-redhat.scss +++ b/packages/module/build/css/tokens-felt.scss @@ -1,6 +1,6 @@ // Do not edit directly -// Generated on Mon, 23 Mar 2026 14:56:21 GMT +// Generated on Thu, 30 Apr 2026 21:31:19 GMT // Only tokens that differ from base theme (8 tokens) @mixin pf-v6-tokens { diff --git a/packages/module/build/css/tokens-glass-dark.scss b/packages/module/build/css/tokens-glass-dark.scss index af38833..26df460 100644 --- a/packages/module/build/css/tokens-glass-dark.scss +++ b/packages/module/build/css/tokens-glass-dark.scss @@ -1,6 +1,6 @@ // Do not edit directly -// Generated on Mon, 23 Mar 2026 14:56:21 GMT +// Generated on Thu, 30 Apr 2026 21:31:19 GMT // Only tokens that differ from base theme (19 tokens) @mixin pf-v6-tokens { diff --git a/packages/module/build/css/tokens-glass.scss b/packages/module/build/css/tokens-glass.scss index ad3632e..0fe964f 100644 --- a/packages/module/build/css/tokens-glass.scss +++ b/packages/module/build/css/tokens-glass.scss @@ -1,6 +1,6 @@ // Do not edit directly -// Generated on Mon, 23 Mar 2026 14:56:21 GMT +// Generated on Thu, 30 Apr 2026 21:31:19 GMT // Only tokens that differ from base theme (15 tokens) @mixin pf-v6-tokens { diff --git a/packages/module/build/css/tokens-palette.scss b/packages/module/build/css/tokens-palette.scss index e8fcb37..7d63a63 100644 --- a/packages/module/build/css/tokens-palette.scss +++ b/packages/module/build/css/tokens-palette.scss @@ -1,6 +1,6 @@ // Do not edit directly -// Generated on Mon, 23 Mar 2026 14:56:21 GMT +// Generated on Thu, 30 Apr 2026 21:31:18 GMT @mixin pf-v6-tokens { --pf-t--color--black: #000000; diff --git a/packages/module/build/css/tokens-redhat-highcontrast.scss b/packages/module/build/css/tokens-redhat-highcontrast.scss index 64bc370..7a38461 100644 --- a/packages/module/build/css/tokens-redhat-highcontrast.scss +++ b/packages/module/build/css/tokens-redhat-highcontrast.scss @@ -1,23 +1,395 @@ // Do not edit directly -// Generated on Mon, 23 Mar 2026 14:56:21 GMT +// Generated on Thu, 30 Apr 2026 21:31:19 GMT -// Only tokens that differ from base theme (121 tokens) @mixin pf-v6-tokens { + --pf-t--global--background--color--500: rgba(21, 21, 21, 0.4000); + --pf-t--global--background--color--600: rgba(199, 199, 199, 0.2500); + --pf-t--global--background--color--700: rgba(199, 199, 199, 0.1000); + --pf-t--global--background--color--action--plain--default: rgba(255, 255, 255, 0.0000); + --pf-t--global--background--filter--glass--blur--primary: blur(0px); + --pf-t--global--border--radius--0: 0px; + --pf-t--global--border--radius--100: 4px; + --pf-t--global--border--radius--200: 6px; + --pf-t--global--border--radius--300: 16px; + --pf-t--global--border--radius--400: 24px; + --pf-t--global--border--radius--500: 999px; + --pf-t--global--border--width--100: 1px; + --pf-t--global--border--width--200: 2px; + --pf-t--global--border--width--300: 3px; + --pf-t--global--border--width--400: 4px; + --pf-t--global--border--width--action--plain--default: 0px; + --pf-t--global--box-shadow--X--100: -10px; + --pf-t--global--box-shadow--X--200: -4px; + --pf-t--global--box-shadow--X--300: -2px; + --pf-t--global--box-shadow--X--400: 0px; + --pf-t--global--box-shadow--X--50: -20px; + --pf-t--global--box-shadow--X--500: 2px; + --pf-t--global--box-shadow--X--600: 4px; + --pf-t--global--box-shadow--X--700: 10px; + --pf-t--global--box-shadow--X--800: 20px; + --pf-t--global--box-shadow--Y--100: -10px; + --pf-t--global--box-shadow--Y--200: -4px; + --pf-t--global--box-shadow--Y--300: -1px; + --pf-t--global--box-shadow--Y--400: 0px; + --pf-t--global--box-shadow--Y--50: -20px; + --pf-t--global--box-shadow--Y--500: 1px; + --pf-t--global--box-shadow--Y--600: 4px; + --pf-t--global--box-shadow--Y--700: 10px; + --pf-t--global--box-shadow--Y--800: 20px; + --pf-t--global--box-shadow--blur--100: 6px; + --pf-t--global--box-shadow--blur--200: 10px; + --pf-t--global--box-shadow--blur--300: 20px; + --pf-t--global--box-shadow--color--100: rgba(41, 41, 41, 0.1500); + --pf-t--global--box-shadow--color--200: rgba(41, 41, 41, 0.2000); + --pf-t--global--box-shadow--spread--100: 0px; + --pf-t--global--box-shadow--spread--200: -4px; + --pf-t--global--box-shadow--spread--300: -8px; + --pf-t--global--box-shadow--spread--400: -20px; + --pf-t--global--breakpoint--100: 0rem; + --pf-t--global--breakpoint--200: 36rem; + --pf-t--global--breakpoint--250: 40rem; + --pf-t--global--breakpoint--300: 48rem; + --pf-t--global--breakpoint--350: 60rem; + --pf-t--global--breakpoint--400: 62rem; + --pf-t--global--breakpoint--500: 75rem; + --pf-t--global--breakpoint--550: 80rem; + --pf-t--global--breakpoint--600: 90.625rem; + --pf-t--global--color--nonstatus--green--400: #3d7019; + --pf-t--global--color--status--success--150: #3d7019; + --pf-t--global--focus-ring--position--inset: -4px; + --pf-t--global--focus-ring--position--offset: 2px; + --pf-t--global--focus-ring--width--inset: 3px; + --pf-t--global--focus-ring--width--offset: 2px; + --pf-t--global--font--family--100: "Red Hat Text", "RedHatText", "Noto Sans Arabic", "Noto Sans Hebrew", "Noto Sans JP", "Noto Sans KR", "Noto Sans Malayalam", "Noto Sans SC", "Noto Sans TC", "Noto Sans Thai", Helvetica, Arial, sans-serif; + --pf-t--global--font--family--200: "Red Hat Display", "RedHatDisplay", "Noto Sans Arabic", "Noto Sans Hebrew", "Noto Sans JP", "Noto Sans KR", "Noto Sans Malayalam", "Noto Sans SC", "Noto Sans TC", "Noto Sans Thai", Helvetica, Arial, sans-serif; + --pf-t--global--font--family--300: "Red Hat Mono", "RedHatMono", "Courier New", Courier, monospace; + --pf-t--global--font--line-height--100: 1.3; + --pf-t--global--font--line-height--200: 1.5; + --pf-t--global--font--size--100: 0.75rem; + --pf-t--global--font--size--200: 0.875rem; + --pf-t--global--font--size--300: 1rem; + --pf-t--global--font--size--400: 1.125rem; + --pf-t--global--font--size--500: 1.25rem; + --pf-t--global--font--size--600: 1.5rem; + --pf-t--global--font--size--700: 1.75rem; + --pf-t--global--font--size--800: 2.25rem; + --pf-t--global--font--weight--100: 400; + --pf-t--global--font--weight--200: 500; + --pf-t--global--font--weight--300: 500; + --pf-t--global--font--weight--400: 700; + --pf-t--global--icon--size--100: 0.75rem; + --pf-t--global--icon--size--200: 0.875rem; + --pf-t--global--icon--size--250: 1rem; + --pf-t--global--icon--size--300: 1.5rem; + --pf-t--global--icon--size--400: 3.5rem; + --pf-t--global--icon--size--500: 6rem; + --pf-t--global--spacer--100: 0.25rem; + --pf-t--global--spacer--200: 0.5rem; + --pf-t--global--spacer--300: 1rem; + --pf-t--global--spacer--400: 1.5rem; + --pf-t--global--spacer--500: 2rem; + --pf-t--global--spacer--600: 3rem; + --pf-t--global--spacer--700: 4rem; + --pf-t--global--spacer--800: 5rem; + --pf-t--global--text-decoration--line--100: none; + --pf-t--global--text-decoration--line--200: underline; + --pf-t--global--text-decoration--style--100: solid; + --pf-t--global--text-decoration--style--200: dashed; + --pf-t--global--z-index--100: 100; + --pf-t--global--z-index--200: 200; + --pf-t--global--z-index--300: 300; + --pf-t--global--z-index--400: 400; + --pf-t--global--z-index--500: 500; + --pf-t--global--z-index--600: 600; + --pf-t--global--background--color--100: var(--pf-t--color--white); + --pf-t--global--background--color--200: var(--pf-t--color--gray--10); + --pf-t--global--background--color--300: var(--pf-t--color--gray--20); + --pf-t--global--background--color--400: var(--pf-t--color--gray--80); + --pf-t--global--background--color--450: var(--pf-t--color--gray--70); + --pf-t--global--background--color--action--plain--clicked: var(--pf-t--global--background--color--600); + --pf-t--global--background--color--action--plain--hover: var(--pf-t--global--background--color--600); + --pf-t--global--background--color--backdrop--default: var(--pf-t--global--background--color--500); + --pf-t--global--background--color--highlight--100: var(--pf-t--color--yellow--30); + --pf-t--global--background--color--highlight--200: var(--pf-t--color--yellow--40); + --pf-t--global--background--color--loading--skeleton--default: var(--pf-t--global--background--color--600); + --pf-t--global--background--color--loading--skeleton--subtle: var(--pf-t--global--background--color--700); + --pf-t--global--background--color--striped--row--default: var(--pf-t--global--background--color--700); + --pf-t--global--background--color--tertiary--default: var(--pf-t--global--background--color--600); + --pf-t--global--border--color--100: var(--pf-t--color--gray--30); + --pf-t--global--border--color--200: var(--pf-t--color--gray--40); + --pf-t--global--border--color--300: var(--pf-t--color--gray--45); + --pf-t--global--border--color--400: var(--pf-t--color--gray--60); + --pf-t--global--border--color--50: var(--pf-t--color--gray--20); --pf-t--global--border--color--nonstatus--green--default: var(--pf-t--global--color--nonstatus--green--400); --pf-t--global--border--color--status--success--default: var(--pf-t--global--color--status--success--150); + --pf-t--global--border--radius--large: var(--pf-t--global--border--radius--400); + --pf-t--global--border--radius--medium: var(--pf-t--global--border--radius--300); + --pf-t--global--border--radius--pill: var(--pf-t--global--border--radius--500); + --pf-t--global--border--radius--sharp: var(--pf-t--global--border--radius--0); + --pf-t--global--border--radius--small: var(--pf-t--global--border--radius--200); + --pf-t--global--border--radius--tiny: var(--pf-t--global--border--radius--100); + --pf-t--global--border--width--action--clicked: var(--pf-t--global--border--width--200); + --pf-t--global--border--width--action--default: var(--pf-t--global--border--width--100); + --pf-t--global--border--width--action--hover: var(--pf-t--global--border--width--200); --pf-t--global--border--width--action--plain--clicked: var(--pf-t--global--border--width--200); --pf-t--global--border--width--action--plain--hover: var(--pf-t--global--border--width--100); + --pf-t--global--border--width--box--clicked: var(--pf-t--global--border--width--300); + --pf-t--global--border--width--box--default: var(--pf-t--global--border--width--100); + --pf-t--global--border--width--box--hover: var(--pf-t--global--border--width--200); + --pf-t--global--border--width--box--status--default: var(--pf-t--global--border--width--200); + --pf-t--global--border--width--box--status--read: var(--pf-t--global--border--width--100); + --pf-t--global--border--width--control--clicked: var(--pf-t--global--border--width--200); + --pf-t--global--border--width--control--default: var(--pf-t--global--border--width--100); --pf-t--global--border--width--control--hover: var(--pf-t--global--border--width--200); + --pf-t--global--border--width--divider--clicked: var(--pf-t--global--border--width--100); + --pf-t--global--border--width--divider--default: var(--pf-t--global--border--width--100); + --pf-t--global--border--width--divider--hover: var(--pf-t--global--border--width--100); + --pf-t--global--border--width--extra-strong: var(--pf-t--global--border--width--300); --pf-t--global--border--width--main--default: var(--pf-t--global--border--width--200); - --pf-t--global--border--color--brand--accent--clicked: var(--pf-t--global--color--brand--accent--400); - --pf-t--global--border--color--brand--accent--default: var(--pf-t--global--color--brand--accent--400); - --pf-t--global--border--color--brand--accent--hover: var(--pf-t--global--color--brand--accent--400); + --pf-t--global--border--width--regular: var(--pf-t--global--border--width--100); + --pf-t--global--border--width--strong: var(--pf-t--global--border--width--200); + --pf-t--global--box-shadow--X--lg--bottom: var(--pf-t--global--box-shadow--X--400); + --pf-t--global--box-shadow--X--lg--default: var(--pf-t--global--box-shadow--X--400); + --pf-t--global--box-shadow--X--lg--left: var(--pf-t--global--box-shadow--X--50); + --pf-t--global--box-shadow--X--lg--right: var(--pf-t--global--box-shadow--X--800); + --pf-t--global--box-shadow--X--lg--top: var(--pf-t--global--box-shadow--X--400); + --pf-t--global--box-shadow--X--md--bottom: var(--pf-t--global--box-shadow--X--400); + --pf-t--global--box-shadow--X--md--default: var(--pf-t--global--box-shadow--X--400); + --pf-t--global--box-shadow--X--md--left: var(--pf-t--global--box-shadow--X--100); + --pf-t--global--box-shadow--X--md--right: var(--pf-t--global--box-shadow--X--700); + --pf-t--global--box-shadow--X--md--top: var(--pf-t--global--box-shadow--X--400); + --pf-t--global--box-shadow--X--sm--bottom: var(--pf-t--global--box-shadow--X--400); + --pf-t--global--box-shadow--X--sm--default: var(--pf-t--global--box-shadow--X--400); + --pf-t--global--box-shadow--X--sm--left: var(--pf-t--global--box-shadow--X--200); + --pf-t--global--box-shadow--X--sm--right: var(--pf-t--global--box-shadow--X--600); + --pf-t--global--box-shadow--X--sm--top: var(--pf-t--global--box-shadow--X--400); + --pf-t--global--box-shadow--Y--lg--bottom: var(--pf-t--global--box-shadow--Y--800); + --pf-t--global--box-shadow--Y--lg--default: var(--pf-t--global--box-shadow--Y--700); + --pf-t--global--box-shadow--Y--lg--left: var(--pf-t--global--box-shadow--Y--400); + --pf-t--global--box-shadow--Y--lg--right: var(--pf-t--global--box-shadow--Y--400); + --pf-t--global--box-shadow--Y--lg--top: var(--pf-t--global--box-shadow--Y--50); + --pf-t--global--box-shadow--Y--md--bottom: var(--pf-t--global--box-shadow--Y--700); + --pf-t--global--box-shadow--Y--md--default: var(--pf-t--global--box-shadow--Y--600); + --pf-t--global--box-shadow--Y--md--left: var(--pf-t--global--box-shadow--Y--400); + --pf-t--global--box-shadow--Y--md--right: var(--pf-t--global--box-shadow--Y--400); + --pf-t--global--box-shadow--Y--md--top: var(--pf-t--global--box-shadow--Y--100); + --pf-t--global--box-shadow--Y--sm--bottom: var(--pf-t--global--box-shadow--Y--600); + --pf-t--global--box-shadow--Y--sm--default: var(--pf-t--global--box-shadow--Y--500); + --pf-t--global--box-shadow--Y--sm--left: var(--pf-t--global--box-shadow--Y--400); + --pf-t--global--box-shadow--Y--sm--right: var(--pf-t--global--box-shadow--Y--400); + --pf-t--global--box-shadow--Y--sm--top: var(--pf-t--global--box-shadow--Y--200); + --pf-t--global--box-shadow--blur--lg: var(--pf-t--global--box-shadow--blur--300); + --pf-t--global--box-shadow--blur--md: var(--pf-t--global--box-shadow--blur--200); + --pf-t--global--box-shadow--blur--sm: var(--pf-t--global--box-shadow--blur--100); + --pf-t--global--box-shadow--color--lg--default: var(--pf-t--global--box-shadow--color--100); + --pf-t--global--box-shadow--color--lg--directional: var(--pf-t--global--box-shadow--color--200); + --pf-t--global--box-shadow--color--md--default: var(--pf-t--global--box-shadow--color--100); + --pf-t--global--box-shadow--color--md--directional: var(--pf-t--global--box-shadow--color--100); + --pf-t--global--box-shadow--color--sm--default: var(--pf-t--global--box-shadow--color--100); + --pf-t--global--box-shadow--color--sm--directional: var(--pf-t--global--box-shadow--color--200); + --pf-t--global--box-shadow--spread--lg--default: var(--pf-t--global--box-shadow--spread--100); + --pf-t--global--box-shadow--spread--lg--directional: var(--pf-t--global--box-shadow--spread--400); + --pf-t--global--box-shadow--spread--md--default: var(--pf-t--global--box-shadow--spread--100); + --pf-t--global--box-shadow--spread--md--directional: var(--pf-t--global--box-shadow--spread--300); + --pf-t--global--box-shadow--spread--sm--default: var(--pf-t--global--box-shadow--spread--100); + --pf-t--global--box-shadow--spread--sm--directional: var(--pf-t--global--box-shadow--spread--200); + --pf-t--global--breakpoint--2xl: var(--pf-t--global--breakpoint--600); + --pf-t--global--breakpoint--height--2xl: var(--pf-t--global--breakpoint--550); + --pf-t--global--breakpoint--height--lg: var(--pf-t--global--breakpoint--300); + --pf-t--global--breakpoint--height--md: var(--pf-t--global--breakpoint--250); + --pf-t--global--breakpoint--height--sm: var(--pf-t--global--breakpoint--100); + --pf-t--global--breakpoint--height--xl: var(--pf-t--global--breakpoint--350); + --pf-t--global--breakpoint--lg: var(--pf-t--global--breakpoint--400); + --pf-t--global--breakpoint--md: var(--pf-t--global--breakpoint--300); + --pf-t--global--breakpoint--sm: var(--pf-t--global--breakpoint--200); + --pf-t--global--breakpoint--xl: var(--pf-t--global--breakpoint--500); + --pf-t--global--breakpoint--xs: var(--pf-t--global--breakpoint--100); + --pf-t--global--color--brand--100: var(--pf-t--color--blue--40); + --pf-t--global--color--brand--200: var(--pf-t--color--blue--50); + --pf-t--global--color--brand--300: var(--pf-t--color--blue--60); + --pf-t--global--color--brand--400: var(--pf-t--color--blue--70); + --pf-t--global--color--brand--500: var(--pf-t--color--blue--80); + --pf-t--global--color--brand--accent--100: var(--pf-t--color--red--50); + --pf-t--global--color--brand--accent--200: var(--pf-t--color--red--60); + --pf-t--global--color--brand--accent--300: var(--pf-t--color--gray--60); + --pf-t--global--color--brand--accent--400: var(--pf-t--color--black); + --pf-t--global--color--brand--subtle--100: var(--pf-t--color--blue--10); + --pf-t--global--color--brand--subtle--200: var(--pf-t--color--blue--20); + --pf-t--global--color--brand--subtle--300: var(--pf-t--color--blue--40); + --pf-t--global--color--brand--subtle--400: var(--pf-t--color--blue--50); + --pf-t--global--color--disabled--100: var(--pf-t--color--gray--30); + --pf-t--global--color--disabled--200: var(--pf-t--color--gray--40); + --pf-t--global--color--disabled--300: var(--pf-t--color--gray--50); + --pf-t--global--color--favorite--100: var(--pf-t--color--yellow--30); + --pf-t--global--color--favorite--200: var(--pf-t--color--yellow--40); + --pf-t--global--color--favorite--300: var(--pf-t--color--yellow--70); + --pf-t--global--color--favorite--400: var(--pf-t--color--yellow--80); + --pf-t--global--color--nonstatus--blue--100: var(--pf-t--color--blue--20); + --pf-t--global--color--nonstatus--blue--200: var(--pf-t--color--blue--30); + --pf-t--global--color--nonstatus--blue--300: var(--pf-t--color--blue--40); + --pf-t--global--color--nonstatus--blue--400: var(--pf-t--color--blue--60); + --pf-t--global--color--nonstatus--blue--500: var(--pf-t--color--blue--70); + --pf-t--global--color--nonstatus--gray--100: var(--pf-t--color--gray--20); + --pf-t--global--color--nonstatus--gray--200: var(--pf-t--color--gray--30); + --pf-t--global--color--nonstatus--gray--300: var(--pf-t--color--gray--40); + --pf-t--global--color--nonstatus--gray--400: var(--pf-t--color--gray--60); + --pf-t--global--color--nonstatus--gray--50: var(--pf-t--color--gray--10); + --pf-t--global--color--nonstatus--gray--500: var(--pf-t--color--gray--70); + --pf-t--global--color--nonstatus--green--100: var(--pf-t--color--green--20); + --pf-t--global--color--nonstatus--green--200: var(--pf-t--color--green--30); + --pf-t--global--color--nonstatus--green--300: var(--pf-t--color--green--40); + --pf-t--global--color--nonstatus--green--500: var(--pf-t--color--green--70); + --pf-t--global--color--nonstatus--orange--100: var(--pf-t--color--orange--20); + --pf-t--global--color--nonstatus--orange--200: var(--pf-t--color--orange--30); + --pf-t--global--color--nonstatus--orange--300: var(--pf-t--color--orange--40); + --pf-t--global--color--nonstatus--orange--400: var(--pf-t--color--orange--60); + --pf-t--global--color--nonstatus--orange--500: var(--pf-t--color--orange--70); + --pf-t--global--color--nonstatus--orangered--100: var(--pf-t--color--red-orange--20); + --pf-t--global--color--nonstatus--orangered--200: var(--pf-t--color--red-orange--30); + --pf-t--global--color--nonstatus--orangered--300: var(--pf-t--color--red-orange--40); + --pf-t--global--color--nonstatus--orangered--400: var(--pf-t--color--red-orange--60); + --pf-t--global--color--nonstatus--orangered--500: var(--pf-t--color--red-orange--70); + --pf-t--global--color--nonstatus--purple--100: var(--pf-t--color--purple--20); + --pf-t--global--color--nonstatus--purple--200: var(--pf-t--color--purple--30); + --pf-t--global--color--nonstatus--purple--300: var(--pf-t--color--purple--40); + --pf-t--global--color--nonstatus--purple--400: var(--pf-t--color--purple--50); + --pf-t--global--color--nonstatus--purple--500: var(--pf-t--color--purple--60); + --pf-t--global--color--nonstatus--red--100: var(--pf-t--color--red--20); + --pf-t--global--color--nonstatus--red--200: var(--pf-t--color--red--30); + --pf-t--global--color--nonstatus--red--300: var(--pf-t--color--red--40); + --pf-t--global--color--nonstatus--red--400: var(--pf-t--color--red--60); + --pf-t--global--color--nonstatus--red--500: var(--pf-t--color--red--70); + --pf-t--global--color--nonstatus--teal--100: var(--pf-t--color--teal--20); + --pf-t--global--color--nonstatus--teal--200: var(--pf-t--color--teal--30); + --pf-t--global--color--nonstatus--teal--300: var(--pf-t--color--teal--40); + --pf-t--global--color--nonstatus--teal--400: var(--pf-t--color--teal--70); + --pf-t--global--color--nonstatus--teal--500: var(--pf-t--color--teal--80); + --pf-t--global--color--nonstatus--yellow--100: var(--pf-t--color--yellow--20); + --pf-t--global--color--nonstatus--yellow--200: var(--pf-t--color--yellow--30); + --pf-t--global--color--nonstatus--yellow--300: var(--pf-t--color--yellow--40); + --pf-t--global--color--nonstatus--yellow--400: var(--pf-t--color--yellow--70); + --pf-t--global--color--nonstatus--yellow--500: var(--pf-t--color--yellow--80); + --pf-t--global--color--severity--critical--100: var(--pf-t--color--red-orange--60); + --pf-t--global--color--severity--important--100: var(--pf-t--color--orange--50); + --pf-t--global--color--severity--important--200: var(--pf-t--color--orange--60); + --pf-t--global--color--severity--minor--100: var(--pf-t--color--gray--50); + --pf-t--global--color--severity--minor--200: var(--pf-t--color--gray--80); + --pf-t--global--color--severity--moderate--100: var(--pf-t--color--yellow--40); + --pf-t--global--color--severity--moderate--200: var(--pf-t--color--yellow--70); + --pf-t--global--color--severity--none--100: var(--pf-t--color--blue--40); + --pf-t--global--color--severity--none--200: var(--pf-t--color--blue--60); + --pf-t--global--color--severity--undefined--100: var(--pf-t--color--gray--30); + --pf-t--global--color--severity--undefined--200: var(--pf-t--color--gray--60); + --pf-t--global--color--status--custom--100: var(--pf-t--color--teal--60); + --pf-t--global--color--status--custom--200: var(--pf-t--color--teal--70); + --pf-t--global--color--status--custom--300: var(--pf-t--color--teal--80); + --pf-t--global--color--status--danger--100: var(--pf-t--color--red-orange--60); + --pf-t--global--color--status--danger--200: var(--pf-t--color--red-orange--70); + --pf-t--global--color--status--danger--300: var(--pf-t--color--red-orange--70); + --pf-t--global--color--status--info--100: var(--pf-t--color--purple--50); + --pf-t--global--color--status--info--200: var(--pf-t--color--purple--60); + --pf-t--global--color--status--info--300: var(--pf-t--color--purple--70); + --pf-t--global--color--status--success--100: var(--pf-t--color--green--60); + --pf-t--global--color--status--success--200: var(--pf-t--color--green--70); + --pf-t--global--color--status--success--300: var(--pf-t--color--green--80); + --pf-t--global--color--status--warning--100: var(--pf-t--color--yellow--30); + --pf-t--global--color--status--warning--200: var(--pf-t--color--yellow--40); + --pf-t--global--color--status--warning--300: var(--pf-t--color--yellow--50); + --pf-t--global--color--status--warning--400: var(--pf-t--color--yellow--60); + --pf-t--global--color--status--warning--500: var(--pf-t--color--yellow--70); + --pf-t--global--color--status--warning--600: var(--pf-t--color--yellow--80); + --pf-t--global--focus-ring--color--100: var(--pf-t--color--blue--50); + --pf-t--global--focus-ring--color--200: var(--pf-t--color--blue--60); + --pf-t--global--font--family--body: var(--pf-t--global--font--family--100); + --pf-t--global--font--family--heading: var(--pf-t--global--font--family--200); + --pf-t--global--font--family--mono: var(--pf-t--global--font--family--300); + --pf-t--global--font--line-height--body: var(--pf-t--global--font--line-height--200); + --pf-t--global--font--line-height--heading: var(--pf-t--global--font--line-height--100); + --pf-t--global--font--size--2xl: var(--pf-t--global--font--size--600); + --pf-t--global--font--size--3xl: var(--pf-t--global--font--size--700); + --pf-t--global--font--size--4xl: var(--pf-t--global--font--size--800); + --pf-t--global--font--size--lg: var(--pf-t--global--font--size--400); + --pf-t--global--font--size--md: var(--pf-t--global--font--size--300); + --pf-t--global--font--size--sm: var(--pf-t--global--font--size--200); + --pf-t--global--font--size--xl: var(--pf-t--global--font--size--500); + --pf-t--global--font--size--xs: var(--pf-t--global--font--size--100); + --pf-t--global--font--weight--body--bold: var(--pf-t--global--font--weight--200); + --pf-t--global--font--weight--body--default: var(--pf-t--global--font--weight--100); + --pf-t--global--font--weight--heading--bold: var(--pf-t--global--font--weight--400); + --pf-t--global--font--weight--heading--default: var(--pf-t--global--font--weight--300); + --pf-t--global--icon--color--100: var(--pf-t--color--gray--90); + --pf-t--global--icon--color--150: var(--pf-t--color--gray--60); + --pf-t--global--icon--color--200: var(--pf-t--color--gray--50); + --pf-t--global--icon--color--300: var(--pf-t--color--white); + --pf-t--global--icon--size--2xl: var(--pf-t--global--icon--size--400); + --pf-t--global--icon--size--3xl: var(--pf-t--global--icon--size--500); + --pf-t--global--icon--size--lg: var(--pf-t--global--icon--size--250); + --pf-t--global--icon--size--md: var(--pf-t--global--icon--size--200); + --pf-t--global--icon--size--sm: var(--pf-t--global--icon--size--100); + --pf-t--global--icon--size--xl: var(--pf-t--global--icon--size--300); + --pf-t--global--spacer--2xl: var(--pf-t--global--spacer--600); + --pf-t--global--spacer--3xl: var(--pf-t--global--spacer--700); + --pf-t--global--spacer--4xl: var(--pf-t--global--spacer--800); + --pf-t--global--spacer--lg: var(--pf-t--global--spacer--400); + --pf-t--global--spacer--md: var(--pf-t--global--spacer--300); + --pf-t--global--spacer--sm: var(--pf-t--global--spacer--200); + --pf-t--global--spacer--xl: var(--pf-t--global--spacer--500); + --pf-t--global--spacer--xs: var(--pf-t--global--spacer--100); + --pf-t--global--text--color--100: var(--pf-t--color--gray--95); + --pf-t--global--text--color--200: var(--pf-t--color--gray--60); + --pf-t--global--text--color--250: var(--pf-t--color--gray--70); + --pf-t--global--text--color--300: var(--pf-t--color--white); + --pf-t--global--text--color--400: var(--pf-t--color--red-orange--40); + --pf-t--global--text--color--500: var(--pf-t--color--red-orange--70); + --pf-t--global--text--color--link--100: var(--pf-t--color--blue--50); + --pf-t--global--text--color--link--200: var(--pf-t--color--blue--60); + --pf-t--global--text--color--link--250: var(--pf-t--color--blue--70); + --pf-t--global--text--color--link--300: var(--pf-t--color--purple--50); + --pf-t--global--text--color--link--350: var(--pf-t--color--purple--60); + --pf-t--global--text-decoration--editable-text--line--default: var(--pf-t--global--text-decoration--line--200); + --pf-t--global--text-decoration--editable-text--line--hover: var(--pf-t--global--text-decoration--line--200); + --pf-t--global--text-decoration--editable-text--style--default: var(--pf-t--global--text-decoration--style--200); + --pf-t--global--text-decoration--editable-text--style--hover: var(--pf-t--global--text-decoration--style--200); + --pf-t--global--text-decoration--help-text--line--default: var(--pf-t--global--text-decoration--line--200); + --pf-t--global--text-decoration--help-text--line--hover: var(--pf-t--global--text-decoration--line--200); + --pf-t--global--text-decoration--help-text--style--default: var(--pf-t--global--text-decoration--style--200); + --pf-t--global--text-decoration--help-text--style--hover: var(--pf-t--global--text-decoration--style--200); + --pf-t--global--text-decoration--link--line--default: var(--pf-t--global--text-decoration--line--200); + --pf-t--global--text-decoration--link--line--hover: var(--pf-t--global--text-decoration--line--200); + --pf-t--global--text-decoration--link--style--default: var(--pf-t--global--text-decoration--style--200); + --pf-t--global--text-decoration--link--style--hover: var(--pf-t--global--text-decoration--style--200); + --pf-t--global--z-index--2xl: var(--pf-t--global--z-index--600); + --pf-t--global--z-index--lg: var(--pf-t--global--z-index--400); + --pf-t--global--z-index--md: var(--pf-t--global--z-index--300); + --pf-t--global--z-index--sm: var(--pf-t--global--z-index--200); + --pf-t--global--z-index--xl: var(--pf-t--global--z-index--500); + --pf-t--global--z-index--xs: var(--pf-t--global--z-index--100); + --pf-t--global--background--color--control--read-only: var(--pf-t--global--background--color--200); + --pf-t--global--background--color--disabled--default: var(--pf-t--global--color--disabled--100); + --pf-t--global--background--color--floating--clicked: var(--pf-t--global--background--color--200); + --pf-t--global--background--color--floating--default: var(--pf-t--global--background--color--100); + --pf-t--global--background--color--floating--hover: var(--pf-t--global--background--color--200); + --pf-t--global--background--color--highlight--clicked: var(--pf-t--global--background--color--highlight--200); + --pf-t--global--background--color--highlight--default: var(--pf-t--global--background--color--highlight--100); + --pf-t--global--background--color--inverse--clicked: var(--pf-t--global--background--color--450); + --pf-t--global--background--color--inverse--default: var(--pf-t--global--background--color--400); + --pf-t--global--background--color--inverse--hover: var(--pf-t--global--background--color--450); + --pf-t--global--background--color--primary--clicked: var(--pf-t--global--background--color--200); + --pf-t--global--background--color--primary--default: var(--pf-t--global--background--color--100); + --pf-t--global--background--color--primary--hover: var(--pf-t--global--background--color--200); + --pf-t--global--background--color--secondary--clicked: var(--pf-t--global--background--color--300); + --pf-t--global--background--color--secondary--default: var(--pf-t--global--background--color--200); + --pf-t--global--background--color--secondary--hover: var(--pf-t--global--background--color--300); + --pf-t--global--background--color--sticky--default: var(--pf-t--global--background--color--100); --pf-t--global--border--color--brand--subtle--clicked: var(--pf-t--global--color--brand--subtle--400); + --pf-t--global--border--color--brand--subtle--default: var(--pf-t--global--color--brand--subtle--200); --pf-t--global--border--color--brand--subtle--hover: var(--pf-t--global--color--brand--subtle--400); --pf-t--global--border--color--clicked: var(--pf-t--global--color--brand--400); --pf-t--global--border--color--control--default: var(--pf-t--global--border--color--400); + --pf-t--global--border--color--control--read-only: var(--pf-t--global--border--color--100); --pf-t--global--border--color--default: var(--pf-t--global--border--color--400); + --pf-t--global--border--color--disabled: var(--pf-t--global--color--disabled--200); --pf-t--global--border--color--hover: var(--pf-t--global--color--brand--300); --pf-t--global--border--color--nonstatus--blue--clicked: var(--pf-t--global--color--nonstatus--blue--500); --pf-t--global--border--color--nonstatus--blue--default: var(--pf-t--global--color--nonstatus--blue--400); @@ -52,23 +424,51 @@ --pf-t--global--border--color--status--warning--default: var(--pf-t--global--color--status--warning--500); --pf-t--global--border--color--status--warning--hover: var(--pf-t--global--color--status--warning--600); --pf-t--global--border--color--subtle: var(--pf-t--global--border--color--400); - --pf-t--global--border--radius--action--plain--default: var(--pf-t--global--border--radius--pill); - --pf-t--global--border--radius--control--default: var(--pf-t--global--border--radius--pill); + --pf-t--global--border--radius--action--default: var(--pf-t--global--border--radius--pill); + --pf-t--global--border--radius--action--plain--default: var(--pf-t--global--border--radius--small); + --pf-t--global--border--radius--control--default: var(--pf-t--global--border--radius--small); + --pf-t--global--border--radius--control--form-element: var(--pf-t--global--border--radius--small); + --pf-t--global--border--radius--glass--default: var(--pf-t--global--border--radius--medium); + --pf-t--global--border--width--glass--default: var(--pf-t--global--border--width--regular); --pf-t--global--border--width--high-contrast--extra-strong: var(--pf-t--global--border--width--extra-strong); --pf-t--global--border--width--high-contrast--regular: var(--pf-t--global--border--width--regular); --pf-t--global--border--width--high-contrast--strong: var(--pf-t--global--border--width--strong); - --pf-t--global--color--brand--accent--clicked: var(--pf-t--global--color--brand--accent--300); - --pf-t--global--color--brand--accent--default: var(--pf-t--global--color--brand--accent--400); - --pf-t--global--color--brand--accent--hover: var(--pf-t--global--color--brand--accent--300); --pf-t--global--color--brand--clicked: var(--pf-t--global--color--brand--400); --pf-t--global--color--brand--default: var(--pf-t--global--color--brand--300); --pf-t--global--color--brand--hover: var(--pf-t--global--color--brand--400); + --pf-t--global--color--brand--subtle--clicked: var(--pf-t--global--color--brand--subtle--200); + --pf-t--global--color--brand--subtle--default: var(--pf-t--global--color--brand--subtle--100); + --pf-t--global--color--brand--subtle--hover: var(--pf-t--global--color--brand--subtle--200); --pf-t--global--color--favorite--clicked: var(--pf-t--global--color--favorite--400); --pf-t--global--color--favorite--default: var(--pf-t--global--color--favorite--300); --pf-t--global--color--favorite--hover: var(--pf-t--global--color--favorite--400); + --pf-t--global--color--nonstatus--blue--clicked: var(--pf-t--global--color--nonstatus--blue--200); + --pf-t--global--color--nonstatus--blue--default: var(--pf-t--global--color--nonstatus--blue--100); + --pf-t--global--color--nonstatus--blue--hover: var(--pf-t--global--color--nonstatus--blue--200); --pf-t--global--color--nonstatus--gray--clicked: var(--pf-t--global--color--nonstatus--gray--100); --pf-t--global--color--nonstatus--gray--default: var(--pf-t--global--color--nonstatus--gray--50); --pf-t--global--color--nonstatus--gray--hover: var(--pf-t--global--color--nonstatus--gray--100); + --pf-t--global--color--nonstatus--green--clicked: var(--pf-t--global--color--nonstatus--green--200); + --pf-t--global--color--nonstatus--green--default: var(--pf-t--global--color--nonstatus--green--100); + --pf-t--global--color--nonstatus--green--hover: var(--pf-t--global--color--nonstatus--green--200); + --pf-t--global--color--nonstatus--orange--clicked: var(--pf-t--global--color--nonstatus--orange--200); + --pf-t--global--color--nonstatus--orange--default: var(--pf-t--global--color--nonstatus--orange--100); + --pf-t--global--color--nonstatus--orange--hover: var(--pf-t--global--color--nonstatus--orange--200); + --pf-t--global--color--nonstatus--orangered--clicked: var(--pf-t--global--color--nonstatus--orangered--200); + --pf-t--global--color--nonstatus--orangered--default: var(--pf-t--global--color--nonstatus--orangered--100); + --pf-t--global--color--nonstatus--orangered--hover: var(--pf-t--global--color--nonstatus--orangered--200); + --pf-t--global--color--nonstatus--purple--clicked: var(--pf-t--global--color--nonstatus--purple--200); + --pf-t--global--color--nonstatus--purple--default: var(--pf-t--global--color--nonstatus--purple--100); + --pf-t--global--color--nonstatus--purple--hover: var(--pf-t--global--color--nonstatus--purple--200); + --pf-t--global--color--nonstatus--red--clicked: var(--pf-t--global--color--nonstatus--red--200); + --pf-t--global--color--nonstatus--red--default: var(--pf-t--global--color--nonstatus--red--100); + --pf-t--global--color--nonstatus--red--hover: var(--pf-t--global--color--nonstatus--red--200); + --pf-t--global--color--nonstatus--teal--clicked: var(--pf-t--global--color--nonstatus--teal--200); + --pf-t--global--color--nonstatus--teal--default: var(--pf-t--global--color--nonstatus--teal--100); + --pf-t--global--color--nonstatus--teal--hover: var(--pf-t--global--color--nonstatus--teal--200); + --pf-t--global--color--nonstatus--yellow--clicked: var(--pf-t--global--color--nonstatus--yellow--200); + --pf-t--global--color--nonstatus--yellow--default: var(--pf-t--global--color--nonstatus--yellow--100); + --pf-t--global--color--nonstatus--yellow--hover: var(--pf-t--global--color--nonstatus--yellow--200); --pf-t--global--color--status--custom--clicked: var(--pf-t--global--color--status--custom--300); --pf-t--global--color--status--custom--default: var(--pf-t--global--color--status--custom--200); --pf-t--global--color--status--custom--hover: var(--pf-t--global--color--status--custom--300); @@ -85,9 +485,23 @@ --pf-t--global--color--status--warning--default: var(--pf-t--global--color--status--warning--500); --pf-t--global--color--status--warning--hover: var(--pf-t--global--color--status--warning--600); --pf-t--global--focus-ring--color--default: var(--pf-t--global--focus-ring--color--200); + --pf-t--global--font--size--body--default: var(--pf-t--global--font--size--sm); + --pf-t--global--font--size--body--lg: var(--pf-t--global--font--size--md); + --pf-t--global--font--size--body--sm: var(--pf-t--global--font--size--xs); + --pf-t--global--font--size--heading--h1: var(--pf-t--global--font--size--2xl); + --pf-t--global--font--size--heading--h2: var(--pf-t--global--font--size--xl); + --pf-t--global--font--size--heading--h3: var(--pf-t--global--font--size--lg); + --pf-t--global--font--size--heading--h4: var(--pf-t--global--font--size--md); + --pf-t--global--font--size--heading--h5: var(--pf-t--global--font--size--md); + --pf-t--global--font--size--heading--h6: var(--pf-t--global--font--size--md); --pf-t--global--icon--color--brand--clicked: var(--pf-t--global--color--brand--400); --pf-t--global--icon--color--brand--default: var(--pf-t--global--color--brand--300); --pf-t--global--icon--color--brand--hover: var(--pf-t--global--color--brand--400); + --pf-t--global--icon--color--disabled: var(--pf-t--global--color--disabled--200); + --pf-t--global--icon--color--inverse: var(--pf-t--global--icon--color--300); + --pf-t--global--icon--color--on-disabled: var(--pf-t--global--color--disabled--300); + --pf-t--global--icon--color--regular: var(--pf-t--global--icon--color--100); + --pf-t--global--icon--color--severity--critical--default: var(--pf-t--global--color--severity--critical--100); --pf-t--global--icon--color--severity--important--default: var(--pf-t--global--color--severity--important--200); --pf-t--global--icon--color--severity--minor--default: var(--pf-t--global--color--severity--minor--200); --pf-t--global--icon--color--severity--moderate--default: var(--pf-t--global--color--severity--moderate--200); @@ -100,12 +514,51 @@ --pf-t--global--icon--color--status--warning--default: var(--pf-t--global--color--status--warning--500); --pf-t--global--icon--color--status--warning--hover: var(--pf-t--global--color--status--warning--600); --pf-t--global--icon--color--subtle: var(--pf-t--global--icon--color--150); + --pf-t--global--icon--size--font--2xl: var(--pf-t--global--font--size--2xl); + --pf-t--global--icon--size--font--3xl: var(--pf-t--global--font--size--3xl); + --pf-t--global--icon--size--font--4xl: var(--pf-t--global--font--size--4xl); + --pf-t--global--icon--size--font--lg: var(--pf-t--global--font--size--lg); + --pf-t--global--icon--size--font--md: var(--pf-t--global--font--size--md); + --pf-t--global--icon--size--font--sm: var(--pf-t--global--font--size--sm); + --pf-t--global--icon--size--font--xl: var(--pf-t--global--font--size--xl); + --pf-t--global--icon--size--font--xs: var(--pf-t--global--font--size--xs); + --pf-t--global--spacer--action--horizontal--compact: var(--pf-t--global--spacer--md); + --pf-t--global--spacer--action--horizontal--default: var(--pf-t--global--spacer--lg); + --pf-t--global--spacer--action--horizontal--plain--compact: var(--pf-t--global--spacer--xs); + --pf-t--global--spacer--action--horizontal--plain--default: var(--pf-t--global--spacer--sm); + --pf-t--global--spacer--action--horizontal--spacious: var(--pf-t--global--spacer--xl); + --pf-t--global--spacer--control--horizontal--compact: var(--pf-t--global--spacer--sm); + --pf-t--global--spacer--control--horizontal--default: var(--pf-t--global--spacer--md); + --pf-t--global--spacer--control--horizontal--plain: var(--pf-t--global--spacer--sm); + --pf-t--global--spacer--control--horizontal--spacious: var(--pf-t--global--spacer--lg); + --pf-t--global--spacer--control--vertical--compact: var(--pf-t--global--spacer--xs); + --pf-t--global--spacer--control--vertical--default: var(--pf-t--global--spacer--sm); + --pf-t--global--spacer--control--vertical--plain: var(--pf-t--global--spacer--sm); + --pf-t--global--spacer--control--vertical--spacious: var(--pf-t--global--spacer--md); + --pf-t--global--spacer--gap--action-to-action--default: var(--pf-t--global--spacer--md); + --pf-t--global--spacer--gap--action-to-action--plain: var(--pf-t--global--spacer--xs); + --pf-t--global--spacer--gap--control-to-control--default: var(--pf-t--global--spacer--xs); + --pf-t--global--spacer--gap--group--horizontal: var(--pf-t--global--spacer--md); + --pf-t--global--spacer--gap--group--vertical: var(--pf-t--global--spacer--sm); + --pf-t--global--spacer--gap--group-to-group--horizontal--compact: var(--pf-t--global--spacer--sm); + --pf-t--global--spacer--gap--group-to-group--horizontal--default: var(--pf-t--global--spacer--2xl); + --pf-t--global--spacer--gap--group-to-group--vertical--compact: var(--pf-t--global--spacer--md); + --pf-t--global--spacer--gap--group-to-group--vertical--default: var(--pf-t--global--spacer--lg); + --pf-t--global--spacer--gap--text-to-element--compact: var(--pf-t--global--spacer--xs); + --pf-t--global--spacer--gap--text-to-element--default: var(--pf-t--global--spacer--sm); + --pf-t--global--spacer--gutter--default: var(--pf-t--global--spacer--md); + --pf-t--global--spacer--inset--page-chrome: var(--pf-t--global--spacer--lg); --pf-t--global--text--color--brand--clicked: var(--pf-t--global--color--brand--500); --pf-t--global--text--color--brand--default: var(--pf-t--global--color--brand--400); --pf-t--global--text--color--brand--hover: var(--pf-t--global--color--brand--500); + --pf-t--global--text--color--disabled: var(--pf-t--global--color--disabled--200); + --pf-t--global--text--color--inverse: var(--pf-t--global--text--color--300); --pf-t--global--text--color--link--default: var(--pf-t--global--text--color--link--200); --pf-t--global--text--color--link--hover: var(--pf-t--global--text--color--link--250); --pf-t--global--text--color--link--visited: var(--pf-t--global--text--color--link--350); + --pf-t--global--text--color--on-disabled: var(--pf-t--global--color--disabled--300); + --pf-t--global--text--color--on-highlight: var(--pf-t--global--text--color--100); + --pf-t--global--text--color--regular: var(--pf-t--global--text--color--100); --pf-t--global--text--color--required: var(--pf-t--global--text--color--500); --pf-t--global--text--color--status--success--clicked: var(--pf-t--global--color--status--success--300); --pf-t--global--text--color--status--success--default: var(--pf-t--global--color--status--success--200); @@ -115,14 +568,191 @@ --pf-t--global--text--color--status--warning--hover: var(--pf-t--global--color--status--warning--600); --pf-t--global--text--color--subtle: var(--pf-t--global--text--color--250); --pf-t--global--text-decoration--color--default: var(--pf-t--global--border--color--400); + --pf-t--global--text-decoration--offset--default: var(--pf-t--global--spacer--xs); + --pf-t--global--text-decoration--width--default: var(--pf-t--global--border--width--regular); + --pf-t--global--text-decoration--width--hover: var(--pf-t--global--border--width--strong); --pf-t--global--background--color--action--plain--alt--clicked: var(--pf-t--global--background--color--primary--default); --pf-t--global--background--color--action--plain--alt--hover: var(--pf-t--global--background--color--primary--default); + --pf-t--global--background--color--control--default: var(--pf-t--global--background--color--primary--default); + --pf-t--global--background--color--floating--secondary--default: var(--pf-t--global--background--color--secondary--default); + --pf-t--global--background--color--glass--primary--default: var(--pf-t--global--background--color--primary--default); + --pf-t--global--border--color--alt: var(--pf-t--global--background--color--primary--default); + --pf-t--global--border--color--brand--clicked: var(--pf-t--global--color--brand--clicked); + --pf-t--global--border--color--brand--default: var(--pf-t--global--color--brand--default); + --pf-t--global--border--color--brand--hover: var(--pf-t--global--color--brand--hover); + --pf-t--global--border--color--glass--default: var(--pf-t--global--border--color--subtle); --pf-t--global--border--color--high-contrast: var(--pf-t--global--border--color--default); --pf-t--global--border--color--main--default: var(--pf-t--global--border--color--default); + --pf-t--global--border--color--status--custom--clicked: var(--pf-t--global--color--status--custom--clicked); + --pf-t--global--border--color--status--custom--default: var(--pf-t--global--color--status--custom--default); + --pf-t--global--border--color--status--custom--hover: var(--pf-t--global--color--status--custom--hover); + --pf-t--global--border--color--status--danger--clicked: var(--pf-t--global--color--status--danger--clicked); + --pf-t--global--border--color--status--danger--default: var(--pf-t--global--color--status--danger--default); + --pf-t--global--border--color--status--danger--hover: var(--pf-t--global--color--status--danger--hover); + --pf-t--global--border--color--status--info--clicked: var(--pf-t--global--color--status--info--clicked); + --pf-t--global--border--color--status--info--default: var(--pf-t--global--color--status--info--default); + --pf-t--global--border--color--status--info--hover: var(--pf-t--global--color--status--info--hover); + --pf-t--global--color--brand--accent--clicked: var(--pf-t--global--color--brand--clicked); + --pf-t--global--color--brand--accent--default: var(--pf-t--global--color--brand--default); + --pf-t--global--color--brand--accent--hover: var(--pf-t--global--color--brand--hover); + --pf-t--global--color--status--read--on-primary: var(--pf-t--global--background--color--secondary--default); + --pf-t--global--color--status--unread--attention--clicked: var(--pf-t--global--color--status--danger--clicked); + --pf-t--global--color--status--unread--attention--default: var(--pf-t--global--color--status--danger--default); + --pf-t--global--color--status--unread--attention--hover: var(--pf-t--global--color--status--danger--hover); + --pf-t--global--color--status--unread--clicked: var(--pf-t--global--color--brand--clicked); + --pf-t--global--color--status--unread--default: var(--pf-t--global--color--brand--default); + --pf-t--global--color--status--unread--hover: var(--pf-t--global--color--brand--hover); + --pf-t--global--icon--color--favorite--clicked: var(--pf-t--global--color--favorite--clicked); + --pf-t--global--icon--color--favorite--default: var(--pf-t--global--color--favorite--default); + --pf-t--global--icon--color--favorite--hover: var(--pf-t--global--color--favorite--hover); + --pf-t--global--icon--color--nonstatus--on-blue--clicked: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-blue--default: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-blue--hover: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-gray--clicked: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-gray--default: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-gray--hover: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-green--clicked: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-green--default: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-green--hover: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-orange--clicked: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-orange--default: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-orange--hover: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-orangered--clicked: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-orangered--default: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-orangered--hover: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-purple--clicked: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-purple--default: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-purple--hover: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-red--clicked: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-red--default: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-red--hover: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-teal--clicked: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-teal--default: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-teal--hover: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-yellow--clicked: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-yellow--default: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--nonstatus--on-yellow--hover: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--on-brand--accent--clicked: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--on-brand--accent--default: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--on-brand--accent--hover: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--on-brand--clicked: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--on-brand--default: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--on-brand--hover: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--on-brand--subtle--clicked: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--on-brand--subtle--default: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--on-brand--subtle--hover: var(--pf-t--global--icon--color--regular); + --pf-t--global--icon--color--status--custom--clicked: var(--pf-t--global--color--status--custom--clicked); + --pf-t--global--icon--color--status--custom--default: var(--pf-t--global--color--status--custom--default); + --pf-t--global--icon--color--status--custom--hover: var(--pf-t--global--color--status--custom--hover); + --pf-t--global--icon--color--status--info--clicked: var(--pf-t--global--color--status--info--clicked); + --pf-t--global--icon--color--status--info--default: var(--pf-t--global--color--status--info--default); + --pf-t--global--icon--color--status--info--hover: var(--pf-t--global--color--status--info--hover); + --pf-t--global--icon--color--status--on-custom--clicked: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--status--on-custom--default: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--status--on-custom--hover: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--status--on-danger--clicked: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--status--on-danger--default: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--status--on-danger--hover: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--status--on-info--clicked: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--status--on-info--default: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--status--on-info--hover: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--status--on-success--clicked: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--status--on-success--default: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--status--on-success--hover: var(--pf-t--global--icon--color--inverse); --pf-t--global--icon--color--status--on-warning--clicked: var(--pf-t--global--icon--color--inverse); --pf-t--global--icon--color--status--on-warning--default: var(--pf-t--global--icon--color--inverse); --pf-t--global--icon--color--status--on-warning--hover: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--status--success--clicked: var(--pf-t--global--color--status--success--clicked); + --pf-t--global--icon--color--status--success--default: var(--pf-t--global--color--status--success--default); + --pf-t--global--icon--color--status--success--hover: var(--pf-t--global--color--status--success--hover); + --pf-t--global--icon--color--status--unread--on-attention--clicked: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--status--unread--on-attention--default: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--status--unread--on-attention--hover: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--status--unread--on-default--clicked: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--status--unread--on-default--default: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--color--status--unread--on-default--hover: var(--pf-t--global--icon--color--inverse); + --pf-t--global--icon--size--font--body--default: var(--pf-t--global--font--size--body--default); + --pf-t--global--icon--size--font--body--lg: var(--pf-t--global--font--size--body--lg); + --pf-t--global--icon--size--font--body--sm: var(--pf-t--global--font--size--body--sm); + --pf-t--global--icon--size--font--heading--h1: var(--pf-t--global--font--size--heading--h1); + --pf-t--global--icon--size--font--heading--h2: var(--pf-t--global--font--size--heading--h2); + --pf-t--global--icon--size--font--heading--h3: var(--pf-t--global--font--size--heading--h3); + --pf-t--global--icon--size--font--heading--h4: var(--pf-t--global--font--size--heading--h4); + --pf-t--global--icon--size--font--heading--h5: var(--pf-t--global--font--size--heading--h5); + --pf-t--global--icon--size--font--heading--h6: var(--pf-t--global--font--size--heading--h6); + --pf-t--global--text--color--nonstatus--on-blue--clicked: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-blue--default: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-blue--hover: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-gray--clicked: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-gray--default: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-gray--hover: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-green--clicked: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-green--default: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-green--hover: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-orange--clicked: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-orange--default: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-orange--hover: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-orangered--clicked: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-orangered--default: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-orangered--hover: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-purple--clicked: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-purple--default: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-purple--hover: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-red--clicked: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-red--default: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-red--hover: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-teal--clicked: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-teal--default: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-teal--hover: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-yellow--clicked: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-yellow--default: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--nonstatus--on-yellow--hover: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--on-brand--accent--clicked: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--on-brand--accent--default: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--on-brand--accent--hover: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--on-brand--clicked: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--on-brand--default: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--on-brand--hover: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--on-brand--subtle--clicked: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--on-brand--subtle--default: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--on-brand--subtle--hover: var(--pf-t--global--text--color--regular); + --pf-t--global--text--color--placeholder: var(--pf-t--global--text--color--subtle); + --pf-t--global--text--color--status--custom--clicked: var(--pf-t--global--color--status--custom--clicked); + --pf-t--global--text--color--status--custom--default: var(--pf-t--global--color--status--custom--default); + --pf-t--global--text--color--status--custom--hover: var(--pf-t--global--color--status--custom--hover); + --pf-t--global--text--color--status--danger--clicked: var(--pf-t--global--color--status--danger--clicked); + --pf-t--global--text--color--status--danger--default: var(--pf-t--global--color--status--danger--default); + --pf-t--global--text--color--status--danger--hover: var(--pf-t--global--color--status--danger--hover); + --pf-t--global--text--color--status--info--clicked: var(--pf-t--global--color--status--info--clicked); + --pf-t--global--text--color--status--info--default: var(--pf-t--global--color--status--info--default); + --pf-t--global--text--color--status--info--hover: var(--pf-t--global--color--status--info--hover); + --pf-t--global--text--color--status--on-custom--clicked: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--status--on-custom--default: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--status--on-custom--hover: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--status--on-danger--clicked: var(--pf-t--global--icon--color--inverse); + --pf-t--global--text--color--status--on-danger--default: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--status--on-danger--hover: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--status--on-info--clicked: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--status--on-info--default: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--status--on-info--hover: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--status--on-success--clicked: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--status--on-success--default: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--status--on-success--hover: var(--pf-t--global--text--color--inverse); --pf-t--global--text--color--status--on-warning--clicked: var(--pf-t--global--text--color--inverse); --pf-t--global--text--color--status--on-warning--default: var(--pf-t--global--text--color--inverse); --pf-t--global--text--color--status--on-warning--hover: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--status--unread--on-attention--clicked: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--status--unread--on-attention--default: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--status--unread--on-attention--hover: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--status--unread--on-default--clicked: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--status--unread--on-default--default: var(--pf-t--global--text--color--inverse); + --pf-t--global--text--color--status--unread--on-default--hover: var(--pf-t--global--text--color--inverse); + --pf-t--global--text-decoration--color--hover: var(--pf-t--global--border--color--hover); + --pf-t--global--border--color--brand--accent--clicked: var(--pf-t--global--color--brand--accent--clicked); + --pf-t--global--border--color--brand--accent--default: var(--pf-t--global--color--brand--accent--default); + --pf-t--global--border--color--brand--accent--hover: var(--pf-t--global--color--brand--accent--hover); + --pf-t--global--color--status--read--on-secondary: var(--pf-t--global--background--color--control--default); + --pf-t--global--icon--color--brand--accent--clicked: var(--pf-t--global--color--brand--accent--clicked); + --pf-t--global--icon--color--brand--accent--default: var(--pf-t--global--color--brand--accent--default); + --pf-t--global--icon--color--brand--accent--hover: var(--pf-t--global--color--brand--accent--hover); } diff --git a/packages/module/config.redhat-dark.json b/packages/module/config.felt-dark.json similarity index 82% rename from packages/module/config.redhat-dark.json rename to packages/module/config.felt-dark.json index 616b256..eb2c410 100644 --- a/packages/module/config.redhat-dark.json +++ b/packages/module/config.felt-dark.json @@ -1,7 +1,7 @@ { "source": [ "tokens/default/dark/*.json", - "tokens/redhat/dark/redhat*.json" + "tokens/felt/dark/felt*.json" ], "platforms": { "css": { @@ -9,7 +9,7 @@ "buildPath": "build/css/", "prefix": "pf-t", "files": [{ - "destination": "tokens-redhat-dark.scss", + "destination": "tokens-felt-dark.scss", "format": "customFormat", "options": { "outputReferences": true diff --git a/packages/module/config.redhat-glass-dark.json b/packages/module/config.felt-glass-dark.json similarity index 81% rename from packages/module/config.redhat-glass-dark.json rename to packages/module/config.felt-glass-dark.json index 30b74ef..afead94 100644 --- a/packages/module/config.redhat-glass-dark.json +++ b/packages/module/config.felt-glass-dark.json @@ -1,7 +1,7 @@ { "source": [ "tokens/default/glass-dark/*.json", - "tokens/redhat/glass-dark/redhat*.json" + "tokens/felt/glass-dark/felt*.json" ], "platforms": { "css": { @@ -9,7 +9,7 @@ "buildPath": "build/css/", "prefix": "pf-t", "files": [{ - "destination": "tokens-redhat-glass-dark.scss", + "destination": "tokens-felt-glass-dark.scss", "format": "customFormat", "options": { "outputReferences": true diff --git a/packages/module/config.redhat-glass.json b/packages/module/config.felt-glass.json similarity index 83% rename from packages/module/config.redhat-glass.json rename to packages/module/config.felt-glass.json index 41d1d69..2d8949f 100644 --- a/packages/module/config.redhat-glass.json +++ b/packages/module/config.felt-glass.json @@ -1,7 +1,7 @@ { "source": [ "tokens/default/glass/*.json", - "tokens/redhat/glass/redhat*.json" + "tokens/felt/glass/felt*.json" ], "basePxFontSize": 16, "platforms": { @@ -10,7 +10,7 @@ "buildPath": "build/css/", "prefix": "pf-t", "files": [{ - "destination": "tokens-redhat-glass.scss", + "destination": "tokens-felt-glass.scss", "format": "customFormat", "options": { "outputReferences": true diff --git a/packages/module/config.redhat-highcontrast-dark.json b/packages/module/config.felt-highcontrast-dark.json similarity index 79% rename from packages/module/config.redhat-highcontrast-dark.json rename to packages/module/config.felt-highcontrast-dark.json index 432f385..fccb460 100644 --- a/packages/module/config.redhat-highcontrast-dark.json +++ b/packages/module/config.felt-highcontrast-dark.json @@ -1,7 +1,7 @@ { "source": [ "tokens/default/highcontrast-dark/*.json", - "tokens/redhat/highcontrast-dark/redhat*.json" + "tokens/felt/highcontrast-dark/felt*.json" ], "platforms": { "css": { @@ -9,7 +9,7 @@ "buildPath": "build/css/", "prefix": "pf-t", "files": [{ - "destination": "tokens-redhat-highcontrast-dark.scss", + "destination": "tokens-felt-highcontrast-dark.scss", "format": "customFormat", "options": { "outputReferences": true diff --git a/packages/module/config.redhat-highcontrast.json b/packages/module/config.felt-highcontrast.json similarity index 100% rename from packages/module/config.redhat-highcontrast.json rename to packages/module/config.felt-highcontrast.json diff --git a/packages/module/config.redhat.json b/packages/module/config.felt.json similarity index 84% rename from packages/module/config.redhat.json rename to packages/module/config.felt.json index af77d8c..69055cb 100644 --- a/packages/module/config.redhat.json +++ b/packages/module/config.felt.json @@ -1,7 +1,7 @@ { "source": [ "tokens/default/light/*.json", - "tokens/redhat/light/redhat*.json" + "tokens/felt/light/felt*.json" ], "basePxFontSize": 16, "platforms": { @@ -10,7 +10,7 @@ "buildPath": "build/css/", "prefix": "pf-t", "files": [{ - "destination": "tokens-redhat.scss", + "destination": "tokens-felt.scss", "format": "customFormat", "options": { "outputReferences": true diff --git a/packages/module/config.layers.redhat-dark.json b/packages/module/config.layers.felt-dark.json similarity index 79% rename from packages/module/config.layers.redhat-dark.json rename to packages/module/config.layers.felt-dark.json index 7c89530..83a4a92 100644 --- a/packages/module/config.layers.redhat-dark.json +++ b/packages/module/config.layers.felt-dark.json @@ -1,7 +1,7 @@ { "source": [ "tokens/default/dark/*.json", - "tokens/redhat/dark/redhat*.json" + "tokens/felt/dark/felt*.json" ], "platforms": { "json/default": { @@ -10,7 +10,7 @@ "prefix": "pf-t", "files": [ { - "destination": "token-layers-redhat-dark.json", + "destination": "token-layers-felt-dark.json", "format": "json/flat-categories", "options": { "outputReferences": false diff --git a/packages/module/config.layers.redhat-glass-dark.json b/packages/module/config.layers.felt-glass-dark.json similarity index 78% rename from packages/module/config.layers.redhat-glass-dark.json rename to packages/module/config.layers.felt-glass-dark.json index de42525..5742a5b 100644 --- a/packages/module/config.layers.redhat-glass-dark.json +++ b/packages/module/config.layers.felt-glass-dark.json @@ -1,7 +1,7 @@ { "source": [ "tokens/default/glass-dark/*.json", - "tokens/redhat/glass-dark/redhat*.json" + "tokens/felt/glass-dark/felt*.json" ], "platforms": { "json/default": { @@ -10,7 +10,7 @@ "prefix": "pf-t", "files": [ { - "destination": "token-layers-redhat-glass-dark.json", + "destination": "token-layers-felt-glass-dark.json", "format": "json/flat-categories", "options": { "outputReferences": false diff --git a/packages/module/config.layers.redhat-glass.json b/packages/module/config.layers.felt-glass.json similarity index 79% rename from packages/module/config.layers.redhat-glass.json rename to packages/module/config.layers.felt-glass.json index bddd6fa..8c10e2e 100644 --- a/packages/module/config.layers.redhat-glass.json +++ b/packages/module/config.layers.felt-glass.json @@ -1,7 +1,7 @@ { "source": [ "tokens/default/glass/*.json", - "tokens/redhat/glass/redhat*.json" + "tokens/felt/glass/felt*.json" ], "platforms": { "json/default": { @@ -10,7 +10,7 @@ "prefix": "pf-t", "files": [ { - "destination": "token-layers-redhat-glass.json", + "destination": "token-layers-felt-glass.json", "format": "json/flat-categories", "options": { "outputReferences": false diff --git a/packages/module/config.layers.redhat-highcontrast-dark.json b/packages/module/config.layers.felt-highcontrast-dark.json similarity index 76% rename from packages/module/config.layers.redhat-highcontrast-dark.json rename to packages/module/config.layers.felt-highcontrast-dark.json index e0f3010..3fc29d9 100644 --- a/packages/module/config.layers.redhat-highcontrast-dark.json +++ b/packages/module/config.layers.felt-highcontrast-dark.json @@ -1,7 +1,7 @@ { "source": [ "tokens/default/highcontrast-dark/*.json", - "tokens/redhat/highcontrast-dark/redhat*.json" + "tokens/felt/highcontrast-dark/felt*.json" ], "platforms": { "json/default": { @@ -10,7 +10,7 @@ "prefix": "pf-t", "files": [ { - "destination": "token-layers-redhat-highcontrast-dark.json", + "destination": "token-layers-felt-highcontrast-dark.json", "format": "json/flat-categories", "options": { "outputReferences": false diff --git a/packages/module/config.layers.redhat-highcontrast.json b/packages/module/config.layers.felt-highcontrast.json similarity index 100% rename from packages/module/config.layers.redhat-highcontrast.json rename to packages/module/config.layers.felt-highcontrast.json diff --git a/packages/module/config.layers.redhat.json b/packages/module/config.layers.felt.json similarity index 100% rename from packages/module/config.layers.redhat.json rename to packages/module/config.layers.felt.json diff --git a/packages/module/patternfly-docs/content/token-layers-felt-dark.json b/packages/module/patternfly-docs/content/token-layers-felt-dark.json new file mode 100644 index 0000000..1dedc0c --- /dev/null +++ b/packages/module/patternfly-docs/content/token-layers-felt-dark.json @@ -0,0 +1,48543 @@ +{ + "semantic": { + "colors": { + "pf-t--global--background--color--primary--default": { + "default": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "primary", + "default" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--primary--hover": { + "default": { + "description": "Use as the hover state for primary backgrounds", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for primary backgrounds", + "type": "color", + "value": "{global.dark.background.color.300}" + }, + "name": "pf-t--global--background--color--primary--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "hover" + }, + "path": [ + "global", + "background", + "color", + "primary", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--background--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "background", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--primary--clicked": { + "default": { + "description": "Use as the clicked state for primary backgrounds", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for primary backgrounds", + "type": "color", + "value": "{global.dark.background.color.300}" + }, + "name": "pf-t--global--background--color--primary--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "clicked" + }, + "path": [ + "global", + "background", + "color", + "primary", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--background--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "background", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--secondary--default": { + "default": { + "description": "Use as the secondary background color for UI content Use as the primary background color for UI content such as cards, page sections, and other content areas. Secondary background color is also used for our UI shell backgrounds (nav, masthead, etc).", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the secondary background color for UI content Use as the primary background color for UI content such as cards, page sections, and other content areas. Secondary background color is also used for our UI shell backgrounds (nav, masthead, etc).", + "type": "color", + "value": "{global.dark.background.color.100}" + }, + "name": "pf-t--global--background--color--secondary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "secondary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "secondary", + "default" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--dark--background--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "background", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--secondary--hover": { + "default": { + "description": "Use as the hover state for secondary backgrounds", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for secondary backgrounds", + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--secondary--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "secondary", + "state": "hover" + }, + "path": [ + "global", + "background", + "color", + "secondary", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--secondary--clicked": { + "default": { + "description": "Use as the clicked state for secondary backgrounds", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for secondary backgrounds", + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--secondary--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "secondary", + "state": "clicked" + }, + "path": [ + "global", + "background", + "color", + "secondary", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--tertiary--default": { + "default": { + "description": "Use as the tertiary background color. This is primarily used for containers that can be placed on secondary backgrounds.", + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the tertiary background color. This is primarily used for containers that can be placed on secondary backgrounds.", + "type": "color", + "value": "{global.dark.background.color.600}" + }, + "name": "pf-t--global--background--color--tertiary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "tertiary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "tertiary", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)" + }, + "name": "pf-t--global--dark--background--color--600", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "600" + }, + "path": [ + "global", + "dark", + "background", + "color", + "600" + ] + } + ] + } + }, + "pf-t--global--background--color--glass--primary--default": { + "default": { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "name": "pf-t--global--background--color--glass--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "glass", + "state": "primary" + }, + "path": [ + "global", + "background", + "color", + "glass", + "primary", + "default" + ], + "references": [ + { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "primary", + "default" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--floating--default": { + "default": { + "description": "Use as the background color for components that appear over other content, such as toast alerts, menus, modals, overlay drawers, etc.", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the background color for components that appear over other content, such as toast alerts, menus, modals, overlay drawers, etc.", + "type": "color", + "value": "{global.dark.background.color.300}" + }, + "name": "pf-t--global--background--color--floating--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "floating", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "floating", + "default" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--background--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "background", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--floating--hover": { + "default": { + "description": "Use as the hover state for floating backgrounds", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for floating backgrounds", + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--floating--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "floating", + "state": "hover" + }, + "path": [ + "global", + "background", + "color", + "floating", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--floating--clicked": { + "default": { + "description": "Use as the clicked state for floating backgrounds", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for floating backgrounds", + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--floating--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "floating", + "state": "clicked" + }, + "path": [ + "global", + "background", + "color", + "floating", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--floating--secondary--default": { + "default": { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.background.color.secondary.default}" + }, + "name": "pf-t--global--background--color--floating--secondary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "floating", + "state": "secondary" + }, + "path": [ + "global", + "background", + "color", + "floating", + "secondary", + "default" + ], + "references": [ + { + "description": "Use as the secondary background color for UI content Use as the primary background color for UI content such as cards, page sections, and other content areas. Secondary background color is also used for our UI shell backgrounds (nav, masthead, etc).", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the secondary background color for UI content Use as the primary background color for UI content such as cards, page sections, and other content areas. Secondary background color is also used for our UI shell backgrounds (nav, masthead, etc).", + "type": "color", + "value": "{global.dark.background.color.100}" + }, + "name": "pf-t--global--background--color--secondary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "secondary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "secondary", + "default" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--dark--background--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "background", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--sticky--default": { + "default": { + "description": "Use as the background color for components that appear over other content, such as toast alerts, menus, modals, overlay drawers, etc.", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the background color for components that appear over other content, such as toast alerts, menus, modals, overlay drawers, etc.", + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--sticky--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "sticky", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "sticky", + "default" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--action--plain--default": { + "default": { + "description": "Use as the default background for actions with transparent backgrounds such as menu items, accordion toggles, buttons, etc.", + "type": "color", + "value": "rgba(0, 0, 0, 0.0000)", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background for actions with transparent backgrounds such as menu items, accordion toggles, buttons, etc.", + "type": "color", + "value": "rgba(0, 0, 0, 0.0000)" + }, + "name": "pf-t--global--background--color--action--plain--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "default" + ] + } + }, + "pf-t--global--background--color--action--plain--hover": { + "default": { + "description": "Use as the hover state for components that use the plain action default background.", + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for components that use the plain action default background.", + "type": "color", + "value": "{global.dark.background.color.600}" + }, + "name": "pf-t--global--background--color--action--plain--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "hover" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)" + }, + "name": "pf-t--global--dark--background--color--600", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "600" + }, + "path": [ + "global", + "dark", + "background", + "color", + "600" + ] + } + ] + } + }, + "pf-t--global--background--color--action--plain--clicked": { + "default": { + "description": "Use as the active/pressed state for components that use the plain action default background.", + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the active/pressed state for components that use the plain action default background.", + "type": "color", + "value": "{global.dark.background.color.600}" + }, + "name": "pf-t--global--background--color--action--plain--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)" + }, + "name": "pf-t--global--dark--background--color--600", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "600" + }, + "path": [ + "global", + "dark", + "background", + "color", + "600" + ] + } + ] + } + }, + "pf-t--global--background--color--action--plain--alt--hover": { + "default": { + "description": "Use as the hover state for components that use the plain action default background but are placed on a secondary background color (like left nav, horizontal nav, etc.)", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for components that use the plain action default background but are placed on a secondary background color (like left nav, horizontal nav, etc.)", + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--action--plain--alt--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "alt", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--action--plain--alt--clicked": { + "default": { + "description": "Use as the active/pressed state for components that use the plain action default background but are placed on a secondary background color (like left nav, horizontal nav, etc.)", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the active/pressed state for components that use the plain action default background but are placed on a secondary background color (like left nav, horizontal nav, etc.)", + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--action--plain--alt--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "alt", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--control--default": { + "default": { + "description": "Use as the default background for control elements like form inputs and menu toggles.", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background for control elements like form inputs and menu toggles.", + "type": "color", + "value": "{global.dark.background.color.300}" + }, + "name": "pf-t--global--background--color--control--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "control", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "control", + "default" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--background--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "background", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--control--read-only": { + "default": { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--control--read-only", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "control", + "state": "read-only" + }, + "path": [ + "global", + "background", + "color", + "control", + "read-only" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--highlight--default": { + "default": { + "description": "Use as the background color for highlighted elements", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the background color for highlighted elements", + "type": "color", + "value": "{global.dark.background.color.highlight.100}" + }, + "name": "pf-t--global--background--color--highlight--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "highlight", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "highlight", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--background--color--highlight--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "highlight" + }, + "path": [ + "global", + "dark", + "background", + "color", + "highlight", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--highlight--clicked": { + "default": { + "description": "Use as the active state for for highlighted elements", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the active state for for highlighted elements", + "type": "color", + "value": "{global.dark.background.color.highlight.200}" + }, + "name": "pf-t--global--background--color--highlight--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "highlight", + "state": "clicked" + }, + "path": [ + "global", + "background", + "color", + "highlight", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--background--color--highlight--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "highlight" + }, + "path": [ + "global", + "dark", + "background", + "color", + "highlight", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--inverse--default": { + "default": { + "description": "Use as the background color components with inversed backgrounds like tooltips.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the background color components with inversed backgrounds like tooltips.", + "type": "color", + "value": "{global.dark.background.color.400}" + }, + "name": "pf-t--global--background--color--inverse--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "inverse", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "inverse", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--background--color--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "400" + }, + "path": [ + "global", + "dark", + "background", + "color", + "400" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--inverse--hover": { + "default": { + "description": "Use as the hover color for interactive components with inversed backgrounds.", + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover color for interactive components with inversed backgrounds.", + "type": "color", + "value": "{global.dark.background.color.450}" + }, + "name": "pf-t--global--background--color--inverse--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "inverse", + "state": "hover" + }, + "path": [ + "global", + "background", + "color", + "inverse", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--dark--background--color--450", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "450" + }, + "path": [ + "global", + "dark", + "background", + "color", + "450" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--inverse--clicked": { + "default": { + "description": "Use as the clicked color for interactive components with inversed backgrounds.", + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked color for interactive components with inversed backgrounds.", + "type": "color", + "value": "{global.dark.background.color.450}" + }, + "name": "pf-t--global--background--color--inverse--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "inverse", + "state": "clicked" + }, + "path": [ + "global", + "background", + "color", + "inverse", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--dark--background--color--450", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "450" + }, + "path": [ + "global", + "dark", + "background", + "color", + "450" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--disabled--default": { + "default": { + "description": "Use as the background color for disabled components.", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the background color for disabled components.", + "type": "color", + "value": "{global.dark.color.disabled.100}" + }, + "name": "pf-t--global--background--color--disabled--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "disabled", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "disabled", + "default" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--disabled--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "100" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--backdrop--default": { + "default": { + "description": "Use as the background color for the backdrop component that shows beneath a modal/about modal/floating wizard etc.", + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the background color for the backdrop component that shows beneath a modal/about modal/floating wizard etc.", + "type": "color", + "value": "{global.dark.background.color.500}" + }, + "name": "pf-t--global--background--color--backdrop--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "backdrop", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "backdrop", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)" + }, + "name": "pf-t--global--dark--background--color--500", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "500" + }, + "path": [ + "global", + "dark", + "background", + "color", + "500" + ] + } + ] + } + }, + "pf-t--global--background--color--striped--row--default": { + "default": { + "type": "color", + "value": "rgba(21, 21, 21, 0.3000)", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(21, 21, 21, 0.3000)" + }, + "name": "pf-t--global--background--color--striped--row--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "striped", + "state": "row" + }, + "path": [ + "global", + "background", + "color", + "striped", + "row", + "default" + ] + } + }, + "pf-t--global--background--color--loading--skeleton--default": { + "default": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.dark.background.color.700}" + }, + "name": "pf-t--global--background--color--loading--skeleton--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "loading", + "state": "skeleton" + }, + "path": [ + "global", + "background", + "color", + "loading", + "skeleton", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)" + }, + "name": "pf-t--global--dark--background--color--700", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "700" + }, + "path": [ + "global", + "dark", + "background", + "color", + "700" + ] + } + ] + } + }, + "pf-t--global--background--color--loading--skeleton--subtle": { + "default": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.dark.background.color.600}" + }, + "name": "pf-t--global--background--color--loading--skeleton--subtle", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "loading", + "state": "skeleton" + }, + "path": [ + "global", + "background", + "color", + "loading", + "skeleton", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)" + }, + "name": "pf-t--global--dark--background--color--600", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "600" + }, + "path": [ + "global", + "dark", + "background", + "color", + "600" + ] + } + ] + } + }, + "pf-t--global--background--filter--glass--blur--primary": { + "default": { + "type": "number", + "value": "blur(0px)", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--background--filter--glass--blur--primary", + "attributes": { + "category": "global", + "type": "background", + "item": "filter", + "subitem": "glass", + "state": "blur" + }, + "path": [ + "global", + "background", + "filter", + "glass", + "blur", + "primary" + ] + } + }, + "pf-t--global--color--brand--default": { + "default": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.100}" + }, + "name": "pf-t--global--color--brand--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "default" + }, + "path": [ + "global", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--hover": { + "default": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--color--brand--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--clicked": { + "default": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--color--brand--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--subtle--default": { + "default": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#003366", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.subtle.100}" + }, + "name": "pf-t--global--color--brand--subtle--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "default" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "default" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.70}" + }, + "name": "pf-t--global--dark--color--brand--subtle--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "100" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--subtle--hover": { + "default": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.dark.color.brand.subtle.200}" + }, + "name": "pf-t--global--color--brand--subtle--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "hover" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--dark--color--brand--subtle--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--subtle--clicked": { + "default": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.dark.color.brand.subtle.200}" + }, + "name": "pf-t--global--color--brand--subtle--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--dark--color--brand--subtle--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--favorite--default": { + "default": { + "description": "Use as the default color for elements that have been favorited", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that have been favorited", + "type": "color", + "value": "{global.dark.color.favorite.100}" + }, + "name": "pf-t--global--color--favorite--default", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "default" + }, + "path": [ + "global", + "color", + "favorite", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--favorite--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--favorite--hover": { + "default": { + "description": "Use as the hover state for elements that have been favorited", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have been favorited", + "type": "color", + "value": "{global.dark.color.favorite.200}" + }, + "name": "pf-t--global--color--favorite--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "favorite", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--favorite--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--favorite--clicked": { + "default": { + "description": "Use as the clicked state for elements that have been favorited", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have been favorited", + "type": "color", + "value": "{global.dark.color.favorite.200}" + }, + "name": "pf-t--global--color--favorite--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "favorite", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--favorite--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--success--default": { + "default": { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.success.100}" + }, + "name": "pf-t--global--color--status--success--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.40}" + }, + "name": "pf-t--global--dark--color--status--success--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "100" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--success--hover": { + "default": { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--success--clicked": { + "default": { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--warning--default": { + "default": { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.warning.100}" + }, + "name": "pf-t--global--color--status--warning--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--status--warning--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--warning--hover": { + "default": { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--warning--clicked": { + "default": { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--danger--default": { + "default": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.danger.100}" + }, + "name": "pf-t--global--color--status--danger--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "name": "pf-t--global--dark--color--status--danger--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--danger--hover": { + "default": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--danger--clicked": { + "default": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--info--default": { + "default": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.info.100}" + }, + "name": "pf-t--global--color--status--info--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--status--info--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--info--hover": { + "default": { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--info--clicked": { + "default": { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--custom--default": { + "default": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.100}" + }, + "name": "pf-t--global--color--status--custom--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.40}" + }, + "name": "pf-t--global--dark--color--status--custom--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "100" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--custom--hover": { + "default": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--custom--clicked": { + "default": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--default": { + "default": { + "description": "Use as the default color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.color.brand.default}" + }, + "name": "pf-t--global--color--status--unread--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "unread", + "default" + ], + "references": [ + { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.100}" + }, + "name": "pf-t--global--color--brand--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "default" + }, + "path": [ + "global", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--hover": { + "default": { + "description": "Use as the hover state color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.color.brand.hover}" + }, + "name": "pf-t--global--color--status--unread--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "unread", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--color--brand--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--clicked": { + "default": { + "description": "Use as the clicked state color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.color.brand.clicked}" + }, + "name": "pf-t--global--color--status--unread--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "unread", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--color--brand--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--attention--default": { + "default": { + "description": "Use as the default color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.color.status.danger.default}" + }, + "name": "pf-t--global--color--status--unread--attention--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "attention" + }, + "path": [ + "global", + "color", + "status", + "unread", + "attention", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.danger.100}" + }, + "name": "pf-t--global--color--status--danger--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "name": "pf-t--global--dark--color--status--danger--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--attention--clicked": { + "default": { + "description": "Use as the hover state color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.color.status.danger.clicked}" + }, + "name": "pf-t--global--color--status--unread--attention--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "attention" + }, + "path": [ + "global", + "color", + "status", + "unread", + "attention", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--attention--hover": { + "default": { + "description": "Use as the clicked state color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.color.status.danger.hover}" + }, + "name": "pf-t--global--color--status--unread--attention--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "attention" + }, + "path": [ + "global", + "color", + "status", + "unread", + "attention", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--read--on-secondary": { + "default": { + "description": "Use as the default color for elements that convey a read status and are placed on a secondary background", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that convey a read status and are placed on a secondary background", + "type": "color", + "value": "{global.background.color.control.default}" + }, + "name": "pf-t--global--color--status--read--on-secondary", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "read", + "state": "on-secondary" + }, + "path": [ + "global", + "color", + "status", + "read", + "on-secondary" + ], + "references": [ + { + "description": "Use as the default background for control elements like form inputs and menu toggles.", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background for control elements like form inputs and menu toggles.", + "type": "color", + "value": "{global.dark.background.color.300}" + }, + "name": "pf-t--global--background--color--control--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "control", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "control", + "default" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--background--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "background", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--read--on-primary": { + "default": { + "description": "Use as the default color for elements that convey a read status and are placed on a primary background", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that convey a read status and are placed on a primary background", + "type": "color", + "value": "{global.background.color.secondary.default}" + }, + "name": "pf-t--global--color--status--read--on-primary", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "read", + "state": "on-primary" + }, + "path": [ + "global", + "color", + "status", + "read", + "on-primary" + ], + "references": [ + { + "description": "Use as the secondary background color for UI content Use as the primary background color for UI content such as cards, page sections, and other content areas. Secondary background color is also used for our UI shell backgrounds (nav, masthead, etc).", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the secondary background color for UI content Use as the primary background color for UI content such as cards, page sections, and other content areas. Secondary background color is also used for our UI shell backgrounds (nav, masthead, etc).", + "type": "color", + "value": "{global.dark.background.color.100}" + }, + "name": "pf-t--global--background--color--secondary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "secondary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "secondary", + "default" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--dark--background--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "background", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--red--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.red.100}" + }, + "name": "pf-t--global--color--nonstatus--red--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f9a8a8" + }, + "name": "pf-t--color--red--30", + "attributes": { + "category": "color", + "type": "red", + "item": "30" + }, + "path": [ + "color", + "red", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--red--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status red background color.", + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status red background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.red.200}" + }, + "name": "pf-t--global--color--nonstatus--red--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--red--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status red background color.", + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status red background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.red.200}" + }, + "name": "pf-t--global--color--nonstatus--red--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orange--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.orange.100}" + }, + "name": "pf-t--global--color--nonstatus--orange--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orange--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status orange background color.", + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status orange background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.orange.200}" + }, + "name": "pf-t--global--color--nonstatus--orange--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orange--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status orange background color.", + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status orange background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.orange.200}" + }, + "name": "pf-t--global--color--nonstatus--orange--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orangered--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange-red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange-red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.orangered.100}" + }, + "name": "pf-t--global--color--nonstatus--orangered--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orangered--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status orange-red background color.", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status orange-red background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.orangered.200}" + }, + "name": "pf-t--global--color--nonstatus--orangered--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orangered--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status orange-red background color.", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status orange-red background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.orangered.200}" + }, + "name": "pf-t--global--color--nonstatus--orangered--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--yellow--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.yellow.100}" + }, + "name": "pf-t--global--color--nonstatus--yellow--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--yellow--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status yellow background color.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status yellow background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.yellow.200}" + }, + "name": "pf-t--global--color--nonstatus--yellow--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--yellow--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status yellow background color.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status yellow background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.yellow.200}" + }, + "name": "pf-t--global--color--nonstatus--yellow--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--green--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.green.100}" + }, + "name": "pf-t--global--color--nonstatus--green--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "default" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "100" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--green--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status green background color.", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status green background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.green.200}" + }, + "name": "pf-t--global--color--nonstatus--green--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--green--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status green background color.", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status green background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.green.200}" + }, + "name": "pf-t--global--color--nonstatus--green--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--teal--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.teal.100}" + }, + "name": "pf-t--global--color--nonstatus--teal--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "default" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "100" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--teal--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status teal background color.", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status teal background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.teal.200}" + }, + "name": "pf-t--global--color--nonstatus--teal--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--teal--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status teal background color.", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status teal background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.teal.200}" + }, + "name": "pf-t--global--color--nonstatus--teal--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--blue--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.blue.100}" + }, + "name": "pf-t--global--color--nonstatus--blue--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--blue--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status blue background color.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status blue background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.blue.200}" + }, + "name": "pf-t--global--color--nonstatus--blue--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--blue--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status blue background color.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status blue background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.blue.200}" + }, + "name": "pf-t--global--color--nonstatus--blue--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--purple--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.purple.100}" + }, + "name": "pf-t--global--color--nonstatus--purple--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--purple--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status purple background color.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status purple background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.purple.200}" + }, + "name": "pf-t--global--color--nonstatus--purple--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--purple--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status purple background color.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status purple background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.purple.200}" + }, + "name": "pf-t--global--color--nonstatus--purple--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--gray--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.gray.100}" + }, + "name": "pf-t--global--color--nonstatus--gray--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "default" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--gray--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status gray background color.", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status gray background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.gray.200}" + }, + "name": "pf-t--global--color--nonstatus--gray--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--gray--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status gray background color.", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status gray background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.gray.200}" + }, + "name": "pf-t--global--color--nonstatus--gray--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--regular": { + "default": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--subtle": { + "default": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "{global.dark.icon.color.200}" + }, + "name": "pf-t--global--icon--color--subtle", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "icon", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--icon--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--inverse": { + "default": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--disabled": { + "default": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "{global.dark.color.disabled.200}" + }, + "name": "pf-t--global--icon--color--disabled", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "disabled" + }, + "path": [ + "global", + "icon", + "color", + "disabled" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--disabled--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-disabled": { + "default": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "{global.dark.color.disabled.300}" + }, + "name": "pf-t--global--icon--color--on-disabled", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-disabled" + }, + "path": [ + "global", + "icon", + "color", + "on-disabled" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--color--disabled--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "300" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--default": { + "default": { + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--icon--color--brand--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "default" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--hover": { + "default": { + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.dark.color.brand.300}" + }, + "name": "pf-t--global--icon--color--brand--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "hover" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--color--brand--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--clicked": { + "default": { + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.dark.color.brand.300}" + }, + "name": "pf-t--global--icon--color--brand--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "clicked" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--color--brand--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--accent--default": { + "default": { + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.color.brand.accent.default}" + }, + "name": "pf-t--global--icon--color--brand--accent--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "accent", + "default" + ], + "references": [ + { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#ee0000", + "filePath": "tokens/felt/dark/felt.color.dark.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.accent.100}" + }, + "name": "pf-t--global--color--brand--accent--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "default" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.50}" + }, + "name": "pf-t--global--dark--color--brand--accent--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ee0000" + }, + "name": "pf-t--color--red--50", + "attributes": { + "category": "color", + "type": "red", + "item": "50" + }, + "path": [ + "color", + "red", + "50" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--default": { + "default": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--on-brand--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "default" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--on-brand--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "hover" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--on-brand--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "clicked" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--subtle--default": { + "default": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--on-brand--subtle--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "subtle", + "default" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--subtle--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--on-brand--subtle--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "subtle", + "hover" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--subtle--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--on-brand--subtle--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "subtle", + "clicked" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--favorite--default": { + "default": { + "description": "Use as the icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "{global.color.favorite.default}" + }, + "name": "pf-t--global--icon--color--favorite--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "favorite", + "state": "default" + }, + "path": [ + "global", + "icon", + "color", + "favorite", + "default" + ], + "references": [ + { + "description": "Use as the default color for elements that have been favorited", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that have been favorited", + "type": "color", + "value": "{global.dark.color.favorite.100}" + }, + "name": "pf-t--global--color--favorite--default", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "default" + }, + "path": [ + "global", + "color", + "favorite", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--favorite--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--favorite--hover": { + "default": { + "description": "Use as the hover state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "{global.color.favorite.hover}" + }, + "name": "pf-t--global--icon--color--favorite--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "favorite", + "state": "hover" + }, + "path": [ + "global", + "icon", + "color", + "favorite", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have been favorited", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have been favorited", + "type": "color", + "value": "{global.dark.color.favorite.200}" + }, + "name": "pf-t--global--color--favorite--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "favorite", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--favorite--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--favorite--clicked": { + "default": { + "description": "Use as the clicked state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "{global.color.favorite.clicked}" + }, + "name": "pf-t--global--icon--color--favorite--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "favorite", + "state": "clicked" + }, + "path": [ + "global", + "icon", + "color", + "favorite", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for elements that have been favorited", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have been favorited", + "type": "color", + "value": "{global.dark.color.favorite.200}" + }, + "name": "pf-t--global--color--favorite--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "favorite", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--favorite--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--success--default": { + "default": { + "description": "Use as the default color for text that communicates a success status.", + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that communicates a success status.", + "type": "color", + "value": "{global.color.status.success.default}" + }, + "name": "pf-t--global--icon--color--status--success--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.success.100}" + }, + "name": "pf-t--global--color--status--success--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.40}" + }, + "name": "pf-t--global--dark--color--status--success--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "100" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--success--hover": { + "default": { + "description": "Use as the hover state color for text that communicates a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that communicates a success status.", + "type": "color", + "value": "{global.color.status.success.hover}" + }, + "name": "pf-t--global--icon--color--status--success--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--success--clicked": { + "default": { + "description": "Use as the clicked state color for text that communicates a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that communicates a success status.", + "type": "color", + "value": "{global.color.status.success.clicked}" + }, + "name": "pf-t--global--icon--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-success--default": { + "default": { + "description": "Use as the default color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-success--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-success", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-success--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-success--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-success", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-success--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-success--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-success", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--warning--default": { + "default": { + "description": "Use as the default color for text that communicates a warning status.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that communicates a warning status.", + "type": "color", + "value": "{global.color.status.warning.default}" + }, + "name": "pf-t--global--icon--color--status--warning--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.warning.100}" + }, + "name": "pf-t--global--color--status--warning--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--status--warning--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--warning--hover": { + "default": { + "description": "Use as the hover state color for text that communicates a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that communicates a warning status.", + "type": "color", + "value": "{global.color.status.warning.hover}" + }, + "name": "pf-t--global--icon--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--warning--clicked": { + "default": { + "description": "Use as the clicked state color for text that communicates a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that communicates a warning status.", + "type": "color", + "value": "{global.color.status.warning.clicked}" + }, + "name": "pf-t--global--icon--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-warning--default": { + "default": { + "description": "Use as the default color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-warning--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-warning", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-warning--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-warning--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-warning", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-warning--clicked": { + "default": { + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-warning--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-warning", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--danger--default": { + "default": { + "description": "Use as the default color for icons that convey danger, like in alerts or banners.", + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that convey danger, like in alerts or banners.", + "type": "color", + "value": "{global.color.status.danger.default}" + }, + "name": "pf-t--global--icon--color--status--danger--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.danger.100}" + }, + "name": "pf-t--global--color--status--danger--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "name": "pf-t--global--dark--color--status--danger--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--danger--hover": { + "default": { + "description": "Use as the hover state for icons that indicate danger.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for icons that indicate danger.", + "type": "color", + "value": "{global.color.status.danger.hover}" + }, + "name": "pf-t--global--icon--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--danger--clicked": { + "default": { + "description": "Use as the clicked state for icons that indicate danger.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for icons that indicate danger.", + "type": "color", + "value": "{global.color.status.danger.clicked}" + }, + "name": "pf-t--global--icon--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-danger--default": { + "default": { + "description": "Use as the default color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-danger--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-danger", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-danger--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-danger--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-danger", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-danger--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-danger--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-danger", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--info--default": { + "default": { + "description": "Use as the default color for icons that identify informational messages, like in alerts or banners.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that identify informational messages, like in alerts or banners.", + "type": "color", + "value": "{global.color.status.info.default}" + }, + "name": "pf-t--global--icon--color--status--info--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.info.100}" + }, + "name": "pf-t--global--color--status--info--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--status--info--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--info--hover": { + "default": { + "description": "Use as the hover state for icons that identify informational messages.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for icons that identify informational messages.", + "type": "color", + "value": "{global.color.status.info.hover}" + }, + "name": "pf-t--global--icon--color--status--info--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--info--clicked": { + "default": { + "description": "Use as the clicked state for icons that identify informational messages.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for icons that identify informational messages.", + "type": "color", + "value": "{global.color.status.info.clicked}" + }, + "name": "pf-t--global--icon--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-info--default": { + "default": { + "description": "Use as the default color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-info--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-info", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-info--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-info--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-info", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-info--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-info--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-info", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--custom--default": { + "default": { + "description": "Use as the default color for icons that convey generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that convey generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.color.status.custom.default}" + }, + "name": "pf-t--global--icon--color--status--custom--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.100}" + }, + "name": "pf-t--global--color--status--custom--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.40}" + }, + "name": "pf-t--global--dark--color--status--custom--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "100" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--custom--hover": { + "default": { + "description": "Use as the hover state for icons that convey generic status with no associated severity.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for icons that convey generic status with no associated severity.", + "type": "color", + "value": "{global.color.status.custom.hover}" + }, + "name": "pf-t--global--icon--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--custom--clicked": { + "default": { + "description": "Use as the clicked state for icons that convey generic status with no associated severity.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for icons that convey generic status with no associated severity.", + "type": "color", + "value": "{global.color.status.custom.clicked}" + }, + "name": "pf-t--global--icon--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-custom--default": { + "default": { + "description": "Use as the default color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status color, make sure that this token meets contrast requirements with your new custom status color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status color, make sure that this token meets contrast requirements with your new custom status color.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-custom--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-custom", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-custom--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status hover color, make sure that this token meets contrast requirements with your new custom status hover color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status hover color, make sure that this token meets contrast requirements with your new custom status hover color.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-custom--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-custom", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-custom--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status clicked color, make sure that this token meets contrast requirements with your new custom status clicked color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status clicked color, make sure that this token meets contrast requirements with your new custom status clicked color.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-custom--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-custom", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-default--default": { + "default": { + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-default--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-default", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-default--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-default--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-default", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-default--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-default--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-default", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-attention--default": { + "default": { + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-attention--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-attention", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-attention--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-attention--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-attention", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-attention--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-attention--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-attention", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--undefined--default": { + "default": { + "description": "Use as the default color for severity icons that don’t communicate a specific severity level for issues.", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that don’t communicate a specific severity level for issues.", + "type": "color", + "value": "{global.dark.color.severity.undefined.100}" + }, + "name": "pf-t--global--icon--color--severity--undefined--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "undefined" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "undefined", + "default" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--severity--undefined--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "undefined" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "undefined", + "100" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--none--default": { + "default": { + "description": "Use as the default color for severity icons that identify no issues.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that identify no issues.", + "type": "color", + "value": "{global.dark.color.severity.none.100}" + }, + "name": "pf-t--global--icon--color--severity--none--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "none" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "none", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--severity--none--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "none" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "none", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--minor--default": { + "default": { + "description": "Use as the default color for severity icons that identify issues of minor severity.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that identify issues of minor severity.", + "type": "color", + "value": "{global.dark.color.severity.minor.100}" + }, + "name": "pf-t--global--icon--color--severity--minor--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "minor" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "minor", + "default" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--color--severity--minor--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "minor" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "minor", + "100" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--moderate--default": { + "default": { + "description": "Use as the default color for severity icons that identify issues of moderate severity.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that identify issues of moderate severity.", + "type": "color", + "value": "{global.dark.color.severity.moderate.100}" + }, + "name": "pf-t--global--icon--color--severity--moderate--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "moderate" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "moderate", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--severity--moderate--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "moderate" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "moderate", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--important--default": { + "default": { + "description": "Use as the default color for severity icons that identify issues of important severity.", + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that identify issues of important severity.", + "type": "color", + "value": "{global.dark.color.severity.important.100}" + }, + "name": "pf-t--global--icon--color--severity--important--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "important" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "important", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.40}" + }, + "name": "pf-t--global--dark--color--severity--important--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "important" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "important", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f5921b" + }, + "name": "pf-t--color--orange--40", + "attributes": { + "category": "color", + "type": "orange", + "item": "40" + }, + "path": [ + "color", + "orange", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--critical--default": { + "default": { + "description": "Use as the default color for severity icons that identify issues of critical severity.", + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that identify issues of critical severity.", + "type": "color", + "value": "{global.dark.color.severity.critical.100}" + }, + "name": "pf-t--global--icon--color--severity--critical--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "critical" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "critical", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "name": "pf-t--global--dark--color--severity--critical--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "critical" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "critical", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-red--default": { + "default": { + "description": "Use as the default color for icons that are placed on a non status red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a non status red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-red--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-red", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-red--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a non status red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a non status red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-red--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-red", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-red--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-red--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-red", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orangered--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orangered--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orangered", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orangered--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orangered--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orangered", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orangered--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orangered--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orangered", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orange--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orange--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orange", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orange--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orange--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orange", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orange--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orange--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orange", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-yellow--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-yellow--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-yellow", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-yellow--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-yellow--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-yellow", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-yellow--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-yellow--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-yellow", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-green--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-green--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-green", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-green--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-green--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-green", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-green--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-green--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-green", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-teal--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-teal--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-teal", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-teal--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-teal--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-teal", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-teal--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-teal--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-teal", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-blue--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-blue--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-blue", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-blue--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-blue--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-blue", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-blue--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-blue--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-blue", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-purple--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-purple--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-purple", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-purple--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-purple--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-purple", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-purple--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-purple--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-purple", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-gray--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-gray--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-gray", + "default" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-gray--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-gray--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-gray", + "hover" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-gray--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-gray--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-gray", + "clicked" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--high-contrast": { + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "rgba(255, 255, 255, 0.0000)", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "rgba(255, 255, 255, 0.0000)" + }, + "name": "pf-t--global--border--color--high-contrast", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "high-contrast" + }, + "path": [ + "global", + "border", + "color", + "high-contrast" + ] + } + }, + "pf-t--global--border--color--default": { + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.border.color.100}" + }, + "name": "pf-t--global--border--color--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "default" + }, + "path": [ + "global", + "border", + "color", + "default" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--dark--border--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "border", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--hover": { + "default": { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.brand.100}" + }, + "name": "pf-t--global--border--color--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "hover" + }, + "path": [ + "global", + "border", + "color", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--clicked": { + "default": { + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--border--color--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "clicked" + }, + "path": [ + "global", + "border", + "color", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--subtle": { + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.border.color.100}" + }, + "name": "pf-t--global--border--color--subtle", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "border", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--dark--border--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "border", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--disabled": { + "default": { + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.disabled.200}" + }, + "name": "pf-t--global--border--color--disabled", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "disabled" + }, + "path": [ + "global", + "border", + "color", + "disabled" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--disabled--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--alt": { + "default": { + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "name": "pf-t--global--border--color--alt", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "alt" + }, + "path": [ + "global", + "border", + "color", + "alt" + ], + "references": [ + { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "primary", + "default" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--on-secondary": { + "default": { + "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "type": "color", + "value": "{global.dark.border.color.200}" + }, + "name": "pf-t--global--border--color--on-secondary", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "on-secondary" + }, + "path": [ + "global", + "border", + "color", + "on-secondary" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--border--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "border", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--control--default": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.dark.border.color.200}" + }, + "name": "pf-t--global--border--color--control--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "control", + "state": "default" + }, + "path": [ + "global", + "border", + "color", + "control", + "default" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--border--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "border", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--control--read-only": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.dark.border.color.100}" + }, + "name": "pf-t--global--border--color--control--read-only", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "control", + "state": "read-only" + }, + "path": [ + "global", + "border", + "color", + "control", + "read-only" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--dark--border--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "border", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--default": { + "default": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.color.brand.default}" + }, + "name": "pf-t--global--border--color--brand--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "default" + }, + "path": [ + "global", + "border", + "color", + "brand", + "default" + ], + "references": [ + { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.100}" + }, + "name": "pf-t--global--color--brand--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "default" + }, + "path": [ + "global", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--hover": { + "default": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.color.brand.hover}" + }, + "name": "pf-t--global--border--color--brand--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "hover" + }, + "path": [ + "global", + "border", + "color", + "brand", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--color--brand--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--clicked": { + "default": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.color.brand.clicked}" + }, + "name": "pf-t--global--border--color--brand--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "clicked" + }, + "path": [ + "global", + "border", + "color", + "brand", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--color--brand--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--subtle--default": { + "default": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.dark.color.brand.subtle.200}" + }, + "name": "pf-t--global--border--color--brand--subtle--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "border", + "color", + "brand", + "subtle", + "default" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--dark--color--brand--subtle--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--subtle--hover": { + "default": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.dark.color.brand.subtle.300}" + }, + "name": "pf-t--global--border--color--brand--subtle--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "border", + "color", + "brand", + "subtle", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--subtle--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "300" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--subtle--clicked": { + "default": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.dark.color.brand.subtle.300}" + }, + "name": "pf-t--global--border--color--brand--subtle--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "border", + "color", + "brand", + "subtle", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--subtle--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "300" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--success--default": { + "default": { + "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.success.default}" + }, + "name": "pf-t--global--border--color--status--success--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "border", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.success.100}" + }, + "name": "pf-t--global--color--status--success--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.40}" + }, + "name": "pf-t--global--dark--color--status--success--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "100" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--success--hover": { + "default": { + "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "type": "color", + "value": "{global.color.status.success.hover}" + }, + "name": "pf-t--global--border--color--status--success--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "border", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--success--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "type": "color", + "value": "{global.color.status.success.clicked}" + }, + "name": "pf-t--global--border--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "border", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--warning--default": { + "default": { + "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.warning.default}" + }, + "name": "pf-t--global--border--color--status--warning--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "border", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.warning.100}" + }, + "name": "pf-t--global--color--status--warning--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--status--warning--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--warning--hover": { + "default": { + "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.warning.hover}" + }, + "name": "pf-t--global--border--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "border", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--warning--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.warning.clicked}" + }, + "name": "pf-t--global--border--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "border", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--danger--default": { + "default": { + "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.danger.default}" + }, + "name": "pf-t--global--border--color--status--danger--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "border", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.danger.100}" + }, + "name": "pf-t--global--color--status--danger--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "name": "pf-t--global--dark--color--status--danger--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--danger--hover": { + "default": { + "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.danger.hover}" + }, + "name": "pf-t--global--border--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "border", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--danger--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.danger.clicked}" + }, + "name": "pf-t--global--border--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "border", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--info--default": { + "default": { + "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.info.default}" + }, + "name": "pf-t--global--border--color--status--info--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "border", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.info.100}" + }, + "name": "pf-t--global--color--status--info--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--status--info--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--info--hover": { + "default": { + "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.info.hover}" + }, + "name": "pf-t--global--border--color--status--info--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "border", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--info--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.info.clicked}" + }, + "name": "pf-t--global--border--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "border", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--custom--default": { + "default": { + "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.custom.default}" + }, + "name": "pf-t--global--border--color--status--custom--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "border", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.100}" + }, + "name": "pf-t--global--color--status--custom--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.40}" + }, + "name": "pf-t--global--dark--color--status--custom--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "100" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--custom--hover": { + "default": { + "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.custom.hover}" + }, + "name": "pf-t--global--border--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "border", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--custom--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.custom.clicked}" + }, + "name": "pf-t--global--border--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "border", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--glass--default": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.border.color.subtle}" + }, + "name": "pf-t--global--border--color--glass--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "glass", + "state": "default" + }, + "path": [ + "global", + "border", + "color", + "glass", + "default" + ], + "references": [ + { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.border.color.100}" + }, + "name": "pf-t--global--border--color--subtle", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "border", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--dark--border--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "border", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--red--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.red.100}" + }, + "name": "pf-t--global--border--color--nonstatus--red--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "red", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f9a8a8" + }, + "name": "pf-t--color--red--30", + "attributes": { + "category": "color", + "type": "red", + "item": "30" + }, + "path": [ + "color", + "red", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--red--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.red.200}" + }, + "name": "pf-t--global--border--color--nonstatus--red--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "red", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--red--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.red.200}" + }, + "name": "pf-t--global--border--color--nonstatus--red--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "red", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orangered--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.orangered.100}" + }, + "name": "pf-t--global--border--color--nonstatus--orangered--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orangered", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orangered--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.orangered.200}" + }, + "name": "pf-t--global--border--color--nonstatus--orangered--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orangered", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orangered--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.orangered.200}" + }, + "name": "pf-t--global--border--color--nonstatus--orangered--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orangered", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orange--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.orange.100}" + }, + "name": "pf-t--global--border--color--nonstatus--orange--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orange", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orange--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.orange.200}" + }, + "name": "pf-t--global--border--color--nonstatus--orange--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orange", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orange--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.orange.200}" + }, + "name": "pf-t--global--border--color--nonstatus--orange--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orange", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--yellow--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.yellow.100}" + }, + "name": "pf-t--global--border--color--nonstatus--yellow--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "yellow", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--yellow--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.yellow.200}" + }, + "name": "pf-t--global--border--color--nonstatus--yellow--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "yellow", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--yellow--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.yellow.200}" + }, + "name": "pf-t--global--border--color--nonstatus--yellow--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "yellow", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--green--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.green.100}" + }, + "name": "pf-t--global--border--color--nonstatus--green--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "green", + "default" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "100" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--green--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.green.200}" + }, + "name": "pf-t--global--border--color--nonstatus--green--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "green", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--green--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.green.200}" + }, + "name": "pf-t--global--border--color--nonstatus--green--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "green", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--teal--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.teal.100}" + }, + "name": "pf-t--global--border--color--nonstatus--teal--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "teal", + "default" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "100" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--teal--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.teal.200}" + }, + "name": "pf-t--global--border--color--nonstatus--teal--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "teal", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--teal--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.teal.200}" + }, + "name": "pf-t--global--border--color--nonstatus--teal--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "teal", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--blue--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.blue.100}" + }, + "name": "pf-t--global--border--color--nonstatus--blue--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "blue", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--blue--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.blue.200}" + }, + "name": "pf-t--global--border--color--nonstatus--blue--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "blue", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--blue--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.blue.200}" + }, + "name": "pf-t--global--border--color--nonstatus--blue--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "blue", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--purple--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.purple.100}" + }, + "name": "pf-t--global--border--color--nonstatus--purple--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "purple", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--purple--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.purple.200}" + }, + "name": "pf-t--global--border--color--nonstatus--purple--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "purple", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--purple--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.purple.200}" + }, + "name": "pf-t--global--border--color--nonstatus--purple--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "purple", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--gray--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.gray.200}" + }, + "name": "pf-t--global--border--color--nonstatus--gray--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "gray", + "default" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--gray--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.gray.300}" + }, + "name": "pf-t--global--border--color--nonstatus--gray--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "gray", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "300" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--gray--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.gray.300}" + }, + "name": "pf-t--global--border--color--nonstatus--gray--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "gray", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "300" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--main--default": { + "default": { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "name": "pf-t--global--border--color--main--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "main", + "state": "default" + }, + "path": [ + "global", + "border", + "color", + "main", + "default" + ], + "references": [ + { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "primary", + "default" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--regular": { + "default": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--subtle": { + "default": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "{global.dark.text.color.200}" + }, + "name": "pf-t--global--text--color--subtle", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "text", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--text--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "text", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--inverse": { + "default": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--placeholder": { + "default": { + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "type": "color", + "value": "{global.text.color.subtle}" + }, + "name": "pf-t--global--text--color--placeholder", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "placeholder" + }, + "path": [ + "global", + "text", + "color", + "placeholder" + ], + "references": [ + { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "{global.dark.text.color.200}" + }, + "name": "pf-t--global--text--color--subtle", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "text", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--text--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "text", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--disabled": { + "default": { + "description": "Use as the color of text on disabled elements, like disabled menu items.", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text on disabled elements, like disabled menu items.", + "type": "color", + "value": "{global.dark.color.disabled.200}" + }, + "name": "pf-t--global--text--color--disabled", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "disabled" + }, + "path": [ + "global", + "text", + "color", + "disabled" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--disabled--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-disabled": { + "default": { + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", + "type": "color", + "value": "{global.dark.color.disabled.300}" + }, + "name": "pf-t--global--text--color--on-disabled", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-disabled" + }, + "path": [ + "global", + "text", + "color", + "on-disabled" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--color--disabled--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "300" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--required": { + "default": { + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", + "type": "color", + "value": "{global.dark.text.color.400}" + }, + "name": "pf-t--global--text--color--required", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "required" + }, + "path": [ + "global", + "text", + "color", + "required" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--text--color--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "400" + }, + "path": [ + "global", + "dark", + "text", + "color", + "400" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-highlight": { + "default": { + "description": "Use as the color of text that is highlighted.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is highlighted.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--on-highlight", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-highlight" + }, + "path": [ + "global", + "text", + "color", + "on-highlight" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--link--default": { + "default": { + "description": "Use as the default text color for links.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default text color for links.", + "type": "color", + "value": "{global.dark.text.color.link.100}" + }, + "name": "pf-t--global--text--color--link--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "link", + "state": "default" + }, + "path": [ + "global", + "text", + "color", + "link", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--text--color--link--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--link--hover": { + "default": { + "description": "Use as the hover state text color for links.", + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state text color for links.", + "type": "color", + "value": "{global.dark.text.color.link.200}" + }, + "name": "pf-t--global--text--color--link--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "link", + "state": "hover" + }, + "path": [ + "global", + "text", + "color", + "link", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--text--color--link--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "200" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--link--visited": { + "default": { + "description": "Use as the color to indicate that a link has been visited.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color to indicate that a link has been visited.", + "type": "color", + "value": "{global.dark.text.color.link.300}" + }, + "name": "pf-t--global--text--color--link--visited", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "link", + "state": "visited" + }, + "path": [ + "global", + "text", + "color", + "link", + "visited" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--text--color--link--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--brand--default": { + "default": { + "description": "Use as the default color for branded text.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for branded text.", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--text--color--brand--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "brand", + "state": "default" + }, + "path": [ + "global", + "text", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--brand--hover": { + "default": { + "description": "Use as the hover state color for branded text.", + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for branded text.", + "type": "color", + "value": "{global.dark.color.brand.300}" + }, + "name": "pf-t--global--text--color--brand--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "brand", + "state": "hover" + }, + "path": [ + "global", + "text", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--color--brand--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--brand--clicked": { + "default": { + "description": "Use as the clicked state color for branded text.", + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for branded text.", + "type": "color", + "value": "{global.dark.color.brand.300}" + }, + "name": "pf-t--global--text--color--brand--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "brand", + "state": "clicked" + }, + "path": [ + "global", + "text", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--color--brand--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--default": { + "default": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--on-brand--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "default" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--hover": { + "default": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--on-brand--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "hover" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--clicked": { + "default": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--on-brand--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "clicked" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--subtle--default": { + "default": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--on-brand--subtle--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "subtle", + "default" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--subtle--hover": { + "default": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--on-brand--subtle--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "subtle", + "hover" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--subtle--clicked": { + "default": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--on-brand--subtle--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "subtle", + "clicked" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--success--default": { + "default": { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.success.default}" + }, + "name": "pf-t--global--text--color--status--success--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "text", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.success.100}" + }, + "name": "pf-t--global--color--status--success--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.40}" + }, + "name": "pf-t--global--dark--color--status--success--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "100" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--success--hover": { + "default": { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.success.hover}" + }, + "name": "pf-t--global--text--color--status--success--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "text", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--success--clicked": { + "default": { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.success.clicked}" + }, + "name": "pf-t--global--text--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "text", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-success--default": { + "default": { + "description": "Use as the default color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-success--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-success", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-success--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-success--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-success", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-success--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-success--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-success", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--warning--default": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.warning.default}" + }, + "name": "pf-t--global--text--color--status--warning--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.warning.100}" + }, + "name": "pf-t--global--color--status--warning--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--status--warning--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--warning--hover": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.warning.hover}" + }, + "name": "pf-t--global--text--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--warning--clicked": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.warning.clicked}" + }, + "name": "pf-t--global--text--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-warning--default": { + "default": { + "description": "Use as the default color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-warning--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-warning", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-warning--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-warning--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-warning", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-warning--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-warning--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-warning", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--danger--default": { + "default": { + "description": "Use as the default color for text that communicates a danger status.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that communicates a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.250}" + }, + "name": "pf-t--global--text--color--status--danger--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--status--danger--250", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "250" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--danger--hover": { + "default": { + "description": "Use as the hover state color for text that communicates a danger status.", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that communicates a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.300}" + }, + "name": "pf-t--global--text--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--status--danger--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "300" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--danger--clicked": { + "default": { + "description": "Use as the clicked state color for text that communicates a danger status.", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that communicates a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.300}" + }, + "name": "pf-t--global--text--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--status--danger--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "300" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-danger--default": { + "default": { + "description": "Use as the default color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-danger--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-danger", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-danger--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-danger--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-danger", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-danger--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-danger--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-danger", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--info--default": { + "default": { + "description": "Use as the default color for text that communicates am info status.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that communicates am info status.", + "type": "color", + "value": "{global.color.status.info.default}" + }, + "name": "pf-t--global--text--color--status--info--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "text", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.info.100}" + }, + "name": "pf-t--global--color--status--info--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--status--info--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--info--hover": { + "default": { + "description": "Use as the hover state color for text that communicates an infostatus.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that communicates an infostatus.", + "type": "color", + "value": "{global.color.status.info.hover}" + }, + "name": "pf-t--global--text--color--status--info--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "text", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--info--clicked": { + "default": { + "description": "Use as the clicked state color for text that communicates an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that communicates an info status.", + "type": "color", + "value": "{global.color.status.info.clicked}" + }, + "name": "pf-t--global--text--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "text", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-info--default": { + "default": { + "description": "Use as the default color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-info--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-info", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-info--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-info--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-info", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-info--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-info--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-info", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--custom--default": { + "default": { + "description": "Use as the default color for text that communicates a custom status.", + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that communicates a custom status.", + "type": "color", + "value": "{global.color.status.custom.default}" + }, + "name": "pf-t--global--text--color--status--custom--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.100}" + }, + "name": "pf-t--global--color--status--custom--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.40}" + }, + "name": "pf-t--global--dark--color--status--custom--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "100" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--custom--hover": { + "default": { + "description": "Use as the hover state color for text that communicates a custom status.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that communicates a custom status.", + "type": "color", + "value": "{global.color.status.custom.hover}" + }, + "name": "pf-t--global--text--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--custom--clicked": { + "default": { + "description": "Use as the clicked state color for text that communicates a custom status.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that communicates a custom status.", + "type": "color", + "value": "{global.color.status.custom.clicked}" + }, + "name": "pf-t--global--text--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-custom--default": { + "default": { + "description": "Use as the default color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-custom--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-custom", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-custom--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-custom--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-custom", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-custom--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-custom--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-custom", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-default--default": { + "default": { + "description": "Use as the default color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-default--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-default", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-default--hover": { + "default": { + "description": "Use as the hover state color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-default--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-default", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-default--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-default--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-default", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-attention--default": { + "default": { + "description": "Use as the default color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-attention--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-attention", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-attention--hover": { + "default": { + "description": "Use as the hover state color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-attention--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-attention", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-attention--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-attention--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-attention", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-red--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-red--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-red", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-red--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-red--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-red", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-red--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-red--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-red", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orangered--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orangered--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orangered", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orangered--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orangered--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orangered", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orangered--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orangered--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orangered", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orange--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orange--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orange", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orange--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orange--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orange", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orange--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orange--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orange", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-yellow--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-yellow--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-yellow", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-yellow--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-yellow--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-yellow", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-yellow--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-yellow--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-yellow", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-green--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-green--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-green", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-green--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-green--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-green", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-green--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-green--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-green", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-teal--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-teal--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-teal", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-teal--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-teal--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-teal", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-teal--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-teal--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-teal", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-blue--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-blue--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-blue", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-blue--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-blue--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-blue", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-blue--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-blue--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-blue", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-purple--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-purple--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-purple", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-purple--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-purple--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-purple", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-purple--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-purple--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-purple", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-gray--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-gray--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-gray", + "default" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-gray--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-gray--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-gray", + "hover" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-gray--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-gray--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-gray", + "clicked" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--sm--default": { + "default": { + "description": "Use as the color of small box-shadows.", + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of small box-shadows.", + "type": "color", + "value": "{global.dark.box-shadow.color.100}" + }, + "name": "pf-t--global--box-shadow--color--sm--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "sm", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "color", + "sm", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)" + }, + "name": "pf-t--global--dark--box-shadow--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--sm--directional": { + "default": { + "description": "Use as the color of small box-shadows.", + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of small box-shadows.", + "type": "color", + "value": "{global.dark.box-shadow.color.200}" + }, + "name": "pf-t--global--box-shadow--color--sm--directional", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "sm", + "state": "directional" + }, + "path": [ + "global", + "box-shadow", + "color", + "sm", + "directional" + ], + "references": [ + { + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)" + }, + "name": "pf-t--global--dark--box-shadow--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "200" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--md--default": { + "default": { + "description": "Use as the color of medium box-shadows.", + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of medium box-shadows.", + "type": "color", + "value": "{global.dark.box-shadow.color.100}" + }, + "name": "pf-t--global--box-shadow--color--md--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "md", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "color", + "md", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)" + }, + "name": "pf-t--global--dark--box-shadow--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--md--directional": { + "default": { + "description": "Use as the color of medium box-shadows.", + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of medium box-shadows.", + "type": "color", + "value": "{global.dark.box-shadow.color.100}" + }, + "name": "pf-t--global--box-shadow--color--md--directional", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "md", + "state": "directional" + }, + "path": [ + "global", + "box-shadow", + "color", + "md", + "directional" + ], + "references": [ + { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)" + }, + "name": "pf-t--global--dark--box-shadow--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--lg--default": { + "default": { + "description": "Use as the color of large box-shadows.", + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of large box-shadows.", + "type": "color", + "value": "{global.dark.box-shadow.color.100}" + }, + "name": "pf-t--global--box-shadow--color--lg--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "lg", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "color", + "lg", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)" + }, + "name": "pf-t--global--dark--box-shadow--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--lg--directional": { + "default": { + "description": "Use as the color of large box-shadows.", + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of large box-shadows.", + "type": "color", + "value": "{global.dark.box-shadow.color.200}" + }, + "name": "pf-t--global--box-shadow--color--lg--directional", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "lg", + "state": "directional" + }, + "path": [ + "global", + "box-shadow", + "color", + "lg", + "directional" + ], + "references": [ + { + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)" + }, + "name": "pf-t--global--dark--box-shadow--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "200" + ] + } + ] + } + }, + "pf-t--global--text-decoration--color--default": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.dark.border.color.200}" + }, + "name": "pf-t--global--text-decoration--color--default", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "color", + "subitem": "default" + }, + "path": [ + "global", + "text-decoration", + "color", + "default" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--border--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "border", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--text-decoration--color--hover": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.border.color.hover}" + }, + "name": "pf-t--global--text-decoration--color--hover", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "color", + "subitem": "hover" + }, + "path": [ + "global", + "text-decoration", + "color", + "hover" + ], + "references": [ + { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.brand.100}" + }, + "name": "pf-t--global--border--color--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "hover" + }, + "path": [ + "global", + "border", + "color", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--focus-ring--color--default": { + "default": { + "description": "Use as color value for custom focus rings", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as color value for custom focus rings", + "type": "color", + "value": "{global.dark.focus-ring.color.100}" + }, + "name": "pf-t--global--focus-ring--color--default", + "attributes": { + "category": "global", + "type": "focus-ring", + "item": "color", + "subitem": "default" + }, + "path": [ + "global", + "focus-ring", + "color", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--focus-ring--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "focus-ring", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "focus-ring", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + } + }, + "dimension": {}, + "motion": {} + }, + "base": { + "colors": { + "pf-t--global--dark--background--color--100": { + "default": { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--dark--background--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "background", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + }, + "pf-t--global--dark--background--color--200": { + "default": { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + }, + "pf-t--global--dark--background--color--300": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--background--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "background", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + }, + "pf-t--global--dark--background--color--400": { + "default": { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--background--color--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "400" + }, + "path": [ + "global", + "dark", + "background", + "color", + "400" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--background--color--450": { + "default": { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--dark--background--color--450", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "450" + }, + "path": [ + "global", + "dark", + "background", + "color", + "450" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--background--color--500": { + "default": { + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)" + }, + "name": "pf-t--global--dark--background--color--500", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "500" + }, + "path": [ + "global", + "dark", + "background", + "color", + "500" + ] + } + }, + "pf-t--global--dark--background--color--600": { + "default": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)" + }, + "name": "pf-t--global--dark--background--color--600", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "600" + }, + "path": [ + "global", + "dark", + "background", + "color", + "600" + ] + } + }, + "pf-t--global--dark--background--color--700": { + "default": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)" + }, + "name": "pf-t--global--dark--background--color--700", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "700" + }, + "path": [ + "global", + "dark", + "background", + "color", + "700" + ] + } + }, + "pf-t--global--dark--background--color--highlight--100": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--background--color--highlight--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "highlight" + }, + "path": [ + "global", + "dark", + "background", + "color", + "highlight", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--background--color--highlight--200": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--background--color--highlight--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "highlight" + }, + "path": [ + "global", + "dark", + "background", + "color", + "highlight", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--100": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--200": { + "default": { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--300": { + "default": { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--color--brand--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--accent--100": { + "default": { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.50}" + }, + "name": "pf-t--global--dark--color--brand--accent--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ee0000" + }, + "name": "pf-t--color--red--50", + "attributes": { + "category": "color", + "type": "red", + "item": "50" + }, + "path": [ + "color", + "red", + "50" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--accent--200": { + "default": { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.60}" + }, + "name": "pf-t--global--dark--color--brand--accent--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a60000" + }, + "name": "pf-t--color--red--60", + "attributes": { + "category": "color", + "type": "red", + "item": "60" + }, + "path": [ + "color", + "red", + "60" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--accent--300": { + "default": { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.40}" + }, + "name": "pf-t--global--dark--color--brand--accent--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f56e6e" + }, + "name": "pf-t--color--red--40", + "attributes": { + "category": "color", + "type": "red", + "item": "40" + }, + "path": [ + "color", + "red", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--accent--350": { + "default": { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--dark--color--brand--accent--350", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "350" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--accent--400": { + "default": { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--color--brand--accent--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "400" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--subtle--100": { + "default": { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.70}" + }, + "name": "pf-t--global--dark--color--brand--subtle--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "100" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--subtle--200": { + "default": { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--dark--color--brand--subtle--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--subtle--300": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--subtle--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "300" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--disabled--100": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--disabled--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "100" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--disabled--200": { + "default": { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--disabled--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + }, + "pf-t--global--dark--color--disabled--300": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--color--disabled--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "300" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + }, + "pf-t--global--dark--color--disabled--400": { + "default": { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--color--disabled--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "400" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "400" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + }, + "pf-t--global--dark--color--favorite--100": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--favorite--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--favorite--200": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--favorite--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--undefined--100": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--severity--undefined--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "undefined" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "undefined", + "100" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--none--100": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--severity--none--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "none" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "none", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--minor--100": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--color--severity--minor--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "minor" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "minor", + "100" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--moderate--100": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--severity--moderate--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "moderate" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "moderate", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--important--100": { + "default": { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.40}" + }, + "name": "pf-t--global--dark--color--severity--important--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "important" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "important", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f5921b" + }, + "name": "pf-t--color--orange--40", + "attributes": { + "category": "color", + "type": "orange", + "item": "40" + }, + "path": [ + "color", + "orange", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--critical--100": { + "default": { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "name": "pf-t--global--dark--color--severity--critical--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "critical" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "critical", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--critical--200": { + "default": { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--severity--critical--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "critical" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "critical", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--success--100": { + "default": { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.40}" + }, + "name": "pf-t--global--dark--color--status--success--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "100" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--success--200": { + "default": { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--success--300": { + "default": { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--status--success--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "300" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--warning--100": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--status--warning--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--warning--200": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--danger--100": { + "default": { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "name": "pf-t--global--dark--color--status--danger--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--danger--200": { + "default": { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--danger--250": { + "default": { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--status--danger--250", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "250" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--danger--300": { + "default": { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--status--danger--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "300" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--info--100": { + "default": { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--status--info--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--info--200": { + "default": { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--info--300": { + "default": { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.10}" + }, + "name": "pf-t--global--dark--color--status--info--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ece6ff" + }, + "name": "pf-t--color--purple--10", + "attributes": { + "category": "color", + "type": "purple", + "item": "10" + }, + "path": [ + "color", + "purple", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--custom--100": { + "default": { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.40}" + }, + "name": "pf-t--global--dark--color--status--custom--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "100" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--custom--200": { + "default": { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--custom--300": { + "default": { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--status--custom--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--red--100": { + "default": { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f9a8a8" + }, + "name": "pf-t--color--red--30", + "attributes": { + "category": "color", + "type": "red", + "item": "30" + }, + "path": [ + "color", + "red", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--red--200": { + "default": { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--red--300": { + "default": { + "type": "color", + "value": "#fce3e3", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "300" + ], + "references": [ + { + "type": "color", + "value": "#fce3e3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fce3e3" + }, + "name": "pf-t--color--red--10", + "attributes": { + "category": "color", + "type": "red", + "item": "10" + }, + "path": [ + "color", + "red", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--orangered--100": { + "default": { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--orangered--200": { + "default": { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--orangered--300": { + "default": { + "type": "color", + "value": "#ffe3d9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffe3d9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe3d9" + }, + "name": "pf-t--color--red-orange--10", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "10" + }, + "path": [ + "color", + "red-orange", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--orange--100": { + "default": { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--orange--200": { + "default": { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--orange--300": { + "default": { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe8cc" + }, + "name": "pf-t--color--orange--10", + "attributes": { + "category": "color", + "type": "orange", + "item": "10" + }, + "path": [ + "color", + "orange", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--yellow--100": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--yellow--200": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--yellow--300": { + "default": { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "300" + ], + "references": [ + { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fff4cc" + }, + "name": "pf-t--color--yellow--10", + "attributes": { + "category": "color", + "type": "yellow", + "item": "10" + }, + "path": [ + "color", + "yellow", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--green--100": { + "default": { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "100" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--green--200": { + "default": { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--green--300": { + "default": { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e9f7df" + }, + "name": "pf-t--color--green--10", + "attributes": { + "category": "color", + "type": "green", + "item": "10" + }, + "path": [ + "color", + "green", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--teal--100": { + "default": { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "100" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--teal--200": { + "default": { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--teal--300": { + "default": { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "300" + ], + "references": [ + { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#daf2f2" + }, + "name": "pf-t--color--teal--10", + "attributes": { + "category": "color", + "type": "teal", + "item": "10" + }, + "path": [ + "color", + "teal", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--blue--100": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--blue--200": { + "default": { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--blue--300": { + "default": { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--purple--100": { + "default": { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--purple--200": { + "default": { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--purple--300": { + "default": { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ece6ff" + }, + "name": "pf-t--color--purple--10", + "attributes": { + "category": "color", + "type": "purple", + "item": "10" + }, + "path": [ + "color", + "purple", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--gray--50": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--50", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "50" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--gray--100": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--gray--200": { + "default": { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--gray--300": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "300" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--border--color--50": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--border--color--50", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "50" + }, + "path": [ + "global", + "dark", + "border", + "color", + "50" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + }, + "pf-t--global--dark--border--color--100": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--dark--border--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "border", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + }, + "pf-t--global--dark--border--color--200": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--border--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "border", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--border--color--300": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--border--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "border", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--100": { + "default": { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--200": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--text--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "text", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--300": { + "default": { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--400": { + "default": { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--text--color--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "400" + }, + "path": [ + "global", + "dark", + "text", + "color", + "400" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--link--100": { + "default": { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--text--color--link--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--link--200": { + "default": { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--text--color--link--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "200" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--link--300": { + "default": { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--text--color--link--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--link--400": { + "default": { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--text--color--link--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "400" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--icon--color--100": { + "default": { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--icon--color--200": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--icon--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--icon--color--300": { + "default": { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + }, + "pf-t--global--dark--box-shadow--color--100": { + "default": { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)" + }, + "name": "pf-t--global--dark--box-shadow--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "100" + ] + } + }, + "pf-t--global--dark--box-shadow--color--200": { + "default": { + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)" + }, + "name": "pf-t--global--dark--box-shadow--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "200" + ] + } + }, + "pf-t--global--dark--focus-ring--color--100": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--focus-ring--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "focus-ring", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "focus-ring", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + } + }, + "dimension": {}, + "motion": {} + }, + "palette": { + "pf-t--global--color--brand--accent--default": { + "felt": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#ee0000", + "filePath": "tokens/felt/dark/felt.color.dark.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.accent.100}" + }, + "name": "pf-t--global--color--brand--accent--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "default" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.50}" + }, + "name": "pf-t--global--dark--color--brand--accent--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ee0000" + }, + "name": "pf-t--color--red--50", + "attributes": { + "category": "color", + "type": "red", + "item": "50" + }, + "path": [ + "color", + "red", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--accent--hover": { + "felt": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#a60000", + "filePath": "tokens/felt/dark/felt.color.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.dark.color.brand.accent.200}" + }, + "name": "pf-t--global--color--brand--accent--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "hover" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.60}" + }, + "name": "pf-t--global--dark--color--brand--accent--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a60000" + }, + "name": "pf-t--color--red--60", + "attributes": { + "category": "color", + "type": "red", + "item": "60" + }, + "path": [ + "color", + "red", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--accent--clicked": { + "felt": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#a60000", + "filePath": "tokens/felt/dark/felt.color.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.dark.color.brand.accent.200}" + }, + "name": "pf-t--global--color--brand--accent--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.60}" + }, + "name": "pf-t--global--dark--color--brand--accent--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a60000" + }, + "name": "pf-t--color--red--60", + "attributes": { + "category": "color", + "type": "red", + "item": "60" + }, + "path": [ + "color", + "red", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--accent--hover": { + "felt": { + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/felt/dark/felt.color.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.dark.color.brand.accent.300}" + }, + "name": "pf-t--global--icon--color--brand--accent--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "accent", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.40}" + }, + "name": "pf-t--global--dark--color--brand--accent--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f56e6e" + }, + "name": "pf-t--color--red--40", + "attributes": { + "category": "color", + "type": "red", + "item": "40" + }, + "path": [ + "color", + "red", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--accent--clicked": { + "felt": { + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/felt/dark/felt.color.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.dark.color.brand.accent.300}" + }, + "name": "pf-t--global--icon--color--brand--accent--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "accent", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.40}" + }, + "name": "pf-t--global--dark--color--brand--accent--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f56e6e" + }, + "name": "pf-t--color--red--40", + "attributes": { + "category": "color", + "type": "red", + "item": "40" + }, + "path": [ + "color", + "red", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--accent--default": { + "felt": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/felt/dark/felt.color.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--on-brand--accent--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "accent", + "default" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--accent--hover": { + "felt": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/felt/dark/felt.color.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--on-brand--accent--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "accent", + "hover" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--accent--clicked": { + "felt": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/felt/dark/felt.color.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--on-brand--accent--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "accent", + "clicked" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--accent--default": { + "felt": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/felt/dark/felt.color.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.dark.color.brand.accent.400}" + }, + "name": "pf-t--global--border--color--brand--accent--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "border", + "color", + "brand", + "accent", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--color--brand--accent--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "400" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--accent--hover": { + "felt": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/felt/dark/felt.color.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.dark.color.brand.accent.400}" + }, + "name": "pf-t--global--border--color--brand--accent--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "border", + "color", + "brand", + "accent", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--color--brand--accent--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "400" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--accent--clicked": { + "felt": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/felt/dark/felt.color.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.dark.color.brand.accent.400}" + }, + "name": "pf-t--global--border--color--brand--accent--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "border", + "color", + "brand", + "accent", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--color--brand--accent--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "400" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--accent--default": { + "felt": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/felt/dark/felt.color.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--on-brand--accent--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "accent", + "default" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--accent--hover": { + "felt": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/felt/dark/felt.color.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--on-brand--accent--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "accent", + "hover" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--accent--clicked": { + "felt": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/felt/dark/felt.color.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--on-brand--accent--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "accent", + "clicked" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/semantic.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--color--white": { + "default": { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + }, + "pf-t--color--black": { + "default": { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#000000" + }, + "name": "pf-t--color--black", + "attributes": { + "category": "color", + "type": "black" + }, + "path": [ + "color", + "black" + ] + } + }, + "pf-t--color--gray--10": { + "default": { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + }, + "pf-t--color--gray--20": { + "default": { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + }, + "pf-t--color--gray--30": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + }, + "pf-t--color--gray--40": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + }, + "pf-t--color--gray--45": { + "default": { + "type": "color", + "value": "#8c8c8c", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#8c8c8c" + }, + "name": "pf-t--color--gray--45", + "attributes": { + "category": "color", + "type": "gray", + "item": "45" + }, + "path": [ + "color", + "gray", + "45" + ] + } + }, + "pf-t--color--gray--50": { + "default": { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + }, + "pf-t--color--gray--60": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + }, + "pf-t--color--gray--70": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + }, + "pf-t--color--gray--80": { + "default": { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + }, + "pf-t--color--gray--90": { + "default": { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + }, + "pf-t--color--gray--95": { + "default": { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + }, + "pf-t--color--blue--10": { + "default": { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + }, + "pf-t--color--blue--20": { + "default": { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + }, + "pf-t--color--blue--30": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + }, + "pf-t--color--blue--40": { + "default": { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4394e5" + }, + "name": "pf-t--color--blue--40", + "attributes": { + "category": "color", + "type": "blue", + "item": "40" + }, + "path": [ + "color", + "blue", + "40" + ] + } + }, + "pf-t--color--blue--50": { + "default": { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + }, + "pf-t--color--blue--60": { + "default": { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + }, + "pf-t--color--blue--70": { + "default": { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } + }, + "pf-t--color--blue--80": { + "default": { + "type": "color", + "value": "#032142", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#032142" + }, + "name": "pf-t--color--blue--80", + "attributes": { + "category": "color", + "type": "blue", + "item": "80" + }, + "path": [ + "color", + "blue", + "80" + ] + } + }, + "pf-t--color--teal--10": { + "default": { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#daf2f2" + }, + "name": "pf-t--color--teal--10", + "attributes": { + "category": "color", + "type": "teal", + "item": "10" + }, + "path": [ + "color", + "teal", + "10" + ] + } + }, + "pf-t--color--teal--20": { + "default": { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + }, + "pf-t--color--teal--30": { + "default": { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + }, + "pf-t--color--teal--40": { + "default": { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + }, + "pf-t--color--teal--50": { + "default": { + "type": "color", + "value": "#37a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#37a3a3" + }, + "name": "pf-t--color--teal--50", + "attributes": { + "category": "color", + "type": "teal", + "item": "50" + }, + "path": [ + "color", + "teal", + "50" + ] + } + }, + "pf-t--color--teal--60": { + "default": { + "type": "color", + "value": "#147878", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#147878" + }, + "name": "pf-t--color--teal--60", + "attributes": { + "category": "color", + "type": "teal", + "item": "60" + }, + "path": [ + "color", + "teal", + "60" + ] + } + }, + "pf-t--color--teal--70": { + "default": { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d4d" + }, + "name": "pf-t--color--teal--70", + "attributes": { + "category": "color", + "type": "teal", + "item": "70" + }, + "path": [ + "color", + "teal", + "70" + ] + } + }, + "pf-t--color--teal--80": { + "default": { + "type": "color", + "value": "#003333", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003333" + }, + "name": "pf-t--color--teal--80", + "attributes": { + "category": "color", + "type": "teal", + "item": "80" + }, + "path": [ + "color", + "teal", + "80" + ] + } + }, + "pf-t--color--yellow--10": { + "default": { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fff4cc" + }, + "name": "pf-t--color--yellow--10", + "attributes": { + "category": "color", + "type": "yellow", + "item": "10" + }, + "path": [ + "color", + "yellow", + "10" + ] + } + }, + "pf-t--color--yellow--20": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + }, + "pf-t--color--yellow--30": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + }, + "pf-t--color--yellow--40": { + "default": { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + }, + "pf-t--color--yellow--50": { + "default": { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b98412" + }, + "name": "pf-t--color--yellow--50", + "attributes": { + "category": "color", + "type": "yellow", + "item": "50" + }, + "path": [ + "color", + "yellow", + "50" + ] + } + }, + "pf-t--color--yellow--60": { + "default": { + "type": "color", + "value": "#96640f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#96640f" + }, + "name": "pf-t--color--yellow--60", + "attributes": { + "category": "color", + "type": "yellow", + "item": "60" + }, + "path": [ + "color", + "yellow", + "60" + ] + } + }, + "pf-t--color--yellow--70": { + "default": { + "type": "color", + "value": "#73480b", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#73480b" + }, + "name": "pf-t--color--yellow--70", + "attributes": { + "category": "color", + "type": "yellow", + "item": "70" + }, + "path": [ + "color", + "yellow", + "70" + ] + } + }, + "pf-t--color--yellow--80": { + "default": { + "type": "color", + "value": "#54330b", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#54330b" + }, + "name": "pf-t--color--yellow--80", + "attributes": { + "category": "color", + "type": "yellow", + "item": "80" + }, + "path": [ + "color", + "yellow", + "80" + ] + } + }, + "pf-t--color--green--10": { + "default": { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e9f7df" + }, + "name": "pf-t--color--green--10", + "attributes": { + "category": "color", + "type": "green", + "item": "10" + }, + "path": [ + "color", + "green", + "10" + ] + } + }, + "pf-t--color--green--20": { + "default": { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + }, + "pf-t--color--green--30": { + "default": { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + }, + "pf-t--color--green--40": { + "default": { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + }, + "pf-t--color--green--50": { + "default": { + "type": "color", + "value": "#63993d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63993d" + }, + "name": "pf-t--color--green--50", + "attributes": { + "category": "color", + "type": "green", + "item": "50" + }, + "path": [ + "color", + "green", + "50" + ] + } + }, + "pf-t--color--green--60": { + "default": { + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d7317" + }, + "name": "pf-t--color--green--60", + "attributes": { + "category": "color", + "type": "green", + "item": "60" + }, + "path": [ + "color", + "green", + "60" + ] + } + }, + "pf-t--color--green--70": { + "default": { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#204d00" + }, + "name": "pf-t--color--green--70", + "attributes": { + "category": "color", + "type": "green", + "item": "70" + }, + "path": [ + "color", + "green", + "70" + ] + } + }, + "pf-t--color--green--80": { + "default": { + "type": "color", + "value": "#183301", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#183301" + }, + "name": "pf-t--color--green--80", + "attributes": { + "category": "color", + "type": "green", + "item": "80" + }, + "path": [ + "color", + "green", + "80" + ] + } + }, + "pf-t--color--orange--10": { + "default": { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe8cc" + }, + "name": "pf-t--color--orange--10", + "attributes": { + "category": "color", + "type": "orange", + "item": "10" + }, + "path": [ + "color", + "orange", + "10" + ] + } + }, + "pf-t--color--orange--20": { + "default": { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + }, + "pf-t--color--orange--30": { + "default": { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + }, + "pf-t--color--orange--40": { + "default": { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f5921b" + }, + "name": "pf-t--color--orange--40", + "attributes": { + "category": "color", + "type": "orange", + "item": "40" + }, + "path": [ + "color", + "orange", + "40" + ] + } + }, + "pf-t--color--orange--50": { + "default": { + "type": "color", + "value": "#ca6c0f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ca6c0f" + }, + "name": "pf-t--color--orange--50", + "attributes": { + "category": "color", + "type": "orange", + "item": "50" + }, + "path": [ + "color", + "orange", + "50" + ] + } + }, + "pf-t--color--orange--60": { + "default": { + "type": "color", + "value": "#9e4a06", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9e4a06" + }, + "name": "pf-t--color--orange--60", + "attributes": { + "category": "color", + "type": "orange", + "item": "60" + }, + "path": [ + "color", + "orange", + "60" + ] + } + }, + "pf-t--color--orange--70": { + "default": { + "type": "color", + "value": "#732e00", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#732e00" + }, + "name": "pf-t--color--orange--70", + "attributes": { + "category": "color", + "type": "orange", + "item": "70" + }, + "path": [ + "color", + "orange", + "70" + ] + } + }, + "pf-t--color--orange--80": { + "default": { + "type": "color", + "value": "#4d1f00", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d1f00" + }, + "name": "pf-t--color--orange--80", + "attributes": { + "category": "color", + "type": "orange", + "item": "80" + }, + "path": [ + "color", + "orange", + "80" + ] + } + }, + "pf-t--color--red-orange--10": { + "default": { + "type": "color", + "value": "#ffe3d9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe3d9" + }, + "name": "pf-t--color--red-orange--10", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "10" + }, + "path": [ + "color", + "red-orange", + "10" + ] + } + }, + "pf-t--color--red-orange--20": { + "default": { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + }, + "pf-t--color--red-orange--30": { + "default": { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + }, + "pf-t--color--red-orange--40": { + "default": { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + }, + "pf-t--color--red-orange--50": { + "default": { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + }, + "pf-t--color--red-orange--60": { + "default": { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b1380b" + }, + "name": "pf-t--color--red-orange--60", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "60" + }, + "path": [ + "color", + "red-orange", + "60" + ] + } + }, + "pf-t--color--red-orange--70": { + "default": { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } + }, + "pf-t--color--red-orange--80": { + "default": { + "type": "color", + "value": "#4c1405", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4c1405" + }, + "name": "pf-t--color--red-orange--80", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "80" + }, + "path": [ + "color", + "red-orange", + "80" + ] + } + }, + "pf-t--color--purple--10": { + "default": { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ece6ff" + }, + "name": "pf-t--color--purple--10", + "attributes": { + "category": "color", + "type": "purple", + "item": "10" + }, + "path": [ + "color", + "purple", + "10" + ] + } + }, + "pf-t--color--purple--20": { + "default": { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + }, + "pf-t--color--purple--30": { + "default": { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + }, + "pf-t--color--purple--40": { + "default": { + "type": "color", + "value": "#876fd4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#876fd4" + }, + "name": "pf-t--color--purple--40", + "attributes": { + "category": "color", + "type": "purple", + "item": "40" + }, + "path": [ + "color", + "purple", + "40" + ] + } + }, + "pf-t--color--purple--50": { + "default": { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5e40be" + }, + "name": "pf-t--color--purple--50", + "attributes": { + "category": "color", + "type": "purple", + "item": "50" + }, + "path": [ + "color", + "purple", + "50" + ] + } + }, + "pf-t--color--purple--60": { + "default": { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d2785" + }, + "name": "pf-t--color--purple--60", + "attributes": { + "category": "color", + "type": "purple", + "item": "60" + }, + "path": [ + "color", + "purple", + "60" + ] + } + }, + "pf-t--color--purple--70": { + "default": { + "type": "color", + "value": "#21134d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#21134d" + }, + "name": "pf-t--color--purple--70", + "attributes": { + "category": "color", + "type": "purple", + "item": "70" + }, + "path": [ + "color", + "purple", + "70" + ] + } + }, + "pf-t--color--purple--80": { + "default": { + "type": "color", + "value": "#1b0d33", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1b0d33" + }, + "name": "pf-t--color--purple--80", + "attributes": { + "category": "color", + "type": "purple", + "item": "80" + }, + "path": [ + "color", + "purple", + "80" + ] + } + }, + "pf-t--color--red--10": { + "default": { + "type": "color", + "value": "#fce3e3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fce3e3" + }, + "name": "pf-t--color--red--10", + "attributes": { + "category": "color", + "type": "red", + "item": "10" + }, + "path": [ + "color", + "red", + "10" + ] + } + }, + "pf-t--color--red--20": { + "default": { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + }, + "pf-t--color--red--30": { + "default": { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f9a8a8" + }, + "name": "pf-t--color--red--30", + "attributes": { + "category": "color", + "type": "red", + "item": "30" + }, + "path": [ + "color", + "red", + "30" + ] + } + }, + "pf-t--color--red--40": { + "default": { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f56e6e" + }, + "name": "pf-t--color--red--40", + "attributes": { + "category": "color", + "type": "red", + "item": "40" + }, + "path": [ + "color", + "red", + "40" + ] + } + }, + "pf-t--color--red--50": { + "default": { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ee0000" + }, + "name": "pf-t--color--red--50", + "attributes": { + "category": "color", + "type": "red", + "item": "50" + }, + "path": [ + "color", + "red", + "50" + ] + } + }, + "pf-t--color--red--60": { + "default": { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a60000" + }, + "name": "pf-t--color--red--60", + "attributes": { + "category": "color", + "type": "red", + "item": "60" + }, + "path": [ + "color", + "red", + "60" + ] + } + }, + "pf-t--color--red--70": { + "default": { + "type": "color", + "value": "#5f0000", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5f0000" + }, + "name": "pf-t--color--red--70", + "attributes": { + "category": "color", + "type": "red", + "item": "70" + }, + "path": [ + "color", + "red", + "70" + ] + } + }, + "pf-t--color--red--80": { + "default": { + "type": "color", + "value": "#3f0000", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3f0000" + }, + "name": "pf-t--color--red--80", + "attributes": { + "category": "color", + "type": "red", + "item": "80" + }, + "path": [ + "color", + "red", + "80" + ] + } + }, + "pf-t--color--red--05": { + "default": { + "type": "color", + "value": "#fef0f0", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fef0f0" + }, + "name": "pf-t--color--red--05", + "attributes": { + "category": "color", + "type": "red", + "item": "05" + }, + "path": [ + "color", + "red", + "05" + ] + } + } + }, + "chart": { + "pf-t--chart--color--blue--100": { + "default": { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.50}" + }, + "name": "pf-t--chart--color--blue--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "blue", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "blue", + "100" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + ] + } + }, + "pf-t--chart--color--blue--200": { + "default": { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.40}" + }, + "name": "pf-t--chart--color--blue--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "blue", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4394e5" + }, + "name": "pf-t--color--blue--40", + "attributes": { + "category": "color", + "type": "blue", + "item": "40" + }, + "path": [ + "color", + "blue", + "40" + ] + } + ] + } + }, + "pf-t--chart--color--blue--300": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--chart--color--blue--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "blue", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "blue", + "300" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + }, + "pf-t--chart--color--blue--400": { + "default": { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--chart--color--blue--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "blue", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "blue", + "400" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + }, + "pf-t--chart--color--blue--500": { + "default": { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--chart--color--blue--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "blue", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "blue", + "500" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + }, + "pf-t--chart--color--green--100": { + "default": { + "type": "color", + "value": "#63993d", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.50}" + }, + "name": "pf-t--chart--color--green--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "green", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "green", + "100" + ], + "references": [ + { + "type": "color", + "value": "#63993d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63993d" + }, + "name": "pf-t--color--green--50", + "attributes": { + "category": "color", + "type": "green", + "item": "50" + }, + "path": [ + "color", + "green", + "50" + ] + } + ] + } + }, + "pf-t--chart--color--green--200": { + "default": { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.40}" + }, + "name": "pf-t--chart--color--green--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "green", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + ] + } + }, + "pf-t--chart--color--green--300": { + "default": { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--chart--color--green--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "green", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "green", + "300" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + }, + "pf-t--chart--color--green--400": { + "default": { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--chart--color--green--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "green", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "green", + "400" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + }, + "pf-t--chart--color--green--500": { + "default": { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.10}" + }, + "name": "pf-t--chart--color--green--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "green", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "green", + "500" + ], + "references": [ + { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e9f7df" + }, + "name": "pf-t--color--green--10", + "attributes": { + "category": "color", + "type": "green", + "item": "10" + }, + "path": [ + "color", + "green", + "10" + ] + } + ] + } + }, + "pf-t--chart--color--teal--100": { + "default": { + "type": "color", + "value": "#37a3a3", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.50}" + }, + "name": "pf-t--chart--color--teal--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "teal", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "teal", + "100" + ], + "references": [ + { + "type": "color", + "value": "#37a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#37a3a3" + }, + "name": "pf-t--color--teal--50", + "attributes": { + "category": "color", + "type": "teal", + "item": "50" + }, + "path": [ + "color", + "teal", + "50" + ] + } + ] + } + }, + "pf-t--chart--color--teal--200": { + "default": { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.40}" + }, + "name": "pf-t--chart--color--teal--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "teal", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + ] + } + }, + "pf-t--chart--color--teal--300": { + "default": { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--chart--color--teal--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "teal", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "teal", + "300" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + }, + "pf-t--chart--color--teal--400": { + "default": { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--chart--color--teal--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "teal", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "teal", + "400" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + }, + "pf-t--chart--color--teal--500": { + "default": { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.10}" + }, + "name": "pf-t--chart--color--teal--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "teal", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "teal", + "500" + ], + "references": [ + { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#daf2f2" + }, + "name": "pf-t--color--teal--10", + "attributes": { + "category": "color", + "type": "teal", + "item": "10" + }, + "path": [ + "color", + "teal", + "10" + ] + } + ] + } + }, + "pf-t--chart--color--purple--100": { + "default": { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.50}" + }, + "name": "pf-t--chart--color--purple--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "purple", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "purple", + "100" + ], + "references": [ + { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5e40be" + }, + "name": "pf-t--color--purple--50", + "attributes": { + "category": "color", + "type": "purple", + "item": "50" + }, + "path": [ + "color", + "purple", + "50" + ] + } + ] + } + }, + "pf-t--chart--color--purple--200": { + "default": { + "type": "color", + "value": "#876fd4", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.40}" + }, + "name": "pf-t--chart--color--purple--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "purple", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#876fd4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#876fd4" + }, + "name": "pf-t--color--purple--40", + "attributes": { + "category": "color", + "type": "purple", + "item": "40" + }, + "path": [ + "color", + "purple", + "40" + ] + } + ] + } + }, + "pf-t--chart--color--purple--300": { + "default": { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--chart--color--purple--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "purple", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "purple", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + }, + "pf-t--chart--color--purple--400": { + "default": { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--chart--color--purple--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "purple", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "purple", + "400" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + }, + "pf-t--chart--color--purple--500": { + "default": { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.10}" + }, + "name": "pf-t--chart--color--purple--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "purple", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "purple", + "500" + ], + "references": [ + { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ece6ff" + }, + "name": "pf-t--color--purple--10", + "attributes": { + "category": "color", + "type": "purple", + "item": "10" + }, + "path": [ + "color", + "purple", + "10" + ] + } + ] + } + }, + "pf-t--chart--color--yellow--100": { + "default": { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.50}" + }, + "name": "pf-t--chart--color--yellow--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "yellow", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "yellow", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b98412" + }, + "name": "pf-t--color--yellow--50", + "attributes": { + "category": "color", + "type": "yellow", + "item": "50" + }, + "path": [ + "color", + "yellow", + "50" + ] + } + ] + } + }, + "pf-t--chart--color--yellow--200": { + "default": { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--chart--color--yellow--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "yellow", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + }, + "pf-t--chart--color--yellow--300": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--chart--color--yellow--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "yellow", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "yellow", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--chart--color--yellow--400": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--chart--color--yellow--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "yellow", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "yellow", + "400" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + }, + "pf-t--chart--color--yellow--500": { + "default": { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.10}" + }, + "name": "pf-t--chart--color--yellow--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "yellow", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "yellow", + "500" + ], + "references": [ + { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fff4cc" + }, + "name": "pf-t--color--yellow--10", + "attributes": { + "category": "color", + "type": "yellow", + "item": "10" + }, + "path": [ + "color", + "yellow", + "10" + ] + } + ] + } + }, + "pf-t--chart--color--orange--100": { + "default": { + "type": "color", + "value": "#ca6c0f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.50}" + }, + "name": "pf-t--chart--color--orange--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "orange", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "orange", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ca6c0f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ca6c0f" + }, + "name": "pf-t--color--orange--50", + "attributes": { + "category": "color", + "type": "orange", + "item": "50" + }, + "path": [ + "color", + "orange", + "50" + ] + } + ] + } + }, + "pf-t--chart--color--orange--200": { + "default": { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.40}" + }, + "name": "pf-t--chart--color--orange--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "orange", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f5921b" + }, + "name": "pf-t--color--orange--40", + "attributes": { + "category": "color", + "type": "orange", + "item": "40" + }, + "path": [ + "color", + "orange", + "40" + ] + } + ] + } + }, + "pf-t--chart--color--orange--300": { + "default": { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.30}" + }, + "name": "pf-t--chart--color--orange--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "orange", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "orange", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + ] + } + }, + "pf-t--chart--color--orange--400": { + "default": { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--chart--color--orange--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "orange", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "orange", + "400" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + }, + "pf-t--chart--color--orange--500": { + "default": { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.10}" + }, + "name": "pf-t--chart--color--orange--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "orange", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "orange", + "500" + ], + "references": [ + { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe8cc" + }, + "name": "pf-t--color--orange--10", + "attributes": { + "category": "color", + "type": "orange", + "item": "10" + }, + "path": [ + "color", + "orange", + "10" + ] + } + ] + } + }, + "pf-t--chart--color--red-orange--100": { + "default": { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "name": "pf-t--chart--color--red-orange--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "red-orange", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "red-orange", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + ] + } + }, + "pf-t--chart--color--red-orange--200": { + "default": { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--chart--color--red-orange--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "red-orange", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "red-orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + }, + "pf-t--chart--color--red-orange--300": { + "default": { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--chart--color--red-orange--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "red-orange", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "red-orange", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + }, + "pf-t--chart--color--red-orange--400": { + "default": { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--chart--color--red-orange--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "red-orange", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "red-orange", + "400" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + }, + "pf-t--chart--color--red-orange--500": { + "default": { + "type": "color", + "value": "#ffe3d9", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.10}" + }, + "name": "pf-t--chart--color--red-orange--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "red-orange", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "red-orange", + "500" + ], + "references": [ + { + "type": "color", + "value": "#ffe3d9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe3d9" + }, + "name": "pf-t--color--red-orange--10", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "10" + }, + "path": [ + "color", + "red-orange", + "10" + ] + } + ] + } + }, + "pf-t--chart--color--black--100": { + "default": { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--chart--color--black--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "black", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "black", + "100" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + }, + "pf-t--chart--color--black--200": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--chart--color--black--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "black", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "black", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + }, + "pf-t--chart--color--black--300": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--chart--color--black--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "black", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "black", + "300" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + }, + "pf-t--chart--color--black--400": { + "default": { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--chart--color--black--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "black", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "black", + "400" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + }, + "pf-t--chart--color--black--500": { + "default": { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--chart--color--black--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "black", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "black", + "500" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + }, + "pf-t--chart--global--letter-spacing": { + "default": { + "type": "string", + "value": "normal", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "string", + "value": "normal" + }, + "name": "pf-t--chart--global--letter-spacing", + "attributes": { + "category": "chart", + "type": "global", + "item": "letter-spacing" + }, + "path": [ + "chart", + "global", + "letter-spacing" + ] + } + }, + "pf-t--chart--global--stroke-line-cap": { + "default": { + "type": "string", + "value": "round", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "string", + "value": "round" + }, + "name": "pf-t--chart--global--stroke-line-cap", + "attributes": { + "category": "chart", + "type": "global", + "item": "stroke-line-cap" + }, + "path": [ + "chart", + "global", + "stroke-line-cap" + ] + } + }, + "pf-t--chart--global--stroke-line-join": { + "default": { + "type": "string", + "value": "round", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "string", + "value": "round" + }, + "name": "pf-t--chart--global--stroke-line-join", + "attributes": { + "category": "chart", + "type": "global", + "item": "stroke-line-join" + }, + "path": [ + "chart", + "global", + "stroke-line-join" + ] + } + }, + "pf-t--chart--global--BorderWidth--xs": { + "default": { + "type": "number", + "value": 1, + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "number", + "value": 1 + }, + "name": "pf-t--chart--global--BorderWidth--xs", + "attributes": { + "category": "chart", + "type": "global", + "item": "BorderWidth", + "subitem": "xs" + }, + "path": [ + "chart", + "global", + "BorderWidth", + "xs" + ] + } + }, + "pf-t--chart--global--BorderWidth--sm": { + "default": { + "type": "number", + "value": 2, + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "number", + "value": 2 + }, + "name": "pf-t--chart--global--BorderWidth--sm", + "attributes": { + "category": "chart", + "type": "global", + "item": "BorderWidth", + "subitem": "sm" + }, + "path": [ + "chart", + "global", + "BorderWidth", + "sm" + ] + } + }, + "pf-t--chart--global--BorderWidth--lg": { + "default": { + "type": "number", + "value": 8, + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "number", + "value": 8 + }, + "name": "pf-t--chart--global--BorderWidth--lg", + "attributes": { + "category": "chart", + "type": "global", + "item": "BorderWidth", + "subitem": "lg" + }, + "path": [ + "chart", + "global", + "BorderWidth", + "lg" + ] + } + }, + "pf-t--chart--global--stroke--width--xs": { + "default": { + "type": "number", + "value": 1, + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "number", + "value": 1 + }, + "name": "pf-t--chart--global--stroke--width--xs", + "attributes": { + "category": "chart", + "type": "global", + "item": "stroke", + "subitem": "width", + "state": "xs" + }, + "path": [ + "chart", + "global", + "stroke", + "width", + "xs" + ] + } + }, + "pf-t--chart--global--stroke--width--sm": { + "default": { + "type": "number", + "value": 2, + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "number", + "value": 2 + }, + "name": "pf-t--chart--global--stroke--width--sm", + "attributes": { + "category": "chart", + "type": "global", + "item": "stroke", + "subitem": "width", + "state": "sm" + }, + "path": [ + "chart", + "global", + "stroke", + "width", + "sm" + ] + } + }, + "pf-t--chart--global--fill--color--100": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--chart--global--fill--color--100", + "attributes": { + "category": "chart", + "type": "global", + "item": "fill", + "subitem": "color", + "state": "100" + }, + "path": [ + "chart", + "global", + "fill", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + }, + "pf-t--chart--global--fill--color--200": { + "default": { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--chart--global--fill--color--200", + "attributes": { + "category": "chart", + "type": "global", + "item": "fill", + "subitem": "color", + "state": "200" + }, + "path": [ + "chart", + "global", + "fill", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + }, + "pf-t--chart--global--fill--color--300": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--chart--global--fill--color--300", + "attributes": { + "category": "chart", + "type": "global", + "item": "fill", + "subitem": "color", + "state": "300" + }, + "path": [ + "chart", + "global", + "fill", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + }, + "pf-t--chart--global--fill--color--400": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--chart--global--fill--color--400", + "attributes": { + "category": "chart", + "type": "global", + "item": "fill", + "subitem": "color", + "state": "400" + }, + "path": [ + "chart", + "global", + "fill", + "color", + "400" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + }, + "pf-t--chart--global--fill--color--500": { + "default": { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--chart--global--fill--color--500", + "attributes": { + "category": "chart", + "type": "global", + "item": "fill", + "subitem": "color", + "state": "500" + }, + "path": [ + "chart", + "global", + "fill", + "color", + "500" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + }, + "pf-t--chart--global--fill--color--700": { + "default": { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--chart--global--fill--color--700", + "attributes": { + "category": "chart", + "type": "global", + "item": "fill", + "subitem": "color", + "state": "700" + }, + "path": [ + "chart", + "global", + "fill", + "color", + "700" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + }, + "pf-t--chart--global--fill--color--900": { + "default": { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--chart--global--fill--color--900", + "attributes": { + "category": "chart", + "type": "global", + "item": "fill", + "subitem": "color", + "state": "900" + }, + "path": [ + "chart", + "global", + "fill", + "color", + "900" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + }, + "pf-t--chart--global--fill--color--white": { + "default": { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--chart--global--fill--color--white", + "attributes": { + "category": "chart", + "type": "global", + "item": "fill", + "subitem": "color", + "state": "white" + }, + "path": [ + "chart", + "global", + "fill", + "color", + "white" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + }, + "pf-t--chart--global--warning--color--100": { + "default": { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.30}" + }, + "name": "pf-t--chart--global--warning--color--100", + "attributes": { + "category": "chart", + "type": "global", + "item": "warning", + "subitem": "color", + "state": "100" + }, + "path": [ + "chart", + "global", + "warning", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + ] + } + }, + "pf-t--chart--global--warning--color--200": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--chart--global--warning--color--200", + "attributes": { + "category": "chart", + "type": "global", + "item": "warning", + "subitem": "color", + "state": "200" + }, + "path": [ + "chart", + "global", + "warning", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--chart--global--success--color--100": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--chart--global--success--color--100", + "attributes": { + "category": "chart", + "type": "global", + "item": "success", + "subitem": "color", + "state": "100" + }, + "path": [ + "chart", + "global", + "success", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + }, + "pf-t--chart--global--danger--color--100": { + "default": { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--chart--global--danger--color--100", + "attributes": { + "category": "chart", + "type": "global", + "item": "danger", + "subitem": "color", + "state": "100" + }, + "path": [ + "chart", + "global", + "danger", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + }, + "pf-t--chart--global--FontSize--xs": { + "default": { + "type": "number", + "value": 12, + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "number", + "value": 12 + }, + "name": "pf-t--chart--global--FontSize--xs", + "attributes": { + "category": "chart", + "type": "global", + "item": "FontSize", + "subitem": "xs" + }, + "path": [ + "chart", + "global", + "FontSize", + "xs" + ] + } + }, + "pf-t--chart--global--FontSize--sm": { + "default": { + "type": "number", + "value": 14, + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "number", + "value": 14 + }, + "name": "pf-t--chart--global--FontSize--sm", + "attributes": { + "category": "chart", + "type": "global", + "item": "FontSize", + "subitem": "sm" + }, + "path": [ + "chart", + "global", + "FontSize", + "sm" + ] + } + }, + "pf-t--chart--global--FontSize--lg": { + "default": { + "type": "number", + "value": 18, + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "number", + "value": 18 + }, + "name": "pf-t--chart--global--FontSize--lg", + "attributes": { + "category": "chart", + "type": "global", + "item": "FontSize", + "subitem": "lg" + }, + "path": [ + "chart", + "global", + "FontSize", + "lg" + ] + } + }, + "pf-t--chart--global--FontSize--2xl": { + "default": { + "type": "number", + "value": 22, + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "number", + "value": 22 + }, + "name": "pf-t--chart--global--FontSize--2xl", + "attributes": { + "category": "chart", + "type": "global", + "item": "FontSize", + "subitem": "2xl" + }, + "path": [ + "chart", + "global", + "FontSize", + "2xl" + ] + } + }, + "pf-t--chart--global--layout--padding": { + "default": { + "type": "number", + "value": 50, + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "number", + "value": 50 + }, + "name": "pf-t--chart--global--layout--padding", + "attributes": { + "category": "chart", + "type": "global", + "item": "layout", + "subitem": "padding" + }, + "path": [ + "chart", + "global", + "layout", + "padding" + ] + } + }, + "pf-t--chart--global--layout--height": { + "default": { + "type": "number", + "value": 300, + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "number", + "value": 300 + }, + "name": "pf-t--chart--global--layout--height", + "attributes": { + "category": "chart", + "type": "global", + "item": "layout", + "subitem": "height" + }, + "path": [ + "chart", + "global", + "layout", + "height" + ] + } + }, + "pf-t--chart--global--layout--width": { + "default": { + "type": "number", + "value": 450, + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "number", + "value": 450 + }, + "name": "pf-t--chart--global--layout--width", + "attributes": { + "category": "chart", + "type": "global", + "item": "layout", + "subitem": "width" + }, + "path": [ + "chart", + "global", + "layout", + "width" + ] + } + }, + "pf-t--chart--global--label--padding": { + "default": { + "type": "number", + "value": 10, + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "number", + "value": 10 + }, + "name": "pf-t--chart--global--label--padding", + "attributes": { + "category": "chart", + "type": "global", + "item": "label", + "subitem": "padding" + }, + "path": [ + "chart", + "global", + "label", + "padding" + ] + } + }, + "pf-t--chart--global--label--margin": { + "default": { + "type": "number", + "value": 8, + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "number", + "value": 8 + }, + "name": "pf-t--chart--global--label--margin", + "attributes": { + "category": "chart", + "type": "global", + "item": "label", + "subitem": "margin" + }, + "path": [ + "chart", + "global", + "label", + "margin" + ] + } + }, + "pf-t--chart--global--label--text-anchor": { + "default": { + "type": "string", + "value": "middle", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "string", + "value": "middle" + }, + "name": "pf-t--chart--global--label--text-anchor", + "attributes": { + "category": "chart", + "type": "global", + "item": "label", + "subitem": "text-anchor" + }, + "path": [ + "chart", + "global", + "label", + "text-anchor" + ] + } + }, + "pf-t--chart--global--label--fill": { + "default": { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--chart--global--label--fill", + "attributes": { + "category": "chart", + "type": "global", + "item": "label", + "subitem": "fill" + }, + "path": [ + "chart", + "global", + "label", + "fill" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + }, + "pf-t--chart--global--label--stroke": { + "default": { + "width": { + "type": "number", + "value": 0, + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true + }, + "type": "string", + "value": "transparent", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "width": { + "type": "number", + "value": 0, + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true + }, + "type": "string", + "value": "transparent" + }, + "name": "pf-t--chart--global--label--stroke", + "attributes": { + "category": "chart", + "type": "global", + "item": "label", + "subitem": "stroke" + }, + "path": [ + "chart", + "global", + "label", + "stroke" + ] + } + }, + "pf-t--chart--theme--colorscales--blue--colorscale--100": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.blue.300}" + }, + "name": "pf-t--chart--theme--colorscales--blue--colorscale--100", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "blue", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "blue", + "colorscale", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--chart--color--blue--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "blue", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "blue", + "300" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--blue--colorscale--200": { + "default": { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.blue.100}" + }, + "name": "pf-t--chart--theme--colorscales--blue--colorscale--200", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "blue", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "blue", + "colorscale", + "200" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.50}" + }, + "name": "pf-t--chart--color--blue--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "blue", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "blue", + "100" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--blue--colorscale--300": { + "default": { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.blue.500}" + }, + "name": "pf-t--chart--theme--colorscales--blue--colorscale--300", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "blue", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "blue", + "colorscale", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--chart--color--blue--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "blue", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "blue", + "500" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--blue--colorscale--400": { + "default": { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.blue.200}" + }, + "name": "pf-t--chart--theme--colorscales--blue--colorscale--400", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "blue", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "blue", + "colorscale", + "400" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.40}" + }, + "name": "pf-t--chart--color--blue--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "blue", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4394e5" + }, + "name": "pf-t--color--blue--40", + "attributes": { + "category": "color", + "type": "blue", + "item": "40" + }, + "path": [ + "color", + "blue", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--blue--colorscale--500": { + "default": { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.blue.400}" + }, + "name": "pf-t--chart--theme--colorscales--blue--colorscale--500", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "blue", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "blue", + "colorscale", + "500" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--chart--color--blue--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "blue", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "blue", + "400" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--teal--colorscale--100": { + "default": { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.teal.300}" + }, + "name": "pf-t--chart--theme--colorscales--teal--colorscale--100", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "teal", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "teal", + "colorscale", + "100" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--chart--color--teal--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "teal", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "teal", + "300" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--teal--colorscale--200": { + "default": { + "type": "color", + "value": "#37a3a3", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.teal.100}" + }, + "name": "pf-t--chart--theme--colorscales--teal--colorscale--200", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "teal", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "teal", + "colorscale", + "200" + ], + "references": [ + { + "type": "color", + "value": "#37a3a3", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.50}" + }, + "name": "pf-t--chart--color--teal--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "teal", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "teal", + "100" + ], + "references": [ + { + "type": "color", + "value": "#37a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#37a3a3" + }, + "name": "pf-t--color--teal--50", + "attributes": { + "category": "color", + "type": "teal", + "item": "50" + }, + "path": [ + "color", + "teal", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--teal--colorscale--300": { + "default": { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.teal.500}" + }, + "name": "pf-t--chart--theme--colorscales--teal--colorscale--300", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "teal", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "teal", + "colorscale", + "300" + ], + "references": [ + { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.10}" + }, + "name": "pf-t--chart--color--teal--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "teal", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "teal", + "500" + ], + "references": [ + { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#daf2f2" + }, + "name": "pf-t--color--teal--10", + "attributes": { + "category": "color", + "type": "teal", + "item": "10" + }, + "path": [ + "color", + "teal", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--teal--colorscale--400": { + "default": { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.teal.200}" + }, + "name": "pf-t--chart--theme--colorscales--teal--colorscale--400", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "teal", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "teal", + "colorscale", + "400" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.40}" + }, + "name": "pf-t--chart--color--teal--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "teal", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--teal--colorscale--500": { + "default": { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.teal.400}" + }, + "name": "pf-t--chart--theme--colorscales--teal--colorscale--500", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "teal", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "teal", + "colorscale", + "500" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--chart--color--teal--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "teal", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "teal", + "400" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--yellow--colorscale--100": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.yellow.300}" + }, + "name": "pf-t--chart--theme--colorscales--yellow--colorscale--100", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "yellow", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "yellow", + "colorscale", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--chart--color--yellow--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "yellow", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "yellow", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--yellow--colorscale--200": { + "default": { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.yellow.100}" + }, + "name": "pf-t--chart--theme--colorscales--yellow--colorscale--200", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "yellow", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "yellow", + "colorscale", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.50}" + }, + "name": "pf-t--chart--color--yellow--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "yellow", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "yellow", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b98412" + }, + "name": "pf-t--color--yellow--50", + "attributes": { + "category": "color", + "type": "yellow", + "item": "50" + }, + "path": [ + "color", + "yellow", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--yellow--colorscale--300": { + "default": { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.yellow.500}" + }, + "name": "pf-t--chart--theme--colorscales--yellow--colorscale--300", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "yellow", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "yellow", + "colorscale", + "300" + ], + "references": [ + { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.10}" + }, + "name": "pf-t--chart--color--yellow--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "yellow", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "yellow", + "500" + ], + "references": [ + { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fff4cc" + }, + "name": "pf-t--color--yellow--10", + "attributes": { + "category": "color", + "type": "yellow", + "item": "10" + }, + "path": [ + "color", + "yellow", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--yellow--colorscale--400": { + "default": { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.yellow.200}" + }, + "name": "pf-t--chart--theme--colorscales--yellow--colorscale--400", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "yellow", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "yellow", + "colorscale", + "400" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--chart--color--yellow--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "yellow", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--yellow--colorscale--500": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.yellow.400}" + }, + "name": "pf-t--chart--theme--colorscales--yellow--colorscale--500", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "yellow", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "yellow", + "colorscale", + "500" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--chart--color--yellow--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "yellow", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "yellow", + "400" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--gray--colorscale--100": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.black.300}" + }, + "name": "pf-t--chart--theme--colorscales--gray--colorscale--100", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "gray", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "gray", + "colorscale", + "100" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--chart--color--black--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "black", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "black", + "300" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--gray--colorscale--200": { + "default": { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.black.100}" + }, + "name": "pf-t--chart--theme--colorscales--gray--colorscale--200", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "gray", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "gray", + "colorscale", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--chart--color--black--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "black", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "black", + "100" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--gray--colorscale--300": { + "default": { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.black.500}" + }, + "name": "pf-t--chart--theme--colorscales--gray--colorscale--300", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "gray", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "gray", + "colorscale", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--chart--color--black--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "black", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "black", + "500" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--gray--colorscale--400": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.black.200}" + }, + "name": "pf-t--chart--theme--colorscales--gray--colorscale--400", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "gray", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "gray", + "colorscale", + "400" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--chart--color--black--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "black", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "black", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--gray--colorscale--500": { + "default": { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.black.400}" + }, + "name": "pf-t--chart--theme--colorscales--gray--colorscale--500", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "gray", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "gray", + "colorscale", + "500" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--chart--color--black--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "black", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "black", + "400" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--green--colorscale--100": { + "default": { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.green.300}" + }, + "name": "pf-t--chart--theme--colorscales--green--colorscale--100", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "green", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "green", + "colorscale", + "100" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--chart--color--green--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "green", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "green", + "300" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--green--colorscale--200": { + "default": { + "type": "color", + "value": "#63993d", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.green.100}" + }, + "name": "pf-t--chart--theme--colorscales--green--colorscale--200", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "green", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "green", + "colorscale", + "200" + ], + "references": [ + { + "type": "color", + "value": "#63993d", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.50}" + }, + "name": "pf-t--chart--color--green--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "green", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "green", + "100" + ], + "references": [ + { + "type": "color", + "value": "#63993d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63993d" + }, + "name": "pf-t--color--green--50", + "attributes": { + "category": "color", + "type": "green", + "item": "50" + }, + "path": [ + "color", + "green", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--green--colorscale--300": { + "default": { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.green.500}" + }, + "name": "pf-t--chart--theme--colorscales--green--colorscale--300", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "green", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "green", + "colorscale", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.10}" + }, + "name": "pf-t--chart--color--green--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "green", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "green", + "500" + ], + "references": [ + { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e9f7df" + }, + "name": "pf-t--color--green--10", + "attributes": { + "category": "color", + "type": "green", + "item": "10" + }, + "path": [ + "color", + "green", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--green--colorscale--400": { + "default": { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.green.200}" + }, + "name": "pf-t--chart--theme--colorscales--green--colorscale--400", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "green", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "green", + "colorscale", + "400" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.40}" + }, + "name": "pf-t--chart--color--green--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "green", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--green--colorscale--500": { + "default": { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.green.400}" + }, + "name": "pf-t--chart--theme--colorscales--green--colorscale--500", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "green", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "green", + "colorscale", + "500" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--chart--color--green--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "green", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "green", + "400" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--purple--colorscale--100": { + "default": { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.purple.300}" + }, + "name": "pf-t--chart--theme--colorscales--purple--colorscale--100", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "purple", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "purple", + "colorscale", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--chart--color--purple--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "purple", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "purple", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--purple--colorscale--200": { + "default": { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.purple.100}" + }, + "name": "pf-t--chart--theme--colorscales--purple--colorscale--200", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "purple", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "purple", + "colorscale", + "200" + ], + "references": [ + { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.50}" + }, + "name": "pf-t--chart--color--purple--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "purple", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "purple", + "100" + ], + "references": [ + { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5e40be" + }, + "name": "pf-t--color--purple--50", + "attributes": { + "category": "color", + "type": "purple", + "item": "50" + }, + "path": [ + "color", + "purple", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--purple--colorscale--300": { + "default": { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.purple.500}" + }, + "name": "pf-t--chart--theme--colorscales--purple--colorscale--300", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "purple", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "purple", + "colorscale", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.10}" + }, + "name": "pf-t--chart--color--purple--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "purple", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "purple", + "500" + ], + "references": [ + { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ece6ff" + }, + "name": "pf-t--color--purple--10", + "attributes": { + "category": "color", + "type": "purple", + "item": "10" + }, + "path": [ + "color", + "purple", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--purple--colorscale--400": { + "default": { + "type": "color", + "value": "#876fd4", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.purple.200}" + }, + "name": "pf-t--chart--theme--colorscales--purple--colorscale--400", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "purple", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "purple", + "colorscale", + "400" + ], + "references": [ + { + "type": "color", + "value": "#876fd4", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.40}" + }, + "name": "pf-t--chart--color--purple--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "purple", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#876fd4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#876fd4" + }, + "name": "pf-t--color--purple--40", + "attributes": { + "category": "color", + "type": "purple", + "item": "40" + }, + "path": [ + "color", + "purple", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--purple--colorscale--500": { + "default": { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.purple.400}" + }, + "name": "pf-t--chart--theme--colorscales--purple--colorscale--500", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "purple", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "purple", + "colorscale", + "500" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--chart--color--purple--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "purple", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "purple", + "400" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--orange--colorscale--100": { + "default": { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.orange.300}" + }, + "name": "pf-t--chart--theme--colorscales--orange--colorscale--100", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "orange", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "orange", + "colorscale", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.30}" + }, + "name": "pf-t--chart--color--orange--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "orange", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "orange", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--orange--colorscale--200": { + "default": { + "type": "color", + "value": "#ca6c0f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.orange.100}" + }, + "name": "pf-t--chart--theme--colorscales--orange--colorscale--200", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "orange", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "orange", + "colorscale", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ca6c0f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.50}" + }, + "name": "pf-t--chart--color--orange--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "orange", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "orange", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ca6c0f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ca6c0f" + }, + "name": "pf-t--color--orange--50", + "attributes": { + "category": "color", + "type": "orange", + "item": "50" + }, + "path": [ + "color", + "orange", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--orange--colorscale--300": { + "default": { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.orange.500}" + }, + "name": "pf-t--chart--theme--colorscales--orange--colorscale--300", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "orange", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "orange", + "colorscale", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.10}" + }, + "name": "pf-t--chart--color--orange--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "orange", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "orange", + "500" + ], + "references": [ + { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe8cc" + }, + "name": "pf-t--color--orange--10", + "attributes": { + "category": "color", + "type": "orange", + "item": "10" + }, + "path": [ + "color", + "orange", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--orange--colorscale--400": { + "default": { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.orange.200}" + }, + "name": "pf-t--chart--theme--colorscales--orange--colorscale--400", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "orange", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "orange", + "colorscale", + "400" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.40}" + }, + "name": "pf-t--chart--color--orange--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "orange", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f5921b" + }, + "name": "pf-t--color--orange--40", + "attributes": { + "category": "color", + "type": "orange", + "item": "40" + }, + "path": [ + "color", + "orange", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--orange--colorscale--500": { + "default": { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.orange.400}" + }, + "name": "pf-t--chart--theme--colorscales--orange--colorscale--500", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "orange", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "orange", + "colorscale", + "500" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--chart--color--orange--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "orange", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "orange", + "400" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--100": { + "default": { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.blue.200}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--100", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.40}" + }, + "name": "pf-t--chart--color--blue--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "blue", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4394e5" + }, + "name": "pf-t--color--blue--40", + "attributes": { + "category": "color", + "type": "blue", + "item": "40" + }, + "path": [ + "color", + "blue", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--200": { + "default": { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.green.300}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--200", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--chart--color--green--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "green", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "green", + "300" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--300": { + "default": { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.teal.200}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--300", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "300" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.40}" + }, + "name": "pf-t--chart--color--teal--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "teal", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--400": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.yellow.300}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--400", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "400" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--chart--color--yellow--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "yellow", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "yellow", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--500": { + "default": { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.orange.200}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--500", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "500" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.40}" + }, + "name": "pf-t--chart--color--orange--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "orange", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f5921b" + }, + "name": "pf-t--color--orange--40", + "attributes": { + "category": "color", + "type": "orange", + "item": "40" + }, + "path": [ + "color", + "orange", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--600": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.blue.300}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--600", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "600" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--chart--color--blue--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "blue", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "blue", + "300" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--700": { + "default": { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.green.200}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--700", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "700" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.40}" + }, + "name": "pf-t--chart--color--green--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "green", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--800": { + "default": { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.teal.300}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--800", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "800" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--chart--color--teal--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "teal", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "teal", + "300" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--900": { + "default": { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.yellow.200}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--900", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "900" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--chart--color--yellow--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "yellow", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--1000": { + "default": { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.orange.300}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--1000", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "1000" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.30}" + }, + "name": "pf-t--chart--color--orange--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "orange", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "orange", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--1100": { + "default": { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.blue.500}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--1100", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "1100" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--chart--color--blue--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "blue", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "blue", + "500" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--1200": { + "default": { + "type": "color", + "value": "#63993d", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.green.100}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--1200", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "1200" + ], + "references": [ + { + "type": "color", + "value": "#63993d", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.50}" + }, + "name": "pf-t--chart--color--green--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "green", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "green", + "100" + ], + "references": [ + { + "type": "color", + "value": "#63993d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63993d" + }, + "name": "pf-t--color--green--50", + "attributes": { + "category": "color", + "type": "green", + "item": "50" + }, + "path": [ + "color", + "green", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--1300": { + "default": { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.teal.500}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--1300", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "1300" + ], + "references": [ + { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.10}" + }, + "name": "pf-t--chart--color--teal--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "teal", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "teal", + "500" + ], + "references": [ + { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#daf2f2" + }, + "name": "pf-t--color--teal--10", + "attributes": { + "category": "color", + "type": "teal", + "item": "10" + }, + "path": [ + "color", + "teal", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--1400": { + "default": { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.yellow.100}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--1400", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "1400" + ], + "references": [ + { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.50}" + }, + "name": "pf-t--chart--color--yellow--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "yellow", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "yellow", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b98412" + }, + "name": "pf-t--color--yellow--50", + "attributes": { + "category": "color", + "type": "yellow", + "item": "50" + }, + "path": [ + "color", + "yellow", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--1500": { + "default": { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.orange.500}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--1500", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "1500" + ], + "references": [ + { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.10}" + }, + "name": "pf-t--chart--color--orange--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "orange", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "orange", + "500" + ], + "references": [ + { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe8cc" + }, + "name": "pf-t--color--orange--10", + "attributes": { + "category": "color", + "type": "orange", + "item": "10" + }, + "path": [ + "color", + "orange", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--1600": { + "default": { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.blue.100}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--1600", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "1600" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.50}" + }, + "name": "pf-t--chart--color--blue--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "blue", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "blue", + "100" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--1700": { + "default": { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.green.500}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--1700", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "1700" + ], + "references": [ + { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.10}" + }, + "name": "pf-t--chart--color--green--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "green", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "green", + "500" + ], + "references": [ + { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e9f7df" + }, + "name": "pf-t--color--green--10", + "attributes": { + "category": "color", + "type": "green", + "item": "10" + }, + "path": [ + "color", + "green", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--1800": { + "default": { + "type": "color", + "value": "#37a3a3", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.teal.100}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--1800", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "1800" + ], + "references": [ + { + "type": "color", + "value": "#37a3a3", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.50}" + }, + "name": "pf-t--chart--color--teal--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "teal", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "teal", + "100" + ], + "references": [ + { + "type": "color", + "value": "#37a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#37a3a3" + }, + "name": "pf-t--color--teal--50", + "attributes": { + "category": "color", + "type": "teal", + "item": "50" + }, + "path": [ + "color", + "teal", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--1900": { + "default": { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.yellow.500}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--1900", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "1900" + ], + "references": [ + { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.10}" + }, + "name": "pf-t--chart--color--yellow--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "yellow", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "yellow", + "500" + ], + "references": [ + { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fff4cc" + }, + "name": "pf-t--color--yellow--10", + "attributes": { + "category": "color", + "type": "yellow", + "item": "10" + }, + "path": [ + "color", + "yellow", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--2000": { + "default": { + "type": "color", + "value": "#ca6c0f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.orange.100}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--2000", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "2000" + ], + "references": [ + { + "type": "color", + "value": "#ca6c0f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.50}" + }, + "name": "pf-t--chart--color--orange--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "orange", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "orange", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ca6c0f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ca6c0f" + }, + "name": "pf-t--color--orange--50", + "attributes": { + "category": "color", + "type": "orange", + "item": "50" + }, + "path": [ + "color", + "orange", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--2100": { + "default": { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.blue.400}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--2100", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "2100" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--chart--color--blue--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "blue", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "blue", + "400" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--2200": { + "default": { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.green.400}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--2200", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "2200" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--chart--color--green--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "green", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "green", + "400" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--2300": { + "default": { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.teal.400}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--2300", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "2300" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--chart--color--teal--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "teal", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "teal", + "400" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--2400": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.yellow.400}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--2400", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "2400" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--chart--color--yellow--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "yellow", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "yellow", + "400" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--2500": { + "default": { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.orange.400}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-ordered--colorscale--2500", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-ordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-ordered", + "colorscale", + "2500" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--chart--color--orange--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "orange", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "orange", + "400" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--100": { + "default": { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.blue.200}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--100", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.40}" + }, + "name": "pf-t--chart--color--blue--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "blue", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4394e5" + }, + "name": "pf-t--color--blue--40", + "attributes": { + "category": "color", + "type": "blue", + "item": "40" + }, + "path": [ + "color", + "blue", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--200": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.yellow.300}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--200", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--chart--color--yellow--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "yellow", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "yellow", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--300": { + "default": { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.green.200}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--300", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "300" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.40}" + }, + "name": "pf-t--chart--color--green--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "green", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--400": { + "default": { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.purple.300}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--400", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "400" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--chart--color--purple--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "purple", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "purple", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--500": { + "default": { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.orange.200}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--500", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "500" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.40}" + }, + "name": "pf-t--chart--color--orange--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "orange", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f5921b" + }, + "name": "pf-t--color--orange--40", + "attributes": { + "category": "color", + "type": "orange", + "item": "40" + }, + "path": [ + "color", + "orange", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--600": { + "default": { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.teal.300}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--600", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "600" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--chart--color--teal--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "teal", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "teal", + "300" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--700": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.black.200}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--700", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "700" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--chart--color--black--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "black", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "black", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--800": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.blue.300}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--800", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "800" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--chart--color--blue--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "blue", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "blue", + "300" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--900": { + "default": { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.yellow.200}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--900", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "900" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--chart--color--yellow--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "yellow", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--1000": { + "default": { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.green.300}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--1000", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "1000" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--chart--color--green--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "green", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "green", + "300" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--1100": { + "default": { + "type": "color", + "value": "#876fd4", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.purple.200}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--1100", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "1100" + ], + "references": [ + { + "type": "color", + "value": "#876fd4", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.40}" + }, + "name": "pf-t--chart--color--purple--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "purple", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#876fd4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#876fd4" + }, + "name": "pf-t--color--purple--40", + "attributes": { + "category": "color", + "type": "purple", + "item": "40" + }, + "path": [ + "color", + "purple", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--1200": { + "default": { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.orange.300}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--1200", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "1200" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.30}" + }, + "name": "pf-t--chart--color--orange--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "orange", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "orange", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--1300": { + "default": { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.teal.200}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--1300", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "1300" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.40}" + }, + "name": "pf-t--chart--color--teal--200", + "attributes": { + "category": "chart", + "type": "color", + "item": "teal", + "subitem": "200" + }, + "path": [ + "chart", + "color", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--1400": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.black.300}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--1400", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "1400" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--chart--color--black--300", + "attributes": { + "category": "chart", + "type": "color", + "item": "black", + "subitem": "300" + }, + "path": [ + "chart", + "color", + "black", + "300" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--1500": { + "default": { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.blue.100}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--1500", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "1500" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.50}" + }, + "name": "pf-t--chart--color--blue--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "blue", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "blue", + "100" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--1600": { + "default": { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.yellow.500}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--1600", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "1600" + ], + "references": [ + { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.10}" + }, + "name": "pf-t--chart--color--yellow--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "yellow", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "yellow", + "500" + ], + "references": [ + { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fff4cc" + }, + "name": "pf-t--color--yellow--10", + "attributes": { + "category": "color", + "type": "yellow", + "item": "10" + }, + "path": [ + "color", + "yellow", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--1700": { + "default": { + "type": "color", + "value": "#63993d", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.green.100}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--1700", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "1700" + ], + "references": [ + { + "type": "color", + "value": "#63993d", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.50}" + }, + "name": "pf-t--chart--color--green--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "green", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "green", + "100" + ], + "references": [ + { + "type": "color", + "value": "#63993d", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63993d" + }, + "name": "pf-t--color--green--50", + "attributes": { + "category": "color", + "type": "green", + "item": "50" + }, + "path": [ + "color", + "green", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--1800": { + "default": { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.purple.500}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--1800", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "1800" + ], + "references": [ + { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.10}" + }, + "name": "pf-t--chart--color--purple--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "purple", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "purple", + "500" + ], + "references": [ + { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ece6ff" + }, + "name": "pf-t--color--purple--10", + "attributes": { + "category": "color", + "type": "purple", + "item": "10" + }, + "path": [ + "color", + "purple", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--1900": { + "default": { + "type": "color", + "value": "#ca6c0f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.orange.100}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--1900", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "1900" + ], + "references": [ + { + "type": "color", + "value": "#ca6c0f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.50}" + }, + "name": "pf-t--chart--color--orange--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "orange", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "orange", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ca6c0f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ca6c0f" + }, + "name": "pf-t--color--orange--50", + "attributes": { + "category": "color", + "type": "orange", + "item": "50" + }, + "path": [ + "color", + "orange", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--2000": { + "default": { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.teal.500}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--2000", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "2000" + ], + "references": [ + { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.10}" + }, + "name": "pf-t--chart--color--teal--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "teal", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "teal", + "500" + ], + "references": [ + { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#daf2f2" + }, + "name": "pf-t--color--teal--10", + "attributes": { + "category": "color", + "type": "teal", + "item": "10" + }, + "path": [ + "color", + "teal", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--2100": { + "default": { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.black.100}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--2100", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "2100" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--chart--color--black--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "black", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "black", + "100" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--2200": { + "default": { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.blue.500}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--2200", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "2200" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--chart--color--blue--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "blue", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "blue", + "500" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--2300": { + "default": { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.yellow.100}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--2300", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "2300" + ], + "references": [ + { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.50}" + }, + "name": "pf-t--chart--color--yellow--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "yellow", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "yellow", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b98412" + }, + "name": "pf-t--color--yellow--50", + "attributes": { + "category": "color", + "type": "yellow", + "item": "50" + }, + "path": [ + "color", + "yellow", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--2400": { + "default": { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.green.500}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--2400", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "2400" + ], + "references": [ + { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.10}" + }, + "name": "pf-t--chart--color--green--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "green", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "green", + "500" + ], + "references": [ + { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e9f7df" + }, + "name": "pf-t--color--green--10", + "attributes": { + "category": "color", + "type": "green", + "item": "10" + }, + "path": [ + "color", + "green", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--2500": { + "default": { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.purple.100}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--2500", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "2500" + ], + "references": [ + { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.50}" + }, + "name": "pf-t--chart--color--purple--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "purple", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "purple", + "100" + ], + "references": [ + { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5e40be" + }, + "name": "pf-t--color--purple--50", + "attributes": { + "category": "color", + "type": "purple", + "item": "50" + }, + "path": [ + "color", + "purple", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--2600": { + "default": { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.orange.500}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--2600", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "2600" + ], + "references": [ + { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.10}" + }, + "name": "pf-t--chart--color--orange--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "orange", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "orange", + "500" + ], + "references": [ + { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe8cc" + }, + "name": "pf-t--color--orange--10", + "attributes": { + "category": "color", + "type": "orange", + "item": "10" + }, + "path": [ + "color", + "orange", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--2700": { + "default": { + "type": "color", + "value": "#37a3a3", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.teal.100}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--2700", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "2700" + ], + "references": [ + { + "type": "color", + "value": "#37a3a3", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.50}" + }, + "name": "pf-t--chart--color--teal--100", + "attributes": { + "category": "chart", + "type": "color", + "item": "teal", + "subitem": "100" + }, + "path": [ + "chart", + "color", + "teal", + "100" + ], + "references": [ + { + "type": "color", + "value": "#37a3a3", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#37a3a3" + }, + "name": "pf-t--color--teal--50", + "attributes": { + "category": "color", + "type": "teal", + "item": "50" + }, + "path": [ + "color", + "teal", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--2800": { + "default": { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.black.500}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--2800", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "2800" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--chart--color--black--500", + "attributes": { + "category": "chart", + "type": "color", + "item": "black", + "subitem": "500" + }, + "path": [ + "chart", + "color", + "black", + "500" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--2900": { + "default": { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.blue.400}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--2900", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "2900" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--chart--color--blue--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "blue", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "blue", + "400" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--3000": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.yellow.400}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--3000", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "3000" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--chart--color--yellow--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "yellow", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "yellow", + "400" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--3100": { + "default": { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.green.400}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--3100", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "3100" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--chart--color--green--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "green", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "green", + "400" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--3200": { + "default": { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.purple.400}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--3200", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "3200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--chart--color--purple--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "purple", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "purple", + "400" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--3300": { + "default": { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.orange.400}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--3300", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "3300" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--chart--color--orange--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "orange", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "orange", + "400" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--3400": { + "default": { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.teal.400}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--3400", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "3400" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--chart--color--teal--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "teal", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "teal", + "400" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--3500": { + "default": { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{chart.color.black.400}" + }, + "name": "pf-t--chart--theme--colorscales--multi-colored-unordered--colorscale--3500", + "attributes": { + "category": "chart", + "type": "theme", + "item": "colorscales", + "subitem": "multi-colored-unordered", + "state": "colorscale" + }, + "path": [ + "chart", + "theme", + "colorscales", + "multi-colored-unordered", + "colorscale", + "3500" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/charts.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--chart--color--black--400", + "attributes": { + "category": "chart", + "type": "color", + "item": "black", + "subitem": "400" + }, + "path": [ + "chart", + "color", + "black", + "400" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + ] + } + } + } +} \ No newline at end of file diff --git a/packages/module/patternfly-docs/content/token-layers-felt-glass-dark.json b/packages/module/patternfly-docs/content/token-layers-felt-glass-dark.json new file mode 100644 index 0000000..e85a3de --- /dev/null +++ b/packages/module/patternfly-docs/content/token-layers-felt-glass-dark.json @@ -0,0 +1,37670 @@ +{ + "semantic": { + "colors": { + "pf-t--global--background--color--primary--default": { + "default": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "rgba(41, 41, 41, 0.5000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "rgba(41, 41, 41, 0.5000)" + }, + "name": "pf-t--global--background--color--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "primary", + "default" + ] + } + }, + "pf-t--global--background--color--primary--hover": { + "default": { + "description": "Use as the hover state for primary backgrounds", + "type": "color", + "value": "rgba(56, 56, 56, 0.5000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for primary backgrounds", + "type": "color", + "value": "rgba(56, 56, 56, 0.5000)" + }, + "name": "pf-t--global--background--color--primary--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "hover" + }, + "path": [ + "global", + "background", + "color", + "primary", + "hover" + ] + } + }, + "pf-t--global--background--color--primary--clicked": { + "default": { + "description": "Use as the clicked state for primary backgrounds", + "type": "color", + "value": "rgba(56, 56, 56, 0.5000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for primary backgrounds", + "type": "color", + "value": "rgba(56, 56, 56, 0.5000)" + }, + "name": "pf-t--global--background--color--primary--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "clicked" + }, + "path": [ + "global", + "background", + "color", + "primary", + "clicked" + ] + } + }, + "pf-t--global--background--color--secondary--default": { + "default": { + "description": "Use as the secondary background color for UI content Use as the primary background color for UI content such as cards, page sections, and other content areas. Secondary background color is also used for our UI shell backgrounds (nav, masthead, etc).", + "type": "color", + "value": "rgba(21, 21, 21, 0.6000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the secondary background color for UI content Use as the primary background color for UI content such as cards, page sections, and other content areas. Secondary background color is also used for our UI shell backgrounds (nav, masthead, etc).", + "type": "color", + "value": "rgba(21, 21, 21, 0.6000)" + }, + "name": "pf-t--global--background--color--secondary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "secondary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "secondary", + "default" + ] + } + }, + "pf-t--global--background--color--secondary--hover": { + "default": { + "description": "Use as the hover state for secondary backgrounds", + "type": "color", + "value": "rgba(41, 41, 41, 0.6000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for secondary backgrounds", + "type": "color", + "value": "rgba(41, 41, 41, 0.6000)" + }, + "name": "pf-t--global--background--color--secondary--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "secondary", + "state": "hover" + }, + "path": [ + "global", + "background", + "color", + "secondary", + "hover" + ] + } + }, + "pf-t--global--background--color--secondary--clicked": { + "default": { + "description": "Use as the clicked state for secondary backgrounds", + "type": "color", + "value": "rgba(41, 41, 41, 0.6000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for secondary backgrounds", + "type": "color", + "value": "rgba(41, 41, 41, 0.6000)" + }, + "name": "pf-t--global--background--color--secondary--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "secondary", + "state": "clicked" + }, + "path": [ + "global", + "background", + "color", + "secondary", + "clicked" + ] + } + }, + "pf-t--global--background--color--tertiary--default": { + "default": { + "description": "Use as the tertiary background color. This is primarily used for containers that can be placed on secondary backgrounds.", + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the tertiary background color. This is primarily used for containers that can be placed on secondary backgrounds.", + "type": "color", + "value": "{global.dark.background.color.600}" + }, + "name": "pf-t--global--background--color--tertiary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "tertiary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "tertiary", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)" + }, + "name": "pf-t--global--dark--background--color--600", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "600" + }, + "path": [ + "global", + "dark", + "background", + "color", + "600" + ] + } + ] + } + }, + "pf-t--global--background--color--glass--primary--default": { + "default": { + "type": "color", + "value": "rgba(41, 41, 41, 0.5000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(41, 41, 41, 0.5000)" + }, + "name": "pf-t--global--background--color--glass--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "glass", + "state": "primary" + }, + "path": [ + "global", + "background", + "color", + "glass", + "primary", + "default" + ] + } + }, + "pf-t--global--background--color--floating--default": { + "default": { + "description": "Use as the background color for components that appear over other content, such as toast alerts, menus, modals, overlay drawers, etc.", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the background color for components that appear over other content, such as toast alerts, menus, modals, overlay drawers, etc.", + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--floating--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "floating", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "floating", + "default" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--floating--hover": { + "default": { + "description": "Use as the hover state for floating backgrounds", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for floating backgrounds", + "type": "color", + "value": "{global.dark.background.color.300}" + }, + "name": "pf-t--global--background--color--floating--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "floating", + "state": "hover" + }, + "path": [ + "global", + "background", + "color", + "floating", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--background--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "background", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--floating--clicked": { + "default": { + "description": "Use as the clicked state for floating backgrounds", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for floating backgrounds", + "type": "color", + "value": "{global.dark.background.color.300}" + }, + "name": "pf-t--global--background--color--floating--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "floating", + "state": "clicked" + }, + "path": [ + "global", + "background", + "color", + "floating", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--background--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "background", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--floating--secondary--default": { + "default": { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.background.color.floating.default}" + }, + "name": "pf-t--global--background--color--floating--secondary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "floating", + "state": "secondary" + }, + "path": [ + "global", + "background", + "color", + "floating", + "secondary", + "default" + ], + "references": [ + { + "description": "Use as the background color for components that appear over other content, such as toast alerts, menus, modals, overlay drawers, etc.", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the background color for components that appear over other content, such as toast alerts, menus, modals, overlay drawers, etc.", + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--floating--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "floating", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "floating", + "default" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--sticky--default": { + "default": { + "description": "Use as the background color for components that appear over other content, such as toast alerts, menus, modals, overlay drawers, etc.", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the background color for components that appear over other content, such as toast alerts, menus, modals, overlay drawers, etc.", + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--sticky--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "sticky", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "sticky", + "default" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--action--plain--default": { + "default": { + "description": "Use as the default background for actions with transparent backgrounds such as menu items, accordion toggles, buttons, etc.", + "type": "color", + "value": "rgba(0, 0, 0, 0.0000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background for actions with transparent backgrounds such as menu items, accordion toggles, buttons, etc.", + "type": "color", + "value": "rgba(0, 0, 0, 0.0000)" + }, + "name": "pf-t--global--background--color--action--plain--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "default" + ] + } + }, + "pf-t--global--background--color--action--plain--hover": { + "default": { + "description": "Use as the hover state for components that use the plain action default background.", + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for components that use the plain action default background.", + "type": "color", + "value": "{global.dark.background.color.600}" + }, + "name": "pf-t--global--background--color--action--plain--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "hover" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)" + }, + "name": "pf-t--global--dark--background--color--600", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "600" + }, + "path": [ + "global", + "dark", + "background", + "color", + "600" + ] + } + ] + } + }, + "pf-t--global--background--color--action--plain--clicked": { + "default": { + "description": "Use as the active/pressed state for components that use the plain action default background.", + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the active/pressed state for components that use the plain action default background.", + "type": "color", + "value": "{global.dark.background.color.600}" + }, + "name": "pf-t--global--background--color--action--plain--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)" + }, + "name": "pf-t--global--dark--background--color--600", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "600" + }, + "path": [ + "global", + "dark", + "background", + "color", + "600" + ] + } + ] + } + }, + "pf-t--global--background--color--action--plain--alt--hover": { + "default": { + "description": "Use as the hover state for components that use the plain action default background but are placed on a secondary background color (like left nav, horizontal nav, etc.)", + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for components that use the plain action default background but are placed on a secondary background color (like left nav, horizontal nav, etc.)", + "type": "color", + "value": "{global.background.color.action.plain.hover}" + }, + "name": "pf-t--global--background--color--action--plain--alt--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "alt", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for components that use the plain action default background.", + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for components that use the plain action default background.", + "type": "color", + "value": "{global.dark.background.color.600}" + }, + "name": "pf-t--global--background--color--action--plain--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "hover" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)" + }, + "name": "pf-t--global--dark--background--color--600", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "600" + }, + "path": [ + "global", + "dark", + "background", + "color", + "600" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--action--plain--alt--clicked": { + "default": { + "description": "Use as the active/pressed state for components that use the plain action default background but are placed on a secondary background color (like left nav, horizontal nav, etc.)", + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the active/pressed state for components that use the plain action default background but are placed on a secondary background color (like left nav, horizontal nav, etc.)", + "type": "color", + "value": "{global.background.color.action.plain.clicked}" + }, + "name": "pf-t--global--background--color--action--plain--alt--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "alt", + "clicked" + ], + "references": [ + { + "description": "Use as the active/pressed state for components that use the plain action default background.", + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the active/pressed state for components that use the plain action default background.", + "type": "color", + "value": "{global.dark.background.color.600}" + }, + "name": "pf-t--global--background--color--action--plain--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)" + }, + "name": "pf-t--global--dark--background--color--600", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "600" + }, + "path": [ + "global", + "dark", + "background", + "color", + "600" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--control--default": { + "default": { + "description": "Use as the default background for control elements like form inputs and menu toggles.", + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background for control elements like form inputs and menu toggles.", + "type": "color", + "value": "{global.dark.background.color.500}" + }, + "name": "pf-t--global--background--color--control--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "control", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "control", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)" + }, + "name": "pf-t--global--dark--background--color--500", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "500" + }, + "path": [ + "global", + "dark", + "background", + "color", + "500" + ] + } + ] + } + }, + "pf-t--global--background--color--control--read-only": { + "default": { + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.dark.background.color.500}" + }, + "name": "pf-t--global--background--color--control--read-only", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "control", + "state": "read-only" + }, + "path": [ + "global", + "background", + "color", + "control", + "read-only" + ], + "references": [ + { + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)" + }, + "name": "pf-t--global--dark--background--color--500", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "500" + }, + "path": [ + "global", + "dark", + "background", + "color", + "500" + ] + } + ] + } + }, + "pf-t--global--background--color--highlight--default": { + "default": { + "description": "Use as the background color for highlighted elements", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the background color for highlighted elements", + "type": "color", + "value": "{global.dark.background.color.highlight.100}" + }, + "name": "pf-t--global--background--color--highlight--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "highlight", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "highlight", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--background--color--highlight--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "highlight" + }, + "path": [ + "global", + "dark", + "background", + "color", + "highlight", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--highlight--clicked": { + "default": { + "description": "Use as the active state for for highlighted elements", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the active state for for highlighted elements", + "type": "color", + "value": "{global.dark.background.color.highlight.200}" + }, + "name": "pf-t--global--background--color--highlight--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "highlight", + "state": "clicked" + }, + "path": [ + "global", + "background", + "color", + "highlight", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--background--color--highlight--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "highlight" + }, + "path": [ + "global", + "dark", + "background", + "color", + "highlight", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--inverse--default": { + "default": { + "description": "Use as the background color components with inversed backgrounds like tooltips.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the background color components with inversed backgrounds like tooltips.", + "type": "color", + "value": "{global.dark.background.color.400}" + }, + "name": "pf-t--global--background--color--inverse--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "inverse", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "inverse", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--background--color--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "400" + }, + "path": [ + "global", + "dark", + "background", + "color", + "400" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--inverse--hover": { + "default": { + "description": "Use as the hover color for interactive components with inversed backgrounds.", + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover color for interactive components with inversed backgrounds.", + "type": "color", + "value": "{global.dark.background.color.450}" + }, + "name": "pf-t--global--background--color--inverse--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "inverse", + "state": "hover" + }, + "path": [ + "global", + "background", + "color", + "inverse", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--dark--background--color--450", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "450" + }, + "path": [ + "global", + "dark", + "background", + "color", + "450" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--inverse--clicked": { + "default": { + "description": "Use as the clicked color for interactive components with inversed backgrounds.", + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked color for interactive components with inversed backgrounds.", + "type": "color", + "value": "{global.dark.background.color.450}" + }, + "name": "pf-t--global--background--color--inverse--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "inverse", + "state": "clicked" + }, + "path": [ + "global", + "background", + "color", + "inverse", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--dark--background--color--450", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "450" + }, + "path": [ + "global", + "dark", + "background", + "color", + "450" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--disabled--default": { + "default": { + "description": "Use as the background color for disabled components.", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the background color for disabled components.", + "type": "color", + "value": "{global.dark.color.disabled.100}" + }, + "name": "pf-t--global--background--color--disabled--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "disabled", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "disabled", + "default" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--disabled--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "100" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--backdrop--default": { + "default": { + "description": "Use as the background color for the backdrop component that shows beneath a modal/about modal/floating wizard etc.", + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the background color for the backdrop component that shows beneath a modal/about modal/floating wizard etc.", + "type": "color", + "value": "{global.dark.background.color.500}" + }, + "name": "pf-t--global--background--color--backdrop--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "backdrop", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "backdrop", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)" + }, + "name": "pf-t--global--dark--background--color--500", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "500" + }, + "path": [ + "global", + "dark", + "background", + "color", + "500" + ] + } + ] + } + }, + "pf-t--global--background--color--striped--row--default": { + "default": { + "type": "color", + "value": "rgba(21, 21, 21, 0.3000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(21, 21, 21, 0.3000)" + }, + "name": "pf-t--global--background--color--striped--row--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "striped", + "state": "row" + }, + "path": [ + "global", + "background", + "color", + "striped", + "row", + "default" + ] + } + }, + "pf-t--global--background--color--loading--skeleton--default": { + "default": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.dark.background.color.700}" + }, + "name": "pf-t--global--background--color--loading--skeleton--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "loading", + "state": "skeleton" + }, + "path": [ + "global", + "background", + "color", + "loading", + "skeleton", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)" + }, + "name": "pf-t--global--dark--background--color--700", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "700" + }, + "path": [ + "global", + "dark", + "background", + "color", + "700" + ] + } + ] + } + }, + "pf-t--global--background--color--loading--skeleton--subtle": { + "default": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.dark.background.color.600}" + }, + "name": "pf-t--global--background--color--loading--skeleton--subtle", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "loading", + "state": "skeleton" + }, + "path": [ + "global", + "background", + "color", + "loading", + "skeleton", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)" + }, + "name": "pf-t--global--dark--background--color--600", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "600" + }, + "path": [ + "global", + "dark", + "background", + "color", + "600" + ] + } + ] + } + }, + "pf-t--global--background--filter--glass--blur--primary": { + "default": { + "type": "number", + "value": "blur(16px)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--background--filter--glass--blur--primary", + "attributes": { + "category": "global", + "type": "background", + "item": "filter", + "subitem": "glass", + "state": "blur" + }, + "path": [ + "global", + "background", + "filter", + "glass", + "blur", + "primary" + ] + } + }, + "pf-t--global--color--brand--default": { + "default": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.100}" + }, + "name": "pf-t--global--color--brand--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "default" + }, + "path": [ + "global", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--hover": { + "default": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--color--brand--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--clicked": { + "default": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--color--brand--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--subtle--default": { + "default": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#003366", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.subtle.100}" + }, + "name": "pf-t--global--color--brand--subtle--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "default" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "default" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.70}" + }, + "name": "pf-t--global--dark--color--brand--subtle--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "100" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--subtle--hover": { + "default": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.dark.color.brand.subtle.200}" + }, + "name": "pf-t--global--color--brand--subtle--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "hover" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--dark--color--brand--subtle--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--subtle--clicked": { + "default": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.dark.color.brand.subtle.200}" + }, + "name": "pf-t--global--color--brand--subtle--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--dark--color--brand--subtle--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--favorite--default": { + "default": { + "description": "Use as the default color for elements that have been favorited", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that have been favorited", + "type": "color", + "value": "{global.dark.color.favorite.100}" + }, + "name": "pf-t--global--color--favorite--default", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "default" + }, + "path": [ + "global", + "color", + "favorite", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--favorite--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--favorite--hover": { + "default": { + "description": "Use as the hover state for elements that have been favorited", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have been favorited", + "type": "color", + "value": "{global.dark.color.favorite.200}" + }, + "name": "pf-t--global--color--favorite--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "favorite", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--favorite--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--favorite--clicked": { + "default": { + "description": "Use as the clicked state for elements that have been favorited", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have been favorited", + "type": "color", + "value": "{global.dark.color.favorite.200}" + }, + "name": "pf-t--global--color--favorite--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "favorite", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--favorite--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--success--default": { + "default": { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.success.100}" + }, + "name": "pf-t--global--color--status--success--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.40}" + }, + "name": "pf-t--global--dark--color--status--success--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "100" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--success--hover": { + "default": { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--success--clicked": { + "default": { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--warning--default": { + "default": { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.warning.100}" + }, + "name": "pf-t--global--color--status--warning--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--status--warning--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--warning--hover": { + "default": { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--warning--clicked": { + "default": { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--danger--default": { + "default": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.danger.100}" + }, + "name": "pf-t--global--color--status--danger--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "name": "pf-t--global--dark--color--status--danger--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--danger--hover": { + "default": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--danger--clicked": { + "default": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--info--default": { + "default": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.info.100}" + }, + "name": "pf-t--global--color--status--info--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--status--info--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--info--hover": { + "default": { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--info--clicked": { + "default": { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--custom--default": { + "default": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.100}" + }, + "name": "pf-t--global--color--status--custom--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.40}" + }, + "name": "pf-t--global--dark--color--status--custom--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "100" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--custom--hover": { + "default": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--custom--clicked": { + "default": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--default": { + "default": { + "description": "Use as the default color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.color.brand.default}" + }, + "name": "pf-t--global--color--status--unread--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "unread", + "default" + ], + "references": [ + { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.100}" + }, + "name": "pf-t--global--color--brand--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "default" + }, + "path": [ + "global", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--hover": { + "default": { + "description": "Use as the hover state color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.color.brand.hover}" + }, + "name": "pf-t--global--color--status--unread--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "unread", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--color--brand--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--clicked": { + "default": { + "description": "Use as the clicked state color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.color.brand.clicked}" + }, + "name": "pf-t--global--color--status--unread--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "unread", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--color--brand--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--attention--default": { + "default": { + "description": "Use as the default color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.color.status.danger.default}" + }, + "name": "pf-t--global--color--status--unread--attention--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "attention" + }, + "path": [ + "global", + "color", + "status", + "unread", + "attention", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.danger.100}" + }, + "name": "pf-t--global--color--status--danger--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "name": "pf-t--global--dark--color--status--danger--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--attention--clicked": { + "default": { + "description": "Use as the hover state color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.color.status.danger.clicked}" + }, + "name": "pf-t--global--color--status--unread--attention--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "attention" + }, + "path": [ + "global", + "color", + "status", + "unread", + "attention", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--attention--hover": { + "default": { + "description": "Use as the clicked state color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.color.status.danger.hover}" + }, + "name": "pf-t--global--color--status--unread--attention--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "attention" + }, + "path": [ + "global", + "color", + "status", + "unread", + "attention", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--read--on-secondary": { + "default": { + "description": "Use as the default color for elements that convey a read status and are placed on a secondary background", + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that convey a read status and are placed on a secondary background", + "type": "color", + "value": "{global.background.color.control.default}" + }, + "name": "pf-t--global--color--status--read--on-secondary", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "read", + "state": "on-secondary" + }, + "path": [ + "global", + "color", + "status", + "read", + "on-secondary" + ], + "references": [ + { + "description": "Use as the default background for control elements like form inputs and menu toggles.", + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background for control elements like form inputs and menu toggles.", + "type": "color", + "value": "{global.dark.background.color.500}" + }, + "name": "pf-t--global--background--color--control--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "control", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "control", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)" + }, + "name": "pf-t--global--dark--background--color--500", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "500" + }, + "path": [ + "global", + "dark", + "background", + "color", + "500" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--read--on-primary": { + "default": { + "description": "Use as the default color for elements that convey a read status and are placed on a primary background", + "type": "color", + "value": "rgba(21, 21, 21, 0.6000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that convey a read status and are placed on a primary background", + "type": "color", + "value": "{global.background.color.secondary.default}" + }, + "name": "pf-t--global--color--status--read--on-primary", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "read", + "state": "on-primary" + }, + "path": [ + "global", + "color", + "status", + "read", + "on-primary" + ], + "references": [ + { + "description": "Use as the secondary background color for UI content Use as the primary background color for UI content such as cards, page sections, and other content areas. Secondary background color is also used for our UI shell backgrounds (nav, masthead, etc).", + "type": "color", + "value": "rgba(21, 21, 21, 0.6000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the secondary background color for UI content Use as the primary background color for UI content such as cards, page sections, and other content areas. Secondary background color is also used for our UI shell backgrounds (nav, masthead, etc).", + "type": "color", + "value": "rgba(21, 21, 21, 0.6000)" + }, + "name": "pf-t--global--background--color--secondary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "secondary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "secondary", + "default" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--red--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.red.100}" + }, + "name": "pf-t--global--color--nonstatus--red--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f9a8a8" + }, + "name": "pf-t--color--red--30", + "attributes": { + "category": "color", + "type": "red", + "item": "30" + }, + "path": [ + "color", + "red", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--red--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status red background color.", + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status red background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.red.200}" + }, + "name": "pf-t--global--color--nonstatus--red--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--red--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status red background color.", + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status red background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.red.200}" + }, + "name": "pf-t--global--color--nonstatus--red--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orange--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.orange.100}" + }, + "name": "pf-t--global--color--nonstatus--orange--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orange--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status orange background color.", + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status orange background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.orange.200}" + }, + "name": "pf-t--global--color--nonstatus--orange--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orange--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status orange background color.", + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status orange background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.orange.200}" + }, + "name": "pf-t--global--color--nonstatus--orange--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orangered--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange-red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange-red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.orangered.100}" + }, + "name": "pf-t--global--color--nonstatus--orangered--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orangered--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status orange-red background color.", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status orange-red background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.orangered.200}" + }, + "name": "pf-t--global--color--nonstatus--orangered--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orangered--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status orange-red background color.", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status orange-red background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.orangered.200}" + }, + "name": "pf-t--global--color--nonstatus--orangered--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--yellow--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.yellow.100}" + }, + "name": "pf-t--global--color--nonstatus--yellow--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--yellow--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status yellow background color.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status yellow background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.yellow.200}" + }, + "name": "pf-t--global--color--nonstatus--yellow--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--yellow--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status yellow background color.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status yellow background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.yellow.200}" + }, + "name": "pf-t--global--color--nonstatus--yellow--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--green--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.green.100}" + }, + "name": "pf-t--global--color--nonstatus--green--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "default" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "100" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--green--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status green background color.", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status green background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.green.200}" + }, + "name": "pf-t--global--color--nonstatus--green--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--green--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status green background color.", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status green background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.green.200}" + }, + "name": "pf-t--global--color--nonstatus--green--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--teal--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.teal.100}" + }, + "name": "pf-t--global--color--nonstatus--teal--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "default" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "100" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--teal--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status teal background color.", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status teal background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.teal.200}" + }, + "name": "pf-t--global--color--nonstatus--teal--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--teal--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status teal background color.", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status teal background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.teal.200}" + }, + "name": "pf-t--global--color--nonstatus--teal--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--blue--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.blue.100}" + }, + "name": "pf-t--global--color--nonstatus--blue--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--blue--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status blue background color.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status blue background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.blue.200}" + }, + "name": "pf-t--global--color--nonstatus--blue--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--blue--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status blue background color.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status blue background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.blue.200}" + }, + "name": "pf-t--global--color--nonstatus--blue--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--purple--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.purple.100}" + }, + "name": "pf-t--global--color--nonstatus--purple--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--purple--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status purple background color.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status purple background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.purple.200}" + }, + "name": "pf-t--global--color--nonstatus--purple--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--purple--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status purple background color.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status purple background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.purple.200}" + }, + "name": "pf-t--global--color--nonstatus--purple--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--gray--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.gray.100}" + }, + "name": "pf-t--global--color--nonstatus--gray--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "default" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--gray--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status gray background color.", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status gray background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.gray.200}" + }, + "name": "pf-t--global--color--nonstatus--gray--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--gray--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status gray background color.", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status gray background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.gray.200}" + }, + "name": "pf-t--global--color--nonstatus--gray--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--regular": { + "default": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--subtle": { + "default": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "{global.dark.icon.color.200}" + }, + "name": "pf-t--global--icon--color--subtle", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "icon", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--icon--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--inverse": { + "default": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--disabled": { + "default": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "{global.dark.color.disabled.200}" + }, + "name": "pf-t--global--icon--color--disabled", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "disabled" + }, + "path": [ + "global", + "icon", + "color", + "disabled" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--disabled--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-disabled": { + "default": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "{global.dark.color.disabled.300}" + }, + "name": "pf-t--global--icon--color--on-disabled", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-disabled" + }, + "path": [ + "global", + "icon", + "color", + "on-disabled" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--color--disabled--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "300" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--default": { + "default": { + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--icon--color--brand--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "default" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--hover": { + "default": { + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.dark.color.brand.300}" + }, + "name": "pf-t--global--icon--color--brand--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "hover" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--color--brand--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--clicked": { + "default": { + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.dark.color.brand.300}" + }, + "name": "pf-t--global--icon--color--brand--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "clicked" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--color--brand--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--accent--default": { + "default": { + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.color.brand.accent.default}" + }, + "name": "pf-t--global--icon--color--brand--accent--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "accent", + "default" + ], + "references": [ + { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#ee0000", + "filePath": "tokens/felt/glass-dark/felt.color.glass.dark.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.accent.100}" + }, + "name": "pf-t--global--color--brand--accent--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "default" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.50}" + }, + "name": "pf-t--global--dark--color--brand--accent--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ee0000" + }, + "name": "pf-t--color--red--50", + "attributes": { + "category": "color", + "type": "red", + "item": "50" + }, + "path": [ + "color", + "red", + "50" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--default": { + "default": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--on-brand--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "default" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--on-brand--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "hover" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--on-brand--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "clicked" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--subtle--default": { + "default": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--on-brand--subtle--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "subtle", + "default" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--subtle--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--on-brand--subtle--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "subtle", + "hover" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--subtle--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--on-brand--subtle--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "subtle", + "clicked" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--favorite--default": { + "default": { + "description": "Use as the icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "{global.color.favorite.default}" + }, + "name": "pf-t--global--icon--color--favorite--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "favorite", + "state": "default" + }, + "path": [ + "global", + "icon", + "color", + "favorite", + "default" + ], + "references": [ + { + "description": "Use as the default color for elements that have been favorited", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that have been favorited", + "type": "color", + "value": "{global.dark.color.favorite.100}" + }, + "name": "pf-t--global--color--favorite--default", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "default" + }, + "path": [ + "global", + "color", + "favorite", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--favorite--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--favorite--hover": { + "default": { + "description": "Use as the hover state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "{global.color.favorite.hover}" + }, + "name": "pf-t--global--icon--color--favorite--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "favorite", + "state": "hover" + }, + "path": [ + "global", + "icon", + "color", + "favorite", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have been favorited", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have been favorited", + "type": "color", + "value": "{global.dark.color.favorite.200}" + }, + "name": "pf-t--global--color--favorite--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "favorite", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--favorite--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--favorite--clicked": { + "default": { + "description": "Use as the clicked state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "{global.color.favorite.clicked}" + }, + "name": "pf-t--global--icon--color--favorite--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "favorite", + "state": "clicked" + }, + "path": [ + "global", + "icon", + "color", + "favorite", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for elements that have been favorited", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have been favorited", + "type": "color", + "value": "{global.dark.color.favorite.200}" + }, + "name": "pf-t--global--color--favorite--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "favorite", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--favorite--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--success--default": { + "default": { + "description": "Use as the default color for text that communicates a success status.", + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that communicates a success status.", + "type": "color", + "value": "{global.color.status.success.default}" + }, + "name": "pf-t--global--icon--color--status--success--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.success.100}" + }, + "name": "pf-t--global--color--status--success--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.40}" + }, + "name": "pf-t--global--dark--color--status--success--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "100" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--success--hover": { + "default": { + "description": "Use as the hover state color for text that communicates a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that communicates a success status.", + "type": "color", + "value": "{global.color.status.success.hover}" + }, + "name": "pf-t--global--icon--color--status--success--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--success--clicked": { + "default": { + "description": "Use as the clicked state color for text that communicates a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that communicates a success status.", + "type": "color", + "value": "{global.color.status.success.clicked}" + }, + "name": "pf-t--global--icon--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-success--default": { + "default": { + "description": "Use as the default color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-success--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-success", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-success--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-success--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-success", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-success--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-success--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-success", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--warning--default": { + "default": { + "description": "Use as the default color for text that communicates a warning status.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that communicates a warning status.", + "type": "color", + "value": "{global.color.status.warning.default}" + }, + "name": "pf-t--global--icon--color--status--warning--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.warning.100}" + }, + "name": "pf-t--global--color--status--warning--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--status--warning--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--warning--hover": { + "default": { + "description": "Use as the hover state color for text that communicates a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that communicates a warning status.", + "type": "color", + "value": "{global.color.status.warning.hover}" + }, + "name": "pf-t--global--icon--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--warning--clicked": { + "default": { + "description": "Use as the clicked state color for text that communicates a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that communicates a warning status.", + "type": "color", + "value": "{global.color.status.warning.clicked}" + }, + "name": "pf-t--global--icon--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-warning--default": { + "default": { + "description": "Use as the default color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-warning--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-warning", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-warning--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-warning--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-warning", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-warning--clicked": { + "default": { + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-warning--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-warning", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--danger--default": { + "default": { + "description": "Use as the default color for icons that convey danger, like in alerts or banners.", + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that convey danger, like in alerts or banners.", + "type": "color", + "value": "{global.color.status.danger.default}" + }, + "name": "pf-t--global--icon--color--status--danger--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.danger.100}" + }, + "name": "pf-t--global--color--status--danger--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "name": "pf-t--global--dark--color--status--danger--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--danger--hover": { + "default": { + "description": "Use as the hover state for icons that indicate danger.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for icons that indicate danger.", + "type": "color", + "value": "{global.color.status.danger.hover}" + }, + "name": "pf-t--global--icon--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--danger--clicked": { + "default": { + "description": "Use as the clicked state for icons that indicate danger.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for icons that indicate danger.", + "type": "color", + "value": "{global.color.status.danger.clicked}" + }, + "name": "pf-t--global--icon--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-danger--default": { + "default": { + "description": "Use as the default color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-danger--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-danger", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-danger--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-danger--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-danger", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-danger--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-danger--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-danger", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--info--default": { + "default": { + "description": "Use as the default color for icons that identify informational messages, like in alerts or banners.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that identify informational messages, like in alerts or banners.", + "type": "color", + "value": "{global.color.status.info.default}" + }, + "name": "pf-t--global--icon--color--status--info--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.info.100}" + }, + "name": "pf-t--global--color--status--info--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--status--info--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--info--hover": { + "default": { + "description": "Use as the hover state for icons that identify informational messages.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for icons that identify informational messages.", + "type": "color", + "value": "{global.color.status.info.hover}" + }, + "name": "pf-t--global--icon--color--status--info--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--info--clicked": { + "default": { + "description": "Use as the clicked state for icons that identify informational messages.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for icons that identify informational messages.", + "type": "color", + "value": "{global.color.status.info.clicked}" + }, + "name": "pf-t--global--icon--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-info--default": { + "default": { + "description": "Use as the default color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-info--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-info", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-info--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-info--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-info", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-info--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-info--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-info", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--custom--default": { + "default": { + "description": "Use as the default color for icons that convey generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that convey generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.color.status.custom.default}" + }, + "name": "pf-t--global--icon--color--status--custom--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.100}" + }, + "name": "pf-t--global--color--status--custom--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.40}" + }, + "name": "pf-t--global--dark--color--status--custom--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "100" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--custom--hover": { + "default": { + "description": "Use as the hover state for icons that convey generic status with no associated severity.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for icons that convey generic status with no associated severity.", + "type": "color", + "value": "{global.color.status.custom.hover}" + }, + "name": "pf-t--global--icon--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--custom--clicked": { + "default": { + "description": "Use as the clicked state for icons that convey generic status with no associated severity.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for icons that convey generic status with no associated severity.", + "type": "color", + "value": "{global.color.status.custom.clicked}" + }, + "name": "pf-t--global--icon--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-custom--default": { + "default": { + "description": "Use as the default color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status color, make sure that this token meets contrast requirements with your new custom status color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status color, make sure that this token meets contrast requirements with your new custom status color.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-custom--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-custom", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-custom--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status hover color, make sure that this token meets contrast requirements with your new custom status hover color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status hover color, make sure that this token meets contrast requirements with your new custom status hover color.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-custom--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-custom", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-custom--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status clicked color, make sure that this token meets contrast requirements with your new custom status clicked color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status clicked color, make sure that this token meets contrast requirements with your new custom status clicked color.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-custom--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-custom", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-default--default": { + "default": { + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-default--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-default", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-default--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-default--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-default", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-default--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-default--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-default", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-attention--default": { + "default": { + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-attention--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-attention", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-attention--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-attention--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-attention", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-attention--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-attention--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-attention", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--undefined--default": { + "default": { + "description": "Use as the default color for severity icons that don’t communicate a specific severity level for issues.", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that don’t communicate a specific severity level for issues.", + "type": "color", + "value": "{global.dark.color.severity.undefined.100}" + }, + "name": "pf-t--global--icon--color--severity--undefined--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "undefined" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "undefined", + "default" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--severity--undefined--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "undefined" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "undefined", + "100" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--none--default": { + "default": { + "description": "Use as the default color for severity icons that identify no issues.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that identify no issues.", + "type": "color", + "value": "{global.dark.color.severity.none.100}" + }, + "name": "pf-t--global--icon--color--severity--none--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "none" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "none", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--severity--none--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "none" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "none", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--minor--default": { + "default": { + "description": "Use as the default color for severity icons that identify issues of minor severity.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that identify issues of minor severity.", + "type": "color", + "value": "{global.dark.color.severity.minor.100}" + }, + "name": "pf-t--global--icon--color--severity--minor--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "minor" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "minor", + "default" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--color--severity--minor--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "minor" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "minor", + "100" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--moderate--default": { + "default": { + "description": "Use as the default color for severity icons that identify issues of moderate severity.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that identify issues of moderate severity.", + "type": "color", + "value": "{global.dark.color.severity.moderate.100}" + }, + "name": "pf-t--global--icon--color--severity--moderate--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "moderate" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "moderate", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--severity--moderate--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "moderate" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "moderate", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--important--default": { + "default": { + "description": "Use as the default color for severity icons that identify issues of important severity.", + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that identify issues of important severity.", + "type": "color", + "value": "{global.dark.color.severity.important.100}" + }, + "name": "pf-t--global--icon--color--severity--important--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "important" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "important", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.40}" + }, + "name": "pf-t--global--dark--color--severity--important--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "important" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "important", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f5921b" + }, + "name": "pf-t--color--orange--40", + "attributes": { + "category": "color", + "type": "orange", + "item": "40" + }, + "path": [ + "color", + "orange", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--critical--default": { + "default": { + "description": "Use as the default color for severity icons that identify issues of critical severity.", + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that identify issues of critical severity.", + "type": "color", + "value": "{global.dark.color.severity.critical.100}" + }, + "name": "pf-t--global--icon--color--severity--critical--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "critical" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "critical", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "name": "pf-t--global--dark--color--severity--critical--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "critical" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "critical", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-red--default": { + "default": { + "description": "Use as the default color for icons that are placed on a non status red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a non status red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-red--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-red", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-red--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a non status red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a non status red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-red--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-red", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-red--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-red--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-red", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orangered--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orangered--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orangered", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orangered--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orangered--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orangered", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orangered--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orangered--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orangered", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orange--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orange--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orange", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orange--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orange--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orange", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orange--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orange--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orange", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-yellow--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-yellow--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-yellow", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-yellow--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-yellow--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-yellow", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-yellow--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-yellow--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-yellow", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-green--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-green--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-green", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-green--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-green--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-green", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-green--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-green--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-green", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-teal--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-teal--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-teal", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-teal--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-teal--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-teal", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-teal--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-teal--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-teal", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-blue--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-blue--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-blue", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-blue--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-blue--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-blue", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-blue--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-blue--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-blue", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-purple--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-purple--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-purple", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-purple--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-purple--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-purple", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-purple--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-purple--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-purple", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-gray--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-gray--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-gray", + "default" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-gray--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-gray--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-gray", + "hover" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-gray--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-gray--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-gray", + "clicked" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--high-contrast": { + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "rgba(255, 255, 255, 0.0000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "rgba(255, 255, 255, 0.0000)" + }, + "name": "pf-t--global--border--color--high-contrast", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "high-contrast" + }, + "path": [ + "global", + "border", + "color", + "high-contrast" + ] + } + }, + "pf-t--global--border--color--default": { + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.border.color.100}" + }, + "name": "pf-t--global--border--color--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "default" + }, + "path": [ + "global", + "border", + "color", + "default" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--dark--border--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "border", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--hover": { + "default": { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.brand.100}" + }, + "name": "pf-t--global--border--color--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "hover" + }, + "path": [ + "global", + "border", + "color", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--clicked": { + "default": { + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--border--color--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "clicked" + }, + "path": [ + "global", + "border", + "color", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--subtle": { + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.border.color.50}" + }, + "name": "pf-t--global--border--color--subtle", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "border", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--border--color--50", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "50" + }, + "path": [ + "global", + "dark", + "border", + "color", + "50" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--disabled": { + "default": { + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.disabled.200}" + }, + "name": "pf-t--global--border--color--disabled", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "disabled" + }, + "path": [ + "global", + "border", + "color", + "disabled" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--disabled--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--alt": { + "default": { + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "type": "color", + "value": "rgba(41, 41, 41, 0.5000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "name": "pf-t--global--border--color--alt", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "alt" + }, + "path": [ + "global", + "border", + "color", + "alt" + ], + "references": [ + { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "rgba(41, 41, 41, 0.5000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "rgba(41, 41, 41, 0.5000)" + }, + "name": "pf-t--global--background--color--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "primary", + "default" + ] + } + ] + } + }, + "pf-t--global--border--color--on-secondary": { + "default": { + "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "type": "color", + "value": "{global.dark.border.color.200}" + }, + "name": "pf-t--global--border--color--on-secondary", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "on-secondary" + }, + "path": [ + "global", + "border", + "color", + "on-secondary" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--border--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "border", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--control--default": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.dark.border.color.200}" + }, + "name": "pf-t--global--border--color--control--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "control", + "state": "default" + }, + "path": [ + "global", + "border", + "color", + "control", + "default" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--border--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "border", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--control--read-only": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.dark.border.color.50}" + }, + "name": "pf-t--global--border--color--control--read-only", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "control", + "state": "read-only" + }, + "path": [ + "global", + "border", + "color", + "control", + "read-only" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--border--color--50", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "50" + }, + "path": [ + "global", + "dark", + "border", + "color", + "50" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--default": { + "default": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.color.brand.default}" + }, + "name": "pf-t--global--border--color--brand--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "default" + }, + "path": [ + "global", + "border", + "color", + "brand", + "default" + ], + "references": [ + { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.100}" + }, + "name": "pf-t--global--color--brand--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "default" + }, + "path": [ + "global", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--hover": { + "default": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.color.brand.hover}" + }, + "name": "pf-t--global--border--color--brand--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "hover" + }, + "path": [ + "global", + "border", + "color", + "brand", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--color--brand--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--clicked": { + "default": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.color.brand.clicked}" + }, + "name": "pf-t--global--border--color--brand--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "clicked" + }, + "path": [ + "global", + "border", + "color", + "brand", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--color--brand--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--subtle--default": { + "default": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.dark.color.brand.subtle.200}" + }, + "name": "pf-t--global--border--color--brand--subtle--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "border", + "color", + "brand", + "subtle", + "default" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--dark--color--brand--subtle--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--subtle--hover": { + "default": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.dark.color.brand.subtle.300}" + }, + "name": "pf-t--global--border--color--brand--subtle--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "border", + "color", + "brand", + "subtle", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--subtle--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "300" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--subtle--clicked": { + "default": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.dark.color.brand.subtle.300}" + }, + "name": "pf-t--global--border--color--brand--subtle--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "border", + "color", + "brand", + "subtle", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--subtle--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "300" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--success--default": { + "default": { + "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.success.default}" + }, + "name": "pf-t--global--border--color--status--success--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "border", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.success.100}" + }, + "name": "pf-t--global--color--status--success--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.40}" + }, + "name": "pf-t--global--dark--color--status--success--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "100" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--success--hover": { + "default": { + "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "type": "color", + "value": "{global.color.status.success.hover}" + }, + "name": "pf-t--global--border--color--status--success--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "border", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--success--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "type": "color", + "value": "{global.color.status.success.clicked}" + }, + "name": "pf-t--global--border--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "border", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--warning--default": { + "default": { + "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.warning.default}" + }, + "name": "pf-t--global--border--color--status--warning--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "border", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.warning.100}" + }, + "name": "pf-t--global--color--status--warning--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--status--warning--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--warning--hover": { + "default": { + "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.warning.hover}" + }, + "name": "pf-t--global--border--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "border", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--warning--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.warning.clicked}" + }, + "name": "pf-t--global--border--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "border", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--danger--default": { + "default": { + "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.danger.default}" + }, + "name": "pf-t--global--border--color--status--danger--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "border", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.danger.100}" + }, + "name": "pf-t--global--color--status--danger--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "name": "pf-t--global--dark--color--status--danger--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--danger--hover": { + "default": { + "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.danger.hover}" + }, + "name": "pf-t--global--border--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "border", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--danger--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.danger.clicked}" + }, + "name": "pf-t--global--border--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "border", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--info--default": { + "default": { + "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.info.default}" + }, + "name": "pf-t--global--border--color--status--info--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "border", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.info.100}" + }, + "name": "pf-t--global--color--status--info--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--status--info--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--info--hover": { + "default": { + "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.info.hover}" + }, + "name": "pf-t--global--border--color--status--info--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "border", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--info--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.info.clicked}" + }, + "name": "pf-t--global--border--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "border", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--custom--default": { + "default": { + "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.custom.default}" + }, + "name": "pf-t--global--border--color--status--custom--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "border", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.100}" + }, + "name": "pf-t--global--color--status--custom--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.40}" + }, + "name": "pf-t--global--dark--color--status--custom--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "100" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--custom--hover": { + "default": { + "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.custom.hover}" + }, + "name": "pf-t--global--border--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "border", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--custom--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.custom.clicked}" + }, + "name": "pf-t--global--border--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "border", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--glass--default": { + "default": { + "type": "color", + "value": "rgba(41, 41, 41, 0.5000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.border.color.alt}" + }, + "name": "pf-t--global--border--color--glass--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "glass", + "state": "default" + }, + "path": [ + "global", + "border", + "color", + "glass", + "default" + ], + "references": [ + { + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "type": "color", + "value": "rgba(41, 41, 41, 0.5000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "name": "pf-t--global--border--color--alt", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "alt" + }, + "path": [ + "global", + "border", + "color", + "alt" + ], + "references": [ + { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "rgba(41, 41, 41, 0.5000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "rgba(41, 41, 41, 0.5000)" + }, + "name": "pf-t--global--background--color--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "primary", + "default" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--red--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.red.100}" + }, + "name": "pf-t--global--border--color--nonstatus--red--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "red", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f9a8a8" + }, + "name": "pf-t--color--red--30", + "attributes": { + "category": "color", + "type": "red", + "item": "30" + }, + "path": [ + "color", + "red", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--red--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.red.200}" + }, + "name": "pf-t--global--border--color--nonstatus--red--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "red", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--red--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.red.200}" + }, + "name": "pf-t--global--border--color--nonstatus--red--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "red", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orangered--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.orangered.100}" + }, + "name": "pf-t--global--border--color--nonstatus--orangered--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orangered", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orangered--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.orangered.200}" + }, + "name": "pf-t--global--border--color--nonstatus--orangered--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orangered", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orangered--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.orangered.200}" + }, + "name": "pf-t--global--border--color--nonstatus--orangered--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orangered", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orange--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.orange.100}" + }, + "name": "pf-t--global--border--color--nonstatus--orange--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orange", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orange--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.orange.200}" + }, + "name": "pf-t--global--border--color--nonstatus--orange--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orange", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orange--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.orange.200}" + }, + "name": "pf-t--global--border--color--nonstatus--orange--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orange", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--yellow--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.yellow.100}" + }, + "name": "pf-t--global--border--color--nonstatus--yellow--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "yellow", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--yellow--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.yellow.200}" + }, + "name": "pf-t--global--border--color--nonstatus--yellow--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "yellow", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--yellow--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.yellow.200}" + }, + "name": "pf-t--global--border--color--nonstatus--yellow--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "yellow", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--green--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.green.100}" + }, + "name": "pf-t--global--border--color--nonstatus--green--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "green", + "default" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "100" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--green--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.green.200}" + }, + "name": "pf-t--global--border--color--nonstatus--green--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "green", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--green--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.green.200}" + }, + "name": "pf-t--global--border--color--nonstatus--green--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "green", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--teal--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.teal.100}" + }, + "name": "pf-t--global--border--color--nonstatus--teal--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "teal", + "default" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "100" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--teal--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.teal.200}" + }, + "name": "pf-t--global--border--color--nonstatus--teal--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "teal", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--teal--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.teal.200}" + }, + "name": "pf-t--global--border--color--nonstatus--teal--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "teal", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--blue--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.blue.100}" + }, + "name": "pf-t--global--border--color--nonstatus--blue--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "blue", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--blue--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.blue.200}" + }, + "name": "pf-t--global--border--color--nonstatus--blue--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "blue", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--blue--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.blue.200}" + }, + "name": "pf-t--global--border--color--nonstatus--blue--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "blue", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--purple--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.purple.100}" + }, + "name": "pf-t--global--border--color--nonstatus--purple--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "purple", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--purple--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.purple.200}" + }, + "name": "pf-t--global--border--color--nonstatus--purple--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "purple", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--purple--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.purple.200}" + }, + "name": "pf-t--global--border--color--nonstatus--purple--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "purple", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--gray--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.gray.200}" + }, + "name": "pf-t--global--border--color--nonstatus--gray--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "gray", + "default" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--gray--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.gray.300}" + }, + "name": "pf-t--global--border--color--nonstatus--gray--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "gray", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "300" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--gray--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.gray.300}" + }, + "name": "pf-t--global--border--color--nonstatus--gray--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "gray", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "300" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--main--default": { + "default": { + "type": "color", + "value": "rgba(41, 41, 41, 0.5000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "name": "pf-t--global--border--color--main--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "main", + "state": "default" + }, + "path": [ + "global", + "border", + "color", + "main", + "default" + ], + "references": [ + { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "rgba(41, 41, 41, 0.5000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "rgba(41, 41, 41, 0.5000)" + }, + "name": "pf-t--global--background--color--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "primary", + "default" + ] + } + ] + } + }, + "pf-t--global--text--color--regular": { + "default": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--subtle": { + "default": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "{global.dark.text.color.200}" + }, + "name": "pf-t--global--text--color--subtle", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "text", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--text--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "text", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--inverse": { + "default": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--placeholder": { + "default": { + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "type": "color", + "value": "{global.text.color.subtle}" + }, + "name": "pf-t--global--text--color--placeholder", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "placeholder" + }, + "path": [ + "global", + "text", + "color", + "placeholder" + ], + "references": [ + { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "{global.dark.text.color.200}" + }, + "name": "pf-t--global--text--color--subtle", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "text", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--text--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "text", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--disabled": { + "default": { + "description": "Use as the color of text on disabled elements, like disabled menu items.", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text on disabled elements, like disabled menu items.", + "type": "color", + "value": "{global.dark.color.disabled.200}" + }, + "name": "pf-t--global--text--color--disabled", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "disabled" + }, + "path": [ + "global", + "text", + "color", + "disabled" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--disabled--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-disabled": { + "default": { + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", + "type": "color", + "value": "{global.dark.color.disabled.300}" + }, + "name": "pf-t--global--text--color--on-disabled", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-disabled" + }, + "path": [ + "global", + "text", + "color", + "on-disabled" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--color--disabled--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "300" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--required": { + "default": { + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", + "type": "color", + "value": "{global.dark.text.color.400}" + }, + "name": "pf-t--global--text--color--required", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "required" + }, + "path": [ + "global", + "text", + "color", + "required" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--text--color--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "400" + }, + "path": [ + "global", + "dark", + "text", + "color", + "400" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-highlight": { + "default": { + "description": "Use as the color of text that is highlighted.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is highlighted.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--on-highlight", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-highlight" + }, + "path": [ + "global", + "text", + "color", + "on-highlight" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--link--default": { + "default": { + "description": "Use as the default text color for links.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default text color for links.", + "type": "color", + "value": "{global.dark.text.color.link.100}" + }, + "name": "pf-t--global--text--color--link--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "link", + "state": "default" + }, + "path": [ + "global", + "text", + "color", + "link", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--text--color--link--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--link--hover": { + "default": { + "description": "Use as the hover state text color for links.", + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state text color for links.", + "type": "color", + "value": "{global.dark.text.color.link.200}" + }, + "name": "pf-t--global--text--color--link--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "link", + "state": "hover" + }, + "path": [ + "global", + "text", + "color", + "link", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--text--color--link--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "200" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--link--visited": { + "default": { + "description": "Use as the color to indicate that a link has been visited.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color to indicate that a link has been visited.", + "type": "color", + "value": "{global.dark.text.color.link.300}" + }, + "name": "pf-t--global--text--color--link--visited", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "link", + "state": "visited" + }, + "path": [ + "global", + "text", + "color", + "link", + "visited" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--text--color--link--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--brand--default": { + "default": { + "description": "Use as the default color for branded text.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for branded text.", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--text--color--brand--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "brand", + "state": "default" + }, + "path": [ + "global", + "text", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--brand--hover": { + "default": { + "description": "Use as the hover state color for branded text.", + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for branded text.", + "type": "color", + "value": "{global.dark.color.brand.300}" + }, + "name": "pf-t--global--text--color--brand--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "brand", + "state": "hover" + }, + "path": [ + "global", + "text", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--color--brand--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--brand--clicked": { + "default": { + "description": "Use as the clicked state color for branded text.", + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for branded text.", + "type": "color", + "value": "{global.dark.color.brand.300}" + }, + "name": "pf-t--global--text--color--brand--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "brand", + "state": "clicked" + }, + "path": [ + "global", + "text", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--color--brand--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--default": { + "default": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--on-brand--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "default" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--hover": { + "default": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--on-brand--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "hover" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--clicked": { + "default": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--on-brand--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "clicked" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--subtle--default": { + "default": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--on-brand--subtle--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "subtle", + "default" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--subtle--hover": { + "default": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--on-brand--subtle--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "subtle", + "hover" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--subtle--clicked": { + "default": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--on-brand--subtle--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "subtle", + "clicked" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--success--default": { + "default": { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.success.default}" + }, + "name": "pf-t--global--text--color--status--success--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "text", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.success.100}" + }, + "name": "pf-t--global--color--status--success--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.40}" + }, + "name": "pf-t--global--dark--color--status--success--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "100" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--success--hover": { + "default": { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.success.hover}" + }, + "name": "pf-t--global--text--color--status--success--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "text", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--success--clicked": { + "default": { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.success.clicked}" + }, + "name": "pf-t--global--text--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "text", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-success--default": { + "default": { + "description": "Use as the default color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-success--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-success", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-success--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-success--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-success", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-success--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-success--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-success", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--warning--default": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.warning.default}" + }, + "name": "pf-t--global--text--color--status--warning--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.warning.100}" + }, + "name": "pf-t--global--color--status--warning--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--status--warning--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--warning--hover": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.warning.hover}" + }, + "name": "pf-t--global--text--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--warning--clicked": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.warning.clicked}" + }, + "name": "pf-t--global--text--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-warning--default": { + "default": { + "description": "Use as the default color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-warning--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-warning", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-warning--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-warning--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-warning", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-warning--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-warning--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-warning", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--danger--default": { + "default": { + "description": "Use as the default color for text that communicates a danger status.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that communicates a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.250}" + }, + "name": "pf-t--global--text--color--status--danger--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--status--danger--250", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "250" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--danger--hover": { + "default": { + "description": "Use as the hover state color for text that communicates a danger status.", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that communicates a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.300}" + }, + "name": "pf-t--global--text--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--status--danger--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "300" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--danger--clicked": { + "default": { + "description": "Use as the clicked state color for text that communicates a danger status.", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that communicates a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.300}" + }, + "name": "pf-t--global--text--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--status--danger--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "300" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-danger--default": { + "default": { + "description": "Use as the default color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-danger--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-danger", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-danger--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-danger--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-danger", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-danger--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-danger--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-danger", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--info--default": { + "default": { + "description": "Use as the default color for text that communicates am info status.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that communicates am info status.", + "type": "color", + "value": "{global.color.status.info.default}" + }, + "name": "pf-t--global--text--color--status--info--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "text", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.info.100}" + }, + "name": "pf-t--global--color--status--info--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--status--info--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--info--hover": { + "default": { + "description": "Use as the hover state color for text that communicates an infostatus.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that communicates an infostatus.", + "type": "color", + "value": "{global.color.status.info.hover}" + }, + "name": "pf-t--global--text--color--status--info--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "text", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--info--clicked": { + "default": { + "description": "Use as the clicked state color for text that communicates an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that communicates an info status.", + "type": "color", + "value": "{global.color.status.info.clicked}" + }, + "name": "pf-t--global--text--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "text", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-info--default": { + "default": { + "description": "Use as the default color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-info--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-info", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-info--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-info--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-info", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-info--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-info--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-info", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--custom--default": { + "default": { + "description": "Use as the default color for text that communicates a custom status.", + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that communicates a custom status.", + "type": "color", + "value": "{global.color.status.custom.default}" + }, + "name": "pf-t--global--text--color--status--custom--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.100}" + }, + "name": "pf-t--global--color--status--custom--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.40}" + }, + "name": "pf-t--global--dark--color--status--custom--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "100" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--custom--hover": { + "default": { + "description": "Use as the hover state color for text that communicates a custom status.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that communicates a custom status.", + "type": "color", + "value": "{global.color.status.custom.hover}" + }, + "name": "pf-t--global--text--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--custom--clicked": { + "default": { + "description": "Use as the clicked state color for text that communicates a custom status.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that communicates a custom status.", + "type": "color", + "value": "{global.color.status.custom.clicked}" + }, + "name": "pf-t--global--text--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-custom--default": { + "default": { + "description": "Use as the default color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-custom--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-custom", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-custom--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-custom--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-custom", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-custom--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-custom--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-custom", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-default--default": { + "default": { + "description": "Use as the default color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-default--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-default", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-default--hover": { + "default": { + "description": "Use as the hover state color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-default--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-default", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-default--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-default--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-default", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-attention--default": { + "default": { + "description": "Use as the default color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-attention--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-attention", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-attention--hover": { + "default": { + "description": "Use as the hover state color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-attention--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-attention", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-attention--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-attention--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-attention", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-red--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-red--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-red", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-red--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-red--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-red", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-red--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-red--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-red", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orangered--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orangered--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orangered", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orangered--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orangered--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orangered", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orangered--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orangered--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orangered", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orange--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orange--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orange", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orange--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orange--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orange", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orange--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orange--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orange", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-yellow--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-yellow--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-yellow", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-yellow--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-yellow--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-yellow", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-yellow--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-yellow--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-yellow", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-green--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-green--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-green", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-green--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-green--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-green", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-green--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-green--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-green", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-teal--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-teal--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-teal", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-teal--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-teal--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-teal", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-teal--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-teal--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-teal", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-blue--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-blue--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-blue", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-blue--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-blue--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-blue", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-blue--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-blue--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-blue", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-purple--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-purple--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-purple", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-purple--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-purple--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-purple", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-purple--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-purple--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-purple", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-gray--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-gray--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-gray", + "default" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-gray--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-gray--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-gray", + "hover" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-gray--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-gray--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-gray", + "clicked" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--sm--default": { + "default": { + "description": "Use as the color of small box-shadows.", + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of small box-shadows.", + "type": "color", + "value": "{global.dark.box-shadow.color.100}" + }, + "name": "pf-t--global--box-shadow--color--sm--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "sm", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "color", + "sm", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)" + }, + "name": "pf-t--global--dark--box-shadow--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--sm--directional": { + "default": { + "description": "Use as the color of small box-shadows.", + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of small box-shadows.", + "type": "color", + "value": "{global.dark.box-shadow.color.200}" + }, + "name": "pf-t--global--box-shadow--color--sm--directional", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "sm", + "state": "directional" + }, + "path": [ + "global", + "box-shadow", + "color", + "sm", + "directional" + ], + "references": [ + { + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)" + }, + "name": "pf-t--global--dark--box-shadow--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "200" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--md--default": { + "default": { + "description": "Use as the color of medium box-shadows.", + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of medium box-shadows.", + "type": "color", + "value": "{global.dark.box-shadow.color.100}" + }, + "name": "pf-t--global--box-shadow--color--md--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "md", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "color", + "md", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)" + }, + "name": "pf-t--global--dark--box-shadow--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--md--directional": { + "default": { + "description": "Use as the color of medium box-shadows.", + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of medium box-shadows.", + "type": "color", + "value": "{global.dark.box-shadow.color.100}" + }, + "name": "pf-t--global--box-shadow--color--md--directional", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "md", + "state": "directional" + }, + "path": [ + "global", + "box-shadow", + "color", + "md", + "directional" + ], + "references": [ + { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)" + }, + "name": "pf-t--global--dark--box-shadow--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--lg--default": { + "default": { + "description": "Use as the color of large box-shadows.", + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of large box-shadows.", + "type": "color", + "value": "{global.dark.box-shadow.color.100}" + }, + "name": "pf-t--global--box-shadow--color--lg--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "lg", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "color", + "lg", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)" + }, + "name": "pf-t--global--dark--box-shadow--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--lg--directional": { + "default": { + "description": "Use as the color of large box-shadows.", + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of large box-shadows.", + "type": "color", + "value": "{global.dark.box-shadow.color.200}" + }, + "name": "pf-t--global--box-shadow--color--lg--directional", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "lg", + "state": "directional" + }, + "path": [ + "global", + "box-shadow", + "color", + "lg", + "directional" + ], + "references": [ + { + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)" + }, + "name": "pf-t--global--dark--box-shadow--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "200" + ] + } + ] + } + }, + "pf-t--global--text-decoration--color--default": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.dark.border.color.200}" + }, + "name": "pf-t--global--text-decoration--color--default", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "color", + "subitem": "default" + }, + "path": [ + "global", + "text-decoration", + "color", + "default" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--border--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "border", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--text-decoration--color--hover": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.border.color.hover}" + }, + "name": "pf-t--global--text-decoration--color--hover", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "color", + "subitem": "hover" + }, + "path": [ + "global", + "text-decoration", + "color", + "hover" + ], + "references": [ + { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.brand.100}" + }, + "name": "pf-t--global--border--color--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "hover" + }, + "path": [ + "global", + "border", + "color", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--focus-ring--color--default": { + "default": { + "description": "Use as color value for custom focus rings", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as color value for custom focus rings", + "type": "color", + "value": "{global.dark.focus-ring.color.100}" + }, + "name": "pf-t--global--focus-ring--color--default", + "attributes": { + "category": "global", + "type": "focus-ring", + "item": "color", + "subitem": "default" + }, + "path": [ + "global", + "focus-ring", + "color", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--focus-ring--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "focus-ring", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "focus-ring", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + } + }, + "dimension": {}, + "motion": {} + }, + "base": { + "colors": { + "pf-t--global--dark--background--color--100": { + "default": { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--dark--background--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "background", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + }, + "pf-t--global--dark--background--color--200": { + "default": { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + }, + "pf-t--global--dark--background--color--300": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--background--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "background", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + }, + "pf-t--global--dark--background--color--400": { + "default": { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--background--color--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "400" + }, + "path": [ + "global", + "dark", + "background", + "color", + "400" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--background--color--450": { + "default": { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--dark--background--color--450", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "450" + }, + "path": [ + "global", + "dark", + "background", + "color", + "450" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--background--color--500": { + "default": { + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)" + }, + "name": "pf-t--global--dark--background--color--500", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "500" + }, + "path": [ + "global", + "dark", + "background", + "color", + "500" + ] + } + }, + "pf-t--global--dark--background--color--600": { + "default": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)" + }, + "name": "pf-t--global--dark--background--color--600", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "600" + }, + "path": [ + "global", + "dark", + "background", + "color", + "600" + ] + } + }, + "pf-t--global--dark--background--color--700": { + "default": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)" + }, + "name": "pf-t--global--dark--background--color--700", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "700" + }, + "path": [ + "global", + "dark", + "background", + "color", + "700" + ] + } + }, + "pf-t--global--dark--background--color--highlight--100": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--background--color--highlight--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "highlight" + }, + "path": [ + "global", + "dark", + "background", + "color", + "highlight", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--background--color--highlight--200": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--background--color--highlight--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "highlight" + }, + "path": [ + "global", + "dark", + "background", + "color", + "highlight", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--100": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--200": { + "default": { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--300": { + "default": { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--color--brand--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--accent--100": { + "default": { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.50}" + }, + "name": "pf-t--global--dark--color--brand--accent--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ee0000" + }, + "name": "pf-t--color--red--50", + "attributes": { + "category": "color", + "type": "red", + "item": "50" + }, + "path": [ + "color", + "red", + "50" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--accent--200": { + "default": { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.60}" + }, + "name": "pf-t--global--dark--color--brand--accent--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a60000" + }, + "name": "pf-t--color--red--60", + "attributes": { + "category": "color", + "type": "red", + "item": "60" + }, + "path": [ + "color", + "red", + "60" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--accent--300": { + "default": { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.40}" + }, + "name": "pf-t--global--dark--color--brand--accent--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f56e6e" + }, + "name": "pf-t--color--red--40", + "attributes": { + "category": "color", + "type": "red", + "item": "40" + }, + "path": [ + "color", + "red", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--accent--350": { + "default": { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--dark--color--brand--accent--350", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "350" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--accent--400": { + "default": { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--color--brand--accent--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "400" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--subtle--100": { + "default": { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.70}" + }, + "name": "pf-t--global--dark--color--brand--subtle--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "100" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--subtle--200": { + "default": { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--dark--color--brand--subtle--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--subtle--300": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--subtle--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "300" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--disabled--100": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--disabled--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "100" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--disabled--200": { + "default": { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--disabled--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + }, + "pf-t--global--dark--color--disabled--300": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--color--disabled--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "300" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + }, + "pf-t--global--dark--color--disabled--400": { + "default": { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--color--disabled--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "400" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "400" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + }, + "pf-t--global--dark--color--favorite--100": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--favorite--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--favorite--200": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--favorite--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--undefined--100": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--severity--undefined--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "undefined" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "undefined", + "100" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--none--100": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--severity--none--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "none" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "none", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--minor--100": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--color--severity--minor--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "minor" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "minor", + "100" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--moderate--100": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--severity--moderate--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "moderate" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "moderate", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--important--100": { + "default": { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.40}" + }, + "name": "pf-t--global--dark--color--severity--important--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "important" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "important", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f5921b" + }, + "name": "pf-t--color--orange--40", + "attributes": { + "category": "color", + "type": "orange", + "item": "40" + }, + "path": [ + "color", + "orange", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--critical--100": { + "default": { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "name": "pf-t--global--dark--color--severity--critical--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "critical" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "critical", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--critical--200": { + "default": { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--severity--critical--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "critical" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "critical", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--success--100": { + "default": { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.40}" + }, + "name": "pf-t--global--dark--color--status--success--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "100" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--success--200": { + "default": { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--success--300": { + "default": { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--status--success--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "300" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--warning--100": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--status--warning--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--warning--200": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--danger--100": { + "default": { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "name": "pf-t--global--dark--color--status--danger--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--danger--200": { + "default": { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--danger--250": { + "default": { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--status--danger--250", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "250" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--danger--300": { + "default": { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--status--danger--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "300" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--info--100": { + "default": { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--status--info--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--info--200": { + "default": { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--info--300": { + "default": { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.10}" + }, + "name": "pf-t--global--dark--color--status--info--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ece6ff" + }, + "name": "pf-t--color--purple--10", + "attributes": { + "category": "color", + "type": "purple", + "item": "10" + }, + "path": [ + "color", + "purple", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--custom--100": { + "default": { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.40}" + }, + "name": "pf-t--global--dark--color--status--custom--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "100" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--custom--200": { + "default": { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--custom--300": { + "default": { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--status--custom--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--red--100": { + "default": { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f9a8a8" + }, + "name": "pf-t--color--red--30", + "attributes": { + "category": "color", + "type": "red", + "item": "30" + }, + "path": [ + "color", + "red", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--red--200": { + "default": { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--red--300": { + "default": { + "type": "color", + "value": "#fce3e3", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "300" + ], + "references": [ + { + "type": "color", + "value": "#fce3e3", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fce3e3" + }, + "name": "pf-t--color--red--10", + "attributes": { + "category": "color", + "type": "red", + "item": "10" + }, + "path": [ + "color", + "red", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--orangered--100": { + "default": { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--orangered--200": { + "default": { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--orangered--300": { + "default": { + "type": "color", + "value": "#ffe3d9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffe3d9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe3d9" + }, + "name": "pf-t--color--red-orange--10", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "10" + }, + "path": [ + "color", + "red-orange", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--orange--100": { + "default": { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--orange--200": { + "default": { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--orange--300": { + "default": { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe8cc" + }, + "name": "pf-t--color--orange--10", + "attributes": { + "category": "color", + "type": "orange", + "item": "10" + }, + "path": [ + "color", + "orange", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--yellow--100": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--yellow--200": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--yellow--300": { + "default": { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "300" + ], + "references": [ + { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fff4cc" + }, + "name": "pf-t--color--yellow--10", + "attributes": { + "category": "color", + "type": "yellow", + "item": "10" + }, + "path": [ + "color", + "yellow", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--green--100": { + "default": { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "100" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--green--200": { + "default": { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--green--300": { + "default": { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e9f7df" + }, + "name": "pf-t--color--green--10", + "attributes": { + "category": "color", + "type": "green", + "item": "10" + }, + "path": [ + "color", + "green", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--teal--100": { + "default": { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "100" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--teal--200": { + "default": { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--teal--300": { + "default": { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "300" + ], + "references": [ + { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#daf2f2" + }, + "name": "pf-t--color--teal--10", + "attributes": { + "category": "color", + "type": "teal", + "item": "10" + }, + "path": [ + "color", + "teal", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--blue--100": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--blue--200": { + "default": { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--blue--300": { + "default": { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--purple--100": { + "default": { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--purple--200": { + "default": { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--purple--300": { + "default": { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ece6ff" + }, + "name": "pf-t--color--purple--10", + "attributes": { + "category": "color", + "type": "purple", + "item": "10" + }, + "path": [ + "color", + "purple", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--gray--50": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--50", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "50" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--gray--100": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--gray--200": { + "default": { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--gray--300": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "300" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--border--color--50": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--border--color--50", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "50" + }, + "path": [ + "global", + "dark", + "border", + "color", + "50" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + }, + "pf-t--global--dark--border--color--100": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--dark--border--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "border", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + }, + "pf-t--global--dark--border--color--200": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--border--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "border", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--border--color--300": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--border--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "border", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--100": { + "default": { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--200": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--text--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "text", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--300": { + "default": { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--400": { + "default": { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--text--color--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "400" + }, + "path": [ + "global", + "dark", + "text", + "color", + "400" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--link--100": { + "default": { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--text--color--link--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--link--200": { + "default": { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--text--color--link--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "200" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--link--300": { + "default": { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--text--color--link--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--link--400": { + "default": { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--text--color--link--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "400" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--icon--color--100": { + "default": { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--icon--color--200": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--icon--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--icon--color--300": { + "default": { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + }, + "pf-t--global--dark--box-shadow--color--100": { + "default": { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)" + }, + "name": "pf-t--global--dark--box-shadow--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "100" + ] + } + }, + "pf-t--global--dark--box-shadow--color--200": { + "default": { + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)" + }, + "name": "pf-t--global--dark--box-shadow--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "200" + ] + } + }, + "pf-t--global--dark--focus-ring--color--100": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--focus-ring--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "focus-ring", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "focus-ring", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + } + }, + "dimension": {}, + "motion": {} + }, + "palette": { + "pf-t--global--color--brand--accent--default": { + "felt": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#ee0000", + "filePath": "tokens/felt/glass-dark/felt.color.glass.dark.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.accent.100}" + }, + "name": "pf-t--global--color--brand--accent--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "default" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.50}" + }, + "name": "pf-t--global--dark--color--brand--accent--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ee0000" + }, + "name": "pf-t--color--red--50", + "attributes": { + "category": "color", + "type": "red", + "item": "50" + }, + "path": [ + "color", + "red", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--accent--hover": { + "felt": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#a60000", + "filePath": "tokens/felt/glass-dark/felt.color.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.dark.color.brand.accent.200}" + }, + "name": "pf-t--global--color--brand--accent--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "hover" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.60}" + }, + "name": "pf-t--global--dark--color--brand--accent--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a60000" + }, + "name": "pf-t--color--red--60", + "attributes": { + "category": "color", + "type": "red", + "item": "60" + }, + "path": [ + "color", + "red", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--accent--clicked": { + "felt": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#a60000", + "filePath": "tokens/felt/glass-dark/felt.color.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.dark.color.brand.accent.200}" + }, + "name": "pf-t--global--color--brand--accent--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.60}" + }, + "name": "pf-t--global--dark--color--brand--accent--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a60000" + }, + "name": "pf-t--color--red--60", + "attributes": { + "category": "color", + "type": "red", + "item": "60" + }, + "path": [ + "color", + "red", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--accent--hover": { + "felt": { + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/felt/glass-dark/felt.color.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.dark.color.brand.accent.300}" + }, + "name": "pf-t--global--icon--color--brand--accent--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "accent", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.40}" + }, + "name": "pf-t--global--dark--color--brand--accent--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f56e6e" + }, + "name": "pf-t--color--red--40", + "attributes": { + "category": "color", + "type": "red", + "item": "40" + }, + "path": [ + "color", + "red", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--accent--clicked": { + "felt": { + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/felt/glass-dark/felt.color.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.dark.color.brand.accent.300}" + }, + "name": "pf-t--global--icon--color--brand--accent--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "accent", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.40}" + }, + "name": "pf-t--global--dark--color--brand--accent--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f56e6e" + }, + "name": "pf-t--color--red--40", + "attributes": { + "category": "color", + "type": "red", + "item": "40" + }, + "path": [ + "color", + "red", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--accent--default": { + "felt": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/felt/glass-dark/felt.color.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--on-brand--accent--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "accent", + "default" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--accent--hover": { + "felt": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/felt/glass-dark/felt.color.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--on-brand--accent--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "accent", + "hover" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--accent--clicked": { + "felt": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/felt/glass-dark/felt.color.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--on-brand--accent--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "accent", + "clicked" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--accent--default": { + "felt": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/felt/glass-dark/felt.color.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.dark.color.brand.accent.400}" + }, + "name": "pf-t--global--border--color--brand--accent--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "border", + "color", + "brand", + "accent", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--color--brand--accent--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "400" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--accent--hover": { + "felt": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/felt/glass-dark/felt.color.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.dark.color.brand.accent.400}" + }, + "name": "pf-t--global--border--color--brand--accent--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "border", + "color", + "brand", + "accent", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--color--brand--accent--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "400" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--accent--clicked": { + "felt": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/felt/glass-dark/felt.color.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.dark.color.brand.accent.400}" + }, + "name": "pf-t--global--border--color--brand--accent--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "border", + "color", + "brand", + "accent", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--color--brand--accent--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "400" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--accent--default": { + "felt": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/felt/glass-dark/felt.color.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--on-brand--accent--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "accent", + "default" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--accent--hover": { + "felt": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/felt/glass-dark/felt.color.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--on-brand--accent--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "accent", + "hover" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--accent--clicked": { + "felt": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/felt/glass-dark/felt.color.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--on-brand--accent--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "accent", + "clicked" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--color--white": { + "default": { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + }, + "pf-t--color--black": { + "default": { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#000000" + }, + "name": "pf-t--color--black", + "attributes": { + "category": "color", + "type": "black" + }, + "path": [ + "color", + "black" + ] + } + }, + "pf-t--color--gray--10": { + "default": { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + }, + "pf-t--color--gray--20": { + "default": { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + }, + "pf-t--color--gray--30": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + }, + "pf-t--color--gray--40": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + }, + "pf-t--color--gray--45": { + "default": { + "type": "color", + "value": "#8c8c8c", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#8c8c8c" + }, + "name": "pf-t--color--gray--45", + "attributes": { + "category": "color", + "type": "gray", + "item": "45" + }, + "path": [ + "color", + "gray", + "45" + ] + } + }, + "pf-t--color--gray--50": { + "default": { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + }, + "pf-t--color--gray--60": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + }, + "pf-t--color--gray--70": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + }, + "pf-t--color--gray--80": { + "default": { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + }, + "pf-t--color--gray--90": { + "default": { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + }, + "pf-t--color--gray--95": { + "default": { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + }, + "pf-t--color--blue--10": { + "default": { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + }, + "pf-t--color--blue--20": { + "default": { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + }, + "pf-t--color--blue--30": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + }, + "pf-t--color--blue--40": { + "default": { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4394e5" + }, + "name": "pf-t--color--blue--40", + "attributes": { + "category": "color", + "type": "blue", + "item": "40" + }, + "path": [ + "color", + "blue", + "40" + ] + } + }, + "pf-t--color--blue--50": { + "default": { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + }, + "pf-t--color--blue--60": { + "default": { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + }, + "pf-t--color--blue--70": { + "default": { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } + }, + "pf-t--color--blue--80": { + "default": { + "type": "color", + "value": "#032142", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#032142" + }, + "name": "pf-t--color--blue--80", + "attributes": { + "category": "color", + "type": "blue", + "item": "80" + }, + "path": [ + "color", + "blue", + "80" + ] + } + }, + "pf-t--color--teal--10": { + "default": { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#daf2f2" + }, + "name": "pf-t--color--teal--10", + "attributes": { + "category": "color", + "type": "teal", + "item": "10" + }, + "path": [ + "color", + "teal", + "10" + ] + } + }, + "pf-t--color--teal--20": { + "default": { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + }, + "pf-t--color--teal--30": { + "default": { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + }, + "pf-t--color--teal--40": { + "default": { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + }, + "pf-t--color--teal--50": { + "default": { + "type": "color", + "value": "#37a3a3", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#37a3a3" + }, + "name": "pf-t--color--teal--50", + "attributes": { + "category": "color", + "type": "teal", + "item": "50" + }, + "path": [ + "color", + "teal", + "50" + ] + } + }, + "pf-t--color--teal--60": { + "default": { + "type": "color", + "value": "#147878", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#147878" + }, + "name": "pf-t--color--teal--60", + "attributes": { + "category": "color", + "type": "teal", + "item": "60" + }, + "path": [ + "color", + "teal", + "60" + ] + } + }, + "pf-t--color--teal--70": { + "default": { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d4d" + }, + "name": "pf-t--color--teal--70", + "attributes": { + "category": "color", + "type": "teal", + "item": "70" + }, + "path": [ + "color", + "teal", + "70" + ] + } + }, + "pf-t--color--teal--80": { + "default": { + "type": "color", + "value": "#003333", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003333" + }, + "name": "pf-t--color--teal--80", + "attributes": { + "category": "color", + "type": "teal", + "item": "80" + }, + "path": [ + "color", + "teal", + "80" + ] + } + }, + "pf-t--color--yellow--10": { + "default": { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fff4cc" + }, + "name": "pf-t--color--yellow--10", + "attributes": { + "category": "color", + "type": "yellow", + "item": "10" + }, + "path": [ + "color", + "yellow", + "10" + ] + } + }, + "pf-t--color--yellow--20": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + }, + "pf-t--color--yellow--30": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + }, + "pf-t--color--yellow--40": { + "default": { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + }, + "pf-t--color--yellow--50": { + "default": { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b98412" + }, + "name": "pf-t--color--yellow--50", + "attributes": { + "category": "color", + "type": "yellow", + "item": "50" + }, + "path": [ + "color", + "yellow", + "50" + ] + } + }, + "pf-t--color--yellow--60": { + "default": { + "type": "color", + "value": "#96640f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#96640f" + }, + "name": "pf-t--color--yellow--60", + "attributes": { + "category": "color", + "type": "yellow", + "item": "60" + }, + "path": [ + "color", + "yellow", + "60" + ] + } + }, + "pf-t--color--yellow--70": { + "default": { + "type": "color", + "value": "#73480b", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#73480b" + }, + "name": "pf-t--color--yellow--70", + "attributes": { + "category": "color", + "type": "yellow", + "item": "70" + }, + "path": [ + "color", + "yellow", + "70" + ] + } + }, + "pf-t--color--yellow--80": { + "default": { + "type": "color", + "value": "#54330b", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#54330b" + }, + "name": "pf-t--color--yellow--80", + "attributes": { + "category": "color", + "type": "yellow", + "item": "80" + }, + "path": [ + "color", + "yellow", + "80" + ] + } + }, + "pf-t--color--green--10": { + "default": { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e9f7df" + }, + "name": "pf-t--color--green--10", + "attributes": { + "category": "color", + "type": "green", + "item": "10" + }, + "path": [ + "color", + "green", + "10" + ] + } + }, + "pf-t--color--green--20": { + "default": { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + }, + "pf-t--color--green--30": { + "default": { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + }, + "pf-t--color--green--40": { + "default": { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + }, + "pf-t--color--green--50": { + "default": { + "type": "color", + "value": "#63993d", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63993d" + }, + "name": "pf-t--color--green--50", + "attributes": { + "category": "color", + "type": "green", + "item": "50" + }, + "path": [ + "color", + "green", + "50" + ] + } + }, + "pf-t--color--green--60": { + "default": { + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d7317" + }, + "name": "pf-t--color--green--60", + "attributes": { + "category": "color", + "type": "green", + "item": "60" + }, + "path": [ + "color", + "green", + "60" + ] + } + }, + "pf-t--color--green--70": { + "default": { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#204d00" + }, + "name": "pf-t--color--green--70", + "attributes": { + "category": "color", + "type": "green", + "item": "70" + }, + "path": [ + "color", + "green", + "70" + ] + } + }, + "pf-t--color--green--80": { + "default": { + "type": "color", + "value": "#183301", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#183301" + }, + "name": "pf-t--color--green--80", + "attributes": { + "category": "color", + "type": "green", + "item": "80" + }, + "path": [ + "color", + "green", + "80" + ] + } + }, + "pf-t--color--orange--10": { + "default": { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe8cc" + }, + "name": "pf-t--color--orange--10", + "attributes": { + "category": "color", + "type": "orange", + "item": "10" + }, + "path": [ + "color", + "orange", + "10" + ] + } + }, + "pf-t--color--orange--20": { + "default": { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + }, + "pf-t--color--orange--30": { + "default": { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + }, + "pf-t--color--orange--40": { + "default": { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f5921b" + }, + "name": "pf-t--color--orange--40", + "attributes": { + "category": "color", + "type": "orange", + "item": "40" + }, + "path": [ + "color", + "orange", + "40" + ] + } + }, + "pf-t--color--orange--50": { + "default": { + "type": "color", + "value": "#ca6c0f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ca6c0f" + }, + "name": "pf-t--color--orange--50", + "attributes": { + "category": "color", + "type": "orange", + "item": "50" + }, + "path": [ + "color", + "orange", + "50" + ] + } + }, + "pf-t--color--orange--60": { + "default": { + "type": "color", + "value": "#9e4a06", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9e4a06" + }, + "name": "pf-t--color--orange--60", + "attributes": { + "category": "color", + "type": "orange", + "item": "60" + }, + "path": [ + "color", + "orange", + "60" + ] + } + }, + "pf-t--color--orange--70": { + "default": { + "type": "color", + "value": "#732e00", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#732e00" + }, + "name": "pf-t--color--orange--70", + "attributes": { + "category": "color", + "type": "orange", + "item": "70" + }, + "path": [ + "color", + "orange", + "70" + ] + } + }, + "pf-t--color--orange--80": { + "default": { + "type": "color", + "value": "#4d1f00", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d1f00" + }, + "name": "pf-t--color--orange--80", + "attributes": { + "category": "color", + "type": "orange", + "item": "80" + }, + "path": [ + "color", + "orange", + "80" + ] + } + }, + "pf-t--color--red-orange--10": { + "default": { + "type": "color", + "value": "#ffe3d9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe3d9" + }, + "name": "pf-t--color--red-orange--10", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "10" + }, + "path": [ + "color", + "red-orange", + "10" + ] + } + }, + "pf-t--color--red-orange--20": { + "default": { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + }, + "pf-t--color--red-orange--30": { + "default": { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + }, + "pf-t--color--red-orange--40": { + "default": { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + }, + "pf-t--color--red-orange--50": { + "default": { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + }, + "pf-t--color--red-orange--60": { + "default": { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b1380b" + }, + "name": "pf-t--color--red-orange--60", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "60" + }, + "path": [ + "color", + "red-orange", + "60" + ] + } + }, + "pf-t--color--red-orange--70": { + "default": { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } + }, + "pf-t--color--red-orange--80": { + "default": { + "type": "color", + "value": "#4c1405", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4c1405" + }, + "name": "pf-t--color--red-orange--80", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "80" + }, + "path": [ + "color", + "red-orange", + "80" + ] + } + }, + "pf-t--color--purple--10": { + "default": { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ece6ff" + }, + "name": "pf-t--color--purple--10", + "attributes": { + "category": "color", + "type": "purple", + "item": "10" + }, + "path": [ + "color", + "purple", + "10" + ] + } + }, + "pf-t--color--purple--20": { + "default": { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + }, + "pf-t--color--purple--30": { + "default": { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + }, + "pf-t--color--purple--40": { + "default": { + "type": "color", + "value": "#876fd4", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#876fd4" + }, + "name": "pf-t--color--purple--40", + "attributes": { + "category": "color", + "type": "purple", + "item": "40" + }, + "path": [ + "color", + "purple", + "40" + ] + } + }, + "pf-t--color--purple--50": { + "default": { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5e40be" + }, + "name": "pf-t--color--purple--50", + "attributes": { + "category": "color", + "type": "purple", + "item": "50" + }, + "path": [ + "color", + "purple", + "50" + ] + } + }, + "pf-t--color--purple--60": { + "default": { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d2785" + }, + "name": "pf-t--color--purple--60", + "attributes": { + "category": "color", + "type": "purple", + "item": "60" + }, + "path": [ + "color", + "purple", + "60" + ] + } + }, + "pf-t--color--purple--70": { + "default": { + "type": "color", + "value": "#21134d", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#21134d" + }, + "name": "pf-t--color--purple--70", + "attributes": { + "category": "color", + "type": "purple", + "item": "70" + }, + "path": [ + "color", + "purple", + "70" + ] + } + }, + "pf-t--color--purple--80": { + "default": { + "type": "color", + "value": "#1b0d33", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1b0d33" + }, + "name": "pf-t--color--purple--80", + "attributes": { + "category": "color", + "type": "purple", + "item": "80" + }, + "path": [ + "color", + "purple", + "80" + ] + } + }, + "pf-t--color--red--10": { + "default": { + "type": "color", + "value": "#fce3e3", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fce3e3" + }, + "name": "pf-t--color--red--10", + "attributes": { + "category": "color", + "type": "red", + "item": "10" + }, + "path": [ + "color", + "red", + "10" + ] + } + }, + "pf-t--color--red--20": { + "default": { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + }, + "pf-t--color--red--30": { + "default": { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f9a8a8" + }, + "name": "pf-t--color--red--30", + "attributes": { + "category": "color", + "type": "red", + "item": "30" + }, + "path": [ + "color", + "red", + "30" + ] + } + }, + "pf-t--color--red--40": { + "default": { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f56e6e" + }, + "name": "pf-t--color--red--40", + "attributes": { + "category": "color", + "type": "red", + "item": "40" + }, + "path": [ + "color", + "red", + "40" + ] + } + }, + "pf-t--color--red--50": { + "default": { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ee0000" + }, + "name": "pf-t--color--red--50", + "attributes": { + "category": "color", + "type": "red", + "item": "50" + }, + "path": [ + "color", + "red", + "50" + ] + } + }, + "pf-t--color--red--60": { + "default": { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a60000" + }, + "name": "pf-t--color--red--60", + "attributes": { + "category": "color", + "type": "red", + "item": "60" + }, + "path": [ + "color", + "red", + "60" + ] + } + }, + "pf-t--color--red--70": { + "default": { + "type": "color", + "value": "#5f0000", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5f0000" + }, + "name": "pf-t--color--red--70", + "attributes": { + "category": "color", + "type": "red", + "item": "70" + }, + "path": [ + "color", + "red", + "70" + ] + } + }, + "pf-t--color--red--80": { + "default": { + "type": "color", + "value": "#3f0000", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3f0000" + }, + "name": "pf-t--color--red--80", + "attributes": { + "category": "color", + "type": "red", + "item": "80" + }, + "path": [ + "color", + "red", + "80" + ] + } + }, + "pf-t--color--red--05": { + "default": { + "type": "color", + "value": "#fef0f0", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fef0f0" + }, + "name": "pf-t--color--red--05", + "attributes": { + "category": "color", + "type": "red", + "item": "05" + }, + "path": [ + "color", + "red", + "05" + ] + } + } + }, + "chart": {} +} \ No newline at end of file diff --git a/packages/module/patternfly-docs/content/token-layers-felt-glass.json b/packages/module/patternfly-docs/content/token-layers-felt-glass.json new file mode 100644 index 0000000..2ad95b6 --- /dev/null +++ b/packages/module/patternfly-docs/content/token-layers-felt-glass.json @@ -0,0 +1,52576 @@ +{ + "semantic": { + "colors": { + "pf-t--global--icon--color--regular": { + "default": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--subtle": { + "default": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "{global.icon.color.200}" + }, + "name": "pf-t--global--icon--color--subtle", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "icon", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--icon--color--200", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "200" + }, + "path": [ + "global", + "icon", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--inverse": { + "default": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--disabled": { + "default": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "{global.color.disabled.200}" + }, + "name": "pf-t--global--icon--color--disabled", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "disabled" + }, + "path": [ + "global", + "icon", + "color", + "disabled" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--color--disabled--200", + "attributes": { + "category": "global", + "type": "color", + "item": "disabled", + "subitem": "200" + }, + "path": [ + "global", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-disabled": { + "default": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "{global.color.disabled.300}" + }, + "name": "pf-t--global--icon--color--on-disabled", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-disabled" + }, + "path": [ + "global", + "icon", + "color", + "on-disabled" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--color--disabled--300", + "attributes": { + "category": "global", + "type": "color", + "item": "disabled", + "subitem": "300" + }, + "path": [ + "global", + "color", + "disabled", + "300" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--default": { + "default": { + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.color.brand.default}" + }, + "name": "pf-t--global--icon--color--brand--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "default" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "default" + ], + "references": [ + { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.color.brand.200}" + }, + "name": "pf-t--global--color--brand--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "default" + }, + "path": [ + "global", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.50}" + }, + "name": "pf-t--global--color--brand--200", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "200" + }, + "path": [ + "global", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--hover": { + "default": { + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.color.brand.hover}" + }, + "name": "pf-t--global--icon--color--brand--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "hover" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.color.brand.300}" + }, + "name": "pf-t--global--color--brand--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--brand--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" + }, + "path": [ + "global", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--clicked": { + "default": { + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.color.brand.clicked}" + }, + "name": "pf-t--global--icon--color--brand--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "clicked" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.color.brand.300}" + }, + "name": "pf-t--global--color--brand--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--brand--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" + }, + "path": [ + "global", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--accent--default": { + "default": { + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.color.brand.accent.default}" + }, + "name": "pf-t--global--icon--color--brand--accent--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "accent", + "default" + ], + "references": [ + { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#ee0000", + "filePath": "tokens/felt/glass/felt.color.glass.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.color.brand.accent.100}" + }, + "name": "pf-t--global--color--brand--accent--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "default" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.50}" + }, + "name": "pf-t--global--color--brand--accent--100", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "100" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ee0000" + }, + "name": "pf-t--color--red--50", + "attributes": { + "category": "color", + "type": "red", + "item": "50" + }, + "path": [ + "color", + "red", + "50" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--accent--hover": { + "default": { + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.color.brand.accent.hover}" + }, + "name": "pf-t--global--icon--color--brand--accent--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "accent", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#a60000", + "filePath": "tokens/felt/glass/felt.color.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.color.brand.accent.200}" + }, + "name": "pf-t--global--color--brand--accent--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "hover" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.60}" + }, + "name": "pf-t--global--color--brand--accent--200", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "200" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a60000" + }, + "name": "pf-t--color--red--60", + "attributes": { + "category": "color", + "type": "red", + "item": "60" + }, + "path": [ + "color", + "red", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--accent--clicked": { + "default": { + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.color.brand.accent.clicked}" + }, + "name": "pf-t--global--icon--color--brand--accent--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "accent", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#a60000", + "filePath": "tokens/felt/glass/felt.color.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.color.brand.accent.200}" + }, + "name": "pf-t--global--color--brand--accent--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.60}" + }, + "name": "pf-t--global--color--brand--accent--200", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "200" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a60000" + }, + "name": "pf-t--color--red--60", + "attributes": { + "category": "color", + "type": "red", + "item": "60" + }, + "path": [ + "color", + "red", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--default": { + "default": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--on-brand--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "default" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--on-brand--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "hover" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--on-brand--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "clicked" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--accent--default": { + "default": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--on-brand--accent--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "accent", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--accent--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--on-brand--accent--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "accent", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--accent--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--on-brand--accent--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "accent", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--subtle--default": { + "default": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--on-brand--subtle--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "subtle", + "default" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--subtle--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--on-brand--subtle--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "subtle", + "hover" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--subtle--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--on-brand--subtle--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "subtle", + "clicked" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--favorite--default": { + "default": { + "description": "Use as the icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "{global.color.favorite.default}" + }, + "name": "pf-t--global--icon--color--favorite--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "favorite", + "state": "default" + }, + "path": [ + "global", + "icon", + "color", + "favorite", + "default" + ], + "references": [ + { + "description": "Use as the default color for elements that have been favorited", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that have been favorited", + "type": "color", + "value": "{global.color.favorite.100}" + }, + "name": "pf-t--global--color--favorite--default", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "default" + }, + "path": [ + "global", + "color", + "favorite", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--color--favorite--100", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "100" + }, + "path": [ + "global", + "color", + "favorite", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--favorite--hover": { + "default": { + "description": "Use as the hover state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "{global.color.favorite.hover}" + }, + "name": "pf-t--global--icon--color--favorite--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "favorite", + "state": "hover" + }, + "path": [ + "global", + "icon", + "color", + "favorite", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have been favorited", + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have been favorited", + "type": "color", + "value": "{global.color.favorite.200}" + }, + "name": "pf-t--global--color--favorite--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "favorite", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--global--color--favorite--200", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "200" + }, + "path": [ + "global", + "color", + "favorite", + "200" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--favorite--clicked": { + "default": { + "description": "Use as the clicked state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "{global.color.favorite.clicked}" + }, + "name": "pf-t--global--icon--color--favorite--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "favorite", + "state": "clicked" + }, + "path": [ + "global", + "icon", + "color", + "favorite", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for elements that have been favorited", + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have been favorited", + "type": "color", + "value": "{global.color.favorite.200}" + }, + "name": "pf-t--global--color--favorite--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "favorite", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--global--color--favorite--200", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "200" + }, + "path": [ + "global", + "color", + "favorite", + "200" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--success--default": { + "default": { + "description": "Use as the default color for text that communicates a success status.", + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that communicates a success status.", + "type": "color", + "value": "{global.color.status.success.default}" + }, + "name": "pf-t--global--icon--color--status--success--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "{global.color.status.success.100}" + }, + "name": "pf-t--global--color--status--success--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.60}" + }, + "name": "pf-t--global--color--status--success--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "success", + "100" + ], + "references": [ + { + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d7317" + }, + "name": "pf-t--color--green--60", + "attributes": { + "category": "color", + "type": "green", + "item": "60" + }, + "path": [ + "color", + "green", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--success--hover": { + "default": { + "description": "Use as the hover state color for text that communicates a success status.", + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that communicates a success status.", + "type": "color", + "value": "{global.color.status.success.hover}" + }, + "name": "pf-t--global--icon--color--status--success--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "{global.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.70}" + }, + "name": "pf-t--global--color--status--success--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#204d00" + }, + "name": "pf-t--color--green--70", + "attributes": { + "category": "color", + "type": "green", + "item": "70" + }, + "path": [ + "color", + "green", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--success--clicked": { + "default": { + "description": "Use as the clicked state color for text that communicates a success status.", + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that communicates a success status.", + "type": "color", + "value": "{global.color.status.success.clicked}" + }, + "name": "pf-t--global--icon--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "{global.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.70}" + }, + "name": "pf-t--global--color--status--success--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#204d00" + }, + "name": "pf-t--color--green--70", + "attributes": { + "category": "color", + "type": "green", + "item": "70" + }, + "path": [ + "color", + "green", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-success--default": { + "default": { + "description": "Use as the default color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-success--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-success", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-success--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-success--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-success", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-success--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-success--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-success", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--warning--default": { + "default": { + "description": "Use as the default color for text that communicates a warning status.", + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that communicates a warning status.", + "type": "color", + "value": "{global.color.status.warning.200}" + }, + "name": "pf-t--global--icon--color--status--warning--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--global--color--status--warning--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--warning--hover": { + "default": { + "description": "Use as the hover state color for text that communicates a warning status.", + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that communicates a warning status.", + "type": "color", + "value": "{global.color.status.warning.300}" + }, + "name": "pf-t--global--icon--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.50}" + }, + "name": "pf-t--global--color--status--warning--300", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "300" + }, + "path": [ + "global", + "color", + "status", + "warning", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b98412" + }, + "name": "pf-t--color--yellow--50", + "attributes": { + "category": "color", + "type": "yellow", + "item": "50" + }, + "path": [ + "color", + "yellow", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--warning--clicked": { + "default": { + "description": "Use as the clicked state color for text that communicates a warning status.", + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that communicates a warning status.", + "type": "color", + "value": "{global.color.status.warning.300}" + }, + "name": "pf-t--global--icon--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.50}" + }, + "name": "pf-t--global--color--status--warning--300", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "300" + }, + "path": [ + "global", + "color", + "status", + "warning", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b98412" + }, + "name": "pf-t--color--yellow--50", + "attributes": { + "category": "color", + "type": "yellow", + "item": "50" + }, + "path": [ + "color", + "yellow", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-warning--default": { + "default": { + "description": "Use as the default color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--status--on-warning--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-warning", + "default" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-warning--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--status--on-warning--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-warning", + "hover" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-warning--clicked": { + "default": { + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--status--on-warning--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-warning", + "clicked" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--danger--default": { + "default": { + "description": "Use as the default color for icons that convey danger, like in alerts or banners.", + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that convey danger, like in alerts or banners.", + "type": "color", + "value": "{global.color.status.danger.default}" + }, + "name": "pf-t--global--icon--color--status--danger--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "{global.color.status.danger.100}" + }, + "name": "pf-t--global--color--status--danger--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.60}" + }, + "name": "pf-t--global--color--status--danger--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "danger", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b1380b" + }, + "name": "pf-t--color--red-orange--60", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "60" + }, + "path": [ + "color", + "red-orange", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--danger--hover": { + "default": { + "description": "Use as the hover state for icons that indicate danger.", + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for icons that indicate danger.", + "type": "color", + "value": "{global.color.status.danger.hover}" + }, + "name": "pf-t--global--icon--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "{global.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.70}" + }, + "name": "pf-t--global--color--status--danger--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--danger--clicked": { + "default": { + "description": "Use as the clicked state for icons that indicate danger.", + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for icons that indicate danger.", + "type": "color", + "value": "{global.color.status.danger.clicked}" + }, + "name": "pf-t--global--icon--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "{global.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.70}" + }, + "name": "pf-t--global--color--status--danger--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-danger--default": { + "default": { + "description": "Use as the default color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-danger--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-danger", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-danger--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-danger--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-danger", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-danger--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-danger--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-danger", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--info--default": { + "default": { + "description": "Use as the default color for icons that identify informational messages, like in alerts or banners.", + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that identify informational messages, like in alerts or banners.", + "type": "color", + "value": "{global.color.status.info.default}" + }, + "name": "pf-t--global--icon--color--status--info--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "{global.color.status.info.100}" + }, + "name": "pf-t--global--color--status--info--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.50}" + }, + "name": "pf-t--global--color--status--info--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5e40be" + }, + "name": "pf-t--color--purple--50", + "attributes": { + "category": "color", + "type": "purple", + "item": "50" + }, + "path": [ + "color", + "purple", + "50" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--info--hover": { + "default": { + "description": "Use as the hover state for icons that identify informational messages.", + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for icons that identify informational messages.", + "type": "color", + "value": "{global.color.status.info.hover}" + }, + "name": "pf-t--global--icon--color--status--info--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "{global.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.60}" + }, + "name": "pf-t--global--color--status--info--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d2785" + }, + "name": "pf-t--color--purple--60", + "attributes": { + "category": "color", + "type": "purple", + "item": "60" + }, + "path": [ + "color", + "purple", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--info--clicked": { + "default": { + "description": "Use as the clicked state for icons that identify informational messages.", + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for icons that identify informational messages.", + "type": "color", + "value": "{global.color.status.info.clicked}" + }, + "name": "pf-t--global--icon--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "{global.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.60}" + }, + "name": "pf-t--global--color--status--info--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d2785" + }, + "name": "pf-t--color--purple--60", + "attributes": { + "category": "color", + "type": "purple", + "item": "60" + }, + "path": [ + "color", + "purple", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-info--default": { + "default": { + "description": "Use as the default color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-info--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-info", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-info--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-info--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-info", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-info--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-info--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-info", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--custom--default": { + "default": { + "description": "Use as the default color for icons that convey generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#147878", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that convey generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.color.status.custom.default}" + }, + "name": "pf-t--global--icon--color--status--custom--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#147878", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.color.status.custom.100}" + }, + "name": "pf-t--global--color--status--custom--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "type": "color", + "value": "#147878", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.60}" + }, + "name": "pf-t--global--color--status--custom--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "custom", + "100" + ], + "references": [ + { + "type": "color", + "value": "#147878", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#147878" + }, + "name": "pf-t--color--teal--60", + "attributes": { + "category": "color", + "type": "teal", + "item": "60" + }, + "path": [ + "color", + "teal", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--custom--hover": { + "default": { + "description": "Use as the hover state for icons that convey generic status with no associated severity.", + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for icons that convey generic status with no associated severity.", + "type": "color", + "value": "{global.color.status.custom.hover}" + }, + "name": "pf-t--global--icon--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.70}" + }, + "name": "pf-t--global--color--status--custom--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d4d" + }, + "name": "pf-t--color--teal--70", + "attributes": { + "category": "color", + "type": "teal", + "item": "70" + }, + "path": [ + "color", + "teal", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--custom--clicked": { + "default": { + "description": "Use as the clicked state for icons that convey generic status with no associated severity.", + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for icons that convey generic status with no associated severity.", + "type": "color", + "value": "{global.color.status.custom.clicked}" + }, + "name": "pf-t--global--icon--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.70}" + }, + "name": "pf-t--global--color--status--custom--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d4d" + }, + "name": "pf-t--color--teal--70", + "attributes": { + "category": "color", + "type": "teal", + "item": "70" + }, + "path": [ + "color", + "teal", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-custom--default": { + "default": { + "description": "Use as the default color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status color, make sure that this token meets contrast requirements with your new custom status color.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status color, make sure that this token meets contrast requirements with your new custom status color.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-custom--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-custom", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-custom--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status hover color, make sure that this token meets contrast requirements with your new custom status hover color.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status hover color, make sure that this token meets contrast requirements with your new custom status hover color.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-custom--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-custom", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-custom--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status clicked color, make sure that this token meets contrast requirements with your new custom status clicked color.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status clicked color, make sure that this token meets contrast requirements with your new custom status clicked color.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-custom--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-custom", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-default--default": { + "default": { + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-default--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-default", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-default--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-default--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-default", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-default--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-default--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-default", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-attention--default": { + "default": { + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-attention--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-attention", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-attention--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-attention--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-attention", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-attention--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-attention--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-attention", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--undefined--default": { + "default": { + "description": "Use as the default color for severity icons that don’t communicate a specific severity level for issues.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that don’t communicate a specific severity level for issues.", + "type": "color", + "value": "{global.color.severity.undefined.100}" + }, + "name": "pf-t--global--icon--color--severity--undefined--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "undefined" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "undefined", + "default" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--color--severity--undefined--100", + "attributes": { + "category": "global", + "type": "color", + "item": "severity", + "subitem": "undefined", + "state": "100" + }, + "path": [ + "global", + "color", + "severity", + "undefined", + "100" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--none--default": { + "default": { + "description": "Use as the default color for severity icons that identify no issues.", + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that identify no issues.", + "type": "color", + "value": "{global.color.severity.none.100}" + }, + "name": "pf-t--global--icon--color--severity--none--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "none" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "none", + "default" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.40}" + }, + "name": "pf-t--global--color--severity--none--100", + "attributes": { + "category": "global", + "type": "color", + "item": "severity", + "subitem": "none", + "state": "100" + }, + "path": [ + "global", + "color", + "severity", + "none", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4394e5" + }, + "name": "pf-t--color--blue--40", + "attributes": { + "category": "color", + "type": "blue", + "item": "40" + }, + "path": [ + "color", + "blue", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--minor--default": { + "default": { + "description": "Use as the default color for severity icons that identify issues of minor severity.", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that identify issues of minor severity.", + "type": "color", + "value": "{global.color.severity.minor.100}" + }, + "name": "pf-t--global--icon--color--severity--minor--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "minor" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "minor", + "default" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--color--severity--minor--100", + "attributes": { + "category": "global", + "type": "color", + "item": "severity", + "subitem": "minor", + "state": "100" + }, + "path": [ + "global", + "color", + "severity", + "minor", + "100" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--moderate--default": { + "default": { + "description": "Use as the default color for severity icons that identify issues of moderate severity.", + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that identify issues of moderate severity.", + "type": "color", + "value": "{global.color.severity.moderate.100}" + }, + "name": "pf-t--global--icon--color--severity--moderate--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "moderate" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "moderate", + "default" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--global--color--severity--moderate--100", + "attributes": { + "category": "global", + "type": "color", + "item": "severity", + "subitem": "moderate", + "state": "100" + }, + "path": [ + "global", + "color", + "severity", + "moderate", + "100" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--important--default": { + "default": { + "description": "Use as the default color for severity icons that identify issues of important severity.", + "type": "color", + "value": "#ca6c0f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that identify issues of important severity.", + "type": "color", + "value": "{global.color.severity.important.100}" + }, + "name": "pf-t--global--icon--color--severity--important--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "important" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "important", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ca6c0f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.50}" + }, + "name": "pf-t--global--color--severity--important--100", + "attributes": { + "category": "global", + "type": "color", + "item": "severity", + "subitem": "important", + "state": "100" + }, + "path": [ + "global", + "color", + "severity", + "important", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ca6c0f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ca6c0f" + }, + "name": "pf-t--color--orange--50", + "attributes": { + "category": "color", + "type": "orange", + "item": "50" + }, + "path": [ + "color", + "orange", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--critical--default": { + "default": { + "description": "Use as the default color for severity icons that identify issues of critical severity.", + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that identify issues of critical severity.", + "type": "color", + "value": "{global.color.severity.critical.100}" + }, + "name": "pf-t--global--icon--color--severity--critical--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "critical" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "critical", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.60}" + }, + "name": "pf-t--global--color--severity--critical--100", + "attributes": { + "category": "global", + "type": "color", + "item": "severity", + "subitem": "critical", + "state": "100" + }, + "path": [ + "global", + "color", + "severity", + "critical", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b1380b" + }, + "name": "pf-t--color--red-orange--60", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "60" + }, + "path": [ + "color", + "red-orange", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-red--default": { + "default": { + "description": "Use as the default color for icons that are placed on a non status red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a non status red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-red--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-red", + "default" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-red--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a non status red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a non status red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-red--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-red", + "hover" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-red--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-red--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-red", + "clicked" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orangered--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orangered--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orangered", + "default" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orangered--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orangered--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orangered", + "hover" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orangered--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orangered--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orangered", + "clicked" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orange--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orange--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orange", + "default" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orange--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orange--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orange", + "hover" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orange--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orange--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orange", + "clicked" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-yellow--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-yellow--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-yellow", + "default" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-yellow--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-yellow--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-yellow", + "hover" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-yellow--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-yellow--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-yellow", + "clicked" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-green--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-green--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-green", + "default" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-green--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-green--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-green", + "hover" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-green--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-green--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-green", + "clicked" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-teal--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-teal--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-teal", + "default" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-teal--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-teal--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-teal", + "hover" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-teal--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-teal--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-teal", + "clicked" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-blue--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-blue--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-blue", + "default" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-blue--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-blue--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-blue", + "hover" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-blue--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-blue--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-blue", + "clicked" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-purple--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-purple--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-purple", + "default" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-purple--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-purple--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-purple", + "hover" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-purple--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-purple--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-purple", + "clicked" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-gray--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-gray--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-gray", + "default" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-gray--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-gray--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-gray", + "hover" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-gray--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-gray--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-gray", + "clicked" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--high-contrast": { + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "rgba(255, 255, 255, 0.0000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "rgba(255, 255, 255, 0.0000)" + }, + "name": "pf-t--global--border--color--high-contrast", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "high-contrast" + }, + "path": [ + "global", + "border", + "color", + "high-contrast" + ] + } + }, + "pf-t--global--border--color--default": { + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.border.color.50}" + }, + "name": "pf-t--global--border--color--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "default" + }, + "path": [ + "global", + "border", + "color", + "default" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--border--color--50", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "50" + }, + "path": [ + "global", + "border", + "color", + "50" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--hover": { + "default": { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.color.brand.100}" + }, + "name": "pf-t--global--border--color--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "hover" + }, + "path": [ + "global", + "border", + "color", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.40}" + }, + "name": "pf-t--global--color--brand--100", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "100" + }, + "path": [ + "global", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4394e5" + }, + "name": "pf-t--color--blue--40", + "attributes": { + "category": "color", + "type": "blue", + "item": "40" + }, + "path": [ + "color", + "blue", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--clicked": { + "default": { + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.color.brand.200}" + }, + "name": "pf-t--global--border--color--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "clicked" + }, + "path": [ + "global", + "border", + "color", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.50}" + }, + "name": "pf-t--global--color--brand--200", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "200" + }, + "path": [ + "global", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--subtle": { + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.border.color.50}" + }, + "name": "pf-t--global--border--color--subtle", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "border", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--border--color--50", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "50" + }, + "path": [ + "global", + "border", + "color", + "50" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--disabled": { + "default": { + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.color.disabled.200}" + }, + "name": "pf-t--global--border--color--disabled", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "disabled" + }, + "path": [ + "global", + "border", + "color", + "disabled" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--color--disabled--200", + "attributes": { + "category": "global", + "type": "color", + "item": "disabled", + "subitem": "200" + }, + "path": [ + "global", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--alt": { + "default": { + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "type": "color", + "value": "rgba(255, 255, 255, 0.6000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "name": "pf-t--global--border--color--alt", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "alt" + }, + "path": [ + "global", + "border", + "color", + "alt" + ], + "references": [ + { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "rgba(255, 255, 255, 0.6000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "rgba(255, 255, 255, 0.6000)" + }, + "name": "pf-t--global--background--color--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "primary", + "default" + ] + } + ] + } + }, + "pf-t--global--border--color--on-secondary": { + "default": { + "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "type": "color", + "value": "#8c8c8c", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "type": "color", + "value": "{global.border.color.300}" + }, + "name": "pf-t--global--border--color--on-secondary", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "on-secondary" + }, + "path": [ + "global", + "border", + "color", + "on-secondary" + ], + "references": [ + { + "type": "color", + "value": "#8c8c8c", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.45}" + }, + "name": "pf-t--global--border--color--300", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "border", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#8c8c8c", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#8c8c8c" + }, + "name": "pf-t--color--gray--45", + "attributes": { + "category": "color", + "type": "gray", + "item": "45" + }, + "path": [ + "color", + "gray", + "45" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--control--default": { + "default": { + "type": "color", + "value": "#8c8c8c", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.border.color.300}" + }, + "name": "pf-t--global--border--color--control--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "control", + "state": "default" + }, + "path": [ + "global", + "border", + "color", + "control", + "default" + ], + "references": [ + { + "type": "color", + "value": "#8c8c8c", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.45}" + }, + "name": "pf-t--global--border--color--300", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "border", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#8c8c8c", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#8c8c8c" + }, + "name": "pf-t--color--gray--45", + "attributes": { + "category": "color", + "type": "gray", + "item": "45" + }, + "path": [ + "color", + "gray", + "45" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--control--read-only": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.border.color.100}" + }, + "name": "pf-t--global--border--color--control--read-only", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "control", + "state": "read-only" + }, + "path": [ + "global", + "border", + "color", + "control", + "read-only" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--border--color--100", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "border", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--default": { + "default": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.color.brand.default}" + }, + "name": "pf-t--global--border--color--brand--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "default" + }, + "path": [ + "global", + "border", + "color", + "brand", + "default" + ], + "references": [ + { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.color.brand.200}" + }, + "name": "pf-t--global--color--brand--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "default" + }, + "path": [ + "global", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.50}" + }, + "name": "pf-t--global--color--brand--200", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "200" + }, + "path": [ + "global", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--hover": { + "default": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.color.brand.hover}" + }, + "name": "pf-t--global--border--color--brand--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "hover" + }, + "path": [ + "global", + "border", + "color", + "brand", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.color.brand.300}" + }, + "name": "pf-t--global--color--brand--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--brand--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" + }, + "path": [ + "global", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--clicked": { + "default": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.color.brand.clicked}" + }, + "name": "pf-t--global--border--color--brand--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "clicked" + }, + "path": [ + "global", + "border", + "color", + "brand", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.color.brand.300}" + }, + "name": "pf-t--global--color--brand--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--brand--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" + }, + "path": [ + "global", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--subtle--default": { + "default": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.color.brand.subtle.200}" + }, + "name": "pf-t--global--border--color--brand--subtle--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "border", + "color", + "brand", + "subtle", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--color--brand--subtle--200", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "200" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--subtle--hover": { + "default": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.color.brand.subtle.300}" + }, + "name": "pf-t--global--border--color--brand--subtle--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "border", + "color", + "brand", + "subtle", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.40}" + }, + "name": "pf-t--global--color--brand--subtle--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "300" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "300" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4394e5" + }, + "name": "pf-t--color--blue--40", + "attributes": { + "category": "color", + "type": "blue", + "item": "40" + }, + "path": [ + "color", + "blue", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--subtle--clicked": { + "default": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.color.brand.subtle.300}" + }, + "name": "pf-t--global--border--color--brand--subtle--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "border", + "color", + "brand", + "subtle", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.40}" + }, + "name": "pf-t--global--color--brand--subtle--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "300" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "300" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4394e5" + }, + "name": "pf-t--color--blue--40", + "attributes": { + "category": "color", + "type": "blue", + "item": "40" + }, + "path": [ + "color", + "blue", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--success--default": { + "default": { + "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.success.default}" + }, + "name": "pf-t--global--border--color--status--success--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "border", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "{global.color.status.success.100}" + }, + "name": "pf-t--global--color--status--success--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.60}" + }, + "name": "pf-t--global--color--status--success--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "success", + "100" + ], + "references": [ + { + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d7317" + }, + "name": "pf-t--color--green--60", + "attributes": { + "category": "color", + "type": "green", + "item": "60" + }, + "path": [ + "color", + "green", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--success--hover": { + "default": { + "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "type": "color", + "value": "{global.color.status.success.hover}" + }, + "name": "pf-t--global--border--color--status--success--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "border", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "{global.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.70}" + }, + "name": "pf-t--global--color--status--success--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#204d00" + }, + "name": "pf-t--color--green--70", + "attributes": { + "category": "color", + "type": "green", + "item": "70" + }, + "path": [ + "color", + "green", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--success--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "type": "color", + "value": "{global.color.status.success.clicked}" + }, + "name": "pf-t--global--border--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "border", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "{global.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.70}" + }, + "name": "pf-t--global--color--status--success--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#204d00" + }, + "name": "pf-t--color--green--70", + "attributes": { + "category": "color", + "type": "green", + "item": "70" + }, + "path": [ + "color", + "green", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--warning--default": { + "default": { + "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.warning.200}" + }, + "name": "pf-t--global--border--color--status--warning--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "border", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--global--color--status--warning--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--warning--hover": { + "default": { + "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.warning.300}" + }, + "name": "pf-t--global--border--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "border", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.50}" + }, + "name": "pf-t--global--color--status--warning--300", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "300" + }, + "path": [ + "global", + "color", + "status", + "warning", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b98412" + }, + "name": "pf-t--color--yellow--50", + "attributes": { + "category": "color", + "type": "yellow", + "item": "50" + }, + "path": [ + "color", + "yellow", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--warning--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.warning.300}" + }, + "name": "pf-t--global--border--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "border", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.50}" + }, + "name": "pf-t--global--color--status--warning--300", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "300" + }, + "path": [ + "global", + "color", + "status", + "warning", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b98412" + }, + "name": "pf-t--color--yellow--50", + "attributes": { + "category": "color", + "type": "yellow", + "item": "50" + }, + "path": [ + "color", + "yellow", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--danger--default": { + "default": { + "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.danger.default}" + }, + "name": "pf-t--global--border--color--status--danger--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "border", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "{global.color.status.danger.100}" + }, + "name": "pf-t--global--color--status--danger--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.60}" + }, + "name": "pf-t--global--color--status--danger--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "danger", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b1380b" + }, + "name": "pf-t--color--red-orange--60", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "60" + }, + "path": [ + "color", + "red-orange", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--danger--hover": { + "default": { + "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.danger.hover}" + }, + "name": "pf-t--global--border--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "border", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "{global.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.70}" + }, + "name": "pf-t--global--color--status--danger--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--danger--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.danger.clicked}" + }, + "name": "pf-t--global--border--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "border", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "{global.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.70}" + }, + "name": "pf-t--global--color--status--danger--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--info--default": { + "default": { + "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.info.default}" + }, + "name": "pf-t--global--border--color--status--info--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "border", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "{global.color.status.info.100}" + }, + "name": "pf-t--global--color--status--info--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.50}" + }, + "name": "pf-t--global--color--status--info--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5e40be" + }, + "name": "pf-t--color--purple--50", + "attributes": { + "category": "color", + "type": "purple", + "item": "50" + }, + "path": [ + "color", + "purple", + "50" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--info--hover": { + "default": { + "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.info.hover}" + }, + "name": "pf-t--global--border--color--status--info--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "border", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "{global.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.60}" + }, + "name": "pf-t--global--color--status--info--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d2785" + }, + "name": "pf-t--color--purple--60", + "attributes": { + "category": "color", + "type": "purple", + "item": "60" + }, + "path": [ + "color", + "purple", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--info--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.info.clicked}" + }, + "name": "pf-t--global--border--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "border", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "{global.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.60}" + }, + "name": "pf-t--global--color--status--info--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d2785" + }, + "name": "pf-t--color--purple--60", + "attributes": { + "category": "color", + "type": "purple", + "item": "60" + }, + "path": [ + "color", + "purple", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--custom--default": { + "default": { + "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#147878", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.custom.default}" + }, + "name": "pf-t--global--border--color--status--custom--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "border", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#147878", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.color.status.custom.100}" + }, + "name": "pf-t--global--color--status--custom--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "type": "color", + "value": "#147878", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.60}" + }, + "name": "pf-t--global--color--status--custom--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "custom", + "100" + ], + "references": [ + { + "type": "color", + "value": "#147878", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#147878" + }, + "name": "pf-t--color--teal--60", + "attributes": { + "category": "color", + "type": "teal", + "item": "60" + }, + "path": [ + "color", + "teal", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--custom--hover": { + "default": { + "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.custom.hover}" + }, + "name": "pf-t--global--border--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "border", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.70}" + }, + "name": "pf-t--global--color--status--custom--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d4d" + }, + "name": "pf-t--color--teal--70", + "attributes": { + "category": "color", + "type": "teal", + "item": "70" + }, + "path": [ + "color", + "teal", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--custom--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.custom.clicked}" + }, + "name": "pf-t--global--border--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "border", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.70}" + }, + "name": "pf-t--global--color--status--custom--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d4d" + }, + "name": "pf-t--color--teal--70", + "attributes": { + "category": "color", + "type": "teal", + "item": "70" + }, + "path": [ + "color", + "teal", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--glass--default": { + "default": { + "type": "color", + "value": "rgba(255, 255, 255, 0.6000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.border.color.alt}" + }, + "name": "pf-t--global--border--color--glass--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "glass", + "state": "default" + }, + "path": [ + "global", + "border", + "color", + "glass", + "default" + ], + "references": [ + { + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "type": "color", + "value": "rgba(255, 255, 255, 0.6000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "name": "pf-t--global--border--color--alt", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "alt" + }, + "path": [ + "global", + "border", + "color", + "alt" + ], + "references": [ + { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "rgba(255, 255, 255, 0.6000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "rgba(255, 255, 255, 0.6000)" + }, + "name": "pf-t--global--background--color--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "primary", + "default" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--red--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.color.nonstatus.red.200}" + }, + "name": "pf-t--global--border--color--nonstatus--red--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "red", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.30}" + }, + "name": "pf-t--global--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f9a8a8" + }, + "name": "pf-t--color--red--30", + "attributes": { + "category": "color", + "type": "red", + "item": "30" + }, + "path": [ + "color", + "red", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--red--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.red.300}" + }, + "name": "pf-t--global--border--color--nonstatus--red--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "red", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.40}" + }, + "name": "pf-t--global--color--nonstatus--red--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f56e6e" + }, + "name": "pf-t--color--red--40", + "attributes": { + "category": "color", + "type": "red", + "item": "40" + }, + "path": [ + "color", + "red", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--red--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.red.300}" + }, + "name": "pf-t--global--border--color--nonstatus--red--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "red", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.40}" + }, + "name": "pf-t--global--color--nonstatus--red--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f56e6e" + }, + "name": "pf-t--color--red--40", + "attributes": { + "category": "color", + "type": "red", + "item": "40" + }, + "path": [ + "color", + "red", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orangered--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.orangered.200}" + }, + "name": "pf-t--global--border--color--nonstatus--orangered--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orangered", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orangered--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.orangered.300}" + }, + "name": "pf-t--global--border--color--nonstatus--orangered--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orangered", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--color--nonstatus--orangered--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orangered--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.orangered.300}" + }, + "name": "pf-t--global--border--color--nonstatus--orangered--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orangered", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--color--nonstatus--orangered--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orange--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.orange.200}" + }, + "name": "pf-t--global--border--color--nonstatus--orange--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orange", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.30}" + }, + "name": "pf-t--global--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orange--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.orange.300}" + }, + "name": "pf-t--global--border--color--nonstatus--orange--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orange", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.40}" + }, + "name": "pf-t--global--color--nonstatus--orange--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f5921b" + }, + "name": "pf-t--color--orange--40", + "attributes": { + "category": "color", + "type": "orange", + "item": "40" + }, + "path": [ + "color", + "orange", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orange--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.orange.300}" + }, + "name": "pf-t--global--border--color--nonstatus--orange--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orange", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.40}" + }, + "name": "pf-t--global--color--nonstatus--orange--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f5921b" + }, + "name": "pf-t--color--orange--40", + "attributes": { + "category": "color", + "type": "orange", + "item": "40" + }, + "path": [ + "color", + "orange", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--yellow--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.yellow.200}" + }, + "name": "pf-t--global--border--color--nonstatus--yellow--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "yellow", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--color--nonstatus--yellow--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--yellow--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.yellow.300}" + }, + "name": "pf-t--global--border--color--nonstatus--yellow--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "yellow", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--global--color--nonstatus--yellow--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "300" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--yellow--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.yellow.300}" + }, + "name": "pf-t--global--border--color--nonstatus--yellow--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "yellow", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--global--color--nonstatus--yellow--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "300" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--green--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.green.200}" + }, + "name": "pf-t--global--border--color--nonstatus--green--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "green", + "default" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--color--nonstatus--green--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--green--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.green.300}" + }, + "name": "pf-t--global--border--color--nonstatus--green--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "green", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.40}" + }, + "name": "pf-t--global--color--nonstatus--green--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "300" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--green--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.green.300}" + }, + "name": "pf-t--global--border--color--nonstatus--green--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "green", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.40}" + }, + "name": "pf-t--global--color--nonstatus--green--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "300" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--teal--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.teal.200}" + }, + "name": "pf-t--global--border--color--nonstatus--teal--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "teal", + "default" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--color--nonstatus--teal--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--teal--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.teal.300}" + }, + "name": "pf-t--global--border--color--nonstatus--teal--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "teal", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.40}" + }, + "name": "pf-t--global--color--nonstatus--teal--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "300" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--teal--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.teal.300}" + }, + "name": "pf-t--global--border--color--nonstatus--teal--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "teal", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.40}" + }, + "name": "pf-t--global--color--nonstatus--teal--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "300" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--blue--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.blue.200}" + }, + "name": "pf-t--global--border--color--nonstatus--blue--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "blue", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--color--nonstatus--blue--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--blue--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.blue.300}" + }, + "name": "pf-t--global--border--color--nonstatus--blue--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "blue", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.40}" + }, + "name": "pf-t--global--color--nonstatus--blue--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "300" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4394e5" + }, + "name": "pf-t--color--blue--40", + "attributes": { + "category": "color", + "type": "blue", + "item": "40" + }, + "path": [ + "color", + "blue", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--blue--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.blue.300}" + }, + "name": "pf-t--global--border--color--nonstatus--blue--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "blue", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.40}" + }, + "name": "pf-t--global--color--nonstatus--blue--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "300" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4394e5" + }, + "name": "pf-t--color--blue--40", + "attributes": { + "category": "color", + "type": "blue", + "item": "40" + }, + "path": [ + "color", + "blue", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--purple--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.purple.200}" + }, + "name": "pf-t--global--border--color--nonstatus--purple--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "purple", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--color--nonstatus--purple--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--purple--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "#876fd4", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.purple.300}" + }, + "name": "pf-t--global--border--color--nonstatus--purple--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "purple", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#876fd4", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.40}" + }, + "name": "pf-t--global--color--nonstatus--purple--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "300" + ], + "references": [ + { + "type": "color", + "value": "#876fd4", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#876fd4" + }, + "name": "pf-t--color--purple--40", + "attributes": { + "category": "color", + "type": "purple", + "item": "40" + }, + "path": [ + "color", + "purple", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--purple--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "#876fd4", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.purple.300}" + }, + "name": "pf-t--global--border--color--nonstatus--purple--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "purple", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#876fd4", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.40}" + }, + "name": "pf-t--global--color--nonstatus--purple--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "300" + ], + "references": [ + { + "type": "color", + "value": "#876fd4", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#876fd4" + }, + "name": "pf-t--color--purple--40", + "attributes": { + "category": "color", + "type": "purple", + "item": "40" + }, + "path": [ + "color", + "purple", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--gray--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.gray.200}" + }, + "name": "pf-t--global--border--color--nonstatus--gray--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "gray", + "default" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--color--nonstatus--gray--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "200" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--gray--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.gray.300}" + }, + "name": "pf-t--global--border--color--nonstatus--gray--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "gray", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--color--nonstatus--gray--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "300" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--gray--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.gray.300}" + }, + "name": "pf-t--global--border--color--nonstatus--gray--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "gray", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--color--nonstatus--gray--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "300" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--main--default": { + "default": { + "type": "color", + "value": "rgba(255, 255, 255, 0.6000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "name": "pf-t--global--border--color--main--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "main", + "state": "default" + }, + "path": [ + "global", + "border", + "color", + "main", + "default" + ], + "references": [ + { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "rgba(255, 255, 255, 0.6000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "rgba(255, 255, 255, 0.6000)" + }, + "name": "pf-t--global--background--color--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "primary", + "default" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--sm--default": { + "default": { + "description": "Use as the color of small box-shadows.", + "type": "color", + "value": "rgba(41, 41, 41, 0.1500)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of small box-shadows.", + "type": "color", + "value": "{global.box-shadow.color.100}" + }, + "name": "pf-t--global--box-shadow--color--sm--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "sm", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "color", + "sm", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(41, 41, 41, 0.1500)", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(41, 41, 41, 0.1500)" + }, + "name": "pf-t--global--box-shadow--color--100", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "box-shadow", + "color", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--sm--directional": { + "default": { + "description": "Use as the color of small box-shadows.", + "type": "color", + "value": "rgba(41, 41, 41, 0.2000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of small box-shadows.", + "type": "color", + "value": "{global.box-shadow.color.200}" + }, + "name": "pf-t--global--box-shadow--color--sm--directional", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "sm", + "state": "directional" + }, + "path": [ + "global", + "box-shadow", + "color", + "sm", + "directional" + ], + "references": [ + { + "type": "color", + "value": "rgba(41, 41, 41, 0.2000)", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(41, 41, 41, 0.2000)" + }, + "name": "pf-t--global--box-shadow--color--200", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "200" + }, + "path": [ + "global", + "box-shadow", + "color", + "200" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--md--default": { + "default": { + "description": "Use as the color of medium box-shadows.", + "type": "color", + "value": "rgba(41, 41, 41, 0.1500)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of medium box-shadows.", + "type": "color", + "value": "{global.box-shadow.color.100}" + }, + "name": "pf-t--global--box-shadow--color--md--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "md", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "color", + "md", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(41, 41, 41, 0.1500)", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(41, 41, 41, 0.1500)" + }, + "name": "pf-t--global--box-shadow--color--100", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "box-shadow", + "color", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--md--directional": { + "default": { + "description": "Use as the color of medium box-shadows.", + "type": "color", + "value": "rgba(41, 41, 41, 0.1500)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of medium box-shadows.", + "type": "color", + "value": "{global.box-shadow.color.100}" + }, + "name": "pf-t--global--box-shadow--color--md--directional", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "md", + "state": "directional" + }, + "path": [ + "global", + "box-shadow", + "color", + "md", + "directional" + ], + "references": [ + { + "type": "color", + "value": "rgba(41, 41, 41, 0.1500)", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(41, 41, 41, 0.1500)" + }, + "name": "pf-t--global--box-shadow--color--100", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "box-shadow", + "color", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--lg--default": { + "default": { + "description": "Use as the color of large box-shadows.", + "type": "color", + "value": "rgba(41, 41, 41, 0.1500)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of large box-shadows.", + "type": "color", + "value": "{global.box-shadow.color.100}" + }, + "name": "pf-t--global--box-shadow--color--lg--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "lg", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "color", + "lg", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(41, 41, 41, 0.1500)", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(41, 41, 41, 0.1500)" + }, + "name": "pf-t--global--box-shadow--color--100", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "box-shadow", + "color", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--lg--directional": { + "default": { + "description": "Use as the color of large box-shadows.", + "type": "color", + "value": "rgba(41, 41, 41, 0.2000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of large box-shadows.", + "type": "color", + "value": "{global.box-shadow.color.200}" + }, + "name": "pf-t--global--box-shadow--color--lg--directional", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "lg", + "state": "directional" + }, + "path": [ + "global", + "box-shadow", + "color", + "lg", + "directional" + ], + "references": [ + { + "type": "color", + "value": "rgba(41, 41, 41, 0.2000)", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(41, 41, 41, 0.2000)" + }, + "name": "pf-t--global--box-shadow--color--200", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "200" + }, + "path": [ + "global", + "box-shadow", + "color", + "200" + ] + } + ] + } + }, + "pf-t--global--text-decoration--color--default": { + "default": { + "type": "color", + "value": "#8c8c8c", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.border.color.300}" + }, + "name": "pf-t--global--text-decoration--color--default", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "color", + "subitem": "default" + }, + "path": [ + "global", + "text-decoration", + "color", + "default" + ], + "references": [ + { + "type": "color", + "value": "#8c8c8c", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.45}" + }, + "name": "pf-t--global--border--color--300", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "border", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#8c8c8c", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#8c8c8c" + }, + "name": "pf-t--color--gray--45", + "attributes": { + "category": "color", + "type": "gray", + "item": "45" + }, + "path": [ + "color", + "gray", + "45" + ] + } + ] + } + ] + } + }, + "pf-t--global--text-decoration--color--hover": { + "default": { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.border.color.hover}" + }, + "name": "pf-t--global--text-decoration--color--hover", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "color", + "subitem": "hover" + }, + "path": [ + "global", + "text-decoration", + "color", + "hover" + ], + "references": [ + { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.color.brand.100}" + }, + "name": "pf-t--global--border--color--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "hover" + }, + "path": [ + "global", + "border", + "color", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.40}" + }, + "name": "pf-t--global--color--brand--100", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "100" + }, + "path": [ + "global", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4394e5" + }, + "name": "pf-t--color--blue--40", + "attributes": { + "category": "color", + "type": "blue", + "item": "40" + }, + "path": [ + "color", + "blue", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--highlight--default": { + "default": { + "description": "Use as the background color for highlighted elements", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the background color for highlighted elements", + "type": "color", + "value": "{global.background.color.highlight.100}" + }, + "name": "pf-t--global--background--color--highlight--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "highlight", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "highlight", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--background--color--highlight--100", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "highlight", + "state": "100" + }, + "path": [ + "global", + "background", + "color", + "highlight", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--highlight--clicked": { + "default": { + "description": "Use as the active state for for highlighted elements", + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the active state for for highlighted elements", + "type": "color", + "value": "{global.background.color.highlight.200}" + }, + "name": "pf-t--global--background--color--highlight--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "highlight", + "state": "clicked" + }, + "path": [ + "global", + "background", + "color", + "highlight", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--global--background--color--highlight--200", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "highlight", + "state": "200" + }, + "path": [ + "global", + "background", + "color", + "highlight", + "200" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--primary--default": { + "default": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "rgba(255, 255, 255, 0.6000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "rgba(255, 255, 255, 0.6000)" + }, + "name": "pf-t--global--background--color--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "primary", + "default" + ] + } + }, + "pf-t--global--background--color--primary--hover": { + "default": { + "description": "Use as the hover state for primary backgrounds", + "type": "color", + "value": "rgba(199, 199, 199, 0.3000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for primary backgrounds", + "type": "color", + "value": "rgba(199, 199, 199, 0.3000)" + }, + "name": "pf-t--global--background--color--primary--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "hover" + }, + "path": [ + "global", + "background", + "color", + "primary", + "hover" + ] + } + }, + "pf-t--global--background--color--primary--clicked": { + "default": { + "description": "Use as the clicked state for primary backgrounds", + "type": "color", + "value": "rgba(199, 199, 199, 0.3000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for primary backgrounds", + "type": "color", + "value": "rgba(199, 199, 199, 0.3000)" + }, + "name": "pf-t--global--background--color--primary--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "clicked" + }, + "path": [ + "global", + "background", + "color", + "primary", + "clicked" + ] + } + }, + "pf-t--global--background--color--secondary--default": { + "default": { + "description": "Use as the secondary background color for UI content Use as the primary background color for UI content such as cards, page sections, and other content areas. Secondary background color is also used for our UI shell backgrounds (nav, masthead, etc).", + "type": "color", + "value": "rgba(199, 199, 199, 0.3000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the secondary background color for UI content Use as the primary background color for UI content such as cards, page sections, and other content areas. Secondary background color is also used for our UI shell backgrounds (nav, masthead, etc).", + "type": "color", + "value": "rgba(199, 199, 199, 0.3000)" + }, + "name": "pf-t--global--background--color--secondary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "secondary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "secondary", + "default" + ] + } + }, + "pf-t--global--background--color--secondary--hover": { + "default": { + "description": "Use as the hover state for secondary backgrounds", + "type": "color", + "value": "rgba(163, 163, 163, 0.3000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for secondary backgrounds", + "type": "color", + "value": "rgba(163, 163, 163, 0.3000)" + }, + "name": "pf-t--global--background--color--secondary--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "secondary", + "state": "hover" + }, + "path": [ + "global", + "background", + "color", + "secondary", + "hover" + ] + } + }, + "pf-t--global--background--color--secondary--clicked": { + "default": { + "description": "Use as the clicked state for secondary backgrounds", + "type": "color", + "value": "rgba(163, 163, 163, 0.3000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for secondary backgrounds", + "type": "color", + "value": "rgba(163, 163, 163, 0.3000)" + }, + "name": "pf-t--global--background--color--secondary--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "secondary", + "state": "clicked" + }, + "path": [ + "global", + "background", + "color", + "secondary", + "clicked" + ] + } + }, + "pf-t--global--background--color--tertiary--default": { + "default": { + "description": "Use as the tertiary background color. This is primarily used for containers that can be placed on secondary backgrounds.", + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the tertiary background color. This is primarily used for containers that can be placed on secondary backgrounds.", + "type": "color", + "value": "{global.background.color.600}" + }, + "name": "pf-t--global--background--color--tertiary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "tertiary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "tertiary", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)" + }, + "name": "pf-t--global--background--color--600", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "600" + }, + "path": [ + "global", + "background", + "color", + "600" + ] + } + ] + } + }, + "pf-t--global--background--color--glass--primary--default": { + "default": { + "type": "color", + "value": "rgba(255, 255, 255, 0.5000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(255, 255, 255, 0.5000)" + }, + "name": "pf-t--global--background--color--glass--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "glass", + "state": "primary" + }, + "path": [ + "global", + "background", + "color", + "glass", + "primary", + "default" + ] + } + }, + "pf-t--global--background--color--floating--default": { + "default": { + "description": "Use as the background color for components that appear over other content, such as toast alerts, menus, modals, overlay drawers, etc.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the background color for components that appear over other content, such as toast alerts, menus, modals, overlay drawers, etc.", + "type": "color", + "value": "{global.background.color.100}" + }, + "name": "pf-t--global--background--color--floating--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "floating", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "floating", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--background--color--100", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "background", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--floating--hover": { + "default": { + "description": "Use as the hover state for floating backgrounds", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for floating backgrounds", + "type": "color", + "value": "{global.background.color.200}" + }, + "name": "pf-t--global--background--color--floating--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "floating", + "state": "hover" + }, + "path": [ + "global", + "background", + "color", + "floating", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--background--color--200", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "200" + }, + "path": [ + "global", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--floating--clicked": { + "default": { + "description": "Use as the clicked state for floating backgrounds", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for floating backgrounds", + "type": "color", + "value": "{global.background.color.200}" + }, + "name": "pf-t--global--background--color--floating--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "floating", + "state": "clicked" + }, + "path": [ + "global", + "background", + "color", + "floating", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--background--color--200", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "200" + }, + "path": [ + "global", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--floating--secondary--default": { + "default": { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.background.color.floating.default}" + }, + "name": "pf-t--global--background--color--floating--secondary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "floating", + "state": "secondary" + }, + "path": [ + "global", + "background", + "color", + "floating", + "secondary", + "default" + ], + "references": [ + { + "description": "Use as the background color for components that appear over other content, such as toast alerts, menus, modals, overlay drawers, etc.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the background color for components that appear over other content, such as toast alerts, menus, modals, overlay drawers, etc.", + "type": "color", + "value": "{global.background.color.100}" + }, + "name": "pf-t--global--background--color--floating--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "floating", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "floating", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--background--color--100", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "background", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--sticky--default": { + "default": { + "description": "Use as the background color for components that appear over other content, such as toast alerts, menus, modals, overlay drawers, etc.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the background color for components that appear over other content, such as toast alerts, menus, modals, overlay drawers, etc.", + "type": "color", + "value": "{global.background.color.100}" + }, + "name": "pf-t--global--background--color--sticky--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "sticky", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "sticky", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--background--color--100", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "background", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--action--plain--default": { + "default": { + "description": "Use as the default background for actions with transparent backgrounds such as menu items, accordion toggles, buttons, etc.", + "type": "color", + "value": "rgba(255, 255, 255, 0.0000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default background for actions with transparent backgrounds such as menu items, accordion toggles, buttons, etc.", + "type": "color", + "value": "rgba(255, 255, 255, 0.0000)" + }, + "name": "pf-t--global--background--color--action--plain--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "default" + ] + } + }, + "pf-t--global--background--color--action--plain--hover": { + "default": { + "description": "Use as the hover state for components that use the plain action default background.", + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for components that use the plain action default background.", + "type": "color", + "value": "{global.background.color.600}" + }, + "name": "pf-t--global--background--color--action--plain--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "hover" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)" + }, + "name": "pf-t--global--background--color--600", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "600" + }, + "path": [ + "global", + "background", + "color", + "600" + ] + } + ] + } + }, + "pf-t--global--background--color--action--plain--clicked": { + "default": { + "description": "Use as the active/pressed state for components that use the plain action default background.", + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the active/pressed state for components that use the plain action default background.", + "type": "color", + "value": "{global.background.color.600}" + }, + "name": "pf-t--global--background--color--action--plain--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)" + }, + "name": "pf-t--global--background--color--600", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "600" + }, + "path": [ + "global", + "background", + "color", + "600" + ] + } + ] + } + }, + "pf-t--global--background--color--action--plain--alt--hover": { + "default": { + "description": "Use as the hover state for components that use the plain action default background but are placed on a secondary background color (like left nav, horizontal nav, etc.)", + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for components that use the plain action default background but are placed on a secondary background color (like left nav, horizontal nav, etc.)", + "type": "color", + "value": "{global.background.color.action.plain.hover}" + }, + "name": "pf-t--global--background--color--action--plain--alt--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "alt", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for components that use the plain action default background.", + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for components that use the plain action default background.", + "type": "color", + "value": "{global.background.color.600}" + }, + "name": "pf-t--global--background--color--action--plain--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "hover" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)" + }, + "name": "pf-t--global--background--color--600", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "600" + }, + "path": [ + "global", + "background", + "color", + "600" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--action--plain--alt--clicked": { + "default": { + "description": "Use as the active/pressed state for components that use the plain action default background but are placed on a secondary background color (like left nav, horizontal nav, etc.)", + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the active/pressed state for components that use the plain action default background but are placed on a secondary background color (like left nav, horizontal nav, etc.)", + "type": "color", + "value": "{global.background.color.action.plain.clicked}" + }, + "name": "pf-t--global--background--color--action--plain--alt--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "alt", + "clicked" + ], + "references": [ + { + "description": "Use as the active/pressed state for components that use the plain action default background.", + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the active/pressed state for components that use the plain action default background.", + "type": "color", + "value": "{global.background.color.600}" + }, + "name": "pf-t--global--background--color--action--plain--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)" + }, + "name": "pf-t--global--background--color--600", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "600" + }, + "path": [ + "global", + "background", + "color", + "600" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--control--default": { + "default": { + "description": "Use as the default background for control elements like form inputs and menu toggles.", + "type": "color", + "value": "rgba(255, 255, 255, 0.6000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default background for control elements like form inputs and menu toggles.", + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "name": "pf-t--global--background--color--control--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "control", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "control", + "default" + ], + "references": [ + { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "rgba(255, 255, 255, 0.6000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "rgba(255, 255, 255, 0.6000)" + }, + "name": "pf-t--global--background--color--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "primary", + "default" + ] + } + ] + } + }, + "pf-t--global--background--color--control--read-only": { + "default": { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.background.color.200}" + }, + "name": "pf-t--global--background--color--control--read-only", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "control", + "state": "read-only" + }, + "path": [ + "global", + "background", + "color", + "control", + "read-only" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--background--color--200", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "200" + }, + "path": [ + "global", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--inverse--default": { + "default": { + "description": "Use as the background color components with inversed backgrounds like tooltips.", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the background color components with inversed backgrounds like tooltips.", + "type": "color", + "value": "{global.background.color.400}" + }, + "name": "pf-t--global--background--color--inverse--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "inverse", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "inverse", + "default" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--background--color--400", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "400" + }, + "path": [ + "global", + "background", + "color", + "400" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--inverse--hover": { + "default": { + "description": "Use as the hover color for interactive components with inversed backgrounds.", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover color for interactive components with inversed backgrounds.", + "type": "color", + "value": "{global.background.color.450}" + }, + "name": "pf-t--global--background--color--inverse--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "inverse", + "state": "hover" + }, + "path": [ + "global", + "background", + "color", + "inverse", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--background--color--450", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "450" + }, + "path": [ + "global", + "background", + "color", + "450" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--inverse--clicked": { + "default": { + "description": "Use as the clicked color for interactive components with inversed backgrounds.", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked color for interactive components with inversed backgrounds.", + "type": "color", + "value": "{global.background.color.450}" + }, + "name": "pf-t--global--background--color--inverse--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "inverse", + "state": "clicked" + }, + "path": [ + "global", + "background", + "color", + "inverse", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--background--color--450", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "450" + }, + "path": [ + "global", + "background", + "color", + "450" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--disabled--default": { + "default": { + "description": "Use as the background color for disabled components.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the background color for disabled components.", + "type": "color", + "value": "{global.color.disabled.100}" + }, + "name": "pf-t--global--background--color--disabled--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "disabled", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "disabled", + "default" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--color--disabled--100", + "attributes": { + "category": "global", + "type": "color", + "item": "disabled", + "subitem": "100" + }, + "path": [ + "global", + "color", + "disabled", + "100" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--backdrop--default": { + "default": { + "description": "Use as the background color for the backdrop component that shows beneath a modal/about modal/floating wizard etc.", + "type": "color", + "value": "rgba(21, 21, 21, 0.4000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the background color for the backdrop component that shows beneath a modal/about modal/floating wizard etc.", + "type": "color", + "value": "{global.background.color.500}" + }, + "name": "pf-t--global--background--color--backdrop--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "backdrop", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "backdrop", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(21, 21, 21, 0.4000)", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(21, 21, 21, 0.4000)" + }, + "name": "pf-t--global--background--color--500", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "500" + }, + "path": [ + "global", + "background", + "color", + "500" + ] + } + ] + } + }, + "pf-t--global--background--color--striped--row--default": { + "default": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.background.color.700}" + }, + "name": "pf-t--global--background--color--striped--row--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "striped", + "state": "row" + }, + "path": [ + "global", + "background", + "color", + "striped", + "row", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.1000)", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1000)" + }, + "name": "pf-t--global--background--color--700", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "700" + }, + "path": [ + "global", + "background", + "color", + "700" + ] + } + ] + } + }, + "pf-t--global--background--color--loading--skeleton--default": { + "default": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.background.color.600}" + }, + "name": "pf-t--global--background--color--loading--skeleton--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "loading", + "state": "skeleton" + }, + "path": [ + "global", + "background", + "color", + "loading", + "skeleton", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)" + }, + "name": "pf-t--global--background--color--600", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "600" + }, + "path": [ + "global", + "background", + "color", + "600" + ] + } + ] + } + }, + "pf-t--global--background--color--loading--skeleton--subtle": { + "default": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.background.color.700}" + }, + "name": "pf-t--global--background--color--loading--skeleton--subtle", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "loading", + "state": "skeleton" + }, + "path": [ + "global", + "background", + "color", + "loading", + "skeleton", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.1000)", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1000)" + }, + "name": "pf-t--global--background--color--700", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "700" + }, + "path": [ + "global", + "background", + "color", + "700" + ] + } + ] + } + }, + "pf-t--global--background--filter--glass--blur--primary": { + "default": { + "type": "number", + "value": "blur(16px)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--background--filter--glass--blur--primary", + "attributes": { + "category": "global", + "type": "background", + "item": "filter", + "subitem": "glass", + "state": "blur" + }, + "path": [ + "global", + "background", + "filter", + "glass", + "blur", + "primary" + ] + } + }, + "pf-t--global--color--brand--subtle--default": { + "default": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.color.brand.subtle.100}" + }, + "name": "pf-t--global--color--brand--subtle--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "default" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "default" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--color--brand--subtle--100", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "100" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "100" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--subtle--hover": { + "default": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.color.brand.subtle.200}" + }, + "name": "pf-t--global--color--brand--subtle--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "hover" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--color--brand--subtle--200", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "200" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--subtle--clicked": { + "default": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.color.brand.subtle.200}" + }, + "name": "pf-t--global--color--brand--subtle--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--color--brand--subtle--200", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "200" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--default": { + "default": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.color.brand.200}" + }, + "name": "pf-t--global--color--brand--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "default" + }, + "path": [ + "global", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.50}" + }, + "name": "pf-t--global--color--brand--200", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "200" + }, + "path": [ + "global", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--hover": { + "default": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.color.brand.300}" + }, + "name": "pf-t--global--color--brand--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--brand--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" + }, + "path": [ + "global", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--clicked": { + "default": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.color.brand.300}" + }, + "name": "pf-t--global--color--brand--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--brand--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" + }, + "path": [ + "global", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--favorite--default": { + "default": { + "description": "Use as the default color for elements that have been favorited", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that have been favorited", + "type": "color", + "value": "{global.color.favorite.100}" + }, + "name": "pf-t--global--color--favorite--default", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "default" + }, + "path": [ + "global", + "color", + "favorite", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--color--favorite--100", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "100" + }, + "path": [ + "global", + "color", + "favorite", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--favorite--hover": { + "default": { + "description": "Use as the hover state for elements that have been favorited", + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have been favorited", + "type": "color", + "value": "{global.color.favorite.200}" + }, + "name": "pf-t--global--color--favorite--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "favorite", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--global--color--favorite--200", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "200" + }, + "path": [ + "global", + "color", + "favorite", + "200" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--favorite--clicked": { + "default": { + "description": "Use as the clicked state for elements that have been favorited", + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have been favorited", + "type": "color", + "value": "{global.color.favorite.200}" + }, + "name": "pf-t--global--color--favorite--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "favorite", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--global--color--favorite--200", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "200" + }, + "path": [ + "global", + "color", + "favorite", + "200" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--success--default": { + "default": { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "{global.color.status.success.100}" + }, + "name": "pf-t--global--color--status--success--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.60}" + }, + "name": "pf-t--global--color--status--success--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "success", + "100" + ], + "references": [ + { + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d7317" + }, + "name": "pf-t--color--green--60", + "attributes": { + "category": "color", + "type": "green", + "item": "60" + }, + "path": [ + "color", + "green", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--success--hover": { + "default": { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "{global.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.70}" + }, + "name": "pf-t--global--color--status--success--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#204d00" + }, + "name": "pf-t--color--green--70", + "attributes": { + "category": "color", + "type": "green", + "item": "70" + }, + "path": [ + "color", + "green", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--success--clicked": { + "default": { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "{global.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.70}" + }, + "name": "pf-t--global--color--status--success--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#204d00" + }, + "name": "pf-t--color--green--70", + "attributes": { + "category": "color", + "type": "green", + "item": "70" + }, + "path": [ + "color", + "green", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--warning--default": { + "default": { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "{global.color.status.warning.100}" + }, + "name": "pf-t--global--color--status--warning--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--color--status--warning--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "warning", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--warning--hover": { + "default": { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "{global.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--global--color--status--warning--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--warning--clicked": { + "default": { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "{global.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--global--color--status--warning--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--danger--default": { + "default": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "{global.color.status.danger.100}" + }, + "name": "pf-t--global--color--status--danger--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.60}" + }, + "name": "pf-t--global--color--status--danger--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "danger", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b1380b" + }, + "name": "pf-t--color--red-orange--60", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "60" + }, + "path": [ + "color", + "red-orange", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--danger--hover": { + "default": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "{global.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.70}" + }, + "name": "pf-t--global--color--status--danger--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--danger--clicked": { + "default": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "{global.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.70}" + }, + "name": "pf-t--global--color--status--danger--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--info--default": { + "default": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "{global.color.status.info.100}" + }, + "name": "pf-t--global--color--status--info--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.50}" + }, + "name": "pf-t--global--color--status--info--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5e40be" + }, + "name": "pf-t--color--purple--50", + "attributes": { + "category": "color", + "type": "purple", + "item": "50" + }, + "path": [ + "color", + "purple", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--info--hover": { + "default": { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "{global.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.60}" + }, + "name": "pf-t--global--color--status--info--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d2785" + }, + "name": "pf-t--color--purple--60", + "attributes": { + "category": "color", + "type": "purple", + "item": "60" + }, + "path": [ + "color", + "purple", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--info--clicked": { + "default": { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "{global.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.60}" + }, + "name": "pf-t--global--color--status--info--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d2785" + }, + "name": "pf-t--color--purple--60", + "attributes": { + "category": "color", + "type": "purple", + "item": "60" + }, + "path": [ + "color", + "purple", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--custom--default": { + "default": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#147878", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.color.status.custom.100}" + }, + "name": "pf-t--global--color--status--custom--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "type": "color", + "value": "#147878", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.60}" + }, + "name": "pf-t--global--color--status--custom--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "custom", + "100" + ], + "references": [ + { + "type": "color", + "value": "#147878", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#147878" + }, + "name": "pf-t--color--teal--60", + "attributes": { + "category": "color", + "type": "teal", + "item": "60" + }, + "path": [ + "color", + "teal", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--custom--hover": { + "default": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.70}" + }, + "name": "pf-t--global--color--status--custom--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d4d" + }, + "name": "pf-t--color--teal--70", + "attributes": { + "category": "color", + "type": "teal", + "item": "70" + }, + "path": [ + "color", + "teal", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--custom--clicked": { + "default": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.70}" + }, + "name": "pf-t--global--color--status--custom--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d4d" + }, + "name": "pf-t--color--teal--70", + "attributes": { + "category": "color", + "type": "teal", + "item": "70" + }, + "path": [ + "color", + "teal", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--default": { + "default": { + "description": "Use as the default color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.color.brand.default}" + }, + "name": "pf-t--global--color--status--unread--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "unread", + "default" + ], + "references": [ + { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.color.brand.200}" + }, + "name": "pf-t--global--color--brand--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "default" + }, + "path": [ + "global", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.50}" + }, + "name": "pf-t--global--color--brand--200", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "200" + }, + "path": [ + "global", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--hover": { + "default": { + "description": "Use as the hover state color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.color.brand.hover}" + }, + "name": "pf-t--global--color--status--unread--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "unread", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.color.brand.300}" + }, + "name": "pf-t--global--color--brand--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--brand--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" + }, + "path": [ + "global", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--clicked": { + "default": { + "description": "Use as the clicked state color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.color.brand.clicked}" + }, + "name": "pf-t--global--color--status--unread--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "unread", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.color.brand.300}" + }, + "name": "pf-t--global--color--brand--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--brand--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" + }, + "path": [ + "global", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--attention--default": { + "default": { + "description": "Use as the default color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.color.status.danger.default}" + }, + "name": "pf-t--global--color--status--unread--attention--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "attention" + }, + "path": [ + "global", + "color", + "status", + "unread", + "attention", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "{global.color.status.danger.100}" + }, + "name": "pf-t--global--color--status--danger--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.60}" + }, + "name": "pf-t--global--color--status--danger--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "danger", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b1380b" + }, + "name": "pf-t--color--red-orange--60", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "60" + }, + "path": [ + "color", + "red-orange", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--attention--clicked": { + "default": { + "description": "Use as the hover state color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.color.status.danger.clicked}" + }, + "name": "pf-t--global--color--status--unread--attention--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "attention" + }, + "path": [ + "global", + "color", + "status", + "unread", + "attention", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "{global.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.70}" + }, + "name": "pf-t--global--color--status--danger--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--attention--hover": { + "default": { + "description": "Use as the clicked state color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.color.status.danger.hover}" + }, + "name": "pf-t--global--color--status--unread--attention--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "attention" + }, + "path": [ + "global", + "color", + "status", + "unread", + "attention", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "{global.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.70}" + }, + "name": "pf-t--global--color--status--danger--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--read--on-secondary": { + "default": { + "description": "Use as the default color for elements that convey a read status and are placed on a secondary background", + "type": "color", + "value": "rgba(255, 255, 255, 0.6000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that convey a read status and are placed on a secondary background", + "type": "color", + "value": "{global.background.color.control.default}" + }, + "name": "pf-t--global--color--status--read--on-secondary", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "read", + "state": "on-secondary" + }, + "path": [ + "global", + "color", + "status", + "read", + "on-secondary" + ], + "references": [ + { + "description": "Use as the default background for control elements like form inputs and menu toggles.", + "type": "color", + "value": "rgba(255, 255, 255, 0.6000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default background for control elements like form inputs and menu toggles.", + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "name": "pf-t--global--background--color--control--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "control", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "control", + "default" + ], + "references": [ + { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "rgba(255, 255, 255, 0.6000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "rgba(255, 255, 255, 0.6000)" + }, + "name": "pf-t--global--background--color--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "primary", + "default" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--read--on-primary": { + "default": { + "description": "Use as the default color for elements that convey a read status and are placed on a primary background", + "type": "color", + "value": "rgba(199, 199, 199, 0.3000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that convey a read status and are placed on a primary background", + "type": "color", + "value": "{global.background.color.secondary.default}" + }, + "name": "pf-t--global--color--status--read--on-primary", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "read", + "state": "on-primary" + }, + "path": [ + "global", + "color", + "status", + "read", + "on-primary" + ], + "references": [ + { + "description": "Use as the secondary background color for UI content Use as the primary background color for UI content such as cards, page sections, and other content areas. Secondary background color is also used for our UI shell backgrounds (nav, masthead, etc).", + "type": "color", + "value": "rgba(199, 199, 199, 0.3000)", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the secondary background color for UI content Use as the primary background color for UI content such as cards, page sections, and other content areas. Secondary background color is also used for our UI shell backgrounds (nav, masthead, etc).", + "type": "color", + "value": "rgba(199, 199, 199, 0.3000)" + }, + "name": "pf-t--global--background--color--secondary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "secondary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "secondary", + "default" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--red--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.color.nonstatus.red.100}" + }, + "name": "pf-t--global--color--nonstatus--red--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "default" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.20}" + }, + "name": "pf-t--global--color--nonstatus--red--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "100" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--red--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status red background color.", + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status red background color.", + "type": "color", + "value": "{global.color.nonstatus.red.200}" + }, + "name": "pf-t--global--color--nonstatus--red--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.30}" + }, + "name": "pf-t--global--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f9a8a8" + }, + "name": "pf-t--color--red--30", + "attributes": { + "category": "color", + "type": "red", + "item": "30" + }, + "path": [ + "color", + "red", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--red--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status red background color.", + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status red background color.", + "type": "color", + "value": "{global.color.nonstatus.red.200}" + }, + "name": "pf-t--global--color--nonstatus--red--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.30}" + }, + "name": "pf-t--global--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f9a8a8" + }, + "name": "pf-t--color--red--30", + "attributes": { + "category": "color", + "type": "red", + "item": "30" + }, + "path": [ + "color", + "red", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orangered--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange-red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange-red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.color.nonstatus.orangered.100}" + }, + "name": "pf-t--global--color--nonstatus--orangered--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "default" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--color--nonstatus--orangered--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "100" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orangered--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status orange-red background color.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status orange-red background color.", + "type": "color", + "value": "{global.color.nonstatus.orangered.200}" + }, + "name": "pf-t--global--color--nonstatus--orangered--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orangered--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status orange-red background color.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status orange-red background color.", + "type": "color", + "value": "{global.color.nonstatus.orangered.200}" + }, + "name": "pf-t--global--color--nonstatus--orangered--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orange--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.color.nonstatus.orange.100}" + }, + "name": "pf-t--global--color--nonstatus--orange--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "default" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--global--color--nonstatus--orange--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "100" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orange--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status orange background color.", + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status orange background color.", + "type": "color", + "value": "{global.color.nonstatus.orange.200}" + }, + "name": "pf-t--global--color--nonstatus--orange--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.30}" + }, + "name": "pf-t--global--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orange--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status orange background color.", + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status orange background color.", + "type": "color", + "value": "{global.color.nonstatus.orange.200}" + }, + "name": "pf-t--global--color--nonstatus--orange--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.30}" + }, + "name": "pf-t--global--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--yellow--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.color.nonstatus.yellow.100}" + }, + "name": "pf-t--global--color--nonstatus--yellow--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--color--nonstatus--yellow--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--yellow--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status yellow background color.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status yellow background color.", + "type": "color", + "value": "{global.color.nonstatus.yellow.200}" + }, + "name": "pf-t--global--color--nonstatus--yellow--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--color--nonstatus--yellow--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--yellow--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status yellow background color.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status yellow background color.", + "type": "color", + "value": "{global.color.nonstatus.yellow.200}" + }, + "name": "pf-t--global--color--nonstatus--yellow--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--color--nonstatus--yellow--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--green--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.color.nonstatus.green.100}" + }, + "name": "pf-t--global--color--nonstatus--green--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "default" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--color--nonstatus--green--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "100" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--green--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status green background color.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status green background color.", + "type": "color", + "value": "{global.color.nonstatus.green.200}" + }, + "name": "pf-t--global--color--nonstatus--green--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--color--nonstatus--green--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--green--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status green background color.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status green background color.", + "type": "color", + "value": "{global.color.nonstatus.green.200}" + }, + "name": "pf-t--global--color--nonstatus--green--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--color--nonstatus--green--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--teal--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.color.nonstatus.teal.100}" + }, + "name": "pf-t--global--color--nonstatus--teal--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--color--nonstatus--teal--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--teal--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status teal background color.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status teal background color.", + "type": "color", + "value": "{global.color.nonstatus.teal.200}" + }, + "name": "pf-t--global--color--nonstatus--teal--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--color--nonstatus--teal--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--teal--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status teal background color.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status teal background color.", + "type": "color", + "value": "{global.color.nonstatus.teal.200}" + }, + "name": "pf-t--global--color--nonstatus--teal--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--color--nonstatus--teal--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--blue--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.color.nonstatus.blue.100}" + }, + "name": "pf-t--global--color--nonstatus--blue--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--color--nonstatus--blue--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--blue--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status blue background color.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status blue background color.", + "type": "color", + "value": "{global.color.nonstatus.blue.200}" + }, + "name": "pf-t--global--color--nonstatus--blue--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--color--nonstatus--blue--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--blue--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status blue background color.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status blue background color.", + "type": "color", + "value": "{global.color.nonstatus.blue.200}" + }, + "name": "pf-t--global--color--nonstatus--blue--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--color--nonstatus--blue--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--purple--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.color.nonstatus.purple.100}" + }, + "name": "pf-t--global--color--nonstatus--purple--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "default" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--color--nonstatus--purple--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "100" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--purple--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status purple background color.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status purple background color.", + "type": "color", + "value": "{global.color.nonstatus.purple.200}" + }, + "name": "pf-t--global--color--nonstatus--purple--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--color--nonstatus--purple--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--purple--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status purple background color.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status purple background color.", + "type": "color", + "value": "{global.color.nonstatus.purple.200}" + }, + "name": "pf-t--global--color--nonstatus--purple--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--color--nonstatus--purple--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--gray--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.color.nonstatus.gray.100}" + }, + "name": "pf-t--global--color--nonstatus--gray--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "default" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--color--nonstatus--gray--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "100" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--gray--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status gray background color.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status gray background color.", + "type": "color", + "value": "{global.color.nonstatus.gray.200}" + }, + "name": "pf-t--global--color--nonstatus--gray--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--color--nonstatus--gray--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "200" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--gray--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status gray background color.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status gray background color.", + "type": "color", + "value": "{global.color.nonstatus.gray.200}" + }, + "name": "pf-t--global--color--nonstatus--gray--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--color--nonstatus--gray--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "200" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--link--default": { + "default": { + "description": "Use as the default text color for links.", + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default text color for links.", + "type": "color", + "value": "{global.text.color.link.100}" + }, + "name": "pf-t--global--text--color--link--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "link", + "state": "default" + }, + "path": [ + "global", + "text", + "color", + "link", + "default" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.50}" + }, + "name": "pf-t--global--text--color--link--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "link", + "state": "100" + }, + "path": [ + "global", + "text", + "color", + "link", + "100" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--link--hover": { + "default": { + "description": "Use as the hover state text color for links.", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state text color for links.", + "type": "color", + "value": "{global.text.color.link.200}" + }, + "name": "pf-t--global--text--color--link--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "link", + "state": "hover" + }, + "path": [ + "global", + "text", + "color", + "link", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--text--color--link--200", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "link", + "state": "200" + }, + "path": [ + "global", + "text", + "color", + "link", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--link--visited": { + "default": { + "description": "Use as the color to indicate that a link has been visited.", + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color to indicate that a link has been visited.", + "type": "color", + "value": "{global.text.color.link.300}" + }, + "name": "pf-t--global--text--color--link--visited", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "link", + "state": "visited" + }, + "path": [ + "global", + "text", + "color", + "link", + "visited" + ], + "references": [ + { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.50}" + }, + "name": "pf-t--global--text--color--link--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "link", + "state": "300" + }, + "path": [ + "global", + "text", + "color", + "link", + "300" + ], + "references": [ + { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5e40be" + }, + "name": "pf-t--color--purple--50", + "attributes": { + "category": "color", + "type": "purple", + "item": "50" + }, + "path": [ + "color", + "purple", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--regular": { + "default": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--subtle": { + "default": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "{global.text.color.200}" + }, + "name": "pf-t--global--text--color--subtle", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "text", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--text--color--200", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "200" + }, + "path": [ + "global", + "text", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--inverse": { + "default": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--placeholder": { + "default": { + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "type": "color", + "value": "{global.text.color.subtle}" + }, + "name": "pf-t--global--text--color--placeholder", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "placeholder" + }, + "path": [ + "global", + "text", + "color", + "placeholder" + ], + "references": [ + { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "{global.text.color.200}" + }, + "name": "pf-t--global--text--color--subtle", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "text", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--text--color--200", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "200" + }, + "path": [ + "global", + "text", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--disabled": { + "default": { + "description": "Use as the color of text on disabled elements, like disabled menu items.", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text on disabled elements, like disabled menu items.", + "type": "color", + "value": "{global.color.disabled.200}" + }, + "name": "pf-t--global--text--color--disabled", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "disabled" + }, + "path": [ + "global", + "text", + "color", + "disabled" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--color--disabled--200", + "attributes": { + "category": "global", + "type": "color", + "item": "disabled", + "subitem": "200" + }, + "path": [ + "global", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-disabled": { + "default": { + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", + "type": "color", + "value": "{global.color.disabled.300}" + }, + "name": "pf-t--global--text--color--on-disabled", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-disabled" + }, + "path": [ + "global", + "text", + "color", + "on-disabled" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--color--disabled--300", + "attributes": { + "category": "global", + "type": "color", + "item": "disabled", + "subitem": "300" + }, + "path": [ + "global", + "color", + "disabled", + "300" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--required": { + "default": { + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", + "type": "color", + "value": "{global.text.color.400}" + }, + "name": "pf-t--global--text--color--required", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "required" + }, + "path": [ + "global", + "text", + "color", + "required" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--text--color--400", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "400" + }, + "path": [ + "global", + "text", + "color", + "400" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-highlight": { + "default": { + "description": "Use as the color of text that is highlighted.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is highlighted.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--on-highlight", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-highlight" + }, + "path": [ + "global", + "text", + "color", + "on-highlight" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--brand--default": { + "default": { + "description": "Use as the default color for branded text.", + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for branded text.", + "type": "color", + "value": "{global.color.brand.default}" + }, + "name": "pf-t--global--text--color--brand--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "brand", + "state": "default" + }, + "path": [ + "global", + "text", + "color", + "brand", + "default" + ], + "references": [ + { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.color.brand.200}" + }, + "name": "pf-t--global--color--brand--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "default" + }, + "path": [ + "global", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.50}" + }, + "name": "pf-t--global--color--brand--200", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "200" + }, + "path": [ + "global", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--brand--hover": { + "default": { + "description": "Use as the hover state color for branded text.", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for branded text.", + "type": "color", + "value": "{global.color.brand.hover}" + }, + "name": "pf-t--global--text--color--brand--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "brand", + "state": "hover" + }, + "path": [ + "global", + "text", + "color", + "brand", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.color.brand.300}" + }, + "name": "pf-t--global--color--brand--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--brand--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" + }, + "path": [ + "global", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--brand--clicked": { + "default": { + "description": "Use as the clicked state color for branded text.", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for branded text.", + "type": "color", + "value": "{global.color.brand.clicked}" + }, + "name": "pf-t--global--text--color--brand--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "brand", + "state": "clicked" + }, + "path": [ + "global", + "text", + "color", + "brand", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.color.brand.300}" + }, + "name": "pf-t--global--color--brand--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--brand--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" + }, + "path": [ + "global", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--default": { + "default": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--on-brand--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "default" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--hover": { + "default": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--on-brand--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "hover" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--clicked": { + "default": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--on-brand--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "clicked" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--accent--default": { + "default": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--on-brand--accent--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "accent", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--accent--hover": { + "default": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--on-brand--accent--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "accent", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--accent--clicked": { + "default": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--on-brand--accent--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "accent", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--subtle--default": { + "default": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--on-brand--subtle--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "subtle", + "default" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--subtle--hover": { + "default": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--on-brand--subtle--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "subtle", + "hover" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--subtle--clicked": { + "default": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--on-brand--subtle--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "subtle", + "clicked" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--success--default": { + "default": { + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.success.default}" + }, + "name": "pf-t--global--text--color--status--success--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "text", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "{global.color.status.success.100}" + }, + "name": "pf-t--global--color--status--success--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.60}" + }, + "name": "pf-t--global--color--status--success--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "success", + "100" + ], + "references": [ + { + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d7317" + }, + "name": "pf-t--color--green--60", + "attributes": { + "category": "color", + "type": "green", + "item": "60" + }, + "path": [ + "color", + "green", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--success--hover": { + "default": { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.success.hover}" + }, + "name": "pf-t--global--text--color--status--success--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "text", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "{global.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.70}" + }, + "name": "pf-t--global--color--status--success--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#204d00" + }, + "name": "pf-t--color--green--70", + "attributes": { + "category": "color", + "type": "green", + "item": "70" + }, + "path": [ + "color", + "green", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--success--clicked": { + "default": { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.success.clicked}" + }, + "name": "pf-t--global--text--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "text", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "{global.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.70}" + }, + "name": "pf-t--global--color--status--success--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#204d00" + }, + "name": "pf-t--color--green--70", + "attributes": { + "category": "color", + "type": "green", + "item": "70" + }, + "path": [ + "color", + "green", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-success--default": { + "default": { + "description": "Use as the default color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-success--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-success", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-success--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-success--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-success", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-success--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-success--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-success", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--warning--default": { + "default": { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.warning.200}" + }, + "name": "pf-t--global--text--color--status--warning--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--global--color--status--warning--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--warning--hover": { + "default": { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.warning.300}" + }, + "name": "pf-t--global--text--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.50}" + }, + "name": "pf-t--global--color--status--warning--300", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "300" + }, + "path": [ + "global", + "color", + "status", + "warning", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b98412" + }, + "name": "pf-t--color--yellow--50", + "attributes": { + "category": "color", + "type": "yellow", + "item": "50" + }, + "path": [ + "color", + "yellow", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--warning--clicked": { + "default": { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.warning.300}" + }, + "name": "pf-t--global--text--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.50}" + }, + "name": "pf-t--global--color--status--warning--300", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "300" + }, + "path": [ + "global", + "color", + "status", + "warning", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b98412" + }, + "name": "pf-t--color--yellow--50", + "attributes": { + "category": "color", + "type": "yellow", + "item": "50" + }, + "path": [ + "color", + "yellow", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-warning--default": { + "default": { + "description": "Use as the default color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--status--on-warning--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-warning", + "default" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-warning--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--status--on-warning--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-warning", + "hover" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-warning--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--status--on-warning--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-warning", + "clicked" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--danger--default": { + "default": { + "description": "Use as the default color for text that communicates a danger status.", + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that communicates a danger status.", + "type": "color", + "value": "{global.color.status.danger.default}" + }, + "name": "pf-t--global--text--color--status--danger--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "{global.color.status.danger.100}" + }, + "name": "pf-t--global--color--status--danger--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.60}" + }, + "name": "pf-t--global--color--status--danger--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "danger", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b1380b" + }, + "name": "pf-t--color--red-orange--60", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "60" + }, + "path": [ + "color", + "red-orange", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--danger--hover": { + "default": { + "description": "Use as the hover state color for text that communicates a danger status.", + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that communicates a danger status.", + "type": "color", + "value": "{global.color.status.danger.hover}" + }, + "name": "pf-t--global--text--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "{global.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.70}" + }, + "name": "pf-t--global--color--status--danger--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--danger--clicked": { + "default": { + "description": "Use as the clicked state color for text that communicates a danger status.", + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that communicates a danger status.", + "type": "color", + "value": "{global.color.status.danger.clicked}" + }, + "name": "pf-t--global--text--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "{global.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.70}" + }, + "name": "pf-t--global--color--status--danger--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-danger--default": { + "default": { + "description": "Use as the default color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-danger--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-danger", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-danger--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-danger--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-danger", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-danger--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-danger--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-danger", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--info--default": { + "default": { + "description": "Use as the default color for text that communicates am info status.", + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that communicates am info status.", + "type": "color", + "value": "{global.color.status.info.default}" + }, + "name": "pf-t--global--text--color--status--info--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "text", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "{global.color.status.info.100}" + }, + "name": "pf-t--global--color--status--info--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.50}" + }, + "name": "pf-t--global--color--status--info--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5e40be" + }, + "name": "pf-t--color--purple--50", + "attributes": { + "category": "color", + "type": "purple", + "item": "50" + }, + "path": [ + "color", + "purple", + "50" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--info--hover": { + "default": { + "description": "Use as the hover state color for text that communicates an infostatus.", + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that communicates an infostatus.", + "type": "color", + "value": "{global.color.status.info.hover}" + }, + "name": "pf-t--global--text--color--status--info--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "text", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "{global.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.60}" + }, + "name": "pf-t--global--color--status--info--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d2785" + }, + "name": "pf-t--color--purple--60", + "attributes": { + "category": "color", + "type": "purple", + "item": "60" + }, + "path": [ + "color", + "purple", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--info--clicked": { + "default": { + "description": "Use as the clicked state color for text that communicates an info status.", + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that communicates an info status.", + "type": "color", + "value": "{global.color.status.info.clicked}" + }, + "name": "pf-t--global--text--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "text", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "{global.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.60}" + }, + "name": "pf-t--global--color--status--info--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d2785" + }, + "name": "pf-t--color--purple--60", + "attributes": { + "category": "color", + "type": "purple", + "item": "60" + }, + "path": [ + "color", + "purple", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-info--default": { + "default": { + "description": "Use as the default color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-info--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-info", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-info--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-info--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-info", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-info--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-info--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-info", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--custom--default": { + "default": { + "description": "Use as the default color for text that communicates a custom status.", + "type": "color", + "value": "#147878", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that communicates a custom status.", + "type": "color", + "value": "{global.color.status.custom.default}" + }, + "name": "pf-t--global--text--color--status--custom--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#147878", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.color.status.custom.100}" + }, + "name": "pf-t--global--color--status--custom--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "type": "color", + "value": "#147878", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.60}" + }, + "name": "pf-t--global--color--status--custom--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "custom", + "100" + ], + "references": [ + { + "type": "color", + "value": "#147878", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#147878" + }, + "name": "pf-t--color--teal--60", + "attributes": { + "category": "color", + "type": "teal", + "item": "60" + }, + "path": [ + "color", + "teal", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--custom--hover": { + "default": { + "description": "Use as the hover state color for text that communicates a custom status.", + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that communicates a custom status.", + "type": "color", + "value": "{global.color.status.custom.hover}" + }, + "name": "pf-t--global--text--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.70}" + }, + "name": "pf-t--global--color--status--custom--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d4d" + }, + "name": "pf-t--color--teal--70", + "attributes": { + "category": "color", + "type": "teal", + "item": "70" + }, + "path": [ + "color", + "teal", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--custom--clicked": { + "default": { + "description": "Use as the clicked state color for text that communicates a custom status.", + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that communicates a custom status.", + "type": "color", + "value": "{global.color.status.custom.clicked}" + }, + "name": "pf-t--global--text--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.70}" + }, + "name": "pf-t--global--color--status--custom--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d4d" + }, + "name": "pf-t--color--teal--70", + "attributes": { + "category": "color", + "type": "teal", + "item": "70" + }, + "path": [ + "color", + "teal", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-custom--default": { + "default": { + "description": "Use as the default color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-custom--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-custom", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-custom--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-custom--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-custom", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-custom--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-custom--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-custom", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-default--default": { + "default": { + "description": "Use as the default color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-default--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-default", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-default--hover": { + "default": { + "description": "Use as the hover state color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-default--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-default", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-default--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-default--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-default", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-attention--default": { + "default": { + "description": "Use as the default color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-attention--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-attention", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-attention--hover": { + "default": { + "description": "Use as the hover state color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-attention--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-attention", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-attention--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-attention--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-attention", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-red--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-red--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-red", + "default" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-red--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-red--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-red", + "hover" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-red--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-red--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-red", + "clicked" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orangered--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orangered--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orangered", + "default" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orangered--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orangered--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orangered", + "hover" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orangered--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orangered--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orangered", + "clicked" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orange--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orange--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orange", + "default" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orange--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orange--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orange", + "hover" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orange--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orange--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orange", + "clicked" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-yellow--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-yellow--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-yellow", + "default" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-yellow--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-yellow--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-yellow", + "hover" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-yellow--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-yellow--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-yellow", + "clicked" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-green--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-green--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-green", + "default" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-green--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-green--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-green", + "hover" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-green--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-green--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-green", + "clicked" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-teal--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-teal--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-teal", + "default" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-teal--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-teal--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-teal", + "hover" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-teal--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-teal--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-teal", + "clicked" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-blue--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-blue--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-blue", + "default" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-blue--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-blue--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-blue", + "hover" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-blue--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-blue--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-blue", + "clicked" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-purple--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-purple--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-purple", + "default" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-purple--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-purple--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-purple", + "hover" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-purple--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-purple--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-purple", + "clicked" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-gray--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-gray--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-gray", + "default" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-gray--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-gray--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-gray", + "hover" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-gray--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-gray--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-gray", + "clicked" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--focus-ring--color--default": { + "default": { + "description": "Use as color value for custom focus rings", + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as color value for custom focus rings", + "type": "color", + "value": "{global.focus-ring.color.100}" + }, + "name": "pf-t--global--focus-ring--color--default", + "attributes": { + "category": "global", + "type": "focus-ring", + "item": "color", + "subitem": "default" + }, + "path": [ + "global", + "focus-ring", + "color", + "default" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.50}" + }, + "name": "pf-t--global--focus-ring--color--100", + "attributes": { + "category": "global", + "type": "focus-ring", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "focus-ring", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + ] + } + ] + } + } + }, + "dimension": {}, + "motion": {} + }, + "base": { + "colors": { + "pf-t--global--icon--color--100": { + "default": { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + }, + "pf-t--global--icon--color--150": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--icon--color--150", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "150" + }, + "path": [ + "global", + "icon", + "color", + "150" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + }, + "pf-t--global--icon--color--200": { + "default": { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--icon--color--200", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "200" + }, + "path": [ + "global", + "icon", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + }, + "pf-t--global--icon--color--300": { + "default": { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + }, + "pf-t--global--border--color--50": { + "default": { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--border--color--50", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "50" + }, + "path": [ + "global", + "border", + "color", + "50" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + }, + "pf-t--global--border--color--100": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--border--color--100", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "border", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + }, + "pf-t--global--border--color--200": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--border--color--200", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "200" + }, + "path": [ + "global", + "border", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + }, + "pf-t--global--border--color--300": { + "default": { + "type": "color", + "value": "#8c8c8c", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.45}" + }, + "name": "pf-t--global--border--color--300", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "border", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#8c8c8c", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#8c8c8c" + }, + "name": "pf-t--color--gray--45", + "attributes": { + "category": "color", + "type": "gray", + "item": "45" + }, + "path": [ + "color", + "gray", + "45" + ] + } + ] + } + }, + "pf-t--global--border--color--400": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--border--color--400", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "400" + }, + "path": [ + "global", + "border", + "color", + "400" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--100": { + "default": { + "type": "color", + "value": "rgba(41, 41, 41, 0.1500)", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(41, 41, 41, 0.1500)" + }, + "name": "pf-t--global--box-shadow--color--100", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "box-shadow", + "color", + "100" + ] + } + }, + "pf-t--global--box-shadow--color--200": { + "default": { + "type": "color", + "value": "rgba(41, 41, 41, 0.2000)", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(41, 41, 41, 0.2000)" + }, + "name": "pf-t--global--box-shadow--color--200", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "200" + }, + "path": [ + "global", + "box-shadow", + "color", + "200" + ] + } + }, + "pf-t--global--background--color--100": { + "default": { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--background--color--100", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "background", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + }, + "pf-t--global--background--color--200": { + "default": { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--background--color--200", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "200" + }, + "path": [ + "global", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + }, + "pf-t--global--background--color--300": { + "default": { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--background--color--300", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "background", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + }, + "pf-t--global--background--color--400": { + "default": { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--background--color--400", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "400" + }, + "path": [ + "global", + "background", + "color", + "400" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + }, + "pf-t--global--background--color--450": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--background--color--450", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "450" + }, + "path": [ + "global", + "background", + "color", + "450" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + }, + "pf-t--global--background--color--500": { + "default": { + "type": "color", + "value": "rgba(21, 21, 21, 0.4000)", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(21, 21, 21, 0.4000)" + }, + "name": "pf-t--global--background--color--500", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "500" + }, + "path": [ + "global", + "background", + "color", + "500" + ] + } + }, + "pf-t--global--background--color--600": { + "default": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)" + }, + "name": "pf-t--global--background--color--600", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "600" + }, + "path": [ + "global", + "background", + "color", + "600" + ] + } + }, + "pf-t--global--background--color--700": { + "default": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1000)", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1000)" + }, + "name": "pf-t--global--background--color--700", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "700" + }, + "path": [ + "global", + "background", + "color", + "700" + ] + } + }, + "pf-t--global--background--color--highlight--100": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--background--color--highlight--100", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "highlight", + "state": "100" + }, + "path": [ + "global", + "background", + "color", + "highlight", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--global--background--color--highlight--200": { + "default": { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--global--background--color--highlight--200", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "highlight", + "state": "200" + }, + "path": [ + "global", + "background", + "color", + "highlight", + "200" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + }, + "pf-t--global--color--brand--100": { + "default": { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.40}" + }, + "name": "pf-t--global--color--brand--100", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "100" + }, + "path": [ + "global", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4394e5" + }, + "name": "pf-t--color--blue--40", + "attributes": { + "category": "color", + "type": "blue", + "item": "40" + }, + "path": [ + "color", + "blue", + "40" + ] + } + ] + } + }, + "pf-t--global--color--brand--200": { + "default": { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.50}" + }, + "name": "pf-t--global--color--brand--200", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "200" + }, + "path": [ + "global", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + ] + } + }, + "pf-t--global--color--brand--300": { + "default": { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--brand--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" + }, + "path": [ + "global", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + }, + "pf-t--global--color--brand--400": { + "default": { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.70}" + }, + "name": "pf-t--global--color--brand--400", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "400" + }, + "path": [ + "global", + "color", + "brand", + "400" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } + ] + } + }, + "pf-t--global--color--brand--500": { + "default": { + "type": "color", + "value": "#032142", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.80}" + }, + "name": "pf-t--global--color--brand--500", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "500" + }, + "path": [ + "global", + "color", + "brand", + "500" + ], + "references": [ + { + "type": "color", + "value": "#032142", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#032142" + }, + "name": "pf-t--color--blue--80", + "attributes": { + "category": "color", + "type": "blue", + "item": "80" + }, + "path": [ + "color", + "blue", + "80" + ] + } + ] + } + }, + "pf-t--global--color--brand--accent--100": { + "default": { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.50}" + }, + "name": "pf-t--global--color--brand--accent--100", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "100" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ee0000" + }, + "name": "pf-t--color--red--50", + "attributes": { + "category": "color", + "type": "red", + "item": "50" + }, + "path": [ + "color", + "red", + "50" + ] + } + ] + } + }, + "pf-t--global--color--brand--accent--200": { + "default": { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.60}" + }, + "name": "pf-t--global--color--brand--accent--200", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "200" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a60000" + }, + "name": "pf-t--color--red--60", + "attributes": { + "category": "color", + "type": "red", + "item": "60" + }, + "path": [ + "color", + "red", + "60" + ] + } + ] + } + }, + "pf-t--global--color--brand--accent--300": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--color--brand--accent--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "300" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "300" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + }, + "pf-t--global--color--brand--accent--400": { + "default": { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.black}" + }, + "name": "pf-t--global--color--brand--accent--400", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "400" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "400" + ], + "references": [ + { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#000000" + }, + "name": "pf-t--color--black", + "attributes": { + "category": "color", + "type": "black" + }, + "path": [ + "color", + "black" + ] + } + ] + } + }, + "pf-t--global--color--brand--subtle--100": { + "default": { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--color--brand--subtle--100", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "100" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "100" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + }, + "pf-t--global--color--brand--subtle--200": { + "default": { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--color--brand--subtle--200", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "200" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + }, + "pf-t--global--color--brand--subtle--300": { + "default": { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.40}" + }, + "name": "pf-t--global--color--brand--subtle--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "300" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "300" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4394e5" + }, + "name": "pf-t--color--blue--40", + "attributes": { + "category": "color", + "type": "blue", + "item": "40" + }, + "path": [ + "color", + "blue", + "40" + ] + } + ] + } + }, + "pf-t--global--color--brand--subtle--400": { + "default": { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.50}" + }, + "name": "pf-t--global--color--brand--subtle--400", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "400" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "400" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + ] + } + }, + "pf-t--global--color--disabled--100": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--color--disabled--100", + "attributes": { + "category": "global", + "type": "color", + "item": "disabled", + "subitem": "100" + }, + "path": [ + "global", + "color", + "disabled", + "100" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + }, + "pf-t--global--color--disabled--200": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--color--disabled--200", + "attributes": { + "category": "global", + "type": "color", + "item": "disabled", + "subitem": "200" + }, + "path": [ + "global", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + }, + "pf-t--global--color--disabled--300": { + "default": { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--color--disabled--300", + "attributes": { + "category": "global", + "type": "color", + "item": "disabled", + "subitem": "300" + }, + "path": [ + "global", + "color", + "disabled", + "300" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + }, + "pf-t--global--color--favorite--100": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--color--favorite--100", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "100" + }, + "path": [ + "global", + "color", + "favorite", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--global--color--favorite--200": { + "default": { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--global--color--favorite--200", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "200" + }, + "path": [ + "global", + "color", + "favorite", + "200" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + }, + "pf-t--global--color--favorite--300": { + "default": { + "type": "color", + "value": "#73480b", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.70}" + }, + "name": "pf-t--global--color--favorite--300", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "300" + }, + "path": [ + "global", + "color", + "favorite", + "300" + ], + "references": [ + { + "type": "color", + "value": "#73480b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#73480b" + }, + "name": "pf-t--color--yellow--70", + "attributes": { + "category": "color", + "type": "yellow", + "item": "70" + }, + "path": [ + "color", + "yellow", + "70" + ] + } + ] + } + }, + "pf-t--global--color--favorite--400": { + "default": { + "type": "color", + "value": "#54330b", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.80}" + }, + "name": "pf-t--global--color--favorite--400", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "400" + }, + "path": [ + "global", + "color", + "favorite", + "400" + ], + "references": [ + { + "type": "color", + "value": "#54330b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#54330b" + }, + "name": "pf-t--color--yellow--80", + "attributes": { + "category": "color", + "type": "yellow", + "item": "80" + }, + "path": [ + "color", + "yellow", + "80" + ] + } + ] + } + }, + "pf-t--global--color--status--success--100": { + "default": { + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.60}" + }, + "name": "pf-t--global--color--status--success--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "success", + "100" + ], + "references": [ + { + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d7317" + }, + "name": "pf-t--color--green--60", + "attributes": { + "category": "color", + "type": "green", + "item": "60" + }, + "path": [ + "color", + "green", + "60" + ] + } + ] + } + }, + "pf-t--global--color--status--success--150": { + "default": { + "type": "color", + "value": "#3d7019", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d7019" + }, + "name": "pf-t--global--color--status--success--150", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "150" + }, + "path": [ + "global", + "color", + "status", + "success", + "150" + ] + } + }, + "pf-t--global--color--status--success--200": { + "default": { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.70}" + }, + "name": "pf-t--global--color--status--success--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#204d00" + }, + "name": "pf-t--color--green--70", + "attributes": { + "category": "color", + "type": "green", + "item": "70" + }, + "path": [ + "color", + "green", + "70" + ] + } + ] + } + }, + "pf-t--global--color--status--success--300": { + "default": { + "type": "color", + "value": "#183301", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.80}" + }, + "name": "pf-t--global--color--status--success--300", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "300" + }, + "path": [ + "global", + "color", + "status", + "success", + "300" + ], + "references": [ + { + "type": "color", + "value": "#183301", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#183301" + }, + "name": "pf-t--color--green--80", + "attributes": { + "category": "color", + "type": "green", + "item": "80" + }, + "path": [ + "color", + "green", + "80" + ] + } + ] + } + }, + "pf-t--global--color--status--warning--100": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--color--status--warning--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "warning", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--global--color--status--warning--200": { + "default": { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--global--color--status--warning--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + }, + "pf-t--global--color--status--warning--300": { + "default": { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.50}" + }, + "name": "pf-t--global--color--status--warning--300", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "300" + }, + "path": [ + "global", + "color", + "status", + "warning", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b98412" + }, + "name": "pf-t--color--yellow--50", + "attributes": { + "category": "color", + "type": "yellow", + "item": "50" + }, + "path": [ + "color", + "yellow", + "50" + ] + } + ] + } + }, + "pf-t--global--color--status--warning--400": { + "default": { + "type": "color", + "value": "#96640f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.60}" + }, + "name": "pf-t--global--color--status--warning--400", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "400" + }, + "path": [ + "global", + "color", + "status", + "warning", + "400" + ], + "references": [ + { + "type": "color", + "value": "#96640f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#96640f" + }, + "name": "pf-t--color--yellow--60", + "attributes": { + "category": "color", + "type": "yellow", + "item": "60" + }, + "path": [ + "color", + "yellow", + "60" + ] + } + ] + } + }, + "pf-t--global--color--status--warning--500": { + "default": { + "type": "color", + "value": "#73480b", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.70}" + }, + "name": "pf-t--global--color--status--warning--500", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "500" + }, + "path": [ + "global", + "color", + "status", + "warning", + "500" + ], + "references": [ + { + "type": "color", + "value": "#73480b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#73480b" + }, + "name": "pf-t--color--yellow--70", + "attributes": { + "category": "color", + "type": "yellow", + "item": "70" + }, + "path": [ + "color", + "yellow", + "70" + ] + } + ] + } + }, + "pf-t--global--color--status--warning--600": { + "default": { + "type": "color", + "value": "#54330b", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.80}" + }, + "name": "pf-t--global--color--status--warning--600", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "600" + }, + "path": [ + "global", + "color", + "status", + "warning", + "600" + ], + "references": [ + { + "type": "color", + "value": "#54330b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#54330b" + }, + "name": "pf-t--color--yellow--80", + "attributes": { + "category": "color", + "type": "yellow", + "item": "80" + }, + "path": [ + "color", + "yellow", + "80" + ] + } + ] + } + }, + "pf-t--global--color--status--danger--100": { + "default": { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.60}" + }, + "name": "pf-t--global--color--status--danger--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "danger", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b1380b" + }, + "name": "pf-t--color--red-orange--60", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "60" + }, + "path": [ + "color", + "red-orange", + "60" + ] + } + ] + } + }, + "pf-t--global--color--status--danger--200": { + "default": { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.70}" + }, + "name": "pf-t--global--color--status--danger--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } + ] + } + }, + "pf-t--global--color--status--danger--300": { + "default": { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.70}" + }, + "name": "pf-t--global--color--status--danger--300", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "300" + }, + "path": [ + "global", + "color", + "status", + "danger", + "300" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } + ] + } + }, + "pf-t--global--color--status--info--100": { + "default": { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.50}" + }, + "name": "pf-t--global--color--status--info--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5e40be" + }, + "name": "pf-t--color--purple--50", + "attributes": { + "category": "color", + "type": "purple", + "item": "50" + }, + "path": [ + "color", + "purple", + "50" + ] + } + ] + } + }, + "pf-t--global--color--status--info--200": { + "default": { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.60}" + }, + "name": "pf-t--global--color--status--info--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d2785" + }, + "name": "pf-t--color--purple--60", + "attributes": { + "category": "color", + "type": "purple", + "item": "60" + }, + "path": [ + "color", + "purple", + "60" + ] + } + ] + } + }, + "pf-t--global--color--status--info--300": { + "default": { + "type": "color", + "value": "#21134d", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.70}" + }, + "name": "pf-t--global--color--status--info--300", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "300" + }, + "path": [ + "global", + "color", + "status", + "info", + "300" + ], + "references": [ + { + "type": "color", + "value": "#21134d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#21134d" + }, + "name": "pf-t--color--purple--70", + "attributes": { + "category": "color", + "type": "purple", + "item": "70" + }, + "path": [ + "color", + "purple", + "70" + ] + } + ] + } + }, + "pf-t--global--color--status--custom--100": { + "default": { + "type": "color", + "value": "#147878", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.60}" + }, + "name": "pf-t--global--color--status--custom--100", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "100" + }, + "path": [ + "global", + "color", + "status", + "custom", + "100" + ], + "references": [ + { + "type": "color", + "value": "#147878", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#147878" + }, + "name": "pf-t--color--teal--60", + "attributes": { + "category": "color", + "type": "teal", + "item": "60" + }, + "path": [ + "color", + "teal", + "60" + ] + } + ] + } + }, + "pf-t--global--color--status--custom--200": { + "default": { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.70}" + }, + "name": "pf-t--global--color--status--custom--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d4d" + }, + "name": "pf-t--color--teal--70", + "attributes": { + "category": "color", + "type": "teal", + "item": "70" + }, + "path": [ + "color", + "teal", + "70" + ] + } + ] + } + }, + "pf-t--global--color--status--custom--300": { + "default": { + "type": "color", + "value": "#003333", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.80}" + }, + "name": "pf-t--global--color--status--custom--300", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "300" + }, + "path": [ + "global", + "color", + "status", + "custom", + "300" + ], + "references": [ + { + "type": "color", + "value": "#003333", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003333" + }, + "name": "pf-t--color--teal--80", + "attributes": { + "category": "color", + "type": "teal", + "item": "80" + }, + "path": [ + "color", + "teal", + "80" + ] + } + ] + } + }, + "pf-t--global--color--severity--undefined--100": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--color--severity--undefined--100", + "attributes": { + "category": "global", + "type": "color", + "item": "severity", + "subitem": "undefined", + "state": "100" + }, + "path": [ + "global", + "color", + "severity", + "undefined", + "100" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + }, + "pf-t--global--color--severity--undefined--200": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--color--severity--undefined--200", + "attributes": { + "category": "global", + "type": "color", + "item": "severity", + "subitem": "undefined", + "state": "200" + }, + "path": [ + "global", + "color", + "severity", + "undefined", + "200" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + }, + "pf-t--global--color--severity--none--100": { + "default": { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.40}" + }, + "name": "pf-t--global--color--severity--none--100", + "attributes": { + "category": "global", + "type": "color", + "item": "severity", + "subitem": "none", + "state": "100" + }, + "path": [ + "global", + "color", + "severity", + "none", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4394e5" + }, + "name": "pf-t--color--blue--40", + "attributes": { + "category": "color", + "type": "blue", + "item": "40" + }, + "path": [ + "color", + "blue", + "40" + ] + } + ] + } + }, + "pf-t--global--color--severity--none--200": { + "default": { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--severity--none--200", + "attributes": { + "category": "global", + "type": "color", + "item": "severity", + "subitem": "none", + "state": "200" + }, + "path": [ + "global", + "color", + "severity", + "none", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + }, + "pf-t--global--color--severity--minor--100": { + "default": { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--color--severity--minor--100", + "attributes": { + "category": "global", + "type": "color", + "item": "severity", + "subitem": "minor", + "state": "100" + }, + "path": [ + "global", + "color", + "severity", + "minor", + "100" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + }, + "pf-t--global--color--severity--minor--200": { + "default": { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--color--severity--minor--200", + "attributes": { + "category": "global", + "type": "color", + "item": "severity", + "subitem": "minor", + "state": "200" + }, + "path": [ + "global", + "color", + "severity", + "minor", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + }, + "pf-t--global--color--severity--moderate--100": { + "default": { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--global--color--severity--moderate--100", + "attributes": { + "category": "global", + "type": "color", + "item": "severity", + "subitem": "moderate", + "state": "100" + }, + "path": [ + "global", + "color", + "severity", + "moderate", + "100" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + }, + "pf-t--global--color--severity--moderate--200": { + "default": { + "type": "color", + "value": "#73480b", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.70}" + }, + "name": "pf-t--global--color--severity--moderate--200", + "attributes": { + "category": "global", + "type": "color", + "item": "severity", + "subitem": "moderate", + "state": "200" + }, + "path": [ + "global", + "color", + "severity", + "moderate", + "200" + ], + "references": [ + { + "type": "color", + "value": "#73480b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#73480b" + }, + "name": "pf-t--color--yellow--70", + "attributes": { + "category": "color", + "type": "yellow", + "item": "70" + }, + "path": [ + "color", + "yellow", + "70" + ] + } + ] + } + }, + "pf-t--global--color--severity--important--100": { + "default": { + "type": "color", + "value": "#ca6c0f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.50}" + }, + "name": "pf-t--global--color--severity--important--100", + "attributes": { + "category": "global", + "type": "color", + "item": "severity", + "subitem": "important", + "state": "100" + }, + "path": [ + "global", + "color", + "severity", + "important", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ca6c0f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ca6c0f" + }, + "name": "pf-t--color--orange--50", + "attributes": { + "category": "color", + "type": "orange", + "item": "50" + }, + "path": [ + "color", + "orange", + "50" + ] + } + ] + } + }, + "pf-t--global--color--severity--important--200": { + "default": { + "type": "color", + "value": "#9e4a06", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.60}" + }, + "name": "pf-t--global--color--severity--important--200", + "attributes": { + "category": "global", + "type": "color", + "item": "severity", + "subitem": "important", + "state": "200" + }, + "path": [ + "global", + "color", + "severity", + "important", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9e4a06", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9e4a06" + }, + "name": "pf-t--color--orange--60", + "attributes": { + "category": "color", + "type": "orange", + "item": "60" + }, + "path": [ + "color", + "orange", + "60" + ] + } + ] + } + }, + "pf-t--global--color--severity--critical--100": { + "default": { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.60}" + }, + "name": "pf-t--global--color--severity--critical--100", + "attributes": { + "category": "global", + "type": "color", + "item": "severity", + "subitem": "critical", + "state": "100" + }, + "path": [ + "global", + "color", + "severity", + "critical", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b1380b" + }, + "name": "pf-t--color--red-orange--60", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "60" + }, + "path": [ + "color", + "red-orange", + "60" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--red--100": { + "default": { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.20}" + }, + "name": "pf-t--global--color--nonstatus--red--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "100" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--red--200": { + "default": { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.30}" + }, + "name": "pf-t--global--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f9a8a8" + }, + "name": "pf-t--color--red--30", + "attributes": { + "category": "color", + "type": "red", + "item": "30" + }, + "path": [ + "color", + "red", + "30" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--red--300": { + "default": { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.40}" + }, + "name": "pf-t--global--color--nonstatus--red--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f56e6e" + }, + "name": "pf-t--color--red--40", + "attributes": { + "category": "color", + "type": "red", + "item": "40" + }, + "path": [ + "color", + "red", + "40" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--red--400": { + "default": { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.60}" + }, + "name": "pf-t--global--color--nonstatus--red--400", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "400" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "400" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a60000" + }, + "name": "pf-t--color--red--60", + "attributes": { + "category": "color", + "type": "red", + "item": "60" + }, + "path": [ + "color", + "red", + "60" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--red--500": { + "default": { + "type": "color", + "value": "#5f0000", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.70}" + }, + "name": "pf-t--global--color--nonstatus--red--500", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "500" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "500" + ], + "references": [ + { + "type": "color", + "value": "#5f0000", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5f0000" + }, + "name": "pf-t--color--red--70", + "attributes": { + "category": "color", + "type": "red", + "item": "70" + }, + "path": [ + "color", + "red", + "70" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orangered--100": { + "default": { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--color--nonstatus--orangered--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "100" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orangered--200": { + "default": { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orangered--300": { + "default": { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--color--nonstatus--orangered--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orangered--400": { + "default": { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.60}" + }, + "name": "pf-t--global--color--nonstatus--orangered--400", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "400" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "400" + ], + "references": [ + { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b1380b" + }, + "name": "pf-t--color--red-orange--60", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "60" + }, + "path": [ + "color", + "red-orange", + "60" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orangered--500": { + "default": { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.70}" + }, + "name": "pf-t--global--color--nonstatus--orangered--500", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "500" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "500" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orange--100": { + "default": { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--global--color--nonstatus--orange--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "100" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orange--200": { + "default": { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.30}" + }, + "name": "pf-t--global--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orange--300": { + "default": { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.40}" + }, + "name": "pf-t--global--color--nonstatus--orange--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f5921b" + }, + "name": "pf-t--color--orange--40", + "attributes": { + "category": "color", + "type": "orange", + "item": "40" + }, + "path": [ + "color", + "orange", + "40" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orange--400": { + "default": { + "type": "color", + "value": "#9e4a06", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.60}" + }, + "name": "pf-t--global--color--nonstatus--orange--400", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "400" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "400" + ], + "references": [ + { + "type": "color", + "value": "#9e4a06", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9e4a06" + }, + "name": "pf-t--color--orange--60", + "attributes": { + "category": "color", + "type": "orange", + "item": "60" + }, + "path": [ + "color", + "orange", + "60" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orange--500": { + "default": { + "type": "color", + "value": "#732e00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.70}" + }, + "name": "pf-t--global--color--nonstatus--orange--500", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "500" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "500" + ], + "references": [ + { + "type": "color", + "value": "#732e00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#732e00" + }, + "name": "pf-t--color--orange--70", + "attributes": { + "category": "color", + "type": "orange", + "item": "70" + }, + "path": [ + "color", + "orange", + "70" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--yellow--100": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--color--nonstatus--yellow--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--yellow--200": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--color--nonstatus--yellow--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--yellow--300": { + "default": { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.40}" + }, + "name": "pf-t--global--color--nonstatus--yellow--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "300" + ], + "references": [ + { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--yellow--400": { + "default": { + "type": "color", + "value": "#73480b", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.70}" + }, + "name": "pf-t--global--color--nonstatus--yellow--400", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "400" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "400" + ], + "references": [ + { + "type": "color", + "value": "#73480b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#73480b" + }, + "name": "pf-t--color--yellow--70", + "attributes": { + "category": "color", + "type": "yellow", + "item": "70" + }, + "path": [ + "color", + "yellow", + "70" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--yellow--500": { + "default": { + "type": "color", + "value": "#54330b", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.80}" + }, + "name": "pf-t--global--color--nonstatus--yellow--500", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "500" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "500" + ], + "references": [ + { + "type": "color", + "value": "#54330b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#54330b" + }, + "name": "pf-t--color--yellow--80", + "attributes": { + "category": "color", + "type": "yellow", + "item": "80" + }, + "path": [ + "color", + "yellow", + "80" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--green--100": { + "default": { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--color--nonstatus--green--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "100" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--green--200": { + "default": { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--color--nonstatus--green--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--green--300": { + "default": { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.40}" + }, + "name": "pf-t--global--color--nonstatus--green--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "300" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--green--400": { + "default": { + "type": "color", + "value": "#3d7019", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d7019" + }, + "name": "pf-t--global--color--nonstatus--green--400", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "400" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "400" + ] + } + }, + "pf-t--global--color--nonstatus--green--500": { + "default": { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.70}" + }, + "name": "pf-t--global--color--nonstatus--green--500", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "500" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "500" + ], + "references": [ + { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#204d00" + }, + "name": "pf-t--color--green--70", + "attributes": { + "category": "color", + "type": "green", + "item": "70" + }, + "path": [ + "color", + "green", + "70" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--teal--100": { + "default": { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--color--nonstatus--teal--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--teal--200": { + "default": { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--color--nonstatus--teal--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--teal--300": { + "default": { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.40}" + }, + "name": "pf-t--global--color--nonstatus--teal--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "300" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--teal--400": { + "default": { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.70}" + }, + "name": "pf-t--global--color--nonstatus--teal--400", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "400" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "400" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d4d" + }, + "name": "pf-t--color--teal--70", + "attributes": { + "category": "color", + "type": "teal", + "item": "70" + }, + "path": [ + "color", + "teal", + "70" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--teal--500": { + "default": { + "type": "color", + "value": "#003333", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.80}" + }, + "name": "pf-t--global--color--nonstatus--teal--500", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "500" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "500" + ], + "references": [ + { + "type": "color", + "value": "#003333", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003333" + }, + "name": "pf-t--color--teal--80", + "attributes": { + "category": "color", + "type": "teal", + "item": "80" + }, + "path": [ + "color", + "teal", + "80" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--blue--100": { + "default": { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--color--nonstatus--blue--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--blue--200": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--color--nonstatus--blue--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--blue--300": { + "default": { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.40}" + }, + "name": "pf-t--global--color--nonstatus--blue--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "300" + ], + "references": [ + { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4394e5" + }, + "name": "pf-t--color--blue--40", + "attributes": { + "category": "color", + "type": "blue", + "item": "40" + }, + "path": [ + "color", + "blue", + "40" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--blue--400": { + "default": { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--nonstatus--blue--400", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "400" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "400" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--blue--500": { + "default": { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.70}" + }, + "name": "pf-t--global--color--nonstatus--blue--500", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "500" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "500" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--purple--100": { + "default": { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--color--nonstatus--purple--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "100" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--purple--200": { + "default": { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--color--nonstatus--purple--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--purple--300": { + "default": { + "type": "color", + "value": "#876fd4", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.40}" + }, + "name": "pf-t--global--color--nonstatus--purple--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "300" + ], + "references": [ + { + "type": "color", + "value": "#876fd4", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#876fd4" + }, + "name": "pf-t--color--purple--40", + "attributes": { + "category": "color", + "type": "purple", + "item": "40" + }, + "path": [ + "color", + "purple", + "40" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--purple--400": { + "default": { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.50}" + }, + "name": "pf-t--global--color--nonstatus--purple--400", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "400" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "400" + ], + "references": [ + { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5e40be" + }, + "name": "pf-t--color--purple--50", + "attributes": { + "category": "color", + "type": "purple", + "item": "50" + }, + "path": [ + "color", + "purple", + "50" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--purple--500": { + "default": { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.60}" + }, + "name": "pf-t--global--color--nonstatus--purple--500", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "500" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "500" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d2785" + }, + "name": "pf-t--color--purple--60", + "attributes": { + "category": "color", + "type": "purple", + "item": "60" + }, + "path": [ + "color", + "purple", + "60" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--gray--50": { + "default": { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--color--nonstatus--gray--50", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "50" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "50" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--gray--100": { + "default": { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--color--nonstatus--gray--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "100" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--gray--200": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--color--nonstatus--gray--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "200" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--gray--300": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--color--nonstatus--gray--300", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "300" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "300" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--gray--400": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--color--nonstatus--gray--400", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "400" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "400" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--gray--500": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--color--nonstatus--gray--500", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "500" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "500" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + }, + "pf-t--global--text--color--100": { + "default": { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--text--color--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + }, + "pf-t--global--text--color--200": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--text--color--200", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "200" + }, + "path": [ + "global", + "text", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + }, + "pf-t--global--text--color--250": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--text--color--250", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "250" + }, + "path": [ + "global", + "text", + "color", + "250" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + }, + "pf-t--global--text--color--300": { + "default": { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + }, + "pf-t--global--text--color--400": { + "default": { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--text--color--400", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "400" + }, + "path": [ + "global", + "text", + "color", + "400" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + }, + "pf-t--global--text--color--500": { + "default": { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.70}" + }, + "name": "pf-t--global--text--color--500", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "500" + }, + "path": [ + "global", + "text", + "color", + "500" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } + ] + } + }, + "pf-t--global--text--color--link--100": { + "default": { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.50}" + }, + "name": "pf-t--global--text--color--link--100", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "link", + "state": "100" + }, + "path": [ + "global", + "text", + "color", + "link", + "100" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + ] + } + }, + "pf-t--global--text--color--link--200": { + "default": { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--text--color--link--200", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "link", + "state": "200" + }, + "path": [ + "global", + "text", + "color", + "link", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + }, + "pf-t--global--text--color--link--250": { + "default": { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.70}" + }, + "name": "pf-t--global--text--color--link--250", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "link", + "state": "250" + }, + "path": [ + "global", + "text", + "color", + "link", + "250" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } + ] + } + }, + "pf-t--global--text--color--link--300": { + "default": { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.50}" + }, + "name": "pf-t--global--text--color--link--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "link", + "state": "300" + }, + "path": [ + "global", + "text", + "color", + "link", + "300" + ], + "references": [ + { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5e40be" + }, + "name": "pf-t--color--purple--50", + "attributes": { + "category": "color", + "type": "purple", + "item": "50" + }, + "path": [ + "color", + "purple", + "50" + ] + } + ] + } + }, + "pf-t--global--text--color--link--350": { + "default": { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.60}" + }, + "name": "pf-t--global--text--color--link--350", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "link", + "state": "350" + }, + "path": [ + "global", + "text", + "color", + "link", + "350" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d2785" + }, + "name": "pf-t--color--purple--60", + "attributes": { + "category": "color", + "type": "purple", + "item": "60" + }, + "path": [ + "color", + "purple", + "60" + ] + } + ] + } + }, + "pf-t--global--focus-ring--color--100": { + "default": { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.50}" + }, + "name": "pf-t--global--focus-ring--color--100", + "attributes": { + "category": "global", + "type": "focus-ring", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "focus-ring", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + ] + } + }, + "pf-t--global--focus-ring--color--200": { + "default": { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--focus-ring--color--200", + "attributes": { + "category": "global", + "type": "focus-ring", + "item": "color", + "subitem": "200" + }, + "path": [ + "global", + "focus-ring", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + } + }, + "dimension": { + "pf-t--global--spacer--100": { + "default": { + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 4 + }, + "name": "pf-t--global--spacer--100", + "attributes": { + "category": "global", + "type": "spacer", + "item": "100" + }, + "path": [ + "global", + "spacer", + "100" + ] + } + }, + "pf-t--global--spacer--200": { + "default": { + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 8 + }, + "name": "pf-t--global--spacer--200", + "attributes": { + "category": "global", + "type": "spacer", + "item": "200" + }, + "path": [ + "global", + "spacer", + "200" + ] + } + }, + "pf-t--global--spacer--300": { + "default": { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--spacer--300", + "attributes": { + "category": "global", + "type": "spacer", + "item": "300" + }, + "path": [ + "global", + "spacer", + "300" + ] + } + }, + "pf-t--global--spacer--400": { + "default": { + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 24 + }, + "name": "pf-t--global--spacer--400", + "attributes": { + "category": "global", + "type": "spacer", + "item": "400" + }, + "path": [ + "global", + "spacer", + "400" + ] + } + }, + "pf-t--global--spacer--500": { + "default": { + "type": "number", + "value": "2rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 32 + }, + "name": "pf-t--global--spacer--500", + "attributes": { + "category": "global", + "type": "spacer", + "item": "500" + }, + "path": [ + "global", + "spacer", + "500" + ] + } + }, + "pf-t--global--spacer--600": { + "default": { + "type": "number", + "value": "3rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 48 + }, + "name": "pf-t--global--spacer--600", + "attributes": { + "category": "global", + "type": "spacer", + "item": "600" + }, + "path": [ + "global", + "spacer", + "600" + ] + } + }, + "pf-t--global--spacer--700": { + "default": { + "type": "number", + "value": "4rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 64 + }, + "name": "pf-t--global--spacer--700", + "attributes": { + "category": "global", + "type": "spacer", + "item": "700" + }, + "path": [ + "global", + "spacer", + "700" + ] + } + }, + "pf-t--global--spacer--800": { + "default": { + "type": "number", + "value": "5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 80 + }, + "name": "pf-t--global--spacer--800", + "attributes": { + "category": "global", + "type": "spacer", + "item": "800" + }, + "path": [ + "global", + "spacer", + "800" + ] + } + }, + "pf-t--global--icon--size--100": { + "default": { + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 12 + }, + "name": "pf-t--global--icon--size--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "size", + "100" + ] + } + }, + "pf-t--global--icon--size--200": { + "default": { + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 14 + }, + "name": "pf-t--global--icon--size--200", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "200" + }, + "path": [ + "global", + "icon", + "size", + "200" + ] + } + }, + "pf-t--global--icon--size--250": { + "default": { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--icon--size--250", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "250" + }, + "path": [ + "global", + "icon", + "size", + "250" + ] + } + }, + "pf-t--global--icon--size--300": { + "default": { + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 24 + }, + "name": "pf-t--global--icon--size--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "size", + "300" + ] + } + }, + "pf-t--global--icon--size--400": { + "default": { + "type": "number", + "value": "3.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 56 + }, + "name": "pf-t--global--icon--size--400", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "400" + }, + "path": [ + "global", + "icon", + "size", + "400" + ] + } + }, + "pf-t--global--icon--size--500": { + "default": { + "type": "number", + "value": "6rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 96 + }, + "name": "pf-t--global--icon--size--500", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "500" + }, + "path": [ + "global", + "icon", + "size", + "500" + ] + } + }, + "pf-t--global--border--width--100": { + "default": { + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1 + }, + "name": "pf-t--global--border--width--100", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "100" + }, + "path": [ + "global", + "border", + "width", + "100" + ] + } + }, + "pf-t--global--border--width--200": { + "default": { + "type": "number", + "value": "2px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 2 + }, + "name": "pf-t--global--border--width--200", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "200" + }, + "path": [ + "global", + "border", + "width", + "200" + ] + } + }, + "pf-t--global--border--width--300": { + "default": { + "type": "number", + "value": "3px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 3 + }, + "name": "pf-t--global--border--width--300", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "300" + }, + "path": [ + "global", + "border", + "width", + "300" + ] + } + }, + "pf-t--global--border--width--400": { + "default": { + "type": "number", + "value": "4px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 4 + }, + "name": "pf-t--global--border--width--400", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "400" + }, + "path": [ + "global", + "border", + "width", + "400" + ] + } + }, + "pf-t--global--border--radius--0": { + "default": { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--border--radius--0", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "0" + }, + "path": [ + "global", + "border", + "radius", + "0" + ] + } + }, + "pf-t--global--border--radius--100": { + "default": { + "type": "number", + "value": "4px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 4 + }, + "name": "pf-t--global--border--radius--100", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "100" + }, + "path": [ + "global", + "border", + "radius", + "100" + ] + } + }, + "pf-t--global--border--radius--200": { + "default": { + "type": "number", + "value": "6px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 6 + }, + "name": "pf-t--global--border--radius--200", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "200" + }, + "path": [ + "global", + "border", + "radius", + "200" + ] + } + }, + "pf-t--global--border--radius--300": { + "default": { + "type": "number", + "value": "16px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--border--radius--300", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "300" + }, + "path": [ + "global", + "border", + "radius", + "300" + ] + } + }, + "pf-t--global--border--radius--400": { + "default": { + "type": "number", + "value": "24px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 24 + }, + "name": "pf-t--global--border--radius--400", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "400" + }, + "path": [ + "global", + "border", + "radius", + "400" + ] + } + }, + "pf-t--global--border--radius--500": { + "default": { + "type": "number", + "value": "999px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 999 + }, + "name": "pf-t--global--border--radius--500", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "500" + }, + "path": [ + "global", + "border", + "radius", + "500" + ] + } + }, + "pf-t--global--font--family--100": { + "default": { + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + }, + "name": "pf-t--global--font--family--100", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "100" + }, + "path": [ + "global", + "font", + "family", + "100" + ] + } + }, + "pf-t--global--font--family--200": { + "default": { + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + }, + "name": "pf-t--global--font--family--200", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "200" + }, + "path": [ + "global", + "font", + "family", + "200" + ] + } + }, + "pf-t--global--font--family--300": { + "default": { + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" + }, + "name": "pf-t--global--font--family--300", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "300" + }, + "path": [ + "global", + "font", + "family", + "300" + ] + } + }, + "pf-t--global--font--line-height--100": { + "default": { + "type": "number", + "value": 1.3, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1.2999999523162842 + }, + "name": "pf-t--global--font--line-height--100", + "attributes": { + "category": "global", + "type": "font", + "item": "line-height", + "subitem": "100" + }, + "path": [ + "global", + "font", + "line-height", + "100" + ] + } + }, + "pf-t--global--font--line-height--200": { + "default": { + "type": "number", + "value": 1.5, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1.5 + }, + "name": "pf-t--global--font--line-height--200", + "attributes": { + "category": "global", + "type": "font", + "item": "line-height", + "subitem": "200" + }, + "path": [ + "global", + "font", + "line-height", + "200" + ] + } + }, + "pf-t--global--font--weight--100": { + "default": { + "type": "number", + "value": 400, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 400 + }, + "name": "pf-t--global--font--weight--100", + "attributes": { + "category": "global", + "type": "font", + "item": "weight", + "subitem": "100" + }, + "path": [ + "global", + "font", + "weight", + "100" + ] + } + }, + "pf-t--global--font--weight--200": { + "default": { + "type": "number", + "value": 500, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 500 + }, + "name": "pf-t--global--font--weight--200", + "attributes": { + "category": "global", + "type": "font", + "item": "weight", + "subitem": "200" + }, + "path": [ + "global", + "font", + "weight", + "200" + ] + } + }, + "pf-t--global--font--weight--300": { + "default": { + "type": "number", + "value": 500, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 500 + }, + "name": "pf-t--global--font--weight--300", + "attributes": { + "category": "global", + "type": "font", + "item": "weight", + "subitem": "300" + }, + "path": [ + "global", + "font", + "weight", + "300" + ] + } + }, + "pf-t--global--font--weight--400": { + "default": { + "type": "number", + "value": 700, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 700 + }, + "name": "pf-t--global--font--weight--400", + "attributes": { + "category": "global", + "type": "font", + "item": "weight", + "subitem": "400" + }, + "path": [ + "global", + "font", + "weight", + "400" + ] + } + }, + "pf-t--global--font--size--100": { + "default": { + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 12 + }, + "name": "pf-t--global--font--size--100", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "100" + }, + "path": [ + "global", + "font", + "size", + "100" + ] + } + }, + "pf-t--global--font--size--200": { + "default": { + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 14 + }, + "name": "pf-t--global--font--size--200", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "200" + }, + "path": [ + "global", + "font", + "size", + "200" + ] + } + }, + "pf-t--global--font--size--300": { + "default": { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } + }, + "pf-t--global--font--size--400": { + "default": { + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 18 + }, + "name": "pf-t--global--font--size--400", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "400" + }, + "path": [ + "global", + "font", + "size", + "400" + ] + } + }, + "pf-t--global--font--size--500": { + "default": { + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 20 + }, + "name": "pf-t--global--font--size--500", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "500" + }, + "path": [ + "global", + "font", + "size", + "500" + ] + } + }, + "pf-t--global--font--size--600": { + "default": { + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 24 + }, + "name": "pf-t--global--font--size--600", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "600" + }, + "path": [ + "global", + "font", + "size", + "600" + ] + } + }, + "pf-t--global--font--size--700": { + "default": { + "type": "number", + "value": "1.75rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 28 + }, + "name": "pf-t--global--font--size--700", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "700" + }, + "path": [ + "global", + "font", + "size", + "700" + ] + } + }, + "pf-t--global--font--size--800": { + "default": { + "type": "number", + "value": "2.25rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 36 + }, + "name": "pf-t--global--font--size--800", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "800" + }, + "path": [ + "global", + "font", + "size", + "800" + ] + } + }, + "pf-t--global--z-index--100": { + "default": { + "type": "number", + "value": 100, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 100 + }, + "name": "pf-t--global--z-index--100", + "attributes": { + "category": "global", + "type": "z-index", + "item": "100" + }, + "path": [ + "global", + "z-index", + "100" + ] + } + }, + "pf-t--global--z-index--200": { + "default": { + "type": "number", + "value": 200, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 200 + }, + "name": "pf-t--global--z-index--200", + "attributes": { + "category": "global", + "type": "z-index", + "item": "200" + }, + "path": [ + "global", + "z-index", + "200" + ] + } + }, + "pf-t--global--z-index--300": { + "default": { + "type": "number", + "value": 300, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 300 + }, + "name": "pf-t--global--z-index--300", + "attributes": { + "category": "global", + "type": "z-index", + "item": "300" + }, + "path": [ + "global", + "z-index", + "300" + ] + } + }, + "pf-t--global--z-index--400": { + "default": { + "type": "number", + "value": 400, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 400 + }, + "name": "pf-t--global--z-index--400", + "attributes": { + "category": "global", + "type": "z-index", + "item": "400" + }, + "path": [ + "global", + "z-index", + "400" + ] + } + }, + "pf-t--global--z-index--500": { + "default": { + "type": "number", + "value": 500, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 500 + }, + "name": "pf-t--global--z-index--500", + "attributes": { + "category": "global", + "type": "z-index", + "item": "500" + }, + "path": [ + "global", + "z-index", + "500" + ] + } + }, + "pf-t--global--z-index--600": { + "default": { + "type": "number", + "value": 600, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 600 + }, + "name": "pf-t--global--z-index--600", + "attributes": { + "category": "global", + "type": "z-index", + "item": "600" + }, + "path": [ + "global", + "z-index", + "600" + ] + } + }, + "pf-t--global--box-shadow--X--50": { + "default": { + "type": "number", + "value": "-20px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": -20 + }, + "name": "pf-t--global--box-shadow--X--50", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "50" + }, + "path": [ + "global", + "box-shadow", + "X", + "50" + ] + } + }, + "pf-t--global--box-shadow--X--100": { + "default": { + "type": "number", + "value": "-10px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": -10 + }, + "name": "pf-t--global--box-shadow--X--100", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "100" + }, + "path": [ + "global", + "box-shadow", + "X", + "100" + ] + } + }, + "pf-t--global--box-shadow--X--200": { + "default": { + "type": "number", + "value": "-4px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": -4 + }, + "name": "pf-t--global--box-shadow--X--200", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "200" + }, + "path": [ + "global", + "box-shadow", + "X", + "200" + ] + } + }, + "pf-t--global--box-shadow--X--300": { + "default": { + "type": "number", + "value": "-2px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": -2 + }, + "name": "pf-t--global--box-shadow--X--300", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "300" + }, + "path": [ + "global", + "box-shadow", + "X", + "300" + ] + } + }, + "pf-t--global--box-shadow--X--400": { + "default": { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--X--400", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "400" + }, + "path": [ + "global", + "box-shadow", + "X", + "400" + ] + } + }, + "pf-t--global--box-shadow--X--500": { + "default": { + "type": "number", + "value": "2px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 2 + }, + "name": "pf-t--global--box-shadow--X--500", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "500" + }, + "path": [ + "global", + "box-shadow", + "X", + "500" + ] + } + }, + "pf-t--global--box-shadow--X--600": { + "default": { + "type": "number", + "value": "4px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 4 + }, + "name": "pf-t--global--box-shadow--X--600", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "600" + }, + "path": [ + "global", + "box-shadow", + "X", + "600" + ] + } + }, + "pf-t--global--box-shadow--X--700": { + "default": { + "type": "number", + "value": "10px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 10 + }, + "name": "pf-t--global--box-shadow--X--700", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "700" + }, + "path": [ + "global", + "box-shadow", + "X", + "700" + ] + } + }, + "pf-t--global--box-shadow--X--800": { + "default": { + "type": "number", + "value": "20px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 20 + }, + "name": "pf-t--global--box-shadow--X--800", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "800" + }, + "path": [ + "global", + "box-shadow", + "X", + "800" + ] + } + }, + "pf-t--global--box-shadow--Y--50": { + "default": { + "type": "number", + "value": "-20px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": -20 + }, + "name": "pf-t--global--box-shadow--Y--50", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "50" + }, + "path": [ + "global", + "box-shadow", + "Y", + "50" + ] + } + }, + "pf-t--global--box-shadow--Y--100": { + "default": { + "type": "number", + "value": "-10px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": -10 + }, + "name": "pf-t--global--box-shadow--Y--100", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "100" + }, + "path": [ + "global", + "box-shadow", + "Y", + "100" + ] + } + }, + "pf-t--global--box-shadow--Y--200": { + "default": { + "type": "number", + "value": "-4px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": -4 + }, + "name": "pf-t--global--box-shadow--Y--200", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "200" + }, + "path": [ + "global", + "box-shadow", + "Y", + "200" + ] + } + }, + "pf-t--global--box-shadow--Y--300": { + "default": { + "type": "number", + "value": "-1px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": -1 + }, + "name": "pf-t--global--box-shadow--Y--300", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "300" + }, + "path": [ + "global", + "box-shadow", + "Y", + "300" + ] + } + }, + "pf-t--global--box-shadow--Y--400": { + "default": { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--Y--400", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "400" + }, + "path": [ + "global", + "box-shadow", + "Y", + "400" + ] + } + }, + "pf-t--global--box-shadow--Y--500": { + "default": { + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1 + }, + "name": "pf-t--global--box-shadow--Y--500", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "500" + }, + "path": [ + "global", + "box-shadow", + "Y", + "500" + ] + } + }, + "pf-t--global--box-shadow--Y--600": { + "default": { + "type": "number", + "value": "4px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 4 + }, + "name": "pf-t--global--box-shadow--Y--600", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "600" + }, + "path": [ + "global", + "box-shadow", + "Y", + "600" + ] + } + }, + "pf-t--global--box-shadow--Y--700": { + "default": { + "type": "number", + "value": "10px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 10 + }, + "name": "pf-t--global--box-shadow--Y--700", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "700" + }, + "path": [ + "global", + "box-shadow", + "Y", + "700" + ] + } + }, + "pf-t--global--box-shadow--Y--800": { + "default": { + "type": "number", + "value": "20px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 20 + }, + "name": "pf-t--global--box-shadow--Y--800", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "800" + }, + "path": [ + "global", + "box-shadow", + "Y", + "800" + ] + } + }, + "pf-t--global--box-shadow--blur--100": { + "default": { + "type": "number", + "value": "6px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 6 + }, + "name": "pf-t--global--box-shadow--blur--100", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "blur", + "subitem": "100" + }, + "path": [ + "global", + "box-shadow", + "blur", + "100" + ] + } + }, + "pf-t--global--box-shadow--blur--200": { + "default": { + "type": "number", + "value": "10px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 10 + }, + "name": "pf-t--global--box-shadow--blur--200", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "blur", + "subitem": "200" + }, + "path": [ + "global", + "box-shadow", + "blur", + "200" + ] + } + }, + "pf-t--global--box-shadow--blur--300": { + "default": { + "type": "number", + "value": "20px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 20 + }, + "name": "pf-t--global--box-shadow--blur--300", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "blur", + "subitem": "300" + }, + "path": [ + "global", + "box-shadow", + "blur", + "300" + ] + } + }, + "pf-t--global--box-shadow--spread--100": { + "default": { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--spread--100", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "spread", + "subitem": "100" + }, + "path": [ + "global", + "box-shadow", + "spread", + "100" + ] + } + }, + "pf-t--global--box-shadow--spread--200": { + "default": { + "type": "number", + "value": "-4px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": -4 + }, + "name": "pf-t--global--box-shadow--spread--200", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "spread", + "subitem": "200" + }, + "path": [ + "global", + "box-shadow", + "spread", + "200" + ] + } + }, + "pf-t--global--box-shadow--spread--300": { + "default": { + "type": "number", + "value": "-8px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": -8 + }, + "name": "pf-t--global--box-shadow--spread--300", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "spread", + "subitem": "300" + }, + "path": [ + "global", + "box-shadow", + "spread", + "300" + ] + } + }, + "pf-t--global--box-shadow--spread--400": { + "default": { + "type": "number", + "value": "-20px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": -20 + }, + "name": "pf-t--global--box-shadow--spread--400", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "spread", + "subitem": "400" + }, + "path": [ + "global", + "box-shadow", + "spread", + "400" + ] + } + }, + "pf-t--global--breakpoint--100": { + "default": { + "type": "number", + "value": "0rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--breakpoint--100", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "100" + }, + "path": [ + "global", + "breakpoint", + "100" + ] + } + }, + "pf-t--global--breakpoint--200": { + "default": { + "type": "number", + "value": "36rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 576 + }, + "name": "pf-t--global--breakpoint--200", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "200" + }, + "path": [ + "global", + "breakpoint", + "200" + ] + } + }, + "pf-t--global--breakpoint--250": { + "default": { + "type": "number", + "value": "40rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 640 + }, + "name": "pf-t--global--breakpoint--250", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "250" + }, + "path": [ + "global", + "breakpoint", + "250" + ] + } + }, + "pf-t--global--breakpoint--300": { + "default": { + "type": "number", + "value": "48rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 768 + }, + "name": "pf-t--global--breakpoint--300", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "300" + }, + "path": [ + "global", + "breakpoint", + "300" + ] + } + }, + "pf-t--global--breakpoint--350": { + "default": { + "type": "number", + "value": "60rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 960 + }, + "name": "pf-t--global--breakpoint--350", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "350" + }, + "path": [ + "global", + "breakpoint", + "350" + ] + } + }, + "pf-t--global--breakpoint--400": { + "default": { + "type": "number", + "value": "62rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 992 + }, + "name": "pf-t--global--breakpoint--400", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "400" + }, + "path": [ + "global", + "breakpoint", + "400" + ] + } + }, + "pf-t--global--breakpoint--500": { + "default": { + "type": "number", + "value": "75rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1200 + }, + "name": "pf-t--global--breakpoint--500", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "500" + }, + "path": [ + "global", + "breakpoint", + "500" + ] + } + }, + "pf-t--global--breakpoint--550": { + "default": { + "type": "number", + "value": "80rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1280 + }, + "name": "pf-t--global--breakpoint--550", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "550" + }, + "path": [ + "global", + "breakpoint", + "550" + ] + } + }, + "pf-t--global--breakpoint--600": { + "default": { + "type": "number", + "value": "90.625rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1450 + }, + "name": "pf-t--global--breakpoint--600", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "600" + }, + "path": [ + "global", + "breakpoint", + "600" + ] + } + }, + "pf-t--global--text-decoration--line--100": { + "default": { + "type": "string", + "value": "none", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "none" + }, + "name": "pf-t--global--text-decoration--line--100", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "line", + "subitem": "100" + }, + "path": [ + "global", + "text-decoration", + "line", + "100" + ] + } + }, + "pf-t--global--text-decoration--line--200": { + "default": { + "type": "string", + "value": "underline", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "underline" + }, + "name": "pf-t--global--text-decoration--line--200", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "line", + "subitem": "200" + }, + "path": [ + "global", + "text-decoration", + "line", + "200" + ] + } + }, + "pf-t--global--text-decoration--style--100": { + "default": { + "type": "string", + "value": "solid", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "solid" + }, + "name": "pf-t--global--text-decoration--style--100", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "style", + "subitem": "100" + }, + "path": [ + "global", + "text-decoration", + "style", + "100" + ] + } + }, + "pf-t--global--text-decoration--style--200": { + "default": { + "type": "string", + "value": "dashed", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "dashed" + }, + "name": "pf-t--global--text-decoration--style--200", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "style", + "subitem": "200" + }, + "path": [ + "global", + "text-decoration", + "style", + "200" + ] + } + } + }, + "motion": {} + }, + "palette": { + "pf-t--global--spacer--xs": { + "default": { + "description": "Use for extra small spaces between elements.", + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for extra small spaces between elements.", + "type": "number", + "value": "{global.spacer.100}" + }, + "name": "pf-t--global--spacer--xs", + "attributes": { + "category": "global", + "type": "spacer", + "item": "xs" + }, + "path": [ + "global", + "spacer", + "xs" + ], + "references": [ + { + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 4 + }, + "name": "pf-t--global--spacer--100", + "attributes": { + "category": "global", + "type": "spacer", + "item": "100" + }, + "path": [ + "global", + "spacer", + "100" + ] + } + ] + } + }, + "pf-t--global--spacer--sm": { + "default": { + "description": "Use for small spaces between elements.", + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for small spaces between elements.", + "type": "number", + "value": "{global.spacer.200}" + }, + "name": "pf-t--global--spacer--sm", + "attributes": { + "category": "global", + "type": "spacer", + "item": "sm" + }, + "path": [ + "global", + "spacer", + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 8 + }, + "name": "pf-t--global--spacer--200", + "attributes": { + "category": "global", + "type": "spacer", + "item": "200" + }, + "path": [ + "global", + "spacer", + "200" + ] + } + ] + } + }, + "pf-t--global--spacer--md": { + "default": { + "description": "Use for medium-sized spaces between elements.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for medium-sized spaces between elements.", + "type": "number", + "value": "{global.spacer.300}" + }, + "name": "pf-t--global--spacer--md", + "attributes": { + "category": "global", + "type": "spacer", + "item": "md" + }, + "path": [ + "global", + "spacer", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--spacer--300", + "attributes": { + "category": "global", + "type": "spacer", + "item": "300" + }, + "path": [ + "global", + "spacer", + "300" + ] + } + ] + } + }, + "pf-t--global--spacer--lg": { + "default": { + "description": "Use for large spaces between elements.", + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for large spaces between elements.", + "type": "number", + "value": "{global.spacer.400}" + }, + "name": "pf-t--global--spacer--lg", + "attributes": { + "category": "global", + "type": "spacer", + "item": "lg" + }, + "path": [ + "global", + "spacer", + "lg" + ], + "references": [ + { + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 24 + }, + "name": "pf-t--global--spacer--400", + "attributes": { + "category": "global", + "type": "spacer", + "item": "400" + }, + "path": [ + "global", + "spacer", + "400" + ] + } + ] + } + }, + "pf-t--global--spacer--xl": { + "default": { + "description": "Use for extra large spaces between elements.", + "type": "number", + "value": "2rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for extra large spaces between elements.", + "type": "number", + "value": "{global.spacer.500}" + }, + "name": "pf-t--global--spacer--xl", + "attributes": { + "category": "global", + "type": "spacer", + "item": "xl" + }, + "path": [ + "global", + "spacer", + "xl" + ], + "references": [ + { + "type": "number", + "value": "2rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 32 + }, + "name": "pf-t--global--spacer--500", + "attributes": { + "category": "global", + "type": "spacer", + "item": "500" + }, + "path": [ + "global", + "spacer", + "500" + ] + } + ] + } + }, + "pf-t--global--spacer--2xl": { + "default": { + "description": "Use for double extra large spaces spacing between elements.", + "type": "number", + "value": "3rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for double extra large spaces spacing between elements.", + "type": "number", + "value": "{global.spacer.600}" + }, + "name": "pf-t--global--spacer--2xl", + "attributes": { + "category": "global", + "type": "spacer", + "item": "2xl" + }, + "path": [ + "global", + "spacer", + "2xl" + ], + "references": [ + { + "type": "number", + "value": "3rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 48 + }, + "name": "pf-t--global--spacer--600", + "attributes": { + "category": "global", + "type": "spacer", + "item": "600" + }, + "path": [ + "global", + "spacer", + "600" + ] + } + ] + } + }, + "pf-t--global--spacer--3xl": { + "default": { + "description": "Use for triple extra large spaces between elements.", + "type": "number", + "value": "4rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for triple extra large spaces between elements.", + "type": "number", + "value": "{global.spacer.700}" + }, + "name": "pf-t--global--spacer--3xl", + "attributes": { + "category": "global", + "type": "spacer", + "item": "3xl" + }, + "path": [ + "global", + "spacer", + "3xl" + ], + "references": [ + { + "type": "number", + "value": "4rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 64 + }, + "name": "pf-t--global--spacer--700", + "attributes": { + "category": "global", + "type": "spacer", + "item": "700" + }, + "path": [ + "global", + "spacer", + "700" + ] + } + ] + } + }, + "pf-t--global--spacer--4xl": { + "default": { + "description": "Use for quadruple extra large spaces between elements.", + "type": "number", + "value": "5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for quadruple extra large spaces between elements.", + "type": "number", + "value": "{global.spacer.800}" + }, + "name": "pf-t--global--spacer--4xl", + "attributes": { + "category": "global", + "type": "spacer", + "item": "4xl" + }, + "path": [ + "global", + "spacer", + "4xl" + ], + "references": [ + { + "type": "number", + "value": "5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 80 + }, + "name": "pf-t--global--spacer--800", + "attributes": { + "category": "global", + "type": "spacer", + "item": "800" + }, + "path": [ + "global", + "spacer", + "800" + ] + } + ] + } + }, + "pf-t--global--spacer--control--vertical--default": { + "default": { + "description": "Use to set the vertical padding inside of controls. This is used across buttons, text inputs, menu toggles, etc.", + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set the vertical padding inside of controls. This is used across buttons, text inputs, menu toggles, etc.", + "type": "number", + "value": "{global.spacer.sm}" + }, + "name": "pf-t--global--spacer--control--vertical--default", + "attributes": { + "category": "global", + "type": "spacer", + "item": "control", + "subitem": "vertical", + "state": "default" + }, + "path": [ + "global", + "spacer", + "control", + "vertical", + "default" + ], + "references": [ + { + "description": "Use for small spaces between elements.", + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for small spaces between elements.", + "type": "number", + "value": "{global.spacer.200}" + }, + "name": "pf-t--global--spacer--sm", + "attributes": { + "category": "global", + "type": "spacer", + "item": "sm" + }, + "path": [ + "global", + "spacer", + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 8 + }, + "name": "pf-t--global--spacer--200", + "attributes": { + "category": "global", + "type": "spacer", + "item": "200" + }, + "path": [ + "global", + "spacer", + "200" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--control--vertical--compact": { + "default": { + "description": "Use to set the vertical padding inside of compact controls. This is used across text inputs, menu toggles, control buttons etc.", + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set the vertical padding inside of compact controls. This is used across text inputs, menu toggles, control buttons etc.", + "type": "number", + "value": "{global.spacer.xs}" + }, + "name": "pf-t--global--spacer--control--vertical--compact", + "attributes": { + "category": "global", + "type": "spacer", + "item": "control", + "subitem": "vertical", + "state": "compact" + }, + "path": [ + "global", + "spacer", + "control", + "vertical", + "compact" + ], + "references": [ + { + "description": "Use for extra small spaces between elements.", + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for extra small spaces between elements.", + "type": "number", + "value": "{global.spacer.100}" + }, + "name": "pf-t--global--spacer--xs", + "attributes": { + "category": "global", + "type": "spacer", + "item": "xs" + }, + "path": [ + "global", + "spacer", + "xs" + ], + "references": [ + { + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 4 + }, + "name": "pf-t--global--spacer--100", + "attributes": { + "category": "global", + "type": "spacer", + "item": "100" + }, + "path": [ + "global", + "spacer", + "100" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--control--vertical--plain": { + "default": { + "description": "Use to set the vertical padding inside of plain controls, like in plain menu toggles and plain buttons.", + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set the vertical padding inside of plain controls, like in plain menu toggles and plain buttons.", + "type": "number", + "value": "{global.spacer.sm}" + }, + "name": "pf-t--global--spacer--control--vertical--plain", + "attributes": { + "category": "global", + "type": "spacer", + "item": "control", + "subitem": "vertical", + "state": "plain" + }, + "path": [ + "global", + "spacer", + "control", + "vertical", + "plain" + ], + "references": [ + { + "description": "Use for small spaces between elements.", + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for small spaces between elements.", + "type": "number", + "value": "{global.spacer.200}" + }, + "name": "pf-t--global--spacer--sm", + "attributes": { + "category": "global", + "type": "spacer", + "item": "sm" + }, + "path": [ + "global", + "spacer", + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 8 + }, + "name": "pf-t--global--spacer--200", + "attributes": { + "category": "global", + "type": "spacer", + "item": "200" + }, + "path": [ + "global", + "spacer", + "200" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--control--vertical--spacious": { + "default": { + "description": "Use to set the vertical padding inside a large/display controls. This is used across buttons, text inputs, menu toggles, etc.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set the vertical padding inside a large/display controls. This is used across buttons, text inputs, menu toggles, etc.", + "type": "number", + "value": "{global.spacer.md}" + }, + "name": "pf-t--global--spacer--control--vertical--spacious", + "attributes": { + "category": "global", + "type": "spacer", + "item": "control", + "subitem": "vertical", + "state": "spacious" + }, + "path": [ + "global", + "spacer", + "control", + "vertical", + "spacious" + ], + "references": [ + { + "description": "Use for medium-sized spaces between elements.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for medium-sized spaces between elements.", + "type": "number", + "value": "{global.spacer.300}" + }, + "name": "pf-t--global--spacer--md", + "attributes": { + "category": "global", + "type": "spacer", + "item": "md" + }, + "path": [ + "global", + "spacer", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--spacer--300", + "attributes": { + "category": "global", + "type": "spacer", + "item": "300" + }, + "path": [ + "global", + "spacer", + "300" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--control--horizontal--default": { + "default": { + "description": "Use to set the horizontal padding inside of controls, like text inputs and menu toggles.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set the horizontal padding inside of controls, like text inputs and menu toggles.", + "type": "number", + "value": "{global.spacer.md}" + }, + "name": "pf-t--global--spacer--control--horizontal--default", + "attributes": { + "category": "global", + "type": "spacer", + "item": "control", + "subitem": "horizontal", + "state": "default" + }, + "path": [ + "global", + "spacer", + "control", + "horizontal", + "default" + ], + "references": [ + { + "description": "Use for medium-sized spaces between elements.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for medium-sized spaces between elements.", + "type": "number", + "value": "{global.spacer.300}" + }, + "name": "pf-t--global--spacer--md", + "attributes": { + "category": "global", + "type": "spacer", + "item": "md" + }, + "path": [ + "global", + "spacer", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--spacer--300", + "attributes": { + "category": "global", + "type": "spacer", + "item": "300" + }, + "path": [ + "global", + "spacer", + "300" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--control--horizontal--plain": { + "default": { + "description": "Use to set the horizontal padding inside of plain controls, like in plain menu toggles.", + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set the horizontal padding inside of plain controls, like in plain menu toggles.", + "type": "number", + "value": "{global.spacer.sm}" + }, + "name": "pf-t--global--spacer--control--horizontal--plain", + "attributes": { + "category": "global", + "type": "spacer", + "item": "control", + "subitem": "horizontal", + "state": "plain" + }, + "path": [ + "global", + "spacer", + "control", + "horizontal", + "plain" + ], + "references": [ + { + "description": "Use for small spaces between elements.", + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for small spaces between elements.", + "type": "number", + "value": "{global.spacer.200}" + }, + "name": "pf-t--global--spacer--sm", + "attributes": { + "category": "global", + "type": "spacer", + "item": "sm" + }, + "path": [ + "global", + "spacer", + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 8 + }, + "name": "pf-t--global--spacer--200", + "attributes": { + "category": "global", + "type": "spacer", + "item": "200" + }, + "path": [ + "global", + "spacer", + "200" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--control--horizontal--compact": { + "default": { + "description": "Use to set the horizontal padding inside of compact controls. This is used across text inputs, menu toggles, control buttons etc.", + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set the horizontal padding inside of compact controls. This is used across text inputs, menu toggles, control buttons etc.", + "type": "number", + "value": "{global.spacer.sm}" + }, + "name": "pf-t--global--spacer--control--horizontal--compact", + "attributes": { + "category": "global", + "type": "spacer", + "item": "control", + "subitem": "horizontal", + "state": "compact" + }, + "path": [ + "global", + "spacer", + "control", + "horizontal", + "compact" + ], + "references": [ + { + "description": "Use for small spaces between elements.", + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for small spaces between elements.", + "type": "number", + "value": "{global.spacer.200}" + }, + "name": "pf-t--global--spacer--sm", + "attributes": { + "category": "global", + "type": "spacer", + "item": "sm" + }, + "path": [ + "global", + "spacer", + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 8 + }, + "name": "pf-t--global--spacer--200", + "attributes": { + "category": "global", + "type": "spacer", + "item": "200" + }, + "path": [ + "global", + "spacer", + "200" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--control--horizontal--spacious": { + "default": { + "description": "Use to set the horizontal padding in large/display controls.", + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set the horizontal padding in large/display controls.", + "type": "number", + "value": "{global.spacer.lg}" + }, + "name": "pf-t--global--spacer--control--horizontal--spacious", + "attributes": { + "category": "global", + "type": "spacer", + "item": "control", + "subitem": "horizontal", + "state": "spacious" + }, + "path": [ + "global", + "spacer", + "control", + "horizontal", + "spacious" + ], + "references": [ + { + "description": "Use for large spaces between elements.", + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for large spaces between elements.", + "type": "number", + "value": "{global.spacer.400}" + }, + "name": "pf-t--global--spacer--lg", + "attributes": { + "category": "global", + "type": "spacer", + "item": "lg" + }, + "path": [ + "global", + "spacer", + "lg" + ], + "references": [ + { + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 24 + }, + "name": "pf-t--global--spacer--400", + "attributes": { + "category": "global", + "type": "spacer", + "item": "400" + }, + "path": [ + "global", + "spacer", + "400" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--action--horizontal--default": { + "default": { + "description": "Use to set the horizontal padding inside a default action, like buttons.", + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set the horizontal padding inside a default action, like buttons.", + "type": "number", + "value": "{global.spacer.lg}" + }, + "name": "pf-t--global--spacer--action--horizontal--default", + "attributes": { + "category": "global", + "type": "spacer", + "item": "action", + "subitem": "horizontal", + "state": "default" + }, + "path": [ + "global", + "spacer", + "action", + "horizontal", + "default" + ], + "references": [ + { + "description": "Use for large spaces between elements.", + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for large spaces between elements.", + "type": "number", + "value": "{global.spacer.400}" + }, + "name": "pf-t--global--spacer--lg", + "attributes": { + "category": "global", + "type": "spacer", + "item": "lg" + }, + "path": [ + "global", + "spacer", + "lg" + ], + "references": [ + { + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 24 + }, + "name": "pf-t--global--spacer--400", + "attributes": { + "category": "global", + "type": "spacer", + "item": "400" + }, + "path": [ + "global", + "spacer", + "400" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--action--horizontal--compact": { + "default": { + "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", + "type": "number", + "value": "{global.spacer.md}" + }, + "name": "pf-t--global--spacer--action--horizontal--compact", + "attributes": { + "category": "global", + "type": "spacer", + "item": "action", + "subitem": "horizontal", + "state": "compact" + }, + "path": [ + "global", + "spacer", + "action", + "horizontal", + "compact" + ], + "references": [ + { + "description": "Use for medium-sized spaces between elements.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for medium-sized spaces between elements.", + "type": "number", + "value": "{global.spacer.300}" + }, + "name": "pf-t--global--spacer--md", + "attributes": { + "category": "global", + "type": "spacer", + "item": "md" + }, + "path": [ + "global", + "spacer", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--spacer--300", + "attributes": { + "category": "global", + "type": "spacer", + "item": "300" + }, + "path": [ + "global", + "spacer", + "300" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--action--horizontal--spacious": { + "default": { + "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", + "type": "number", + "value": "2rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", + "type": "number", + "value": "{global.spacer.xl}" + }, + "name": "pf-t--global--spacer--action--horizontal--spacious", + "attributes": { + "category": "global", + "type": "spacer", + "item": "action", + "subitem": "horizontal", + "state": "spacious" + }, + "path": [ + "global", + "spacer", + "action", + "horizontal", + "spacious" + ], + "references": [ + { + "description": "Use for extra large spaces between elements.", + "type": "number", + "value": "2rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for extra large spaces between elements.", + "type": "number", + "value": "{global.spacer.500}" + }, + "name": "pf-t--global--spacer--xl", + "attributes": { + "category": "global", + "type": "spacer", + "item": "xl" + }, + "path": [ + "global", + "spacer", + "xl" + ], + "references": [ + { + "type": "number", + "value": "2rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 32 + }, + "name": "pf-t--global--spacer--500", + "attributes": { + "category": "global", + "type": "spacer", + "item": "500" + }, + "path": [ + "global", + "spacer", + "500" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--action--horizontal--plain--default": { + "default": { + "description": "Use to set the horizontal padding inside a plain action, like plain buttons.", + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set the horizontal padding inside a plain action, like plain buttons.", + "type": "number", + "value": "{global.spacer.sm}" + }, + "name": "pf-t--global--spacer--action--horizontal--plain--default", + "attributes": { + "category": "global", + "type": "spacer", + "item": "action", + "subitem": "horizontal", + "state": "plain" + }, + "path": [ + "global", + "spacer", + "action", + "horizontal", + "plain", + "default" + ], + "references": [ + { + "description": "Use for small spaces between elements.", + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for small spaces between elements.", + "type": "number", + "value": "{global.spacer.200}" + }, + "name": "pf-t--global--spacer--sm", + "attributes": { + "category": "global", + "type": "spacer", + "item": "sm" + }, + "path": [ + "global", + "spacer", + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 8 + }, + "name": "pf-t--global--spacer--200", + "attributes": { + "category": "global", + "type": "spacer", + "item": "200" + }, + "path": [ + "global", + "spacer", + "200" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--action--horizontal--plain--compact": { + "default": { + "description": "Use to set the horizontal padding inside a compact, plain action/button.", + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set the horizontal padding inside a compact, plain action/button.", + "type": "number", + "value": "{global.spacer.xs}" + }, + "name": "pf-t--global--spacer--action--horizontal--plain--compact", + "attributes": { + "category": "global", + "type": "spacer", + "item": "action", + "subitem": "horizontal", + "state": "plain" + }, + "path": [ + "global", + "spacer", + "action", + "horizontal", + "plain", + "compact" + ], + "references": [ + { + "description": "Use for extra small spaces between elements.", + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for extra small spaces between elements.", + "type": "number", + "value": "{global.spacer.100}" + }, + "name": "pf-t--global--spacer--xs", + "attributes": { + "category": "global", + "type": "spacer", + "item": "xs" + }, + "path": [ + "global", + "spacer", + "xs" + ], + "references": [ + { + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 4 + }, + "name": "pf-t--global--spacer--100", + "attributes": { + "category": "global", + "type": "spacer", + "item": "100" + }, + "path": [ + "global", + "spacer", + "100" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--gap--text-to-element--default": { + "default": { + "description": "Use to space an element, like an icon or badge, inline with text", + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to space an element, like an icon or badge, inline with text", + "type": "number", + "value": "{global.spacer.sm}" + }, + "name": "pf-t--global--spacer--gap--text-to-element--default", + "attributes": { + "category": "global", + "type": "spacer", + "item": "gap", + "subitem": "text-to-element", + "state": "default" + }, + "path": [ + "global", + "spacer", + "gap", + "text-to-element", + "default" + ], + "references": [ + { + "description": "Use for small spaces between elements.", + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for small spaces between elements.", + "type": "number", + "value": "{global.spacer.200}" + }, + "name": "pf-t--global--spacer--sm", + "attributes": { + "category": "global", + "type": "spacer", + "item": "sm" + }, + "path": [ + "global", + "spacer", + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 8 + }, + "name": "pf-t--global--spacer--200", + "attributes": { + "category": "global", + "type": "spacer", + "item": "200" + }, + "path": [ + "global", + "spacer", + "200" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--gap--text-to-element--compact": { + "default": { + "description": "Use to space an element, like an icon or badge, inline with text", + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to space an element, like an icon or badge, inline with text", + "type": "number", + "value": "{global.spacer.xs}" + }, + "name": "pf-t--global--spacer--gap--text-to-element--compact", + "attributes": { + "category": "global", + "type": "spacer", + "item": "gap", + "subitem": "text-to-element", + "state": "compact" + }, + "path": [ + "global", + "spacer", + "gap", + "text-to-element", + "compact" + ], + "references": [ + { + "description": "Use for extra small spaces between elements.", + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for extra small spaces between elements.", + "type": "number", + "value": "{global.spacer.100}" + }, + "name": "pf-t--global--spacer--xs", + "attributes": { + "category": "global", + "type": "spacer", + "item": "xs" + }, + "path": [ + "global", + "spacer", + "xs" + ], + "references": [ + { + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 4 + }, + "name": "pf-t--global--spacer--100", + "attributes": { + "category": "global", + "type": "spacer", + "item": "100" + }, + "path": [ + "global", + "spacer", + "100" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--gap--control-to-control--default": { + "default": { + "description": "Use to set the space between controls, like in input groups or filter groups", + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set the space between controls, like in input groups or filter groups", + "type": "number", + "value": "{global.spacer.xs}" + }, + "name": "pf-t--global--spacer--gap--control-to-control--default", + "attributes": { + "category": "global", + "type": "spacer", + "item": "gap", + "subitem": "control-to-control", + "state": "default" + }, + "path": [ + "global", + "spacer", + "gap", + "control-to-control", + "default" + ], + "references": [ + { + "description": "Use for extra small spaces between elements.", + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for extra small spaces between elements.", + "type": "number", + "value": "{global.spacer.100}" + }, + "name": "pf-t--global--spacer--xs", + "attributes": { + "category": "global", + "type": "spacer", + "item": "xs" + }, + "path": [ + "global", + "spacer", + "xs" + ], + "references": [ + { + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 4 + }, + "name": "pf-t--global--spacer--100", + "attributes": { + "category": "global", + "type": "spacer", + "item": "100" + }, + "path": [ + "global", + "spacer", + "100" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--gap--group--vertical": { + "default": { + "description": "Use to set the vertical space between items in a group, like a field label, form input, and helper text placed in a vertical/stacked layout", + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set the vertical space between items in a group, like a field label, form input, and helper text placed in a vertical/stacked layout", + "type": "number", + "value": "{global.spacer.sm}" + }, + "name": "pf-t--global--spacer--gap--group--vertical", + "attributes": { + "category": "global", + "type": "spacer", + "item": "gap", + "subitem": "group", + "state": "vertical" + }, + "path": [ + "global", + "spacer", + "gap", + "group", + "vertical" + ], + "references": [ + { + "description": "Use for small spaces between elements.", + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for small spaces between elements.", + "type": "number", + "value": "{global.spacer.200}" + }, + "name": "pf-t--global--spacer--sm", + "attributes": { + "category": "global", + "type": "spacer", + "item": "sm" + }, + "path": [ + "global", + "spacer", + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 8 + }, + "name": "pf-t--global--spacer--200", + "attributes": { + "category": "global", + "type": "spacer", + "item": "200" + }, + "path": [ + "global", + "spacer", + "200" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--gap--group--horizontal": { + "default": { + "description": "Use to set the horizontal space between items in a group, like a field label and form input placed in a horizontal layout.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set the horizontal space between items in a group, like a field label and form input placed in a horizontal layout.", + "type": "number", + "value": "{global.spacer.md}" + }, + "name": "pf-t--global--spacer--gap--group--horizontal", + "attributes": { + "category": "global", + "type": "spacer", + "item": "gap", + "subitem": "group", + "state": "horizontal" + }, + "path": [ + "global", + "spacer", + "gap", + "group", + "horizontal" + ], + "references": [ + { + "description": "Use for medium-sized spaces between elements.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for medium-sized spaces between elements.", + "type": "number", + "value": "{global.spacer.300}" + }, + "name": "pf-t--global--spacer--md", + "attributes": { + "category": "global", + "type": "spacer", + "item": "md" + }, + "path": [ + "global", + "spacer", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--spacer--300", + "attributes": { + "category": "global", + "type": "spacer", + "item": "300" + }, + "path": [ + "global", + "spacer", + "300" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--gap--group-to-group--horizontal--default": { + "default": { + "description": "Use to set the horizontal space between groups of elements, like between multiple action groups or forms groups placed in a horizontal layout.", + "type": "number", + "value": "3rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set the horizontal space between groups of elements, like between multiple action groups or forms groups placed in a horizontal layout.", + "type": "number", + "value": "{global.spacer.2xl}" + }, + "name": "pf-t--global--spacer--gap--group-to-group--horizontal--default", + "attributes": { + "category": "global", + "type": "spacer", + "item": "gap", + "subitem": "group-to-group", + "state": "horizontal" + }, + "path": [ + "global", + "spacer", + "gap", + "group-to-group", + "horizontal", + "default" + ], + "references": [ + { + "description": "Use for double extra large spaces spacing between elements.", + "type": "number", + "value": "3rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for double extra large spaces spacing between elements.", + "type": "number", + "value": "{global.spacer.600}" + }, + "name": "pf-t--global--spacer--2xl", + "attributes": { + "category": "global", + "type": "spacer", + "item": "2xl" + }, + "path": [ + "global", + "spacer", + "2xl" + ], + "references": [ + { + "type": "number", + "value": "3rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 48 + }, + "name": "pf-t--global--spacer--600", + "attributes": { + "category": "global", + "type": "spacer", + "item": "600" + }, + "path": [ + "global", + "spacer", + "600" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--gap--group-to-group--horizontal--compact": { + "default": { + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.spacer.sm}" + }, + "name": "pf-t--global--spacer--gap--group-to-group--horizontal--compact", + "attributes": { + "category": "global", + "type": "spacer", + "item": "gap", + "subitem": "group-to-group", + "state": "horizontal" + }, + "path": [ + "global", + "spacer", + "gap", + "group-to-group", + "horizontal", + "compact" + ], + "references": [ + { + "description": "Use for small spaces between elements.", + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for small spaces between elements.", + "type": "number", + "value": "{global.spacer.200}" + }, + "name": "pf-t--global--spacer--sm", + "attributes": { + "category": "global", + "type": "spacer", + "item": "sm" + }, + "path": [ + "global", + "spacer", + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 8 + }, + "name": "pf-t--global--spacer--200", + "attributes": { + "category": "global", + "type": "spacer", + "item": "200" + }, + "path": [ + "global", + "spacer", + "200" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--gap--group-to-group--vertical--default": { + "default": { + "description": "Use to set the vertical space between groups of elements, like between stacked form groups.", + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set the vertical space between groups of elements, like between stacked form groups.", + "type": "number", + "value": "{global.spacer.lg}" + }, + "name": "pf-t--global--spacer--gap--group-to-group--vertical--default", + "attributes": { + "category": "global", + "type": "spacer", + "item": "gap", + "subitem": "group-to-group", + "state": "vertical" + }, + "path": [ + "global", + "spacer", + "gap", + "group-to-group", + "vertical", + "default" + ], + "references": [ + { + "description": "Use for large spaces between elements.", + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for large spaces between elements.", + "type": "number", + "value": "{global.spacer.400}" + }, + "name": "pf-t--global--spacer--lg", + "attributes": { + "category": "global", + "type": "spacer", + "item": "lg" + }, + "path": [ + "global", + "spacer", + "lg" + ], + "references": [ + { + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 24 + }, + "name": "pf-t--global--spacer--400", + "attributes": { + "category": "global", + "type": "spacer", + "item": "400" + }, + "path": [ + "global", + "spacer", + "400" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--gap--group-to-group--vertical--compact": { + "default": { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.spacer.md}" + }, + "name": "pf-t--global--spacer--gap--group-to-group--vertical--compact", + "attributes": { + "category": "global", + "type": "spacer", + "item": "gap", + "subitem": "group-to-group", + "state": "vertical" + }, + "path": [ + "global", + "spacer", + "gap", + "group-to-group", + "vertical", + "compact" + ], + "references": [ + { + "description": "Use for medium-sized spaces between elements.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for medium-sized spaces between elements.", + "type": "number", + "value": "{global.spacer.300}" + }, + "name": "pf-t--global--spacer--md", + "attributes": { + "category": "global", + "type": "spacer", + "item": "md" + }, + "path": [ + "global", + "spacer", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--spacer--300", + "attributes": { + "category": "global", + "type": "spacer", + "item": "300" + }, + "path": [ + "global", + "spacer", + "300" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--gap--action-to-action--default": { + "default": { + "description": "Use to set the space between actions, like in an action list group.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set the space between actions, like in an action list group.", + "type": "number", + "value": "{global.spacer.md}" + }, + "name": "pf-t--global--spacer--gap--action-to-action--default", + "attributes": { + "category": "global", + "type": "spacer", + "item": "gap", + "subitem": "action-to-action", + "state": "default" + }, + "path": [ + "global", + "spacer", + "gap", + "action-to-action", + "default" + ], + "references": [ + { + "description": "Use for medium-sized spaces between elements.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for medium-sized spaces between elements.", + "type": "number", + "value": "{global.spacer.300}" + }, + "name": "pf-t--global--spacer--md", + "attributes": { + "category": "global", + "type": "spacer", + "item": "md" + }, + "path": [ + "global", + "spacer", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--spacer--300", + "attributes": { + "category": "global", + "type": "spacer", + "item": "300" + }, + "path": [ + "global", + "spacer", + "300" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--gap--action-to-action--plain": { + "default": { + "description": "Use to set the space between plain actions, like in an action list group.", + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set the space between plain actions, like in an action list group.", + "type": "number", + "value": "{global.spacer.xs}" + }, + "name": "pf-t--global--spacer--gap--action-to-action--plain", + "attributes": { + "category": "global", + "type": "spacer", + "item": "gap", + "subitem": "action-to-action", + "state": "plain" + }, + "path": [ + "global", + "spacer", + "gap", + "action-to-action", + "plain" + ], + "references": [ + { + "description": "Use for extra small spaces between elements.", + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for extra small spaces between elements.", + "type": "number", + "value": "{global.spacer.100}" + }, + "name": "pf-t--global--spacer--xs", + "attributes": { + "category": "global", + "type": "spacer", + "item": "xs" + }, + "path": [ + "global", + "spacer", + "xs" + ], + "references": [ + { + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 4 + }, + "name": "pf-t--global--spacer--100", + "attributes": { + "category": "global", + "type": "spacer", + "item": "100" + }, + "path": [ + "global", + "spacer", + "100" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--inset--page-chrome": { + "default": { + "description": "Use to define inner padding for structural elements in order to maintain alignment, like in the masthead, navigation menu, or main page content.", + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define inner padding for structural elements in order to maintain alignment, like in the masthead, navigation menu, or main page content.", + "type": "number", + "value": "{global.spacer.lg}" + }, + "name": "pf-t--global--spacer--inset--page-chrome", + "attributes": { + "category": "global", + "type": "spacer", + "item": "inset", + "subitem": "page-chrome" + }, + "path": [ + "global", + "spacer", + "inset", + "page-chrome" + ], + "references": [ + { + "description": "Use for large spaces between elements.", + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for large spaces between elements.", + "type": "number", + "value": "{global.spacer.400}" + }, + "name": "pf-t--global--spacer--lg", + "attributes": { + "category": "global", + "type": "spacer", + "item": "lg" + }, + "path": [ + "global", + "spacer", + "lg" + ], + "references": [ + { + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 24 + }, + "name": "pf-t--global--spacer--400", + "attributes": { + "category": "global", + "type": "spacer", + "item": "400" + }, + "path": [ + "global", + "spacer", + "400" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--gutter--default": { + "default": { + "description": "Use to define gutters between elements in certain layouts, like grids.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define gutters between elements in certain layouts, like grids.", + "type": "number", + "value": "{global.spacer.md}" + }, + "name": "pf-t--global--spacer--gutter--default", + "attributes": { + "category": "global", + "type": "spacer", + "item": "gutter", + "subitem": "default" + }, + "path": [ + "global", + "spacer", + "gutter", + "default" + ], + "references": [ + { + "description": "Use for medium-sized spaces between elements.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for medium-sized spaces between elements.", + "type": "number", + "value": "{global.spacer.300}" + }, + "name": "pf-t--global--spacer--md", + "attributes": { + "category": "global", + "type": "spacer", + "item": "md" + }, + "path": [ + "global", + "spacer", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--spacer--300", + "attributes": { + "category": "global", + "type": "spacer", + "item": "300" + }, + "path": [ + "global", + "spacer", + "300" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--size--sm": { + "default": { + "description": "Use for small icons.", + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for small icons.", + "type": "number", + "value": "{global.icon.size.100}" + }, + "name": "pf-t--global--icon--size--sm", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "sm" + }, + "path": [ + "global", + "icon", + "size", + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 12 + }, + "name": "pf-t--global--icon--size--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "size", + "100" + ] + } + ] + } + }, + "pf-t--global--icon--size--md": { + "default": { + "description": "Use for medium icons.", + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for medium icons.", + "type": "number", + "value": "{global.icon.size.200}" + }, + "name": "pf-t--global--icon--size--md", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "md" + }, + "path": [ + "global", + "icon", + "size", + "md" + ], + "references": [ + { + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 14 + }, + "name": "pf-t--global--icon--size--200", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "200" + }, + "path": [ + "global", + "icon", + "size", + "200" + ] + } + ] + } + }, + "pf-t--global--icon--size--lg": { + "default": { + "description": "Use for large icons.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for large icons.", + "type": "number", + "value": "{global.icon.size.250}" + }, + "name": "pf-t--global--icon--size--lg", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "lg" + }, + "path": [ + "global", + "icon", + "size", + "lg" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--icon--size--250", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "250" + }, + "path": [ + "global", + "icon", + "size", + "250" + ] + } + ] + } + }, + "pf-t--global--icon--size--xl": { + "default": { + "description": "Use for extra large icons.", + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for extra large icons.", + "type": "number", + "value": "{global.icon.size.300}" + }, + "name": "pf-t--global--icon--size--xl", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "xl" + }, + "path": [ + "global", + "icon", + "size", + "xl" + ], + "references": [ + { + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 24 + }, + "name": "pf-t--global--icon--size--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "size", + "300" + ] + } + ] + } + }, + "pf-t--global--icon--size--2xl": { + "default": { + "description": "Use for double extra large icons.", + "type": "number", + "value": "3.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for double extra large icons.", + "type": "number", + "value": "{global.icon.size.400}" + }, + "name": "pf-t--global--icon--size--2xl", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "2xl" + }, + "path": [ + "global", + "icon", + "size", + "2xl" + ], + "references": [ + { + "type": "number", + "value": "3.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 56 + }, + "name": "pf-t--global--icon--size--400", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "400" + }, + "path": [ + "global", + "icon", + "size", + "400" + ] + } + ] + } + }, + "pf-t--global--icon--size--3xl": { + "default": { + "description": "Use for triple extra large icons.", + "type": "number", + "value": "6rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for triple extra large icons.", + "type": "number", + "value": "{global.icon.size.500}" + }, + "name": "pf-t--global--icon--size--3xl", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "3xl" + }, + "path": [ + "global", + "icon", + "size", + "3xl" + ], + "references": [ + { + "type": "number", + "value": "6rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 96 + }, + "name": "pf-t--global--icon--size--500", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "500" + }, + "path": [ + "global", + "icon", + "size", + "500" + ] + } + ] + } + }, + "pf-t--global--icon--size--font--xs": { + "default": { + "description": "Use for icons that are placed inline with font–size–xs text", + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for icons that are placed inline with font–size–xs text", + "type": "number", + "value": "{global.font.size.xs}" + }, + "name": "pf-t--global--icon--size--font--xs", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "font", + "state": "xs" + }, + "path": [ + "global", + "icon", + "size", + "font", + "xs" + ], + "references": [ + { + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.font.size.100}" + }, + "name": "pf-t--global--font--size--xs", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "xs" + }, + "path": [ + "global", + "font", + "size", + "xs" + ], + "references": [ + { + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 12 + }, + "name": "pf-t--global--font--size--100", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "100" + }, + "path": [ + "global", + "font", + "size", + "100" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--size--font--sm": { + "default": { + "description": "Use for icons that are placed inline with font–size–sm text", + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for icons that are placed inline with font–size–sm text", + "type": "number", + "value": "{global.font.size.sm}" + }, + "name": "pf-t--global--icon--size--font--sm", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "font", + "state": "sm" + }, + "path": [ + "global", + "icon", + "size", + "font", + "sm" + ], + "references": [ + { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.200}" + }, + "name": "pf-t--global--font--size--sm", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "sm" + }, + "path": [ + "global", + "font", + "size", + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 14 + }, + "name": "pf-t--global--font--size--200", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "200" + }, + "path": [ + "global", + "font", + "size", + "200" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--size--font--md": { + "default": { + "description": "Use for icons that are placed inline with font–size–md text", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for icons that are placed inline with font–size–md text", + "type": "number", + "value": "{global.font.size.md}" + }, + "name": "pf-t--global--icon--size--font--md", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "font", + "state": "md" + }, + "path": [ + "global", + "icon", + "size", + "font", + "md" + ], + "references": [ + { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" + }, + "name": "pf-t--global--font--size--md", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "md" + }, + "path": [ + "global", + "font", + "size", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--size--font--lg": { + "default": { + "description": "Use for icons that are placed inline with font–size–lg text", + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for icons that are placed inline with font–size–lg text", + "type": "number", + "value": "{global.font.size.lg}" + }, + "name": "pf-t--global--icon--size--font--lg", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "font", + "state": "lg" + }, + "path": [ + "global", + "icon", + "size", + "font", + "lg" + ], + "references": [ + { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.400}" + }, + "name": "pf-t--global--font--size--lg", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "lg" + }, + "path": [ + "global", + "font", + "size", + "lg" + ], + "references": [ + { + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 18 + }, + "name": "pf-t--global--font--size--400", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "400" + }, + "path": [ + "global", + "font", + "size", + "400" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--size--font--xl": { + "default": { + "description": "Use for icons that are placed inline with font–size–xl text", + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for icons that are placed inline with font–size–xl text", + "type": "number", + "value": "{global.font.size.xl}" + }, + "name": "pf-t--global--icon--size--font--xl", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "font", + "state": "xl" + }, + "path": [ + "global", + "icon", + "size", + "font", + "xl" + ], + "references": [ + { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.500}" + }, + "name": "pf-t--global--font--size--xl", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "xl" + }, + "path": [ + "global", + "font", + "size", + "xl" + ], + "references": [ + { + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 20 + }, + "name": "pf-t--global--font--size--500", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "500" + }, + "path": [ + "global", + "font", + "size", + "500" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--size--font--2xl": { + "default": { + "description": "Use for icons that are placed inline with font–size–2xl text", + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for icons that are placed inline with font–size–2xl text", + "type": "number", + "value": "{global.font.size.2xl}" + }, + "name": "pf-t--global--icon--size--font--2xl", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "font", + "state": "2xl" + }, + "path": [ + "global", + "icon", + "size", + "font", + "2xl" + ], + "references": [ + { + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.600}" + }, + "name": "pf-t--global--font--size--2xl", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "2xl" + }, + "path": [ + "global", + "font", + "size", + "2xl" + ], + "references": [ + { + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 24 + }, + "name": "pf-t--global--font--size--600", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "600" + }, + "path": [ + "global", + "font", + "size", + "600" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--size--font--3xl": { + "default": { + "description": "Use for icons that are placed inline with font–size–3xl text", + "type": "number", + "value": "1.75rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for icons that are placed inline with font–size–3xl text", + "type": "number", + "value": "{global.font.size.3xl}" + }, + "name": "pf-t--global--icon--size--font--3xl", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "font", + "state": "3xl" + }, + "path": [ + "global", + "icon", + "size", + "font", + "3xl" + ], + "references": [ + { + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "1.75rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.700}" + }, + "name": "pf-t--global--font--size--3xl", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "3xl" + }, + "path": [ + "global", + "font", + "size", + "3xl" + ], + "references": [ + { + "type": "number", + "value": "1.75rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 28 + }, + "name": "pf-t--global--font--size--700", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "700" + }, + "path": [ + "global", + "font", + "size", + "700" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--size--font--4xl": { + "default": { + "description": "Use for icons that are placed inline with font–size–3xl text", + "type": "number", + "value": "2.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for icons that are placed inline with font–size–3xl text", + "type": "number", + "value": "{global.font.size.4xl}" + }, + "name": "pf-t--global--icon--size--font--4xl", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "font", + "state": "4xl" + }, + "path": [ + "global", + "icon", + "size", + "font", + "4xl" + ], + "references": [ + { + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "2.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.800}" + }, + "name": "pf-t--global--font--size--4xl", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "4xl" + }, + "path": [ + "global", + "font", + "size", + "4xl" + ], + "references": [ + { + "type": "number", + "value": "2.25rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 36 + }, + "name": "pf-t--global--font--size--800", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "800" + }, + "path": [ + "global", + "font", + "size", + "800" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--size--font--heading--h1": { + "default": { + "description": "Use for icons that are placed inline with first level headings", + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for icons that are placed inline with first level headings", + "type": "number", + "value": "{global.font.size.heading.h1}" + }, + "name": "pf-t--global--icon--size--font--heading--h1", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "font", + "state": "heading" + }, + "path": [ + "global", + "icon", + "size", + "font", + "heading", + "h1" + ], + "references": [ + { + "description": "Use as the font size for first level headings.", + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for first level headings.", + "type": "number", + "value": "{global.font.size.2xl}" + }, + "name": "pf-t--global--font--size--heading--h1", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "heading", + "state": "h1" + }, + "path": [ + "global", + "font", + "size", + "heading", + "h1" + ], + "references": [ + { + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.600}" + }, + "name": "pf-t--global--font--size--2xl", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "2xl" + }, + "path": [ + "global", + "font", + "size", + "2xl" + ], + "references": [ + { + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 24 + }, + "name": "pf-t--global--font--size--600", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "600" + }, + "path": [ + "global", + "font", + "size", + "600" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--size--font--heading--h2": { + "default": { + "description": "Use for icons that are placed inline with second level headings", + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for icons that are placed inline with second level headings", + "type": "number", + "value": "{global.font.size.heading.h2}" + }, + "name": "pf-t--global--icon--size--font--heading--h2", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "font", + "state": "heading" + }, + "path": [ + "global", + "icon", + "size", + "font", + "heading", + "h2" + ], + "references": [ + { + "description": "Use as the font size for second level headings.", + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for second level headings.", + "type": "number", + "value": "{global.font.size.xl}" + }, + "name": "pf-t--global--font--size--heading--h2", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "heading", + "state": "h2" + }, + "path": [ + "global", + "font", + "size", + "heading", + "h2" + ], + "references": [ + { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.500}" + }, + "name": "pf-t--global--font--size--xl", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "xl" + }, + "path": [ + "global", + "font", + "size", + "xl" + ], + "references": [ + { + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 20 + }, + "name": "pf-t--global--font--size--500", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "500" + }, + "path": [ + "global", + "font", + "size", + "500" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--size--font--heading--h3": { + "default": { + "description": "Use for icons that are placed inline with third level headings", + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for icons that are placed inline with third level headings", + "type": "number", + "value": "{global.font.size.heading.h3}" + }, + "name": "pf-t--global--icon--size--font--heading--h3", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "font", + "state": "heading" + }, + "path": [ + "global", + "icon", + "size", + "font", + "heading", + "h3" + ], + "references": [ + { + "description": "Use as the font size for third level headings.", + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for third level headings.", + "type": "number", + "value": "{global.font.size.lg}" + }, + "name": "pf-t--global--font--size--heading--h3", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "heading", + "state": "h3" + }, + "path": [ + "global", + "font", + "size", + "heading", + "h3" + ], + "references": [ + { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.400}" + }, + "name": "pf-t--global--font--size--lg", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "lg" + }, + "path": [ + "global", + "font", + "size", + "lg" + ], + "references": [ + { + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 18 + }, + "name": "pf-t--global--font--size--400", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "400" + }, + "path": [ + "global", + "font", + "size", + "400" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--size--font--heading--h4": { + "default": { + "description": "Use for icons that are placed inline with fourth level headings", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for icons that are placed inline with fourth level headings", + "type": "number", + "value": "{global.font.size.heading.h4}" + }, + "name": "pf-t--global--icon--size--font--heading--h4", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "font", + "state": "heading" + }, + "path": [ + "global", + "icon", + "size", + "font", + "heading", + "h4" + ], + "references": [ + { + "description": "Use as the font size for fourth-level headings.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for fourth-level headings.", + "type": "number", + "value": "{global.font.size.md}" + }, + "name": "pf-t--global--font--size--heading--h4", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "heading", + "state": "h4" + }, + "path": [ + "global", + "font", + "size", + "heading", + "h4" + ], + "references": [ + { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" + }, + "name": "pf-t--global--font--size--md", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "md" + }, + "path": [ + "global", + "font", + "size", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--size--font--heading--h5": { + "default": { + "description": "Use for icons that are placed inline with fifth level headings", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for icons that are placed inline with fifth level headings", + "type": "number", + "value": "{global.font.size.heading.h5}" + }, + "name": "pf-t--global--icon--size--font--heading--h5", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "font", + "state": "heading" + }, + "path": [ + "global", + "icon", + "size", + "font", + "heading", + "h5" + ], + "references": [ + { + "description": "Use as the font size for fifth level headings.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for fifth level headings.", + "type": "number", + "value": "{global.font.size.md}" + }, + "name": "pf-t--global--font--size--heading--h5", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "heading", + "state": "h5" + }, + "path": [ + "global", + "font", + "size", + "heading", + "h5" + ], + "references": [ + { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" + }, + "name": "pf-t--global--font--size--md", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "md" + }, + "path": [ + "global", + "font", + "size", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--size--font--heading--h6": { + "default": { + "description": "Use for icons that are placed inline with sixth level headings", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for icons that are placed inline with sixth level headings", + "type": "number", + "value": "{global.font.size.heading.h6}" + }, + "name": "pf-t--global--icon--size--font--heading--h6", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "font", + "state": "heading" + }, + "path": [ + "global", + "icon", + "size", + "font", + "heading", + "h6" + ], + "references": [ + { + "description": "Use as the font size for sixth level headings.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for sixth level headings.", + "type": "number", + "value": "{global.font.size.md}" + }, + "name": "pf-t--global--font--size--heading--h6", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "heading", + "state": "h6" + }, + "path": [ + "global", + "font", + "size", + "heading", + "h6" + ], + "references": [ + { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" + }, + "name": "pf-t--global--font--size--md", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "md" + }, + "path": [ + "global", + "font", + "size", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--size--font--body--sm": { + "default": { + "description": "Use for icons that are placed inline with small body text", + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for icons that are placed inline with small body text", + "type": "number", + "value": "{global.font.size.body.sm}" + }, + "name": "pf-t--global--icon--size--font--body--sm", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "font", + "state": "body" + }, + "path": [ + "global", + "icon", + "size", + "font", + "body", + "sm" + ], + "references": [ + { + "description": "Use for a smaller font size in body sections.", + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for a smaller font size in body sections.", + "type": "number", + "value": "{global.font.size.xs}" + }, + "name": "pf-t--global--font--size--body--sm", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "body", + "state": "sm" + }, + "path": [ + "global", + "font", + "size", + "body", + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.font.size.100}" + }, + "name": "pf-t--global--font--size--xs", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "xs" + }, + "path": [ + "global", + "font", + "size", + "xs" + ], + "references": [ + { + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 12 + }, + "name": "pf-t--global--font--size--100", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "100" + }, + "path": [ + "global", + "font", + "size", + "100" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--size--font--body--default": { + "default": { + "description": "Use for icons that are placed inline with default body text", + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for icons that are placed inline with default body text", + "type": "number", + "value": "{global.font.size.body.default}" + }, + "name": "pf-t--global--icon--size--font--body--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "font", + "state": "body" + }, + "path": [ + "global", + "icon", + "size", + "font", + "body", + "default" + ], + "references": [ + { + "description": "Use as the default font size in body sections.", + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the default font size in body sections.", + "type": "number", + "value": "{global.font.size.sm}" + }, + "name": "pf-t--global--font--size--body--default", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "body", + "state": "default" + }, + "path": [ + "global", + "font", + "size", + "body", + "default" + ], + "references": [ + { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.200}" + }, + "name": "pf-t--global--font--size--sm", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "sm" + }, + "path": [ + "global", + "font", + "size", + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 14 + }, + "name": "pf-t--global--font--size--200", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "200" + }, + "path": [ + "global", + "font", + "size", + "200" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--size--font--body--lg": { + "default": { + "description": "Use for icons that are placed inline with large body text", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for icons that are placed inline with large body text", + "type": "number", + "value": "{global.font.size.body.lg}" + }, + "name": "pf-t--global--icon--size--font--body--lg", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "font", + "state": "body" + }, + "path": [ + "global", + "icon", + "size", + "font", + "body", + "lg" + ], + "references": [ + { + "description": "Use for a larger font size in body sections.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for a larger font size in body sections.", + "type": "number", + "value": "{global.font.size.md}" + }, + "name": "pf-t--global--font--size--body--lg", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "body", + "state": "lg" + }, + "path": [ + "global", + "font", + "size", + "body", + "lg" + ], + "references": [ + { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" + }, + "name": "pf-t--global--font--size--md", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "md" + }, + "path": [ + "global", + "font", + "size", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--width--regular": { + "default": { + "description": "Use as the default border width for elements.", + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border width for elements.", + "type": "number", + "value": "{global.border.width.100}" + }, + "name": "pf-t--global--border--width--regular", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "regular" + }, + "path": [ + "global", + "border", + "width", + "regular" + ], + "references": [ + { + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1 + }, + "name": "pf-t--global--border--width--100", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "100" + }, + "path": [ + "global", + "border", + "width", + "100" + ] + } + ] + } + }, + "pf-t--global--border--width--strong": { + "default": { + "description": "Use as a stronger/wider border width for elements.", + "type": "number", + "value": "2px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as a stronger/wider border width for elements.", + "type": "number", + "value": "{global.border.width.200}" + }, + "name": "pf-t--global--border--width--strong", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "strong" + }, + "path": [ + "global", + "border", + "width", + "strong" + ], + "references": [ + { + "type": "number", + "value": "2px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 2 + }, + "name": "pf-t--global--border--width--200", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "200" + }, + "path": [ + "global", + "border", + "width", + "200" + ] + } + ] + } + }, + "pf-t--global--border--width--extra-strong": { + "default": { + "description": "Use as the strongest/widest border width for elements.", + "type": "number", + "value": "3px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the strongest/widest border width for elements.", + "type": "number", + "value": "{global.border.width.300}" + }, + "name": "pf-t--global--border--width--extra-strong", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "extra-strong" + }, + "path": [ + "global", + "border", + "width", + "extra-strong" + ], + "references": [ + { + "type": "number", + "value": "3px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 3 + }, + "name": "pf-t--global--border--width--300", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "300" + }, + "path": [ + "global", + "border", + "width", + "300" + ] + } + ] + } + }, + "pf-t--global--border--width--divider--default": { + "default": { + "description": "Use as the default border width for dividers.", + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border width for dividers.", + "type": "number", + "value": "{global.border.width.100}" + }, + "name": "pf-t--global--border--width--divider--default", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "divider", + "state": "default" + }, + "path": [ + "global", + "border", + "width", + "divider", + "default" + ], + "references": [ + { + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1 + }, + "name": "pf-t--global--border--width--100", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "100" + }, + "path": [ + "global", + "border", + "width", + "100" + ] + } + ] + } + }, + "pf-t--global--border--width--divider--hover": { + "default": { + "description": "Use as the border width hover state for dividers.", + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the border width hover state for dividers.", + "type": "number", + "value": "{global.border.width.100}" + }, + "name": "pf-t--global--border--width--divider--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "divider", + "state": "hover" + }, + "path": [ + "global", + "border", + "width", + "divider", + "hover" + ], + "references": [ + { + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1 + }, + "name": "pf-t--global--border--width--100", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "100" + }, + "path": [ + "global", + "border", + "width", + "100" + ] + } + ] + } + }, + "pf-t--global--border--width--divider--clicked": { + "default": { + "description": "Use as the border width clicked state for dividers.", + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the border width clicked state for dividers.", + "type": "number", + "value": "{global.border.width.100}" + }, + "name": "pf-t--global--border--width--divider--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "divider", + "state": "clicked" + }, + "path": [ + "global", + "border", + "width", + "divider", + "clicked" + ], + "references": [ + { + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1 + }, + "name": "pf-t--global--border--width--100", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "100" + }, + "path": [ + "global", + "border", + "width", + "100" + ] + } + ] + } + }, + "pf-t--global--border--width--glass--default": { + "default": { + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.border.width.regular}" + }, + "name": "pf-t--global--border--width--glass--default", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "glass", + "state": "default" + }, + "path": [ + "global", + "border", + "width", + "glass", + "default" + ], + "references": [ + { + "description": "Use as the default border width for elements.", + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border width for elements.", + "type": "number", + "value": "{global.border.width.100}" + }, + "name": "pf-t--global--border--width--regular", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "regular" + }, + "path": [ + "global", + "border", + "width", + "regular" + ], + "references": [ + { + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1 + }, + "name": "pf-t--global--border--width--100", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "100" + }, + "path": [ + "global", + "border", + "width", + "100" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--width--box--default": { + "default": { + "description": "Use as the default border width for containers like cards, panels, code editors, etc.", + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border width for containers like cards, panels, code editors, etc.", + "type": "number", + "value": "{global.border.width.100}" + }, + "name": "pf-t--global--border--width--box--default", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "box", + "state": "default" + }, + "path": [ + "global", + "border", + "width", + "box", + "default" + ], + "references": [ + { + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1 + }, + "name": "pf-t--global--border--width--100", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "100" + }, + "path": [ + "global", + "border", + "width", + "100" + ] + } + ] + } + }, + "pf-t--global--border--width--box--hover": { + "default": { + "description": "Use as the hover border width for containers like cards, panels, code editors, etc.", + "type": "number", + "value": "2px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover border width for containers like cards, panels, code editors, etc.", + "type": "number", + "value": "{global.border.width.200}" + }, + "name": "pf-t--global--border--width--box--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "box", + "state": "hover" + }, + "path": [ + "global", + "border", + "width", + "box", + "hover" + ], + "references": [ + { + "type": "number", + "value": "2px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 2 + }, + "name": "pf-t--global--border--width--200", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "200" + }, + "path": [ + "global", + "border", + "width", + "200" + ] + } + ] + } + }, + "pf-t--global--border--width--box--clicked": { + "default": { + "description": "Use as the clicked border width for containers like cards, panels, code editors, etc.", + "type": "number", + "value": "3px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked border width for containers like cards, panels, code editors, etc.", + "type": "number", + "value": "{global.border.width.300}" + }, + "name": "pf-t--global--border--width--box--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "box", + "state": "clicked" + }, + "path": [ + "global", + "border", + "width", + "box", + "clicked" + ], + "references": [ + { + "type": "number", + "value": "3px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 3 + }, + "name": "pf-t--global--border--width--300", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "300" + }, + "path": [ + "global", + "border", + "width", + "300" + ] + } + ] + } + }, + "pf-t--global--border--width--box--status--default": { + "default": { + "description": "Use as the default border width for containers that convey statuses like inline alerts, notification drawer items and hints. This token is typically paired with status border colors.", + "type": "number", + "value": "2px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border width for containers that convey statuses like inline alerts, notification drawer items and hints. This token is typically paired with status border colors.", + "type": "number", + "value": "{global.border.width.200}" + }, + "name": "pf-t--global--border--width--box--status--default", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "box", + "state": "status" + }, + "path": [ + "global", + "border", + "width", + "box", + "status", + "default" + ], + "references": [ + { + "type": "number", + "value": "2px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 2 + }, + "name": "pf-t--global--border--width--200", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "200" + }, + "path": [ + "global", + "border", + "width", + "200" + ] + } + ] + } + }, + "pf-t--global--border--width--box--status--read": { + "default": { + "description": "Use as the border width for containers that convey a “read” status, like notification drawer items.", + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the border width for containers that convey a “read” status, like notification drawer items.", + "type": "number", + "value": "{global.border.width.100}" + }, + "name": "pf-t--global--border--width--box--status--read", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "box", + "state": "status" + }, + "path": [ + "global", + "border", + "width", + "box", + "status", + "read" + ], + "references": [ + { + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1 + }, + "name": "pf-t--global--border--width--100", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "100" + }, + "path": [ + "global", + "border", + "width", + "100" + ] + } + ] + } + }, + "pf-t--global--border--width--high-contrast--regular": { + "default": { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--border--width--high-contrast--regular", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "high-contrast", + "state": "regular" + }, + "path": [ + "global", + "border", + "width", + "high-contrast", + "regular" + ] + } + }, + "pf-t--global--border--width--high-contrast--strong": { + "default": { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--border--width--high-contrast--strong", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "high-contrast", + "state": "strong" + }, + "path": [ + "global", + "border", + "width", + "high-contrast", + "strong" + ] + } + }, + "pf-t--global--border--width--high-contrast--extra-strong": { + "default": { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--border--width--high-contrast--extra-strong", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "high-contrast", + "state": "extra-strong" + }, + "path": [ + "global", + "border", + "width", + "high-contrast", + "extra-strong" + ] + } + }, + "pf-t--global--border--width--main--default": { + "default": { + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.border.width.100}" + }, + "name": "pf-t--global--border--width--main--default", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "main", + "state": "default" + }, + "path": [ + "global", + "border", + "width", + "main", + "default" + ], + "references": [ + { + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1 + }, + "name": "pf-t--global--border--width--100", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "100" + }, + "path": [ + "global", + "border", + "width", + "100" + ] + } + ] + } + }, + "pf-t--global--border--width--action--default": { + "default": { + "description": "Use as the default border width for actions like secondary and tertiary buttons", + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border width for actions like secondary and tertiary buttons", + "type": "number", + "value": "{global.border.width.100}" + }, + "name": "pf-t--global--border--width--action--default", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "action", + "state": "default" + }, + "path": [ + "global", + "border", + "width", + "action", + "default" + ], + "references": [ + { + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1 + }, + "name": "pf-t--global--border--width--100", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "100" + }, + "path": [ + "global", + "border", + "width", + "100" + ] + } + ] + } + }, + "pf-t--global--border--width--action--hover": { + "default": { + "description": "Use as the hover state border width for actions like secondary and tertiary buttons", + "type": "number", + "value": "2px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state border width for actions like secondary and tertiary buttons", + "type": "number", + "value": "{global.border.width.200}" + }, + "name": "pf-t--global--border--width--action--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "action", + "state": "hover" + }, + "path": [ + "global", + "border", + "width", + "action", + "hover" + ], + "references": [ + { + "type": "number", + "value": "2px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 2 + }, + "name": "pf-t--global--border--width--200", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "200" + }, + "path": [ + "global", + "border", + "width", + "200" + ] + } + ] + } + }, + "pf-t--global--border--width--action--clicked": { + "default": { + "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", + "type": "number", + "value": "2px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", + "type": "number", + "value": "{global.border.width.200}" + }, + "name": "pf-t--global--border--width--action--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "action", + "state": "clicked" + }, + "path": [ + "global", + "border", + "width", + "action", + "clicked" + ], + "references": [ + { + "type": "number", + "value": "2px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 2 + }, + "name": "pf-t--global--border--width--200", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "200" + }, + "path": [ + "global", + "border", + "width", + "200" + ] + } + ] + } + }, + "pf-t--global--border--width--action--plain--default": { + "default": { + "description": "Use as the default border width for plain actions", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border width for plain actions", + "type": "number", + "value": 0 + }, + "name": "pf-t--global--border--width--action--plain--default", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "border", + "width", + "action", + "plain", + "default" + ] + } + }, + "pf-t--global--border--width--action--plain--hover": { + "default": { + "description": "Use as the border width for plain actions in their hover state", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the border width for plain actions in their hover state", + "type": "number", + "value": 0 + }, + "name": "pf-t--global--border--width--action--plain--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "border", + "width", + "action", + "plain", + "hover" + ] + } + }, + "pf-t--global--border--width--action--plain--clicked": { + "default": { + "description": "Use as the border width for plain actions in their clicked state", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the border width for plain actions in their clicked state", + "type": "number", + "value": 0 + }, + "name": "pf-t--global--border--width--action--plain--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "border", + "width", + "action", + "plain", + "clicked" + ] + } + }, + "pf-t--global--border--width--control--default": { + "default": { + "description": "Use as the default border width for controls like text inputs, menu toggles and control buttons", + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border width for controls like text inputs, menu toggles and control buttons", + "type": "number", + "value": "{global.border.width.100}" + }, + "name": "pf-t--global--border--width--control--default", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "control", + "state": "default" + }, + "path": [ + "global", + "border", + "width", + "control", + "default" + ], + "references": [ + { + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1 + }, + "name": "pf-t--global--border--width--100", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "100" + }, + "path": [ + "global", + "border", + "width", + "100" + ] + } + ] + } + }, + "pf-t--global--border--width--control--hover": { + "default": { + "description": "Use as the hover state border width for controls like text inputs, menu toggles and control buttons", + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state border width for controls like text inputs, menu toggles and control buttons", + "type": "number", + "value": "{global.border.width.100}" + }, + "name": "pf-t--global--border--width--control--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "control", + "state": "hover" + }, + "path": [ + "global", + "border", + "width", + "control", + "hover" + ], + "references": [ + { + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1 + }, + "name": "pf-t--global--border--width--100", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "100" + }, + "path": [ + "global", + "border", + "width", + "100" + ] + } + ] + } + }, + "pf-t--global--border--width--control--clicked": { + "default": { + "description": "Use as the clicked state border width for controls like text inputs, menu toggles and control buttons", + "type": "number", + "value": "2px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border width for controls like text inputs, menu toggles and control buttons", + "type": "number", + "value": "{global.border.width.200}" + }, + "name": "pf-t--global--border--width--control--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "control", + "state": "clicked" + }, + "path": [ + "global", + "border", + "width", + "control", + "clicked" + ], + "references": [ + { + "type": "number", + "value": "2px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 2 + }, + "name": "pf-t--global--border--width--200", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "200" + }, + "path": [ + "global", + "border", + "width", + "200" + ] + } + ] + } + }, + "pf-t--global--border--radius--sharp": { + "default": { + "description": "Use to adjust the curvature of the border corners for an element. Use for sharp corners.", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to adjust the curvature of the border corners for an element. Use for sharp corners.", + "type": "number", + "value": "{global.border.radius.0}" + }, + "name": "pf-t--global--border--radius--sharp", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "sharp" + }, + "path": [ + "global", + "border", + "radius", + "sharp" + ], + "references": [ + { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--border--radius--0", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "0" + }, + "path": [ + "global", + "border", + "radius", + "0" + ] + } + ] + } + }, + "pf-t--global--border--radius--tiny": { + "default": { + "description": "Use to adjust the curvature of the border corners for an element. Use for barely rounded corners.", + "type": "number", + "value": "4px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to adjust the curvature of the border corners for an element. Use for barely rounded corners.", + "type": "number", + "value": "{global.border.radius.100}" + }, + "name": "pf-t--global--border--radius--tiny", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "tiny" + }, + "path": [ + "global", + "border", + "radius", + "tiny" + ], + "references": [ + { + "type": "number", + "value": "4px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 4 + }, + "name": "pf-t--global--border--radius--100", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "100" + }, + "path": [ + "global", + "border", + "radius", + "100" + ] + } + ] + } + }, + "pf-t--global--border--radius--small": { + "default": { + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "type": "number", + "value": "6px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "type": "number", + "value": "{global.border.radius.200}" + }, + "name": "pf-t--global--border--radius--small", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "small" + }, + "path": [ + "global", + "border", + "radius", + "small" + ], + "references": [ + { + "type": "number", + "value": "6px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 6 + }, + "name": "pf-t--global--border--radius--200", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "200" + }, + "path": [ + "global", + "border", + "radius", + "200" + ] + } + ] + } + }, + "pf-t--global--border--radius--medium": { + "default": { + "description": "Use to adjust the curvature of the border corners for an element. Use for moderately rounded corners, like cards.", + "type": "number", + "value": "16px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to adjust the curvature of the border corners for an element. Use for moderately rounded corners, like cards.", + "type": "number", + "value": "{global.border.radius.300}" + }, + "name": "pf-t--global--border--radius--medium", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "medium" + }, + "path": [ + "global", + "border", + "radius", + "medium" + ], + "references": [ + { + "type": "number", + "value": "16px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--border--radius--300", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "300" + }, + "path": [ + "global", + "border", + "radius", + "300" + ] + } + ] + } + }, + "pf-t--global--border--radius--large": { + "default": { + "description": "Use to adjust the curvature of the border corners for an element. Use for mostly rounded corners, like modals.", + "type": "number", + "value": "24px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to adjust the curvature of the border corners for an element. Use for mostly rounded corners, like modals.", + "type": "number", + "value": "{global.border.radius.400}" + }, + "name": "pf-t--global--border--radius--large", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "large" + }, + "path": [ + "global", + "border", + "radius", + "large" + ], + "references": [ + { + "type": "number", + "value": "24px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 24 + }, + "name": "pf-t--global--border--radius--400", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "400" + }, + "path": [ + "global", + "border", + "radius", + "400" + ] + } + ] + } + }, + "pf-t--global--border--radius--pill": { + "default": { + "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", + "type": "number", + "value": "999px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", + "type": "number", + "value": "{global.border.radius.500}" + }, + "name": "pf-t--global--border--radius--pill", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "pill" + }, + "path": [ + "global", + "border", + "radius", + "pill" + ], + "references": [ + { + "type": "number", + "value": "999px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 999 + }, + "name": "pf-t--global--border--radius--500", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "500" + }, + "path": [ + "global", + "border", + "radius", + "500" + ] + } + ] + } + }, + "pf-t--global--border--radius--control--default": { + "felt": { + "type": "number", + "value": "999px", + "filePath": "tokens/felt/glass/felt.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.border.radius.pill}" + }, + "name": "pf-t--global--border--radius--control--default", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "control", + "state": "default" + }, + "path": [ + "global", + "border", + "radius", + "control", + "default" + ], + "references": [ + { + "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", + "type": "number", + "value": "999px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", + "type": "number", + "value": "{global.border.radius.500}" + }, + "name": "pf-t--global--border--radius--pill", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "pill" + }, + "path": [ + "global", + "border", + "radius", + "pill" + ], + "references": [ + { + "type": "number", + "value": "999px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 999 + }, + "name": "pf-t--global--border--radius--500", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "500" + }, + "path": [ + "global", + "border", + "radius", + "500" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--radius--control--form-element": { + "default": { + "type": "number", + "value": "6px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.border.radius.small}" + }, + "name": "pf-t--global--border--radius--control--form-element", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "control", + "state": "form-element" + }, + "path": [ + "global", + "border", + "radius", + "control", + "form-element" + ], + "references": [ + { + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "type": "number", + "value": "6px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "type": "number", + "value": "{global.border.radius.200}" + }, + "name": "pf-t--global--border--radius--small", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "small" + }, + "path": [ + "global", + "border", + "radius", + "small" + ], + "references": [ + { + "type": "number", + "value": "6px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 6 + }, + "name": "pf-t--global--border--radius--200", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "200" + }, + "path": [ + "global", + "border", + "radius", + "200" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--radius--glass--default": { + "default": { + "type": "number", + "value": "16px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.border.radius.medium}" + }, + "name": "pf-t--global--border--radius--glass--default", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "glass", + "state": "default" + }, + "path": [ + "global", + "border", + "radius", + "glass", + "default" + ], + "references": [ + { + "description": "Use to adjust the curvature of the border corners for an element. Use for moderately rounded corners, like cards.", + "type": "number", + "value": "16px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to adjust the curvature of the border corners for an element. Use for moderately rounded corners, like cards.", + "type": "number", + "value": "{global.border.radius.300}" + }, + "name": "pf-t--global--border--radius--medium", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "medium" + }, + "path": [ + "global", + "border", + "radius", + "medium" + ], + "references": [ + { + "type": "number", + "value": "16px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--border--radius--300", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "300" + }, + "path": [ + "global", + "border", + "radius", + "300" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--radius--action--default": { + "default": { + "type": "number", + "value": "999px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.border.radius.pill}" + }, + "name": "pf-t--global--border--radius--action--default", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "action", + "state": "default" + }, + "path": [ + "global", + "border", + "radius", + "action", + "default" + ], + "references": [ + { + "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", + "type": "number", + "value": "999px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", + "type": "number", + "value": "{global.border.radius.500}" + }, + "name": "pf-t--global--border--radius--pill", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "pill" + }, + "path": [ + "global", + "border", + "radius", + "pill" + ], + "references": [ + { + "type": "number", + "value": "999px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 999 + }, + "name": "pf-t--global--border--radius--500", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "500" + }, + "path": [ + "global", + "border", + "radius", + "500" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--radius--action--plain--default": { + "felt": { + "type": "number", + "value": "999px", + "filePath": "tokens/felt/glass/felt.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.border.radius.pill}" + }, + "name": "pf-t--global--border--radius--action--plain--default", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "border", + "radius", + "action", + "plain", + "default" + ], + "references": [ + { + "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", + "type": "number", + "value": "999px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", + "type": "number", + "value": "{global.border.radius.500}" + }, + "name": "pf-t--global--border--radius--pill", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "pill" + }, + "path": [ + "global", + "border", + "radius", + "pill" + ], + "references": [ + { + "type": "number", + "value": "999px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 999 + }, + "name": "pf-t--global--border--radius--500", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "500" + }, + "path": [ + "global", + "border", + "radius", + "500" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--accent--default": { + "felt": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#000000", + "filePath": "tokens/felt/glass/felt.color.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.color.brand.accent.400}" + }, + "name": "pf-t--global--border--color--brand--accent--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "border", + "color", + "brand", + "accent", + "default" + ], + "references": [ + { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.black}" + }, + "name": "pf-t--global--color--brand--accent--400", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "400" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "400" + ], + "references": [ + { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#000000" + }, + "name": "pf-t--color--black", + "attributes": { + "category": "color", + "type": "black" + }, + "path": [ + "color", + "black" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--accent--hover": { + "felt": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#000000", + "filePath": "tokens/felt/glass/felt.color.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.color.brand.accent.400}" + }, + "name": "pf-t--global--border--color--brand--accent--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "border", + "color", + "brand", + "accent", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.black}" + }, + "name": "pf-t--global--color--brand--accent--400", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "400" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "400" + ], + "references": [ + { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#000000" + }, + "name": "pf-t--color--black", + "attributes": { + "category": "color", + "type": "black" + }, + "path": [ + "color", + "black" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--accent--clicked": { + "felt": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#000000", + "filePath": "tokens/felt/glass/felt.color.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.color.brand.accent.400}" + }, + "name": "pf-t--global--border--color--brand--accent--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "border", + "color", + "brand", + "accent", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.black}" + }, + "name": "pf-t--global--color--brand--accent--400", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "400" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "400" + ], + "references": [ + { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#000000" + }, + "name": "pf-t--color--black", + "attributes": { + "category": "color", + "type": "black" + }, + "path": [ + "color", + "black" + ] + } + ] + } + ] + } + }, + "pf-t--global--font--family--body": { + "default": { + "description": "Use to define the font family for body text", + "type": "number", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the font family for body text", + "type": "number", + "value": "{global.font.family.100}" + }, + "name": "pf-t--global--font--family--body", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "body" + }, + "path": [ + "global", + "font", + "family", + "body" + ], + "references": [ + { + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + }, + "name": "pf-t--global--font--family--100", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "100" + }, + "path": [ + "global", + "font", + "family", + "100" + ] + } + ] + } + }, + "pf-t--global--font--family--heading": { + "default": { + "description": "Use to define the font family for heading text", + "type": "number", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the font family for heading text", + "type": "number", + "value": "{global.font.family.200}" + }, + "name": "pf-t--global--font--family--heading", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "heading" + }, + "path": [ + "global", + "font", + "family", + "heading" + ], + "references": [ + { + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + }, + "name": "pf-t--global--font--family--200", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "200" + }, + "path": [ + "global", + "font", + "family", + "200" + ] + } + ] + } + }, + "pf-t--global--font--family--mono": { + "default": { + "description": "Use to define the font family for mono text", + "type": "number", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the font family for mono text", + "type": "number", + "value": "{global.font.family.300}" + }, + "name": "pf-t--global--font--family--mono", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "mono" + }, + "path": [ + "global", + "font", + "family", + "mono" + ], + "references": [ + { + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" + }, + "name": "pf-t--global--font--family--300", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "300" + }, + "path": [ + "global", + "font", + "family", + "300" + ] + } + ] + } + }, + "pf-t--global--font--line-height--body": { + "default": { + "description": "Use to define the line height for body text", + "type": "number", + "value": 1.5, + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the line height for body text", + "type": "number", + "value": "{global.font.line-height.200}" + }, + "name": "pf-t--global--font--line-height--body", + "attributes": { + "category": "global", + "type": "font", + "item": "line-height", + "subitem": "body" + }, + "path": [ + "global", + "font", + "line-height", + "body" + ], + "references": [ + { + "type": "number", + "value": 1.5, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1.5 + }, + "name": "pf-t--global--font--line-height--200", + "attributes": { + "category": "global", + "type": "font", + "item": "line-height", + "subitem": "200" + }, + "path": [ + "global", + "font", + "line-height", + "200" + ] + } + ] + } + }, + "pf-t--global--font--line-height--heading": { + "default": { + "description": "Use to define the line height for heading text", + "type": "number", + "value": 1.3, + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the line height for heading text", + "type": "number", + "value": "{global.font.line-height.100}" + }, + "name": "pf-t--global--font--line-height--heading", + "attributes": { + "category": "global", + "type": "font", + "item": "line-height", + "subitem": "heading" + }, + "path": [ + "global", + "font", + "line-height", + "heading" + ], + "references": [ + { + "type": "number", + "value": 1.3, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1.2999999523162842 + }, + "name": "pf-t--global--font--line-height--100", + "attributes": { + "category": "global", + "type": "font", + "item": "line-height", + "subitem": "100" + }, + "path": [ + "global", + "font", + "line-height", + "100" + ] + } + ] + } + }, + "pf-t--global--font--weight--body--default": { + "default": { + "description": "Use to define the default weight for body text", + "type": "number", + "value": 400, + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the default weight for body text", + "type": "number", + "value": "{global.font.weight.100}" + }, + "name": "pf-t--global--font--weight--body--default", + "attributes": { + "category": "global", + "type": "font", + "item": "weight", + "subitem": "body", + "state": "default" + }, + "path": [ + "global", + "font", + "weight", + "body", + "default" + ], + "references": [ + { + "type": "number", + "value": 400, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 400 + }, + "name": "pf-t--global--font--weight--100", + "attributes": { + "category": "global", + "type": "font", + "item": "weight", + "subitem": "100" + }, + "path": [ + "global", + "font", + "weight", + "100" + ] + } + ] + } + }, + "pf-t--global--font--weight--body--bold": { + "default": { + "description": "Use to define the bold weight for body text, often used to field labels or to add emphasis.", + "type": "number", + "value": 500, + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the bold weight for body text, often used to field labels or to add emphasis.", + "type": "number", + "value": "{global.font.weight.200}" + }, + "name": "pf-t--global--font--weight--body--bold", + "attributes": { + "category": "global", + "type": "font", + "item": "weight", + "subitem": "body", + "state": "bold" + }, + "path": [ + "global", + "font", + "weight", + "body", + "bold" + ], + "references": [ + { + "type": "number", + "value": 500, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 500 + }, + "name": "pf-t--global--font--weight--200", + "attributes": { + "category": "global", + "type": "font", + "item": "weight", + "subitem": "200" + }, + "path": [ + "global", + "font", + "weight", + "200" + ] + } + ] + } + }, + "pf-t--global--font--weight--heading--default": { + "default": { + "description": "Use to define the default weight for heading text", + "type": "number", + "value": 500, + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the default weight for heading text", + "type": "number", + "value": "{global.font.weight.300}" + }, + "name": "pf-t--global--font--weight--heading--default", + "attributes": { + "category": "global", + "type": "font", + "item": "weight", + "subitem": "heading", + "state": "default" + }, + "path": [ + "global", + "font", + "weight", + "heading", + "default" + ], + "references": [ + { + "type": "number", + "value": 500, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 500 + }, + "name": "pf-t--global--font--weight--300", + "attributes": { + "category": "global", + "type": "font", + "item": "weight", + "subitem": "300" + }, + "path": [ + "global", + "font", + "weight", + "300" + ] + } + ] + } + }, + "pf-t--global--font--weight--heading--bold": { + "default": { + "description": "Use to define the bold weight for heading text, often used to add emphasis.", + "type": "number", + "value": 700, + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the bold weight for heading text, often used to add emphasis.", + "type": "number", + "value": "{global.font.weight.400}" + }, + "name": "pf-t--global--font--weight--heading--bold", + "attributes": { + "category": "global", + "type": "font", + "item": "weight", + "subitem": "heading", + "state": "bold" + }, + "path": [ + "global", + "font", + "weight", + "heading", + "bold" + ], + "references": [ + { + "type": "number", + "value": 700, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 700 + }, + "name": "pf-t--global--font--weight--400", + "attributes": { + "category": "global", + "type": "font", + "item": "weight", + "subitem": "400" + }, + "path": [ + "global", + "font", + "weight", + "400" + ] + } + ] + } + }, + "pf-t--global--font--size--xs": { + "default": { + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.font.size.100}" + }, + "name": "pf-t--global--font--size--xs", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "xs" + }, + "path": [ + "global", + "font", + "size", + "xs" + ], + "references": [ + { + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 12 + }, + "name": "pf-t--global--font--size--100", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "100" + }, + "path": [ + "global", + "font", + "size", + "100" + ] + } + ] + } + }, + "pf-t--global--font--size--sm": { + "default": { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.200}" + }, + "name": "pf-t--global--font--size--sm", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "sm" + }, + "path": [ + "global", + "font", + "size", + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 14 + }, + "name": "pf-t--global--font--size--200", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "200" + }, + "path": [ + "global", + "font", + "size", + "200" + ] + } + ] + } + }, + "pf-t--global--font--size--md": { + "default": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" + }, + "name": "pf-t--global--font--size--md", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "md" + }, + "path": [ + "global", + "font", + "size", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } + ] + } + }, + "pf-t--global--font--size--lg": { + "default": { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.400}" + }, + "name": "pf-t--global--font--size--lg", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "lg" + }, + "path": [ + "global", + "font", + "size", + "lg" + ], + "references": [ + { + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 18 + }, + "name": "pf-t--global--font--size--400", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "400" + }, + "path": [ + "global", + "font", + "size", + "400" + ] + } + ] + } + }, + "pf-t--global--font--size--xl": { + "default": { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.500}" + }, + "name": "pf-t--global--font--size--xl", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "xl" + }, + "path": [ + "global", + "font", + "size", + "xl" + ], + "references": [ + { + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 20 + }, + "name": "pf-t--global--font--size--500", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "500" + }, + "path": [ + "global", + "font", + "size", + "500" + ] + } + ] + } + }, + "pf-t--global--font--size--2xl": { + "default": { + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.600}" + }, + "name": "pf-t--global--font--size--2xl", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "2xl" + }, + "path": [ + "global", + "font", + "size", + "2xl" + ], + "references": [ + { + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 24 + }, + "name": "pf-t--global--font--size--600", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "600" + }, + "path": [ + "global", + "font", + "size", + "600" + ] + } + ] + } + }, + "pf-t--global--font--size--3xl": { + "default": { + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "1.75rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.700}" + }, + "name": "pf-t--global--font--size--3xl", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "3xl" + }, + "path": [ + "global", + "font", + "size", + "3xl" + ], + "references": [ + { + "type": "number", + "value": "1.75rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 28 + }, + "name": "pf-t--global--font--size--700", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "700" + }, + "path": [ + "global", + "font", + "size", + "700" + ] + } + ] + } + }, + "pf-t--global--font--size--4xl": { + "default": { + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "2.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.800}" + }, + "name": "pf-t--global--font--size--4xl", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "4xl" + }, + "path": [ + "global", + "font", + "size", + "4xl" + ], + "references": [ + { + "type": "number", + "value": "2.25rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 36 + }, + "name": "pf-t--global--font--size--800", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "800" + }, + "path": [ + "global", + "font", + "size", + "800" + ] + } + ] + } + }, + "pf-t--global--font--size--body--sm": { + "default": { + "description": "Use for a smaller font size in body sections.", + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for a smaller font size in body sections.", + "type": "number", + "value": "{global.font.size.xs}" + }, + "name": "pf-t--global--font--size--body--sm", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "body", + "state": "sm" + }, + "path": [ + "global", + "font", + "size", + "body", + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.font.size.100}" + }, + "name": "pf-t--global--font--size--xs", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "xs" + }, + "path": [ + "global", + "font", + "size", + "xs" + ], + "references": [ + { + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 12 + }, + "name": "pf-t--global--font--size--100", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "100" + }, + "path": [ + "global", + "font", + "size", + "100" + ] + } + ] + } + ] + } + }, + "pf-t--global--font--size--body--default": { + "default": { + "description": "Use as the default font size in body sections.", + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the default font size in body sections.", + "type": "number", + "value": "{global.font.size.sm}" + }, + "name": "pf-t--global--font--size--body--default", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "body", + "state": "default" + }, + "path": [ + "global", + "font", + "size", + "body", + "default" + ], + "references": [ + { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.200}" + }, + "name": "pf-t--global--font--size--sm", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "sm" + }, + "path": [ + "global", + "font", + "size", + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 14 + }, + "name": "pf-t--global--font--size--200", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "200" + }, + "path": [ + "global", + "font", + "size", + "200" + ] + } + ] + } + ] + } + }, + "pf-t--global--font--size--body--lg": { + "default": { + "description": "Use for a larger font size in body sections.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for a larger font size in body sections.", + "type": "number", + "value": "{global.font.size.md}" + }, + "name": "pf-t--global--font--size--body--lg", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "body", + "state": "lg" + }, + "path": [ + "global", + "font", + "size", + "body", + "lg" + ], + "references": [ + { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" + }, + "name": "pf-t--global--font--size--md", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "md" + }, + "path": [ + "global", + "font", + "size", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } + ] + } + ] + } + }, + "pf-t--global--font--size--heading--h1": { + "default": { + "description": "Use as the font size for first level headings.", + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for first level headings.", + "type": "number", + "value": "{global.font.size.2xl}" + }, + "name": "pf-t--global--font--size--heading--h1", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "heading", + "state": "h1" + }, + "path": [ + "global", + "font", + "size", + "heading", + "h1" + ], + "references": [ + { + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.600}" + }, + "name": "pf-t--global--font--size--2xl", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "2xl" + }, + "path": [ + "global", + "font", + "size", + "2xl" + ], + "references": [ + { + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 24 + }, + "name": "pf-t--global--font--size--600", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "600" + }, + "path": [ + "global", + "font", + "size", + "600" + ] + } + ] + } + ] + } + }, + "pf-t--global--font--size--heading--h2": { + "default": { + "description": "Use as the font size for second level headings.", + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for second level headings.", + "type": "number", + "value": "{global.font.size.xl}" + }, + "name": "pf-t--global--font--size--heading--h2", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "heading", + "state": "h2" + }, + "path": [ + "global", + "font", + "size", + "heading", + "h2" + ], + "references": [ + { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.500}" + }, + "name": "pf-t--global--font--size--xl", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "xl" + }, + "path": [ + "global", + "font", + "size", + "xl" + ], + "references": [ + { + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 20 + }, + "name": "pf-t--global--font--size--500", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "500" + }, + "path": [ + "global", + "font", + "size", + "500" + ] + } + ] + } + ] + } + }, + "pf-t--global--font--size--heading--h3": { + "default": { + "description": "Use as the font size for third level headings.", + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for third level headings.", + "type": "number", + "value": "{global.font.size.lg}" + }, + "name": "pf-t--global--font--size--heading--h3", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "heading", + "state": "h3" + }, + "path": [ + "global", + "font", + "size", + "heading", + "h3" + ], + "references": [ + { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.400}" + }, + "name": "pf-t--global--font--size--lg", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "lg" + }, + "path": [ + "global", + "font", + "size", + "lg" + ], + "references": [ + { + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 18 + }, + "name": "pf-t--global--font--size--400", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "400" + }, + "path": [ + "global", + "font", + "size", + "400" + ] + } + ] + } + ] + } + }, + "pf-t--global--font--size--heading--h4": { + "default": { + "description": "Use as the font size for fourth-level headings.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for fourth-level headings.", + "type": "number", + "value": "{global.font.size.md}" + }, + "name": "pf-t--global--font--size--heading--h4", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "heading", + "state": "h4" + }, + "path": [ + "global", + "font", + "size", + "heading", + "h4" + ], + "references": [ + { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" + }, + "name": "pf-t--global--font--size--md", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "md" + }, + "path": [ + "global", + "font", + "size", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } + ] + } + ] + } + }, + "pf-t--global--font--size--heading--h5": { + "default": { + "description": "Use as the font size for fifth level headings.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for fifth level headings.", + "type": "number", + "value": "{global.font.size.md}" + }, + "name": "pf-t--global--font--size--heading--h5", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "heading", + "state": "h5" + }, + "path": [ + "global", + "font", + "size", + "heading", + "h5" + ], + "references": [ + { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" + }, + "name": "pf-t--global--font--size--md", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "md" + }, + "path": [ + "global", + "font", + "size", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } + ] + } + ] + } + }, + "pf-t--global--font--size--heading--h6": { + "default": { + "description": "Use as the font size for sixth level headings.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for sixth level headings.", + "type": "number", + "value": "{global.font.size.md}" + }, + "name": "pf-t--global--font--size--heading--h6", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "heading", + "state": "h6" + }, + "path": [ + "global", + "font", + "size", + "heading", + "h6" + ], + "references": [ + { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" + }, + "name": "pf-t--global--font--size--md", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "md" + }, + "path": [ + "global", + "font", + "size", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } + ] + } + ] + } + }, + "pf-t--global--z-index--xs": { + "default": { + "description": "Use to set an extra small z-index, to display an element below other elements with a larger z-index. Use for smaller parts of a component that need to overlap adjacent elements, like box shadows of hovered elements.", + "type": "number", + "value": 100, + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set an extra small z-index, to display an element below other elements with a larger z-index. Use for smaller parts of a component that need to overlap adjacent elements, like box shadows of hovered elements.", + "type": "number", + "value": "{global.z-index.100}" + }, + "name": "pf-t--global--z-index--xs", + "attributes": { + "category": "global", + "type": "z-index", + "item": "xs" + }, + "path": [ + "global", + "z-index", + "xs" + ], + "references": [ + { + "type": "number", + "value": 100, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 100 + }, + "name": "pf-t--global--z-index--100", + "attributes": { + "category": "global", + "type": "z-index", + "item": "100" + }, + "path": [ + "global", + "z-index", + "100" + ] + } + ] + } + }, + "pf-t--global--z-index--sm": { + "default": { + "description": "Use to set a small z-index, to display an element above other elements with smaller z-indexes. Use for components that need to appear above surrounding elements, like menus/dropdowns.", + "type": "number", + "value": 200, + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set a small z-index, to display an element above other elements with smaller z-indexes. Use for components that need to appear above surrounding elements, like menus/dropdowns.", + "type": "number", + "value": "{global.z-index.200}" + }, + "name": "pf-t--global--z-index--sm", + "attributes": { + "category": "global", + "type": "z-index", + "item": "sm" + }, + "path": [ + "global", + "z-index", + "sm" + ], + "references": [ + { + "type": "number", + "value": 200, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 200 + }, + "name": "pf-t--global--z-index--200", + "attributes": { + "category": "global", + "type": "z-index", + "item": "200" + }, + "path": [ + "global", + "z-index", + "200" + ] + } + ] + } + }, + "pf-t--global--z-index--md": { + "default": { + "description": "Use to set a medium z-index, to display an element above other elements with smaller z-indexes Use for sticky elements, like banners and page sections.", + "type": "number", + "value": 300, + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set a medium z-index, to display an element above other elements with smaller z-indexes Use for sticky elements, like banners and page sections.", + "type": "number", + "value": "{global.z-index.300}" + }, + "name": "pf-t--global--z-index--md", + "attributes": { + "category": "global", + "type": "z-index", + "item": "md" + }, + "path": [ + "global", + "z-index", + "md" + ], + "references": [ + { + "type": "number", + "value": 300, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 300 + }, + "name": "pf-t--global--z-index--300", + "attributes": { + "category": "global", + "type": "z-index", + "item": "300" + }, + "path": [ + "global", + "z-index", + "300" + ] + } + ] + } + }, + "pf-t--global--z-index--lg": { + "default": { + "description": "Use to set a large z-index, to display an element above other elements with smaller z-indexes Use for the backdrop component, which appears beneath an open modal.", + "type": "number", + "value": 400, + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set a large z-index, to display an element above other elements with smaller z-indexes Use for the backdrop component, which appears beneath an open modal.", + "type": "number", + "value": "{global.z-index.400}" + }, + "name": "pf-t--global--z-index--lg", + "attributes": { + "category": "global", + "type": "z-index", + "item": "lg" + }, + "path": [ + "global", + "z-index", + "lg" + ], + "references": [ + { + "type": "number", + "value": 400, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 400 + }, + "name": "pf-t--global--z-index--400", + "attributes": { + "category": "global", + "type": "z-index", + "item": "400" + }, + "path": [ + "global", + "z-index", + "400" + ] + } + ] + } + }, + "pf-t--global--z-index--xl": { + "default": { + "description": "Use to set an extra large z-index, to display an element above other elements with smaller z-indexes. Use for modals.", + "type": "number", + "value": 500, + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set an extra large z-index, to display an element above other elements with smaller z-indexes. Use for modals.", + "type": "number", + "value": "{global.z-index.500}" + }, + "name": "pf-t--global--z-index--xl", + "attributes": { + "category": "global", + "type": "z-index", + "item": "xl" + }, + "path": [ + "global", + "z-index", + "xl" + ], + "references": [ + { + "type": "number", + "value": 500, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 500 + }, + "name": "pf-t--global--z-index--500", + "attributes": { + "category": "global", + "type": "z-index", + "item": "500" + }, + "path": [ + "global", + "z-index", + "500" + ] + } + ] + } + }, + "pf-t--global--z-index--2xl": { + "default": { + "description": "Use to set a double extra large z-index, to display an element above all other page elements. Use for elements that should appear on top of all others, like toast alert groups.", + "type": "number", + "value": 600, + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to set a double extra large z-index, to display an element above all other page elements. Use for elements that should appear on top of all others, like toast alert groups.", + "type": "number", + "value": "{global.z-index.600}" + }, + "name": "pf-t--global--z-index--2xl", + "attributes": { + "category": "global", + "type": "z-index", + "item": "2xl" + }, + "path": [ + "global", + "z-index", + "2xl" + ], + "references": [ + { + "type": "number", + "value": 600, + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 600 + }, + "name": "pf-t--global--z-index--600", + "attributes": { + "category": "global", + "type": "z-index", + "item": "600" + }, + "path": [ + "global", + "z-index", + "600" + ] + } + ] + } + }, + "pf-t--global--box-shadow--X--sm--default": { + "default": { + "description": "Use to define the X value for a default small box-shadow, like in sticky sections", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the X value for a default small box-shadow, like in sticky sections", + "type": "number", + "value": "{global.box-shadow.X.400}" + }, + "name": "pf-t--global--box-shadow--X--sm--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "sm", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "X", + "sm", + "default" + ], + "references": [ + { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--X--400", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "400" + }, + "path": [ + "global", + "box-shadow", + "X", + "400" + ] + } + ] + } + }, + "pf-t--global--box-shadow--X--sm--top": { + "default": { + "description": "Use to define the X value for a small box-shadow that appears on the top of a raised element, like in sticky footers", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the X value for a small box-shadow that appears on the top of a raised element, like in sticky footers", + "type": "number", + "value": "{global.box-shadow.X.400}" + }, + "name": "pf-t--global--box-shadow--X--sm--top", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "sm", + "state": "top" + }, + "path": [ + "global", + "box-shadow", + "X", + "sm", + "top" + ], + "references": [ + { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--X--400", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "400" + }, + "path": [ + "global", + "box-shadow", + "X", + "400" + ] + } + ] + } + }, + "pf-t--global--box-shadow--X--sm--bottom": { + "default": { + "description": "Use to define the X value for a small box-shadow that appears on the bottom of a raised element, like in sticky headers.", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the X value for a small box-shadow that appears on the bottom of a raised element, like in sticky headers.", + "type": "number", + "value": "{global.box-shadow.X.400}" + }, + "name": "pf-t--global--box-shadow--X--sm--bottom", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "sm", + "state": "bottom" + }, + "path": [ + "global", + "box-shadow", + "X", + "sm", + "bottom" + ], + "references": [ + { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--X--400", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "400" + }, + "path": [ + "global", + "box-shadow", + "X", + "400" + ] + } + ] + } + }, + "pf-t--global--box-shadow--X--sm--left": { + "default": { + "description": "Use to define the X value for a small box-shadow that appears on the left of a raised element, like in sticky columns.", + "type": "number", + "value": "-4px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the X value for a small box-shadow that appears on the left of a raised element, like in sticky columns.", + "type": "number", + "value": "{global.box-shadow.X.200}" + }, + "name": "pf-t--global--box-shadow--X--sm--left", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "sm", + "state": "left" + }, + "path": [ + "global", + "box-shadow", + "X", + "sm", + "left" + ], + "references": [ + { + "type": "number", + "value": "-4px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": -4 + }, + "name": "pf-t--global--box-shadow--X--200", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "200" + }, + "path": [ + "global", + "box-shadow", + "X", + "200" + ] + } + ] + } + }, + "pf-t--global--box-shadow--X--sm--right": { + "default": { + "description": "Use to define the X value for a small box-shadow that appears on the right of a raised element, like in sticky columns.", + "type": "number", + "value": "4px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the X value for a small box-shadow that appears on the right of a raised element, like in sticky columns.", + "type": "number", + "value": "{global.box-shadow.X.600}" + }, + "name": "pf-t--global--box-shadow--X--sm--right", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "sm", + "state": "right" + }, + "path": [ + "global", + "box-shadow", + "X", + "sm", + "right" + ], + "references": [ + { + "type": "number", + "value": "4px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 4 + }, + "name": "pf-t--global--box-shadow--X--600", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "600" + }, + "path": [ + "global", + "box-shadow", + "X", + "600" + ] + } + ] + } + }, + "pf-t--global--box-shadow--X--md--default": { + "default": { + "description": "Use to define the X value for a default medium box-shadow, used in popovers and raised menus.", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the X value for a default medium box-shadow, used in popovers and raised menus.", + "type": "number", + "value": "{global.box-shadow.X.400}" + }, + "name": "pf-t--global--box-shadow--X--md--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "md", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "X", + "md", + "default" + ], + "references": [ + { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--X--400", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "400" + }, + "path": [ + "global", + "box-shadow", + "X", + "400" + ] + } + ] + } + }, + "pf-t--global--box-shadow--X--md--top": { + "default": { + "description": "Use to define the X value for a medium box-shadow that appears on the top of a raised element, like in overlay bottom drawers.", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the X value for a medium box-shadow that appears on the top of a raised element, like in overlay bottom drawers.", + "type": "number", + "value": "{global.box-shadow.X.400}" + }, + "name": "pf-t--global--box-shadow--X--md--top", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "md", + "state": "top" + }, + "path": [ + "global", + "box-shadow", + "X", + "md", + "top" + ], + "references": [ + { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--X--400", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "400" + }, + "path": [ + "global", + "box-shadow", + "X", + "400" + ] + } + ] + } + }, + "pf-t--global--box-shadow--X--md--bottom": { + "default": { + "description": "Use to define the X value for a medium box-shadow that appears on the bottom of a raised element.", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the X value for a medium box-shadow that appears on the bottom of a raised element.", + "type": "number", + "value": "{global.box-shadow.X.400}" + }, + "name": "pf-t--global--box-shadow--X--md--bottom", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "md", + "state": "bottom" + }, + "path": [ + "global", + "box-shadow", + "X", + "md", + "bottom" + ], + "references": [ + { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--X--400", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "400" + }, + "path": [ + "global", + "box-shadow", + "X", + "400" + ] + } + ] + } + }, + "pf-t--global--box-shadow--X--md--left": { + "default": { + "description": "Use to define the X value for a medium box-shadow that appears on the left of a raised element, like in overlay drawers that show on the right of the screen.", + "type": "number", + "value": "-10px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the X value for a medium box-shadow that appears on the left of a raised element, like in overlay drawers that show on the right of the screen.", + "type": "number", + "value": "{global.box-shadow.X.100}" + }, + "name": "pf-t--global--box-shadow--X--md--left", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "md", + "state": "left" + }, + "path": [ + "global", + "box-shadow", + "X", + "md", + "left" + ], + "references": [ + { + "type": "number", + "value": "-10px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": -10 + }, + "name": "pf-t--global--box-shadow--X--100", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "100" + }, + "path": [ + "global", + "box-shadow", + "X", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--X--md--right": { + "default": { + "description": "Use to define the X value for a medium box-shadow that appears on the right of a raised element, like in overlay drawers that show on the left of the screen.", + "type": "number", + "value": "10px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the X value for a medium box-shadow that appears on the right of a raised element, like in overlay drawers that show on the left of the screen.", + "type": "number", + "value": "{global.box-shadow.X.700}" + }, + "name": "pf-t--global--box-shadow--X--md--right", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "md", + "state": "right" + }, + "path": [ + "global", + "box-shadow", + "X", + "md", + "right" + ], + "references": [ + { + "type": "number", + "value": "10px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 10 + }, + "name": "pf-t--global--box-shadow--X--700", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "700" + }, + "path": [ + "global", + "box-shadow", + "X", + "700" + ] + } + ] + } + }, + "pf-t--global--box-shadow--X--lg--default": { + "default": { + "description": "Use to define the X value for a default large box-shadow, used in modals and wizards.", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the X value for a default large box-shadow, used in modals and wizards.", + "type": "number", + "value": "{global.box-shadow.X.400}" + }, + "name": "pf-t--global--box-shadow--X--lg--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "lg", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "X", + "lg", + "default" + ], + "references": [ + { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--X--400", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "400" + }, + "path": [ + "global", + "box-shadow", + "X", + "400" + ] + } + ] + } + }, + "pf-t--global--box-shadow--X--lg--top": { + "default": { + "description": "Use to define the X value for a large box-shadow that appears on the top of a raised element.", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the X value for a large box-shadow that appears on the top of a raised element.", + "type": "number", + "value": "{global.box-shadow.X.400}" + }, + "name": "pf-t--global--box-shadow--X--lg--top", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "lg", + "state": "top" + }, + "path": [ + "global", + "box-shadow", + "X", + "lg", + "top" + ], + "references": [ + { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--X--400", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "400" + }, + "path": [ + "global", + "box-shadow", + "X", + "400" + ] + } + ] + } + }, + "pf-t--global--box-shadow--X--lg--bottom": { + "default": { + "description": "Use to define the X value for a large box-shadow that appears on the bottom of a raised element.", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the X value for a large box-shadow that appears on the bottom of a raised element.", + "type": "number", + "value": "{global.box-shadow.X.400}" + }, + "name": "pf-t--global--box-shadow--X--lg--bottom", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "lg", + "state": "bottom" + }, + "path": [ + "global", + "box-shadow", + "X", + "lg", + "bottom" + ], + "references": [ + { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--X--400", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "400" + }, + "path": [ + "global", + "box-shadow", + "X", + "400" + ] + } + ] + } + }, + "pf-t--global--box-shadow--X--lg--left": { + "default": { + "description": "Use to define the X value for a large box-shadow that appears on the left of a raised element.", + "type": "number", + "value": "-20px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the X value for a large box-shadow that appears on the left of a raised element.", + "type": "number", + "value": "{global.box-shadow.X.50}" + }, + "name": "pf-t--global--box-shadow--X--lg--left", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "lg", + "state": "left" + }, + "path": [ + "global", + "box-shadow", + "X", + "lg", + "left" + ], + "references": [ + { + "type": "number", + "value": "-20px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": -20 + }, + "name": "pf-t--global--box-shadow--X--50", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "50" + }, + "path": [ + "global", + "box-shadow", + "X", + "50" + ] + } + ] + } + }, + "pf-t--global--box-shadow--X--lg--right": { + "default": { + "description": "Use to define the X value for a large box-shadow that appears on the right of a raised element.", + "type": "number", + "value": "20px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the X value for a large box-shadow that appears on the right of a raised element.", + "type": "number", + "value": "{global.box-shadow.X.800}" + }, + "name": "pf-t--global--box-shadow--X--lg--right", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "lg", + "state": "right" + }, + "path": [ + "global", + "box-shadow", + "X", + "lg", + "right" + ], + "references": [ + { + "type": "number", + "value": "20px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 20 + }, + "name": "pf-t--global--box-shadow--X--800", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "X", + "subitem": "800" + }, + "path": [ + "global", + "box-shadow", + "X", + "800" + ] + } + ] + } + }, + "pf-t--global--box-shadow--Y--sm--default": { + "default": { + "description": "Use to define the Y value for a default small box-shadow, like in sticky sections", + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the Y value for a default small box-shadow, like in sticky sections", + "type": "number", + "value": "{global.box-shadow.Y.500}" + }, + "name": "pf-t--global--box-shadow--Y--sm--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "sm", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "Y", + "sm", + "default" + ], + "references": [ + { + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1 + }, + "name": "pf-t--global--box-shadow--Y--500", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "500" + }, + "path": [ + "global", + "box-shadow", + "Y", + "500" + ] + } + ] + } + }, + "pf-t--global--box-shadow--Y--sm--top": { + "default": { + "description": "Use to define the Y value for a small box-shadow that appears on the top of a raised element, like in sticky footers", + "type": "number", + "value": "-4px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the Y value for a small box-shadow that appears on the top of a raised element, like in sticky footers", + "type": "number", + "value": "{global.box-shadow.Y.200}" + }, + "name": "pf-t--global--box-shadow--Y--sm--top", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "sm", + "state": "top" + }, + "path": [ + "global", + "box-shadow", + "Y", + "sm", + "top" + ], + "references": [ + { + "type": "number", + "value": "-4px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": -4 + }, + "name": "pf-t--global--box-shadow--Y--200", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "200" + }, + "path": [ + "global", + "box-shadow", + "Y", + "200" + ] + } + ] + } + }, + "pf-t--global--box-shadow--Y--sm--bottom": { + "default": { + "description": "Use to define the Y value for a small box-shadow that appears on the bottom of a raised element, like in sticky headers.", + "type": "number", + "value": "4px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the Y value for a small box-shadow that appears on the bottom of a raised element, like in sticky headers.", + "type": "number", + "value": "{global.box-shadow.Y.600}" + }, + "name": "pf-t--global--box-shadow--Y--sm--bottom", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "sm", + "state": "bottom" + }, + "path": [ + "global", + "box-shadow", + "Y", + "sm", + "bottom" + ], + "references": [ + { + "type": "number", + "value": "4px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 4 + }, + "name": "pf-t--global--box-shadow--Y--600", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "600" + }, + "path": [ + "global", + "box-shadow", + "Y", + "600" + ] + } + ] + } + }, + "pf-t--global--box-shadow--Y--sm--left": { + "default": { + "description": "Use to define the Y value for a small box-shadow that appears on the left of a raised element, like in sticky columns.", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the Y value for a small box-shadow that appears on the left of a raised element, like in sticky columns.", + "type": "number", + "value": "{global.box-shadow.Y.400}" + }, + "name": "pf-t--global--box-shadow--Y--sm--left", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "sm", + "state": "left" + }, + "path": [ + "global", + "box-shadow", + "Y", + "sm", + "left" + ], + "references": [ + { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--Y--400", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "400" + }, + "path": [ + "global", + "box-shadow", + "Y", + "400" + ] + } + ] + } + }, + "pf-t--global--box-shadow--Y--sm--right": { + "default": { + "description": "Use to define the Y value for a small box-shadow that appears on the right of a raised element, like in sticky columns.", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the Y value for a small box-shadow that appears on the right of a raised element, like in sticky columns.", + "type": "number", + "value": "{global.box-shadow.Y.400}" + }, + "name": "pf-t--global--box-shadow--Y--sm--right", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "sm", + "state": "right" + }, + "path": [ + "global", + "box-shadow", + "Y", + "sm", + "right" + ], + "references": [ + { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--Y--400", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "400" + }, + "path": [ + "global", + "box-shadow", + "Y", + "400" + ] + } + ] + } + }, + "pf-t--global--box-shadow--Y--md--default": { + "default": { + "description": "Use to define the Y value for a default medium box-shadow, used in popovers and raised menus.", + "type": "number", + "value": "4px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the Y value for a default medium box-shadow, used in popovers and raised menus.", + "type": "number", + "value": "{global.box-shadow.Y.600}" + }, + "name": "pf-t--global--box-shadow--Y--md--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "md", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "Y", + "md", + "default" + ], + "references": [ + { + "type": "number", + "value": "4px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 4 + }, + "name": "pf-t--global--box-shadow--Y--600", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "600" + }, + "path": [ + "global", + "box-shadow", + "Y", + "600" + ] + } + ] + } + }, + "pf-t--global--box-shadow--Y--md--top": { + "default": { + "description": "Use to define the Y value for a medium box-shadow that appears on the top of a raised element, like in overlay bottom drawers", + "type": "number", + "value": "-10px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the Y value for a medium box-shadow that appears on the top of a raised element, like in overlay bottom drawers", + "type": "number", + "value": "{global.box-shadow.Y.100}" + }, + "name": "pf-t--global--box-shadow--Y--md--top", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "md", + "state": "top" + }, + "path": [ + "global", + "box-shadow", + "Y", + "md", + "top" + ], + "references": [ + { + "type": "number", + "value": "-10px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": -10 + }, + "name": "pf-t--global--box-shadow--Y--100", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "100" + }, + "path": [ + "global", + "box-shadow", + "Y", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--Y--md--bottom": { + "default": { + "description": "Use to define the Y value for a medium box-shadow that appears on the bottom of a raised element.", + "type": "number", + "value": "10px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the Y value for a medium box-shadow that appears on the bottom of a raised element.", + "type": "number", + "value": "{global.box-shadow.Y.700}" + }, + "name": "pf-t--global--box-shadow--Y--md--bottom", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "md", + "state": "bottom" + }, + "path": [ + "global", + "box-shadow", + "Y", + "md", + "bottom" + ], + "references": [ + { + "type": "number", + "value": "10px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 10 + }, + "name": "pf-t--global--box-shadow--Y--700", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "700" + }, + "path": [ + "global", + "box-shadow", + "Y", + "700" + ] + } + ] + } + }, + "pf-t--global--box-shadow--Y--md--left": { + "default": { + "description": "Use to define the Y value for a medium box-shadow that appears on the left of a raised element, like in overlay drawers that show on the right of the screen.", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the Y value for a medium box-shadow that appears on the left of a raised element, like in overlay drawers that show on the right of the screen.", + "type": "number", + "value": "{global.box-shadow.Y.400}" + }, + "name": "pf-t--global--box-shadow--Y--md--left", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "md", + "state": "left" + }, + "path": [ + "global", + "box-shadow", + "Y", + "md", + "left" + ], + "references": [ + { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--Y--400", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "400" + }, + "path": [ + "global", + "box-shadow", + "Y", + "400" + ] + } + ] + } + }, + "pf-t--global--box-shadow--Y--md--right": { + "default": { + "description": "Use to define the Y value for a medium box-shadow that appears on the right of a raised element, like in overlay drawers that show on the left of the screen.", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the Y value for a medium box-shadow that appears on the right of a raised element, like in overlay drawers that show on the left of the screen.", + "type": "number", + "value": "{global.box-shadow.Y.400}" + }, + "name": "pf-t--global--box-shadow--Y--md--right", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "md", + "state": "right" + }, + "path": [ + "global", + "box-shadow", + "Y", + "md", + "right" + ], + "references": [ + { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--Y--400", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "400" + }, + "path": [ + "global", + "box-shadow", + "Y", + "400" + ] + } + ] + } + }, + "pf-t--global--box-shadow--Y--lg--default": { + "default": { + "description": "Use to define the Y value for a default large box-shadow, used in modals and wizards.", + "type": "number", + "value": "10px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the Y value for a default large box-shadow, used in modals and wizards.", + "type": "number", + "value": "{global.box-shadow.Y.700}" + }, + "name": "pf-t--global--box-shadow--Y--lg--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "lg", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "Y", + "lg", + "default" + ], + "references": [ + { + "type": "number", + "value": "10px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 10 + }, + "name": "pf-t--global--box-shadow--Y--700", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "700" + }, + "path": [ + "global", + "box-shadow", + "Y", + "700" + ] + } + ] + } + }, + "pf-t--global--box-shadow--Y--lg--top": { + "default": { + "description": "Use to define the Y value for a large box-shadow that appears on the top of a raised element.", + "type": "number", + "value": "-20px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the Y value for a large box-shadow that appears on the top of a raised element.", + "type": "number", + "value": "{global.box-shadow.Y.50}" + }, + "name": "pf-t--global--box-shadow--Y--lg--top", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "lg", + "state": "top" + }, + "path": [ + "global", + "box-shadow", + "Y", + "lg", + "top" + ], + "references": [ + { + "type": "number", + "value": "-20px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": -20 + }, + "name": "pf-t--global--box-shadow--Y--50", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "50" + }, + "path": [ + "global", + "box-shadow", + "Y", + "50" + ] + } + ] + } + }, + "pf-t--global--box-shadow--Y--lg--bottom": { + "default": { + "description": "Use to define the Y value for a large box-shadow that appears on the bottom of a raised element.", + "type": "number", + "value": "20px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the Y value for a large box-shadow that appears on the bottom of a raised element.", + "type": "number", + "value": "{global.box-shadow.Y.800}" + }, + "name": "pf-t--global--box-shadow--Y--lg--bottom", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "lg", + "state": "bottom" + }, + "path": [ + "global", + "box-shadow", + "Y", + "lg", + "bottom" + ], + "references": [ + { + "type": "number", + "value": "20px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 20 + }, + "name": "pf-t--global--box-shadow--Y--800", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "800" + }, + "path": [ + "global", + "box-shadow", + "Y", + "800" + ] + } + ] + } + }, + "pf-t--global--box-shadow--Y--lg--left": { + "default": { + "description": "Use to define the Y value for a large box-shadow that appears on the left of a raised element.", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the Y value for a large box-shadow that appears on the left of a raised element.", + "type": "number", + "value": "{global.box-shadow.Y.400}" + }, + "name": "pf-t--global--box-shadow--Y--lg--left", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "lg", + "state": "left" + }, + "path": [ + "global", + "box-shadow", + "Y", + "lg", + "left" + ], + "references": [ + { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--Y--400", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "400" + }, + "path": [ + "global", + "box-shadow", + "Y", + "400" + ] + } + ] + } + }, + "pf-t--global--box-shadow--Y--lg--right": { + "default": { + "description": "Use to define the Y value for a large box-shadow that appears on the right of a raised element.", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the Y value for a large box-shadow that appears on the right of a raised element.", + "type": "number", + "value": "{global.box-shadow.Y.400}" + }, + "name": "pf-t--global--box-shadow--Y--lg--right", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "lg", + "state": "right" + }, + "path": [ + "global", + "box-shadow", + "Y", + "lg", + "right" + ], + "references": [ + { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--Y--400", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "Y", + "subitem": "400" + }, + "path": [ + "global", + "box-shadow", + "Y", + "400" + ] + } + ] + } + }, + "pf-t--global--box-shadow--blur--sm": { + "default": { + "description": "Use to define the blur for a small box-shadow", + "type": "number", + "value": "6px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the blur for a small box-shadow", + "type": "number", + "value": "{global.box-shadow.blur.100}" + }, + "name": "pf-t--global--box-shadow--blur--sm", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "blur", + "subitem": "sm" + }, + "path": [ + "global", + "box-shadow", + "blur", + "sm" + ], + "references": [ + { + "type": "number", + "value": "6px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 6 + }, + "name": "pf-t--global--box-shadow--blur--100", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "blur", + "subitem": "100" + }, + "path": [ + "global", + "box-shadow", + "blur", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--blur--md": { + "default": { + "description": "Use to define the blur for a medium box-shadow", + "type": "number", + "value": "10px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the blur for a medium box-shadow", + "type": "number", + "value": "{global.box-shadow.blur.200}" + }, + "name": "pf-t--global--box-shadow--blur--md", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "blur", + "subitem": "md" + }, + "path": [ + "global", + "box-shadow", + "blur", + "md" + ], + "references": [ + { + "type": "number", + "value": "10px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 10 + }, + "name": "pf-t--global--box-shadow--blur--200", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "blur", + "subitem": "200" + }, + "path": [ + "global", + "box-shadow", + "blur", + "200" + ] + } + ] + } + }, + "pf-t--global--box-shadow--blur--lg": { + "default": { + "description": "Use to define the blue for a large box-shadow", + "type": "number", + "value": "20px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the blue for a large box-shadow", + "type": "number", + "value": "{global.box-shadow.blur.300}" + }, + "name": "pf-t--global--box-shadow--blur--lg", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "blur", + "subitem": "lg" + }, + "path": [ + "global", + "box-shadow", + "blur", + "lg" + ], + "references": [ + { + "type": "number", + "value": "20px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 20 + }, + "name": "pf-t--global--box-shadow--blur--300", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "blur", + "subitem": "300" + }, + "path": [ + "global", + "box-shadow", + "blur", + "300" + ] + } + ] + } + }, + "pf-t--global--box-shadow--spread--sm--default": { + "default": { + "description": "Use to define the spread for a small box-shadow", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the spread for a small box-shadow", + "type": "number", + "value": "{global.box-shadow.spread.100}" + }, + "name": "pf-t--global--box-shadow--spread--sm--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "spread", + "subitem": "sm", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "spread", + "sm", + "default" + ], + "references": [ + { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--spread--100", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "spread", + "subitem": "100" + }, + "path": [ + "global", + "box-shadow", + "spread", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--spread--sm--directional": { + "default": { + "description": "Use to define the spread for a small box-shadow", + "type": "number", + "value": "-4px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the spread for a small box-shadow", + "type": "number", + "value": "{global.box-shadow.spread.200}" + }, + "name": "pf-t--global--box-shadow--spread--sm--directional", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "spread", + "subitem": "sm", + "state": "directional" + }, + "path": [ + "global", + "box-shadow", + "spread", + "sm", + "directional" + ], + "references": [ + { + "type": "number", + "value": "-4px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": -4 + }, + "name": "pf-t--global--box-shadow--spread--200", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "spread", + "subitem": "200" + }, + "path": [ + "global", + "box-shadow", + "spread", + "200" + ] + } + ] + } + }, + "pf-t--global--box-shadow--spread--md--default": { + "default": { + "description": "Use to define the spread of a medium box-shadow", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the spread of a medium box-shadow", + "type": "number", + "value": "{global.box-shadow.spread.100}" + }, + "name": "pf-t--global--box-shadow--spread--md--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "spread", + "subitem": "md", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "spread", + "md", + "default" + ], + "references": [ + { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--spread--100", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "spread", + "subitem": "100" + }, + "path": [ + "global", + "box-shadow", + "spread", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--spread--md--directional": { + "default": { + "description": "Use to define the spread of a medium box-shadow", + "type": "number", + "value": "-8px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the spread of a medium box-shadow", + "type": "number", + "value": "{global.box-shadow.spread.300}" + }, + "name": "pf-t--global--box-shadow--spread--md--directional", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "spread", + "subitem": "md", + "state": "directional" + }, + "path": [ + "global", + "box-shadow", + "spread", + "md", + "directional" + ], + "references": [ + { + "type": "number", + "value": "-8px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": -8 + }, + "name": "pf-t--global--box-shadow--spread--300", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "spread", + "subitem": "300" + }, + "path": [ + "global", + "box-shadow", + "spread", + "300" + ] + } + ] + } + }, + "pf-t--global--box-shadow--spread--lg--default": { + "default": { + "description": "Use to define the spread of a large box-shadow", + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the spread of a large box-shadow", + "type": "number", + "value": "{global.box-shadow.spread.100}" + }, + "name": "pf-t--global--box-shadow--spread--lg--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "spread", + "subitem": "lg", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "spread", + "lg", + "default" + ], + "references": [ + { + "type": "number", + "value": "0px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--box-shadow--spread--100", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "spread", + "subitem": "100" + }, + "path": [ + "global", + "box-shadow", + "spread", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--spread--lg--directional": { + "default": { + "description": "Use to define the spread of a large box-shadow", + "type": "number", + "value": "-20px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the spread of a large box-shadow", + "type": "number", + "value": "{global.box-shadow.spread.400}" + }, + "name": "pf-t--global--box-shadow--spread--lg--directional", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "spread", + "subitem": "lg", + "state": "directional" + }, + "path": [ + "global", + "box-shadow", + "spread", + "lg", + "directional" + ], + "references": [ + { + "type": "number", + "value": "-20px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": -20 + }, + "name": "pf-t--global--box-shadow--spread--400", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "spread", + "subitem": "400" + }, + "path": [ + "global", + "box-shadow", + "spread", + "400" + ] + } + ] + } + }, + "pf-t--global--breakpoint--xs": { + "default": { + "description": "Use to define an extra small breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "0rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define an extra small breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "{global.breakpoint.100}" + }, + "name": "pf-t--global--breakpoint--xs", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "xs" + }, + "path": [ + "global", + "breakpoint", + "xs" + ], + "references": [ + { + "type": "number", + "value": "0rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--breakpoint--100", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "100" + }, + "path": [ + "global", + "breakpoint", + "100" + ] + } + ] + } + }, + "pf-t--global--breakpoint--sm": { + "default": { + "description": "Use to define a small breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "36rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define a small breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "{global.breakpoint.200}" + }, + "name": "pf-t--global--breakpoint--sm", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "sm" + }, + "path": [ + "global", + "breakpoint", + "sm" + ], + "references": [ + { + "type": "number", + "value": "36rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 576 + }, + "name": "pf-t--global--breakpoint--200", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "200" + }, + "path": [ + "global", + "breakpoint", + "200" + ] + } + ] + } + }, + "pf-t--global--breakpoint--md": { + "default": { + "description": "Use to define a medium breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "48rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define a medium breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "{global.breakpoint.300}" + }, + "name": "pf-t--global--breakpoint--md", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "md" + }, + "path": [ + "global", + "breakpoint", + "md" + ], + "references": [ + { + "type": "number", + "value": "48rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 768 + }, + "name": "pf-t--global--breakpoint--300", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "300" + }, + "path": [ + "global", + "breakpoint", + "300" + ] + } + ] + } + }, + "pf-t--global--breakpoint--lg": { + "default": { + "description": "Use to define a large breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "62rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define a large breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "{global.breakpoint.400}" + }, + "name": "pf-t--global--breakpoint--lg", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "lg" + }, + "path": [ + "global", + "breakpoint", + "lg" + ], + "references": [ + { + "type": "number", + "value": "62rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 992 + }, + "name": "pf-t--global--breakpoint--400", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "400" + }, + "path": [ + "global", + "breakpoint", + "400" + ] + } + ] + } + }, + "pf-t--global--breakpoint--xl": { + "default": { + "description": "Use to define an extra large breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "75rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define an extra large breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "{global.breakpoint.500}" + }, + "name": "pf-t--global--breakpoint--xl", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "xl" + }, + "path": [ + "global", + "breakpoint", + "xl" + ], + "references": [ + { + "type": "number", + "value": "75rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1200 + }, + "name": "pf-t--global--breakpoint--500", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "500" + }, + "path": [ + "global", + "breakpoint", + "500" + ] + } + ] + } + }, + "pf-t--global--breakpoint--2xl": { + "default": { + "description": "Use to define a double extra large breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "90.625rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define a double extra large breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "{global.breakpoint.600}" + }, + "name": "pf-t--global--breakpoint--2xl", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "2xl" + }, + "path": [ + "global", + "breakpoint", + "2xl" + ], + "references": [ + { + "type": "number", + "value": "90.625rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1450 + }, + "name": "pf-t--global--breakpoint--600", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "600" + }, + "path": [ + "global", + "breakpoint", + "600" + ] + } + ] + } + }, + "pf-t--global--breakpoint--height--sm": { + "default": { + "description": "Use to define a small height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "0rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define a small height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "{global.breakpoint.100}" + }, + "name": "pf-t--global--breakpoint--height--sm", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "height", + "subitem": "sm" + }, + "path": [ + "global", + "breakpoint", + "height", + "sm" + ], + "references": [ + { + "type": "number", + "value": "0rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--breakpoint--100", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "100" + }, + "path": [ + "global", + "breakpoint", + "100" + ] + } + ] + } + }, + "pf-t--global--breakpoint--height--md": { + "default": { + "description": "Use to define a medium height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "40rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define a medium height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "{global.breakpoint.250}" + }, + "name": "pf-t--global--breakpoint--height--md", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "height", + "subitem": "md" + }, + "path": [ + "global", + "breakpoint", + "height", + "md" + ], + "references": [ + { + "type": "number", + "value": "40rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 640 + }, + "name": "pf-t--global--breakpoint--250", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "250" + }, + "path": [ + "global", + "breakpoint", + "250" + ] + } + ] + } + }, + "pf-t--global--breakpoint--height--lg": { + "default": { + "description": "Use to define a large height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "48rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define a large height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "{global.breakpoint.300}" + }, + "name": "pf-t--global--breakpoint--height--lg", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "height", + "subitem": "lg" + }, + "path": [ + "global", + "breakpoint", + "height", + "lg" + ], + "references": [ + { + "type": "number", + "value": "48rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 768 + }, + "name": "pf-t--global--breakpoint--300", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "300" + }, + "path": [ + "global", + "breakpoint", + "300" + ] + } + ] + } + }, + "pf-t--global--breakpoint--height--xl": { + "default": { + "description": "Use to define an extra large height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "60rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define an extra large height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "{global.breakpoint.350}" + }, + "name": "pf-t--global--breakpoint--height--xl", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "height", + "subitem": "xl" + }, + "path": [ + "global", + "breakpoint", + "height", + "xl" + ], + "references": [ + { + "type": "number", + "value": "60rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 960 + }, + "name": "pf-t--global--breakpoint--350", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "350" + }, + "path": [ + "global", + "breakpoint", + "350" + ] + } + ] + } + }, + "pf-t--global--breakpoint--height--2xl": { + "default": { + "description": "Use to define an extra small height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "80rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define an extra small height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", + "type": "number", + "value": "{global.breakpoint.550}" + }, + "name": "pf-t--global--breakpoint--height--2xl", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "height", + "subitem": "2xl" + }, + "path": [ + "global", + "breakpoint", + "height", + "2xl" + ], + "references": [ + { + "type": "number", + "value": "80rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1280 + }, + "name": "pf-t--global--breakpoint--550", + "attributes": { + "category": "global", + "type": "breakpoint", + "item": "550" + }, + "path": [ + "global", + "breakpoint", + "550" + ] + } + ] + } + }, + "pf-t--global--text-decoration--width--default": { + "default": { + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.border.width.regular}" + }, + "name": "pf-t--global--text-decoration--width--default", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "width", + "subitem": "default" + }, + "path": [ + "global", + "text-decoration", + "width", + "default" + ], + "references": [ + { + "description": "Use as the default border width for elements.", + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border width for elements.", + "type": "number", + "value": "{global.border.width.100}" + }, + "name": "pf-t--global--border--width--regular", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "regular" + }, + "path": [ + "global", + "border", + "width", + "regular" + ], + "references": [ + { + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1 + }, + "name": "pf-t--global--border--width--100", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "100" + }, + "path": [ + "global", + "border", + "width", + "100" + ] + } + ] + } + ] + } + }, + "pf-t--global--text-decoration--width--hover": { + "default": { + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.border.width.regular}" + }, + "name": "pf-t--global--text-decoration--width--hover", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "width", + "subitem": "hover" + }, + "path": [ + "global", + "text-decoration", + "width", + "hover" + ], + "references": [ + { + "description": "Use as the default border width for elements.", + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border width for elements.", + "type": "number", + "value": "{global.border.width.100}" + }, + "name": "pf-t--global--border--width--regular", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "regular" + }, + "path": [ + "global", + "border", + "width", + "regular" + ], + "references": [ + { + "type": "number", + "value": "1px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1 + }, + "name": "pf-t--global--border--width--100", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "100" + }, + "path": [ + "global", + "border", + "width", + "100" + ] + } + ] + } + ] + } + }, + "pf-t--global--text-decoration--offset--default": { + "default": { + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.spacer.xs}" + }, + "name": "pf-t--global--text-decoration--offset--default", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "offset", + "subitem": "default" + }, + "path": [ + "global", + "text-decoration", + "offset", + "default" + ], + "references": [ + { + "description": "Use for extra small spaces between elements.", + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for extra small spaces between elements.", + "type": "number", + "value": "{global.spacer.100}" + }, + "name": "pf-t--global--spacer--xs", + "attributes": { + "category": "global", + "type": "spacer", + "item": "xs" + }, + "path": [ + "global", + "spacer", + "xs" + ], + "references": [ + { + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 4 + }, + "name": "pf-t--global--spacer--100", + "attributes": { + "category": "global", + "type": "spacer", + "item": "100" + }, + "path": [ + "global", + "spacer", + "100" + ] + } + ] + } + ] + } + }, + "pf-t--global--text-decoration--editable-text--line--default": { + "default": { + "type": "number", + "value": "underline", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.text-decoration.line.200}" + }, + "name": "pf-t--global--text-decoration--editable-text--line--default", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "editable-text", + "subitem": "line", + "state": "default" + }, + "path": [ + "global", + "text-decoration", + "editable-text", + "line", + "default" + ], + "references": [ + { + "type": "string", + "value": "underline", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "underline" + }, + "name": "pf-t--global--text-decoration--line--200", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "line", + "subitem": "200" + }, + "path": [ + "global", + "text-decoration", + "line", + "200" + ] + } + ] + } + }, + "pf-t--global--text-decoration--editable-text--line--hover": { + "default": { + "type": "number", + "value": "underline", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.text-decoration.line.200}" + }, + "name": "pf-t--global--text-decoration--editable-text--line--hover", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "editable-text", + "subitem": "line", + "state": "hover" + }, + "path": [ + "global", + "text-decoration", + "editable-text", + "line", + "hover" + ], + "references": [ + { + "type": "string", + "value": "underline", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "underline" + }, + "name": "pf-t--global--text-decoration--line--200", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "line", + "subitem": "200" + }, + "path": [ + "global", + "text-decoration", + "line", + "200" + ] + } + ] + } + }, + "pf-t--global--text-decoration--editable-text--style--default": { + "default": { + "type": "number", + "value": "dashed", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.text-decoration.style.200}" + }, + "name": "pf-t--global--text-decoration--editable-text--style--default", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "editable-text", + "subitem": "style", + "state": "default" + }, + "path": [ + "global", + "text-decoration", + "editable-text", + "style", + "default" + ], + "references": [ + { + "type": "string", + "value": "dashed", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "dashed" + }, + "name": "pf-t--global--text-decoration--style--200", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "style", + "subitem": "200" + }, + "path": [ + "global", + "text-decoration", + "style", + "200" + ] + } + ] + } + }, + "pf-t--global--text-decoration--editable-text--style--hover": { + "default": { + "type": "number", + "value": "dashed", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.text-decoration.style.200}" + }, + "name": "pf-t--global--text-decoration--editable-text--style--hover", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "editable-text", + "subitem": "style", + "state": "hover" + }, + "path": [ + "global", + "text-decoration", + "editable-text", + "style", + "hover" + ], + "references": [ + { + "type": "string", + "value": "dashed", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "dashed" + }, + "name": "pf-t--global--text-decoration--style--200", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "style", + "subitem": "200" + }, + "path": [ + "global", + "text-decoration", + "style", + "200" + ] + } + ] + } + }, + "pf-t--global--text-decoration--link--line--default": { + "default": { + "type": "number", + "value": "underline", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.text-decoration.line.200}" + }, + "name": "pf-t--global--text-decoration--link--line--default", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "link", + "subitem": "line", + "state": "default" + }, + "path": [ + "global", + "text-decoration", + "link", + "line", + "default" + ], + "references": [ + { + "type": "string", + "value": "underline", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "underline" + }, + "name": "pf-t--global--text-decoration--line--200", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "line", + "subitem": "200" + }, + "path": [ + "global", + "text-decoration", + "line", + "200" + ] + } + ] + } + }, + "pf-t--global--text-decoration--link--line--hover": { + "default": { + "type": "number", + "value": "underline", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.text-decoration.line.200}" + }, + "name": "pf-t--global--text-decoration--link--line--hover", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "link", + "subitem": "line", + "state": "hover" + }, + "path": [ + "global", + "text-decoration", + "link", + "line", + "hover" + ], + "references": [ + { + "type": "string", + "value": "underline", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "underline" + }, + "name": "pf-t--global--text-decoration--line--200", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "line", + "subitem": "200" + }, + "path": [ + "global", + "text-decoration", + "line", + "200" + ] + } + ] + } + }, + "pf-t--global--text-decoration--link--style--default": { + "default": { + "type": "number", + "value": "dashed", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.text-decoration.style.200}" + }, + "name": "pf-t--global--text-decoration--link--style--default", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "link", + "subitem": "style", + "state": "default" + }, + "path": [ + "global", + "text-decoration", + "link", + "style", + "default" + ], + "references": [ + { + "type": "string", + "value": "dashed", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "dashed" + }, + "name": "pf-t--global--text-decoration--style--200", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "style", + "subitem": "200" + }, + "path": [ + "global", + "text-decoration", + "style", + "200" + ] + } + ] + } + }, + "pf-t--global--text-decoration--link--style--hover": { + "default": { + "type": "number", + "value": "dashed", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.text-decoration.style.200}" + }, + "name": "pf-t--global--text-decoration--link--style--hover", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "link", + "subitem": "style", + "state": "hover" + }, + "path": [ + "global", + "text-decoration", + "link", + "style", + "hover" + ], + "references": [ + { + "type": "string", + "value": "dashed", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "dashed" + }, + "name": "pf-t--global--text-decoration--style--200", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "style", + "subitem": "200" + }, + "path": [ + "global", + "text-decoration", + "style", + "200" + ] + } + ] + } + }, + "pf-t--global--text-decoration--help-text--line--default": { + "default": { + "type": "number", + "value": "underline", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.text-decoration.line.200}" + }, + "name": "pf-t--global--text-decoration--help-text--line--default", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "help-text", + "subitem": "line", + "state": "default" + }, + "path": [ + "global", + "text-decoration", + "help-text", + "line", + "default" + ], + "references": [ + { + "type": "string", + "value": "underline", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "underline" + }, + "name": "pf-t--global--text-decoration--line--200", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "line", + "subitem": "200" + }, + "path": [ + "global", + "text-decoration", + "line", + "200" + ] + } + ] + } + }, + "pf-t--global--text-decoration--help-text--line--hover": { + "default": { + "type": "number", + "value": "underline", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.text-decoration.line.200}" + }, + "name": "pf-t--global--text-decoration--help-text--line--hover", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "help-text", + "subitem": "line", + "state": "hover" + }, + "path": [ + "global", + "text-decoration", + "help-text", + "line", + "hover" + ], + "references": [ + { + "type": "string", + "value": "underline", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "underline" + }, + "name": "pf-t--global--text-decoration--line--200", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "line", + "subitem": "200" + }, + "path": [ + "global", + "text-decoration", + "line", + "200" + ] + } + ] + } + }, + "pf-t--global--text-decoration--help-text--style--default": { + "default": { + "type": "number", + "value": "dashed", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.text-decoration.style.200}" + }, + "name": "pf-t--global--text-decoration--help-text--style--default", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "help-text", + "subitem": "style", + "state": "default" + }, + "path": [ + "global", + "text-decoration", + "help-text", + "style", + "default" + ], + "references": [ + { + "type": "string", + "value": "dashed", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "dashed" + }, + "name": "pf-t--global--text-decoration--style--200", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "style", + "subitem": "200" + }, + "path": [ + "global", + "text-decoration", + "style", + "200" + ] + } + ] + } + }, + "pf-t--global--text-decoration--help-text--style--hover": { + "default": { + "type": "number", + "value": "dashed", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.text-decoration.style.200}" + }, + "name": "pf-t--global--text-decoration--help-text--style--hover", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "help-text", + "subitem": "style", + "state": "hover" + }, + "path": [ + "global", + "text-decoration", + "help-text", + "style", + "hover" + ], + "references": [ + { + "type": "string", + "value": "dashed", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "dashed" + }, + "name": "pf-t--global--text-decoration--style--200", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "style", + "subitem": "200" + }, + "path": [ + "global", + "text-decoration", + "style", + "200" + ] + } + ] + } + }, + "pf-t--global--color--brand--accent--default": { + "felt": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#ee0000", + "filePath": "tokens/felt/glass/felt.color.glass.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.color.brand.accent.100}" + }, + "name": "pf-t--global--color--brand--accent--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "default" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.50}" + }, + "name": "pf-t--global--color--brand--accent--100", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "100" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ee0000" + }, + "name": "pf-t--color--red--50", + "attributes": { + "category": "color", + "type": "red", + "item": "50" + }, + "path": [ + "color", + "red", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--accent--hover": { + "felt": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#a60000", + "filePath": "tokens/felt/glass/felt.color.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.color.brand.accent.200}" + }, + "name": "pf-t--global--color--brand--accent--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "hover" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.60}" + }, + "name": "pf-t--global--color--brand--accent--200", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "200" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a60000" + }, + "name": "pf-t--color--red--60", + "attributes": { + "category": "color", + "type": "red", + "item": "60" + }, + "path": [ + "color", + "red", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--accent--clicked": { + "felt": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#a60000", + "filePath": "tokens/felt/glass/felt.color.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.color.brand.accent.200}" + }, + "name": "pf-t--global--color--brand--accent--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.60}" + }, + "name": "pf-t--global--color--brand--accent--200", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "200" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a60000" + }, + "name": "pf-t--color--red--60", + "attributes": { + "category": "color", + "type": "red", + "item": "60" + }, + "path": [ + "color", + "red", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--focus-ring--position--offset": { + "default": { + "description": "Use to define the position of a custom focus ring that sits outside (offset) of the element receiving focus.", + "type": "number", + "value": "2px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the position of a custom focus ring that sits outside (offset) of the element receiving focus.", + "type": "number", + "value": 2 + }, + "name": "pf-t--global--focus-ring--position--offset", + "attributes": { + "category": "global", + "type": "focus-ring", + "item": "position", + "subitem": "offset" + }, + "path": [ + "global", + "focus-ring", + "position", + "offset" + ] + } + }, + "pf-t--global--focus-ring--position--inset": { + "default": { + "description": "Use to define the position of a custom focus ring that sits inside (inset) of the element receiving focus.", + "type": "number", + "value": "-4px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the position of a custom focus ring that sits inside (inset) of the element receiving focus.", + "type": "number", + "value": -4 + }, + "name": "pf-t--global--focus-ring--position--inset", + "attributes": { + "category": "global", + "type": "focus-ring", + "item": "position", + "subitem": "inset" + }, + "path": [ + "global", + "focus-ring", + "position", + "inset" + ] + } + }, + "pf-t--global--focus-ring--width--offset": { + "default": { + "description": "Use to define the width of a custom focus ring that sits outside (offset) of the element receiving focus.", + "type": "number", + "value": "2px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the width of a custom focus ring that sits outside (offset) of the element receiving focus.", + "type": "number", + "value": 2 + }, + "name": "pf-t--global--focus-ring--width--offset", + "attributes": { + "category": "global", + "type": "focus-ring", + "item": "width", + "subitem": "offset" + }, + "path": [ + "global", + "focus-ring", + "width", + "offset" + ] + } + }, + "pf-t--global--focus-ring--width--inset": { + "default": { + "description": "Use to define the width of a custom focus ring that sits inside (inset) of the element receiving focus.", + "type": "number", + "value": "3px", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use to define the width of a custom focus ring that sits inside (inset) of the element receiving focus.", + "type": "number", + "value": 3 + }, + "name": "pf-t--global--focus-ring--width--inset", + "attributes": { + "category": "global", + "type": "focus-ring", + "item": "width", + "subitem": "inset" + }, + "path": [ + "global", + "focus-ring", + "width", + "inset" + ] + } + }, + "pf-t--color--white": { + "default": { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + }, + "pf-t--color--black": { + "default": { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#000000" + }, + "name": "pf-t--color--black", + "attributes": { + "category": "color", + "type": "black" + }, + "path": [ + "color", + "black" + ] + } + }, + "pf-t--color--gray--10": { + "default": { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + }, + "pf-t--color--gray--20": { + "default": { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + }, + "pf-t--color--gray--30": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + }, + "pf-t--color--gray--40": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + }, + "pf-t--color--gray--45": { + "default": { + "type": "color", + "value": "#8c8c8c", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#8c8c8c" + }, + "name": "pf-t--color--gray--45", + "attributes": { + "category": "color", + "type": "gray", + "item": "45" + }, + "path": [ + "color", + "gray", + "45" + ] + } + }, + "pf-t--color--gray--50": { + "default": { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + }, + "pf-t--color--gray--60": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + }, + "pf-t--color--gray--70": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + }, + "pf-t--color--gray--80": { + "default": { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + }, + "pf-t--color--gray--90": { + "default": { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + }, + "pf-t--color--gray--95": { + "default": { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + }, + "pf-t--color--blue--10": { + "default": { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + }, + "pf-t--color--blue--20": { + "default": { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + }, + "pf-t--color--blue--30": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + }, + "pf-t--color--blue--40": { + "default": { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4394e5" + }, + "name": "pf-t--color--blue--40", + "attributes": { + "category": "color", + "type": "blue", + "item": "40" + }, + "path": [ + "color", + "blue", + "40" + ] + } + }, + "pf-t--color--blue--50": { + "default": { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + }, + "pf-t--color--blue--60": { + "default": { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + }, + "pf-t--color--blue--70": { + "default": { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } + }, + "pf-t--color--blue--80": { + "default": { + "type": "color", + "value": "#032142", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#032142" + }, + "name": "pf-t--color--blue--80", + "attributes": { + "category": "color", + "type": "blue", + "item": "80" + }, + "path": [ + "color", + "blue", + "80" + ] + } + }, + "pf-t--color--teal--10": { + "default": { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#daf2f2" + }, + "name": "pf-t--color--teal--10", + "attributes": { + "category": "color", + "type": "teal", + "item": "10" + }, + "path": [ + "color", + "teal", + "10" + ] + } + }, + "pf-t--color--teal--20": { + "default": { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + }, + "pf-t--color--teal--30": { + "default": { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + }, + "pf-t--color--teal--40": { + "default": { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + }, + "pf-t--color--teal--50": { + "default": { + "type": "color", + "value": "#37a3a3", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#37a3a3" + }, + "name": "pf-t--color--teal--50", + "attributes": { + "category": "color", + "type": "teal", + "item": "50" + }, + "path": [ + "color", + "teal", + "50" + ] + } + }, + "pf-t--color--teal--60": { + "default": { + "type": "color", + "value": "#147878", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#147878" + }, + "name": "pf-t--color--teal--60", + "attributes": { + "category": "color", + "type": "teal", + "item": "60" + }, + "path": [ + "color", + "teal", + "60" + ] + } + }, + "pf-t--color--teal--70": { + "default": { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d4d" + }, + "name": "pf-t--color--teal--70", + "attributes": { + "category": "color", + "type": "teal", + "item": "70" + }, + "path": [ + "color", + "teal", + "70" + ] + } + }, + "pf-t--color--teal--80": { + "default": { + "type": "color", + "value": "#003333", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003333" + }, + "name": "pf-t--color--teal--80", + "attributes": { + "category": "color", + "type": "teal", + "item": "80" + }, + "path": [ + "color", + "teal", + "80" + ] + } + }, + "pf-t--color--yellow--10": { + "default": { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fff4cc" + }, + "name": "pf-t--color--yellow--10", + "attributes": { + "category": "color", + "type": "yellow", + "item": "10" + }, + "path": [ + "color", + "yellow", + "10" + ] + } + }, + "pf-t--color--yellow--20": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + }, + "pf-t--color--yellow--30": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + }, + "pf-t--color--yellow--40": { + "default": { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + }, + "pf-t--color--yellow--50": { + "default": { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b98412" + }, + "name": "pf-t--color--yellow--50", + "attributes": { + "category": "color", + "type": "yellow", + "item": "50" + }, + "path": [ + "color", + "yellow", + "50" + ] + } + }, + "pf-t--color--yellow--60": { + "default": { + "type": "color", + "value": "#96640f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#96640f" + }, + "name": "pf-t--color--yellow--60", + "attributes": { + "category": "color", + "type": "yellow", + "item": "60" + }, + "path": [ + "color", + "yellow", + "60" + ] + } + }, + "pf-t--color--yellow--70": { + "default": { + "type": "color", + "value": "#73480b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#73480b" + }, + "name": "pf-t--color--yellow--70", + "attributes": { + "category": "color", + "type": "yellow", + "item": "70" + }, + "path": [ + "color", + "yellow", + "70" + ] + } + }, + "pf-t--color--yellow--80": { + "default": { + "type": "color", + "value": "#54330b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#54330b" + }, + "name": "pf-t--color--yellow--80", + "attributes": { + "category": "color", + "type": "yellow", + "item": "80" + }, + "path": [ + "color", + "yellow", + "80" + ] + } + }, + "pf-t--color--green--10": { + "default": { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e9f7df" + }, + "name": "pf-t--color--green--10", + "attributes": { + "category": "color", + "type": "green", + "item": "10" + }, + "path": [ + "color", + "green", + "10" + ] + } + }, + "pf-t--color--green--20": { + "default": { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + }, + "pf-t--color--green--30": { + "default": { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + }, + "pf-t--color--green--40": { + "default": { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + }, + "pf-t--color--green--50": { + "default": { + "type": "color", + "value": "#63993d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63993d" + }, + "name": "pf-t--color--green--50", + "attributes": { + "category": "color", + "type": "green", + "item": "50" + }, + "path": [ + "color", + "green", + "50" + ] + } + }, + "pf-t--color--green--60": { + "default": { + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d7317" + }, + "name": "pf-t--color--green--60", + "attributes": { + "category": "color", + "type": "green", + "item": "60" + }, + "path": [ + "color", + "green", + "60" + ] + } + }, + "pf-t--color--green--70": { + "default": { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#204d00" + }, + "name": "pf-t--color--green--70", + "attributes": { + "category": "color", + "type": "green", + "item": "70" + }, + "path": [ + "color", + "green", + "70" + ] + } + }, + "pf-t--color--green--80": { + "default": { + "type": "color", + "value": "#183301", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#183301" + }, + "name": "pf-t--color--green--80", + "attributes": { + "category": "color", + "type": "green", + "item": "80" + }, + "path": [ + "color", + "green", + "80" + ] + } + }, + "pf-t--color--orange--10": { + "default": { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe8cc" + }, + "name": "pf-t--color--orange--10", + "attributes": { + "category": "color", + "type": "orange", + "item": "10" + }, + "path": [ + "color", + "orange", + "10" + ] + } + }, + "pf-t--color--orange--20": { + "default": { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + }, + "pf-t--color--orange--30": { + "default": { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + }, + "pf-t--color--orange--40": { + "default": { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f5921b" + }, + "name": "pf-t--color--orange--40", + "attributes": { + "category": "color", + "type": "orange", + "item": "40" + }, + "path": [ + "color", + "orange", + "40" + ] + } + }, + "pf-t--color--orange--50": { + "default": { + "type": "color", + "value": "#ca6c0f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ca6c0f" + }, + "name": "pf-t--color--orange--50", + "attributes": { + "category": "color", + "type": "orange", + "item": "50" + }, + "path": [ + "color", + "orange", + "50" + ] + } + }, + "pf-t--color--orange--60": { + "default": { + "type": "color", + "value": "#9e4a06", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9e4a06" + }, + "name": "pf-t--color--orange--60", + "attributes": { + "category": "color", + "type": "orange", + "item": "60" + }, + "path": [ + "color", + "orange", + "60" + ] + } + }, + "pf-t--color--orange--70": { + "default": { + "type": "color", + "value": "#732e00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#732e00" + }, + "name": "pf-t--color--orange--70", + "attributes": { + "category": "color", + "type": "orange", + "item": "70" + }, + "path": [ + "color", + "orange", + "70" + ] + } + }, + "pf-t--color--orange--80": { + "default": { + "type": "color", + "value": "#4d1f00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d1f00" + }, + "name": "pf-t--color--orange--80", + "attributes": { + "category": "color", + "type": "orange", + "item": "80" + }, + "path": [ + "color", + "orange", + "80" + ] + } + }, + "pf-t--color--red-orange--10": { + "default": { + "type": "color", + "value": "#ffe3d9", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe3d9" + }, + "name": "pf-t--color--red-orange--10", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "10" + }, + "path": [ + "color", + "red-orange", + "10" + ] + } + }, + "pf-t--color--red-orange--20": { + "default": { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + }, + "pf-t--color--red-orange--30": { + "default": { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + }, + "pf-t--color--red-orange--40": { + "default": { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + }, + "pf-t--color--red-orange--50": { + "default": { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + }, + "pf-t--color--red-orange--60": { + "default": { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b1380b" + }, + "name": "pf-t--color--red-orange--60", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "60" + }, + "path": [ + "color", + "red-orange", + "60" + ] + } + }, + "pf-t--color--red-orange--70": { + "default": { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } + }, + "pf-t--color--red-orange--80": { + "default": { + "type": "color", + "value": "#4c1405", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4c1405" + }, + "name": "pf-t--color--red-orange--80", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "80" + }, + "path": [ + "color", + "red-orange", + "80" + ] + } + }, + "pf-t--color--purple--10": { + "default": { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ece6ff" + }, + "name": "pf-t--color--purple--10", + "attributes": { + "category": "color", + "type": "purple", + "item": "10" + }, + "path": [ + "color", + "purple", + "10" + ] + } + }, + "pf-t--color--purple--20": { + "default": { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + }, + "pf-t--color--purple--30": { + "default": { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + }, + "pf-t--color--purple--40": { + "default": { + "type": "color", + "value": "#876fd4", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#876fd4" + }, + "name": "pf-t--color--purple--40", + "attributes": { + "category": "color", + "type": "purple", + "item": "40" + }, + "path": [ + "color", + "purple", + "40" + ] + } + }, + "pf-t--color--purple--50": { + "default": { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5e40be" + }, + "name": "pf-t--color--purple--50", + "attributes": { + "category": "color", + "type": "purple", + "item": "50" + }, + "path": [ + "color", + "purple", + "50" + ] + } + }, + "pf-t--color--purple--60": { + "default": { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d2785" + }, + "name": "pf-t--color--purple--60", + "attributes": { + "category": "color", + "type": "purple", + "item": "60" + }, + "path": [ + "color", + "purple", + "60" + ] + } + }, + "pf-t--color--purple--70": { + "default": { + "type": "color", + "value": "#21134d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#21134d" + }, + "name": "pf-t--color--purple--70", + "attributes": { + "category": "color", + "type": "purple", + "item": "70" + }, + "path": [ + "color", + "purple", + "70" + ] + } + }, + "pf-t--color--purple--80": { + "default": { + "type": "color", + "value": "#1b0d33", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1b0d33" + }, + "name": "pf-t--color--purple--80", + "attributes": { + "category": "color", + "type": "purple", + "item": "80" + }, + "path": [ + "color", + "purple", + "80" + ] + } + }, + "pf-t--color--red--10": { + "default": { + "type": "color", + "value": "#fce3e3", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fce3e3" + }, + "name": "pf-t--color--red--10", + "attributes": { + "category": "color", + "type": "red", + "item": "10" + }, + "path": [ + "color", + "red", + "10" + ] + } + }, + "pf-t--color--red--20": { + "default": { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + }, + "pf-t--color--red--30": { + "default": { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f9a8a8" + }, + "name": "pf-t--color--red--30", + "attributes": { + "category": "color", + "type": "red", + "item": "30" + }, + "path": [ + "color", + "red", + "30" + ] + } + }, + "pf-t--color--red--40": { + "default": { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f56e6e" + }, + "name": "pf-t--color--red--40", + "attributes": { + "category": "color", + "type": "red", + "item": "40" + }, + "path": [ + "color", + "red", + "40" + ] + } + }, + "pf-t--color--red--50": { + "default": { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ee0000" + }, + "name": "pf-t--color--red--50", + "attributes": { + "category": "color", + "type": "red", + "item": "50" + }, + "path": [ + "color", + "red", + "50" + ] + } + }, + "pf-t--color--red--60": { + "default": { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a60000" + }, + "name": "pf-t--color--red--60", + "attributes": { + "category": "color", + "type": "red", + "item": "60" + }, + "path": [ + "color", + "red", + "60" + ] + } + }, + "pf-t--color--red--70": { + "default": { + "type": "color", + "value": "#5f0000", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5f0000" + }, + "name": "pf-t--color--red--70", + "attributes": { + "category": "color", + "type": "red", + "item": "70" + }, + "path": [ + "color", + "red", + "70" + ] + } + }, + "pf-t--color--red--80": { + "default": { + "type": "color", + "value": "#3f0000", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3f0000" + }, + "name": "pf-t--color--red--80", + "attributes": { + "category": "color", + "type": "red", + "item": "80" + }, + "path": [ + "color", + "red", + "80" + ] + } + }, + "pf-t--color--red--05": { + "default": { + "type": "color", + "value": "#fef0f0", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fef0f0" + }, + "name": "pf-t--color--red--05", + "attributes": { + "category": "color", + "type": "red", + "item": "05" + }, + "path": [ + "color", + "red", + "05" + ] + } + } + }, + "chart": {} +} \ No newline at end of file diff --git a/packages/module/patternfly-docs/content/token-layers-felt-highcontrast-dark.json b/packages/module/patternfly-docs/content/token-layers-felt-highcontrast-dark.json new file mode 100644 index 0000000..a536a23 --- /dev/null +++ b/packages/module/patternfly-docs/content/token-layers-felt-highcontrast-dark.json @@ -0,0 +1,38323 @@ +{ + "semantic": { + "colors": { + "pf-t--global--background--color--primary--default": { + "default": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "#000000", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "{color.black}" + }, + "name": "pf-t--global--background--color--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "primary", + "default" + ], + "references": [ + { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#000000" + }, + "name": "pf-t--color--black", + "attributes": { + "category": "color", + "type": "black" + }, + "path": [ + "color", + "black" + ] + } + ] + } + }, + "pf-t--global--background--color--primary--hover": { + "default": { + "description": "Use as the hover state for primary backgrounds", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for primary backgrounds", + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--primary--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "hover" + }, + "path": [ + "global", + "background", + "color", + "primary", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--primary--clicked": { + "default": { + "description": "Use as the clicked state for primary backgrounds", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for primary backgrounds", + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--primary--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "clicked" + }, + "path": [ + "global", + "background", + "color", + "primary", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--secondary--default": { + "default": { + "description": "Use as the secondary background color for UI content Use as the primary background color for UI content such as cards, page sections, and other content areas. Secondary background color is also used for our UI shell backgrounds (nav, masthead, etc).", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the secondary background color for UI content Use as the primary background color for UI content such as cards, page sections, and other content areas. Secondary background color is also used for our UI shell backgrounds (nav, masthead, etc).", + "type": "color", + "value": "{global.dark.background.color.100}" + }, + "name": "pf-t--global--background--color--secondary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "secondary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "secondary", + "default" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--dark--background--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "background", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--secondary--hover": { + "default": { + "description": "Use as the hover state for secondary backgrounds", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for secondary backgrounds", + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--secondary--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "secondary", + "state": "hover" + }, + "path": [ + "global", + "background", + "color", + "secondary", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--secondary--clicked": { + "default": { + "description": "Use as the clicked state for secondary backgrounds", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for secondary backgrounds", + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--secondary--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "secondary", + "state": "clicked" + }, + "path": [ + "global", + "background", + "color", + "secondary", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--tertiary--default": { + "default": { + "description": "Use as the tertiary background color. This is primarily used for containers that can be placed on secondary backgrounds.", + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the tertiary background color. This is primarily used for containers that can be placed on secondary backgrounds.", + "type": "color", + "value": "{global.dark.background.color.600}" + }, + "name": "pf-t--global--background--color--tertiary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "tertiary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "tertiary", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)" + }, + "name": "pf-t--global--dark--background--color--600", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "600" + }, + "path": [ + "global", + "dark", + "background", + "color", + "600" + ] + } + ] + } + }, + "pf-t--global--background--color--glass--primary--default": { + "default": { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "name": "pf-t--global--background--color--glass--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "glass", + "state": "primary" + }, + "path": [ + "global", + "background", + "color", + "glass", + "primary", + "default" + ], + "references": [ + { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "#000000", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "{color.black}" + }, + "name": "pf-t--global--background--color--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "primary", + "default" + ], + "references": [ + { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#000000" + }, + "name": "pf-t--color--black", + "attributes": { + "category": "color", + "type": "black" + }, + "path": [ + "color", + "black" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--floating--default": { + "default": { + "description": "Use as the background color for components that appear over other content, such as toast alerts, menus, modals, overlay drawers, etc.", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the background color for components that appear over other content, such as toast alerts, menus, modals, overlay drawers, etc.", + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--floating--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "floating", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "floating", + "default" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--floating--hover": { + "default": { + "description": "Use as the hover state for floating backgrounds", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for floating backgrounds", + "type": "color", + "value": "{global.dark.background.color.300}" + }, + "name": "pf-t--global--background--color--floating--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "floating", + "state": "hover" + }, + "path": [ + "global", + "background", + "color", + "floating", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--background--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "background", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--floating--clicked": { + "default": { + "description": "Use as the clicked state for floating backgrounds", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for floating backgrounds", + "type": "color", + "value": "{global.dark.background.color.300}" + }, + "name": "pf-t--global--background--color--floating--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "floating", + "state": "clicked" + }, + "path": [ + "global", + "background", + "color", + "floating", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--background--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "background", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--floating--secondary--default": { + "default": { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.background.color.secondary.default}" + }, + "name": "pf-t--global--background--color--floating--secondary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "floating", + "state": "secondary" + }, + "path": [ + "global", + "background", + "color", + "floating", + "secondary", + "default" + ], + "references": [ + { + "description": "Use as the secondary background color for UI content Use as the primary background color for UI content such as cards, page sections, and other content areas. Secondary background color is also used for our UI shell backgrounds (nav, masthead, etc).", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the secondary background color for UI content Use as the primary background color for UI content such as cards, page sections, and other content areas. Secondary background color is also used for our UI shell backgrounds (nav, masthead, etc).", + "type": "color", + "value": "{global.dark.background.color.100}" + }, + "name": "pf-t--global--background--color--secondary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "secondary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "secondary", + "default" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--dark--background--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "background", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--sticky--default": { + "default": { + "description": "Use as the background color for components that appear over other content, such as toast alerts, menus, modals, overlay drawers, etc.", + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the background color for components that appear over other content, such as toast alerts, menus, modals, overlay drawers, etc.", + "type": "color", + "value": "{global.dark.background.color.200}" + }, + "name": "pf-t--global--background--color--sticky--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "sticky", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "sticky", + "default" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--action--plain--default": { + "default": { + "description": "Use as the default background for actions with transparent backgrounds such as menu items, accordion toggles, buttons, etc.", + "type": "color", + "value": "rgba(0, 0, 0, 0.0000)", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background for actions with transparent backgrounds such as menu items, accordion toggles, buttons, etc.", + "type": "color", + "value": "rgba(0, 0, 0, 0.0000)" + }, + "name": "pf-t--global--background--color--action--plain--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "default" + ] + } + }, + "pf-t--global--background--color--action--plain--hover": { + "default": { + "description": "Use as the hover state for components that use the plain action default background.", + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for components that use the plain action default background.", + "type": "color", + "value": "{global.dark.background.color.600}" + }, + "name": "pf-t--global--background--color--action--plain--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "hover" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)" + }, + "name": "pf-t--global--dark--background--color--600", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "600" + }, + "path": [ + "global", + "dark", + "background", + "color", + "600" + ] + } + ] + } + }, + "pf-t--global--background--color--action--plain--clicked": { + "default": { + "description": "Use as the active/pressed state for components that use the plain action default background.", + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the active/pressed state for components that use the plain action default background.", + "type": "color", + "value": "{global.dark.background.color.600}" + }, + "name": "pf-t--global--background--color--action--plain--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)" + }, + "name": "pf-t--global--dark--background--color--600", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "600" + }, + "path": [ + "global", + "dark", + "background", + "color", + "600" + ] + } + ] + } + }, + "pf-t--global--background--color--action--plain--alt--hover": { + "default": { + "description": "Use as the hover state for components that use the plain action default background but are placed on a secondary background color (like left nav, horizontal nav, etc.)", + "type": "color", + "value": "#000000", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for components that use the plain action default background but are placed on a secondary background color (like left nav, horizontal nav, etc.)", + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "name": "pf-t--global--background--color--action--plain--alt--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "alt", + "hover" + ], + "references": [ + { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "#000000", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "{color.black}" + }, + "name": "pf-t--global--background--color--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "primary", + "default" + ], + "references": [ + { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#000000" + }, + "name": "pf-t--color--black", + "attributes": { + "category": "color", + "type": "black" + }, + "path": [ + "color", + "black" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--action--plain--alt--clicked": { + "default": { + "description": "Use as the active/pressed state for components that use the plain action default background but are placed on a secondary background color (like left nav, horizontal nav, etc.)", + "type": "color", + "value": "#000000", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the active/pressed state for components that use the plain action default background but are placed on a secondary background color (like left nav, horizontal nav, etc.)", + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "name": "pf-t--global--background--color--action--plain--alt--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "background", + "color", + "action", + "plain", + "alt", + "clicked" + ], + "references": [ + { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "#000000", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "{color.black}" + }, + "name": "pf-t--global--background--color--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "primary", + "default" + ], + "references": [ + { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#000000" + }, + "name": "pf-t--color--black", + "attributes": { + "category": "color", + "type": "black" + }, + "path": [ + "color", + "black" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--control--default": { + "default": { + "description": "Use as the default background for control elements like form inputs and menu toggles.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background for control elements like form inputs and menu toggles.", + "type": "color", + "value": "{global.dark.background.color.100}" + }, + "name": "pf-t--global--background--color--control--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "control", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "control", + "default" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--dark--background--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "background", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--control--read-only": { + "default": { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.dark.background.color.100}" + }, + "name": "pf-t--global--background--color--control--read-only", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "control", + "state": "read-only" + }, + "path": [ + "global", + "background", + "color", + "control", + "read-only" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--dark--background--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "background", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--highlight--default": { + "default": { + "description": "Use as the background color for highlighted elements", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the background color for highlighted elements", + "type": "color", + "value": "{global.dark.background.color.highlight.100}" + }, + "name": "pf-t--global--background--color--highlight--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "highlight", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "highlight", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--background--color--highlight--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "highlight" + }, + "path": [ + "global", + "dark", + "background", + "color", + "highlight", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--highlight--clicked": { + "default": { + "description": "Use as the active state for for highlighted elements", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the active state for for highlighted elements", + "type": "color", + "value": "{global.dark.background.color.highlight.200}" + }, + "name": "pf-t--global--background--color--highlight--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "highlight", + "state": "clicked" + }, + "path": [ + "global", + "background", + "color", + "highlight", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--background--color--highlight--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "highlight" + }, + "path": [ + "global", + "dark", + "background", + "color", + "highlight", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--inverse--default": { + "default": { + "description": "Use as the background color components with inversed backgrounds like tooltips.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the background color components with inversed backgrounds like tooltips.", + "type": "color", + "value": "{global.dark.background.color.400}" + }, + "name": "pf-t--global--background--color--inverse--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "inverse", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "inverse", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--background--color--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "400" + }, + "path": [ + "global", + "dark", + "background", + "color", + "400" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--inverse--hover": { + "default": { + "description": "Use as the hover color for interactive components with inversed backgrounds.", + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover color for interactive components with inversed backgrounds.", + "type": "color", + "value": "{global.dark.background.color.450}" + }, + "name": "pf-t--global--background--color--inverse--hover", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "inverse", + "state": "hover" + }, + "path": [ + "global", + "background", + "color", + "inverse", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--dark--background--color--450", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "450" + }, + "path": [ + "global", + "dark", + "background", + "color", + "450" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--inverse--clicked": { + "default": { + "description": "Use as the clicked color for interactive components with inversed backgrounds.", + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked color for interactive components with inversed backgrounds.", + "type": "color", + "value": "{global.dark.background.color.450}" + }, + "name": "pf-t--global--background--color--inverse--clicked", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "inverse", + "state": "clicked" + }, + "path": [ + "global", + "background", + "color", + "inverse", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--dark--background--color--450", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "450" + }, + "path": [ + "global", + "dark", + "background", + "color", + "450" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--disabled--default": { + "default": { + "description": "Use as the background color for disabled components.", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the background color for disabled components.", + "type": "color", + "value": "{global.dark.color.disabled.200}" + }, + "name": "pf-t--global--background--color--disabled--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "disabled", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "disabled", + "default" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--disabled--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--background--color--backdrop--default": { + "default": { + "description": "Use as the background color for the backdrop component that shows beneath a modal/about modal/floating wizard etc.", + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the background color for the backdrop component that shows beneath a modal/about modal/floating wizard etc.", + "type": "color", + "value": "{global.dark.background.color.500}" + }, + "name": "pf-t--global--background--color--backdrop--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "backdrop", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "backdrop", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)" + }, + "name": "pf-t--global--dark--background--color--500", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "500" + }, + "path": [ + "global", + "dark", + "background", + "color", + "500" + ] + } + ] + } + }, + "pf-t--global--background--color--striped--row--default": { + "default": { + "type": "color", + "value": "rgba(21, 21, 21, 0.3000)", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(21, 21, 21, 0.3000)" + }, + "name": "pf-t--global--background--color--striped--row--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "striped", + "state": "row" + }, + "path": [ + "global", + "background", + "color", + "striped", + "row", + "default" + ] + } + }, + "pf-t--global--background--color--loading--skeleton--default": { + "default": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.dark.background.color.700}" + }, + "name": "pf-t--global--background--color--loading--skeleton--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "loading", + "state": "skeleton" + }, + "path": [ + "global", + "background", + "color", + "loading", + "skeleton", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)" + }, + "name": "pf-t--global--dark--background--color--700", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "700" + }, + "path": [ + "global", + "dark", + "background", + "color", + "700" + ] + } + ] + } + }, + "pf-t--global--background--color--loading--skeleton--subtle": { + "default": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.dark.background.color.600}" + }, + "name": "pf-t--global--background--color--loading--skeleton--subtle", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "loading", + "state": "skeleton" + }, + "path": [ + "global", + "background", + "color", + "loading", + "skeleton", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)" + }, + "name": "pf-t--global--dark--background--color--600", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "600" + }, + "path": [ + "global", + "dark", + "background", + "color", + "600" + ] + } + ] + } + }, + "pf-t--global--background--filter--glass--blur--primary": { + "default": { + "type": "number", + "value": "blur(0px)", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "number", + "value": 0 + }, + "name": "pf-t--global--background--filter--glass--blur--primary", + "attributes": { + "category": "global", + "type": "background", + "item": "filter", + "subitem": "glass", + "state": "blur" + }, + "path": [ + "global", + "background", + "filter", + "glass", + "blur", + "primary" + ] + } + }, + "pf-t--global--color--brand--default": { + "default": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.100}" + }, + "name": "pf-t--global--color--brand--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "default" + }, + "path": [ + "global", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--hover": { + "default": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--color--brand--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--clicked": { + "default": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--color--brand--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--subtle--default": { + "default": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.subtle.100}" + }, + "name": "pf-t--global--color--brand--subtle--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "default" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "default" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.70}" + }, + "name": "pf-t--global--dark--color--brand--subtle--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "100" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--subtle--hover": { + "default": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.dark.color.brand.subtle.200}" + }, + "name": "pf-t--global--color--brand--subtle--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "hover" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--dark--color--brand--subtle--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--subtle--clicked": { + "default": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.dark.color.brand.subtle.200}" + }, + "name": "pf-t--global--color--brand--subtle--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "subtle", + "state": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "subtle", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--dark--color--brand--subtle--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--favorite--default": { + "default": { + "description": "Use as the default color for elements that have been favorited", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that have been favorited", + "type": "color", + "value": "{global.dark.color.favorite.100}" + }, + "name": "pf-t--global--color--favorite--default", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "default" + }, + "path": [ + "global", + "color", + "favorite", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--favorite--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--favorite--hover": { + "default": { + "description": "Use as the hover state for elements that have been favorited", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have been favorited", + "type": "color", + "value": "{global.dark.color.favorite.200}" + }, + "name": "pf-t--global--color--favorite--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "favorite", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--favorite--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--favorite--clicked": { + "default": { + "description": "Use as the clicked state for elements that have been favorited", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have been favorited", + "type": "color", + "value": "{global.dark.color.favorite.200}" + }, + "name": "pf-t--global--color--favorite--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "favorite", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--favorite--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--success--default": { + "default": { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--success--hover": { + "default": { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.300}" + }, + "name": "pf-t--global--color--status--success--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--status--success--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "300" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--success--clicked": { + "default": { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.300}" + }, + "name": "pf-t--global--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--status--success--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "300" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--warning--default": { + "default": { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.warning.100}" + }, + "name": "pf-t--global--color--status--warning--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--status--warning--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--warning--hover": { + "default": { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--warning--clicked": { + "default": { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--danger--default": { + "default": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--danger--hover": { + "default": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.250}" + }, + "name": "pf-t--global--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--status--danger--250", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "250" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--danger--clicked": { + "default": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.250}" + }, + "name": "pf-t--global--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--status--danger--250", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "250" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--info--default": { + "default": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.info.100}" + }, + "name": "pf-t--global--color--status--info--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--status--info--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--info--hover": { + "default": { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--info--clicked": { + "default": { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--custom--default": { + "default": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--custom--hover": { + "default": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.300}" + }, + "name": "pf-t--global--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--status--custom--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--custom--clicked": { + "default": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.300}" + }, + "name": "pf-t--global--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--status--custom--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--default": { + "default": { + "description": "Use as the default color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.color.brand.default}" + }, + "name": "pf-t--global--color--status--unread--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "unread", + "default" + ], + "references": [ + { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.100}" + }, + "name": "pf-t--global--color--brand--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "default" + }, + "path": [ + "global", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--hover": { + "default": { + "description": "Use as the hover state color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.color.brand.hover}" + }, + "name": "pf-t--global--color--status--unread--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "unread", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--color--brand--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--clicked": { + "default": { + "description": "Use as the clicked state color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.color.brand.clicked}" + }, + "name": "pf-t--global--color--status--unread--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "unread", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--color--brand--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--attention--default": { + "default": { + "description": "Use as the default color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.color.status.danger.default}" + }, + "name": "pf-t--global--color--status--unread--attention--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "attention" + }, + "path": [ + "global", + "color", + "status", + "unread", + "attention", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--attention--clicked": { + "default": { + "description": "Use as the hover state color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.color.status.danger.clicked}" + }, + "name": "pf-t--global--color--status--unread--attention--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "attention" + }, + "path": [ + "global", + "color", + "status", + "unread", + "attention", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.250}" + }, + "name": "pf-t--global--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--status--danger--250", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "250" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--unread--attention--hover": { + "default": { + "description": "Use as the clicked state color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.color.status.danger.hover}" + }, + "name": "pf-t--global--color--status--unread--attention--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "unread", + "state": "attention" + }, + "path": [ + "global", + "color", + "status", + "unread", + "attention", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.250}" + }, + "name": "pf-t--global--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--status--danger--250", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "250" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--read--on-secondary": { + "default": { + "description": "Use as the default color for elements that convey a read status and are placed on a secondary background", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that convey a read status and are placed on a secondary background", + "type": "color", + "value": "{global.background.color.control.default}" + }, + "name": "pf-t--global--color--status--read--on-secondary", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "read", + "state": "on-secondary" + }, + "path": [ + "global", + "color", + "status", + "read", + "on-secondary" + ], + "references": [ + { + "description": "Use as the default background for control elements like form inputs and menu toggles.", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background for control elements like form inputs and menu toggles.", + "type": "color", + "value": "{global.dark.background.color.100}" + }, + "name": "pf-t--global--background--color--control--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "control", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "control", + "default" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--dark--background--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "background", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--status--read--on-primary": { + "default": { + "description": "Use as the default color for elements that convey a read status and are placed on a primary background", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that convey a read status and are placed on a primary background", + "type": "color", + "value": "{global.background.color.secondary.default}" + }, + "name": "pf-t--global--color--status--read--on-primary", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "read", + "state": "on-primary" + }, + "path": [ + "global", + "color", + "status", + "read", + "on-primary" + ], + "references": [ + { + "description": "Use as the secondary background color for UI content Use as the primary background color for UI content such as cards, page sections, and other content areas. Secondary background color is also used for our UI shell backgrounds (nav, masthead, etc).", + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the secondary background color for UI content Use as the primary background color for UI content such as cards, page sections, and other content areas. Secondary background color is also used for our UI shell backgrounds (nav, masthead, etc).", + "type": "color", + "value": "{global.dark.background.color.100}" + }, + "name": "pf-t--global--background--color--secondary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "secondary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "secondary", + "default" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--dark--background--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "background", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--red--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.red.100}" + }, + "name": "pf-t--global--color--nonstatus--red--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f9a8a8" + }, + "name": "pf-t--color--red--30", + "attributes": { + "category": "color", + "type": "red", + "item": "30" + }, + "path": [ + "color", + "red", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--red--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status red background color.", + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status red background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.red.200}" + }, + "name": "pf-t--global--color--nonstatus--red--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--red--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status red background color.", + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status red background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.red.200}" + }, + "name": "pf-t--global--color--nonstatus--red--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orange--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.orange.100}" + }, + "name": "pf-t--global--color--nonstatus--orange--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orange--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status orange background color.", + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status orange background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.orange.200}" + }, + "name": "pf-t--global--color--nonstatus--orange--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orange--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status orange background color.", + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status orange background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.orange.200}" + }, + "name": "pf-t--global--color--nonstatus--orange--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orangered--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange-red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange-red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.orangered.100}" + }, + "name": "pf-t--global--color--nonstatus--orangered--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orangered--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status orange-red background color.", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status orange-red background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.orangered.200}" + }, + "name": "pf-t--global--color--nonstatus--orangered--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orangered--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status orange-red background color.", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status orange-red background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.orangered.200}" + }, + "name": "pf-t--global--color--nonstatus--orangered--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--yellow--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.yellow.100}" + }, + "name": "pf-t--global--color--nonstatus--yellow--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--yellow--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status yellow background color.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status yellow background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.yellow.200}" + }, + "name": "pf-t--global--color--nonstatus--yellow--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--yellow--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status yellow background color.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status yellow background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.yellow.200}" + }, + "name": "pf-t--global--color--nonstatus--yellow--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--green--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.green.100}" + }, + "name": "pf-t--global--color--nonstatus--green--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "default" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "100" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--green--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status green background color.", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status green background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.green.200}" + }, + "name": "pf-t--global--color--nonstatus--green--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--green--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status green background color.", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status green background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.green.200}" + }, + "name": "pf-t--global--color--nonstatus--green--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "green", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "green", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--teal--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.teal.100}" + }, + "name": "pf-t--global--color--nonstatus--teal--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "default" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "100" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--teal--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status teal background color.", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status teal background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.teal.200}" + }, + "name": "pf-t--global--color--nonstatus--teal--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--teal--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status teal background color.", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status teal background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.teal.200}" + }, + "name": "pf-t--global--color--nonstatus--teal--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "teal", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "teal", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--blue--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.blue.100}" + }, + "name": "pf-t--global--color--nonstatus--blue--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--blue--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status blue background color.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status blue background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.blue.200}" + }, + "name": "pf-t--global--color--nonstatus--blue--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--blue--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status blue background color.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status blue background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.blue.200}" + }, + "name": "pf-t--global--color--nonstatus--blue--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "blue", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "blue", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--purple--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.purple.100}" + }, + "name": "pf-t--global--color--nonstatus--purple--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--purple--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status purple background color.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status purple background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.purple.200}" + }, + "name": "pf-t--global--color--nonstatus--purple--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--purple--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status purple background color.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status purple background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.purple.200}" + }, + "name": "pf-t--global--color--nonstatus--purple--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "purple", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "purple", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--gray--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.gray.50}" + }, + "name": "pf-t--global--color--nonstatus--gray--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "default" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--50", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "50" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--gray--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status gray background color.", + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status gray background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.gray.100}" + }, + "name": "pf-t--global--color--nonstatus--gray--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--gray--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status gray background color.", + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status gray background color.", + "type": "color", + "value": "{global.dark.color.nonstatus.gray.100}" + }, + "name": "pf-t--global--color--nonstatus--gray--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "gray", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "gray", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--regular": { + "default": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--subtle": { + "default": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "{global.dark.icon.color.200}" + }, + "name": "pf-t--global--icon--color--subtle", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "icon", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--icon--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--inverse": { + "default": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--disabled": { + "default": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "{global.dark.color.disabled.200}" + }, + "name": "pf-t--global--icon--color--disabled", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "disabled" + }, + "path": [ + "global", + "icon", + "color", + "disabled" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--disabled--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-disabled": { + "default": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "{global.dark.color.disabled.300}" + }, + "name": "pf-t--global--icon--color--on-disabled", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-disabled" + }, + "path": [ + "global", + "icon", + "color", + "on-disabled" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--color--disabled--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "300" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--default": { + "default": { + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--icon--color--brand--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "default" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--hover": { + "default": { + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.dark.color.brand.300}" + }, + "name": "pf-t--global--icon--color--brand--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "hover" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--color--brand--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--clicked": { + "default": { + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.dark.color.brand.300}" + }, + "name": "pf-t--global--icon--color--brand--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "clicked" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--color--brand--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--accent--default": { + "default": { + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.color.brand.accent.default}" + }, + "name": "pf-t--global--icon--color--brand--accent--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "accent", + "default" + ], + "references": [ + { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/felt/highcontrast-dark/felt.color.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.accent.400}" + }, + "name": "pf-t--global--color--brand--accent--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "default" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--color--brand--accent--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "400" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--accent--hover": { + "default": { + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.color.brand.accent.hover}" + }, + "name": "pf-t--global--icon--color--brand--accent--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "accent", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/felt/highcontrast-dark/felt.color.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.dark.color.brand.accent.350}" + }, + "name": "pf-t--global--color--brand--accent--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "hover" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--dark--color--brand--accent--350", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "350" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--brand--accent--clicked": { + "default": { + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "type": "color", + "value": "{global.color.brand.accent.clicked}" + }, + "name": "pf-t--global--icon--color--brand--accent--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "brand", + "accent", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/felt/highcontrast-dark/felt.color.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.dark.color.brand.accent.350}" + }, + "name": "pf-t--global--color--brand--accent--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--dark--color--brand--accent--350", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "350" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--default": { + "default": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--on-brand--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "default" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--on-brand--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "hover" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--on-brand--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "clicked" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--accent--default": { + "default": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--on-brand--accent--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "accent", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--accent--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--on-brand--accent--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "accent", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--accent--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--on-brand--accent--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "accent", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--subtle--default": { + "default": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--on-brand--subtle--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "subtle", + "default" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--subtle--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--on-brand--subtle--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "subtle", + "hover" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-brand--subtle--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--on-brand--subtle--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "icon", + "color", + "on-brand", + "subtle", + "clicked" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--favorite--default": { + "default": { + "description": "Use as the icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "{global.color.favorite.default}" + }, + "name": "pf-t--global--icon--color--favorite--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "favorite", + "state": "default" + }, + "path": [ + "global", + "icon", + "color", + "favorite", + "default" + ], + "references": [ + { + "description": "Use as the default color for elements that have been favorited", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for elements that have been favorited", + "type": "color", + "value": "{global.dark.color.favorite.100}" + }, + "name": "pf-t--global--color--favorite--default", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "default" + }, + "path": [ + "global", + "color", + "favorite", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--favorite--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--favorite--hover": { + "default": { + "description": "Use as the hover state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "{global.color.favorite.hover}" + }, + "name": "pf-t--global--icon--color--favorite--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "favorite", + "state": "hover" + }, + "path": [ + "global", + "icon", + "color", + "favorite", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have been favorited", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have been favorited", + "type": "color", + "value": "{global.dark.color.favorite.200}" + }, + "name": "pf-t--global--color--favorite--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "favorite", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--favorite--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--favorite--clicked": { + "default": { + "description": "Use as the clicked state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "type": "color", + "value": "{global.color.favorite.clicked}" + }, + "name": "pf-t--global--icon--color--favorite--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "favorite", + "state": "clicked" + }, + "path": [ + "global", + "icon", + "color", + "favorite", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for elements that have been favorited", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have been favorited", + "type": "color", + "value": "{global.dark.color.favorite.200}" + }, + "name": "pf-t--global--color--favorite--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "favorite", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "favorite", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--favorite--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--success--default": { + "default": { + "description": "Use as the default color for text that communicates a success status.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that communicates a success status.", + "type": "color", + "value": "{global.color.status.success.default}" + }, + "name": "pf-t--global--icon--color--status--success--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--success--hover": { + "default": { + "description": "Use as the hover state color for text that communicates a success status.", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that communicates a success status.", + "type": "color", + "value": "{global.color.status.success.hover}" + }, + "name": "pf-t--global--icon--color--status--success--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.300}" + }, + "name": "pf-t--global--color--status--success--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--status--success--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "300" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--success--clicked": { + "default": { + "description": "Use as the clicked state color for text that communicates a success status.", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that communicates a success status.", + "type": "color", + "value": "{global.color.status.success.clicked}" + }, + "name": "pf-t--global--icon--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.300}" + }, + "name": "pf-t--global--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--status--success--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "300" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-success--default": { + "default": { + "description": "Use as the default color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-success--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-success", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-success--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-success--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-success", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-success--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-success--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-success", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--warning--default": { + "default": { + "description": "Use as the default color for text that communicates a warning status.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that communicates a warning status.", + "type": "color", + "value": "{global.color.status.warning.default}" + }, + "name": "pf-t--global--icon--color--status--warning--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.warning.100}" + }, + "name": "pf-t--global--color--status--warning--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--status--warning--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--warning--hover": { + "default": { + "description": "Use as the hover state color for text that communicates a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that communicates a warning status.", + "type": "color", + "value": "{global.color.status.warning.hover}" + }, + "name": "pf-t--global--icon--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--warning--clicked": { + "default": { + "description": "Use as the clicked state color for text that communicates a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that communicates a warning status.", + "type": "color", + "value": "{global.color.status.warning.clicked}" + }, + "name": "pf-t--global--icon--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-warning--default": { + "default": { + "description": "Use as the default color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-warning--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-warning", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-warning--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-warning--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-warning", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-warning--clicked": { + "default": { + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-warning--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-warning", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--danger--default": { + "default": { + "description": "Use as the default color for icons that convey danger, like in alerts or banners.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that convey danger, like in alerts or banners.", + "type": "color", + "value": "{global.color.status.danger.default}" + }, + "name": "pf-t--global--icon--color--status--danger--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--danger--hover": { + "default": { + "description": "Use as the hover state for icons that indicate danger.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for icons that indicate danger.", + "type": "color", + "value": "{global.color.status.danger.hover}" + }, + "name": "pf-t--global--icon--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.250}" + }, + "name": "pf-t--global--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--status--danger--250", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "250" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--danger--clicked": { + "default": { + "description": "Use as the clicked state for icons that indicate danger.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for icons that indicate danger.", + "type": "color", + "value": "{global.color.status.danger.clicked}" + }, + "name": "pf-t--global--icon--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.250}" + }, + "name": "pf-t--global--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--status--danger--250", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "250" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-danger--default": { + "default": { + "description": "Use as the default color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-danger--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-danger", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-danger--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-danger--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-danger", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-danger--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-danger--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-danger", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--info--default": { + "default": { + "description": "Use as the default color for icons that identify informational messages, like in alerts or banners.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that identify informational messages, like in alerts or banners.", + "type": "color", + "value": "{global.color.status.info.default}" + }, + "name": "pf-t--global--icon--color--status--info--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.info.100}" + }, + "name": "pf-t--global--color--status--info--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--status--info--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--info--hover": { + "default": { + "description": "Use as the hover state for icons that identify informational messages.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for icons that identify informational messages.", + "type": "color", + "value": "{global.color.status.info.hover}" + }, + "name": "pf-t--global--icon--color--status--info--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--info--clicked": { + "default": { + "description": "Use as the clicked state for icons that identify informational messages.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for icons that identify informational messages.", + "type": "color", + "value": "{global.color.status.info.clicked}" + }, + "name": "pf-t--global--icon--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-info--default": { + "default": { + "description": "Use as the default color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-info--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-info", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-info--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-info--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-info", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-info--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-info--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-info", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--custom--default": { + "default": { + "description": "Use as the default color for icons that convey generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that convey generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.color.status.custom.default}" + }, + "name": "pf-t--global--icon--color--status--custom--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--custom--hover": { + "default": { + "description": "Use as the hover state for icons that convey generic status with no associated severity.", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for icons that convey generic status with no associated severity.", + "type": "color", + "value": "{global.color.status.custom.hover}" + }, + "name": "pf-t--global--icon--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.300}" + }, + "name": "pf-t--global--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--status--custom--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--custom--clicked": { + "default": { + "description": "Use as the clicked state for icons that convey generic status with no associated severity.", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for icons that convey generic status with no associated severity.", + "type": "color", + "value": "{global.color.status.custom.clicked}" + }, + "name": "pf-t--global--icon--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.300}" + }, + "name": "pf-t--global--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--status--custom--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-custom--default": { + "default": { + "description": "Use as the default color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status color, make sure that this token meets contrast requirements with your new custom status color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status color, make sure that this token meets contrast requirements with your new custom status color.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-custom--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-custom", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-custom--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status hover color, make sure that this token meets contrast requirements with your new custom status hover color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status hover color, make sure that this token meets contrast requirements with your new custom status hover color.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-custom--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-custom", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--on-custom--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status clicked color, make sure that this token meets contrast requirements with your new custom status clicked color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status clicked color, make sure that this token meets contrast requirements with your new custom status clicked color.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--on-custom--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "icon", + "color", + "status", + "on-custom", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-default--default": { + "default": { + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-default--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-default", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-default--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-default--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-default", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-default--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-default--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-default", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-attention--default": { + "default": { + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-attention--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-attention", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-attention--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-attention--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-attention", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--status--unread--on-attention--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--status--unread--on-attention--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "icon", + "color", + "status", + "unread", + "on-attention", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--undefined--default": { + "default": { + "description": "Use as the default color for severity icons that don’t communicate a specific severity level for issues.", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that don’t communicate a specific severity level for issues.", + "type": "color", + "value": "{global.dark.color.severity.undefined.100}" + }, + "name": "pf-t--global--icon--color--severity--undefined--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "undefined" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "undefined", + "default" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--severity--undefined--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "undefined" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "undefined", + "100" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--none--default": { + "default": { + "description": "Use as the default color for severity icons that identify no issues.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that identify no issues.", + "type": "color", + "value": "{global.dark.color.severity.none.100}" + }, + "name": "pf-t--global--icon--color--severity--none--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "none" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "none", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--severity--none--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "none" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "none", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--minor--default": { + "default": { + "description": "Use as the default color for severity icons that identify issues of minor severity.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that identify issues of minor severity.", + "type": "color", + "value": "{global.dark.color.severity.minor.100}" + }, + "name": "pf-t--global--icon--color--severity--minor--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "minor" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "minor", + "default" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--color--severity--minor--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "minor" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "minor", + "100" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--moderate--default": { + "default": { + "description": "Use as the default color for severity icons that identify issues of moderate severity.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that identify issues of moderate severity.", + "type": "color", + "value": "{global.dark.color.severity.moderate.100}" + }, + "name": "pf-t--global--icon--color--severity--moderate--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "moderate" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "moderate", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--severity--moderate--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "moderate" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "moderate", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--important--default": { + "default": { + "description": "Use as the default color for severity icons that identify issues of important severity.", + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that identify issues of important severity.", + "type": "color", + "value": "{global.dark.color.severity.important.100}" + }, + "name": "pf-t--global--icon--color--severity--important--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "important" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "important", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.40}" + }, + "name": "pf-t--global--dark--color--severity--important--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "important" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "important", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f5921b" + }, + "name": "pf-t--color--orange--40", + "attributes": { + "category": "color", + "type": "orange", + "item": "40" + }, + "path": [ + "color", + "orange", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--critical--default": { + "default": { + "description": "Use as the default color for severity icons that identify issues of critical severity.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that identify issues of critical severity.", + "type": "color", + "value": "{global.dark.color.severity.critical.200}" + }, + "name": "pf-t--global--icon--color--severity--critical--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "critical" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "critical", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--severity--critical--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "critical" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "critical", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-red--default": { + "default": { + "description": "Use as the default color for icons that are placed on a non status red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a non status red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-red--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-red", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-red--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a non status red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a non status red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-red--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-red", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-red--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus red background color and/or are paired with on-red colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-red--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-red", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orangered--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orangered--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orangered", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orangered--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orangered--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orangered", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orangered--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus orangered background color and/or are paired with on-orangered colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orangered--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orangered", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orange--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orange--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orange", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orange--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orange--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orange", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-orange--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus orange background color and/or are paired with on-orange colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-orange--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-orange", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-yellow--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-yellow--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-yellow", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-yellow--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-yellow--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-yellow", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-yellow--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus yellow background color and/or are paired with on-yellow colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-yellow--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-yellow", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-green--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-green--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-green", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-green--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-green--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-green", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-green--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus green background color and/or are paired with on-green colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-green--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-green", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-teal--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-teal--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-teal", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-teal--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-teal--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-teal", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-teal--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus teal background color and/or are paired with on-teal colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-teal--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-teal", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-blue--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-blue--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-blue", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-blue--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-blue--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-blue", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-blue--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus blue background color and/or are paired with on-blue colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-blue--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-blue", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-purple--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-purple--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-purple", + "default" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-purple--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-purple--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-purple", + "hover" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-purple--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus purple background color and/or are paired with on-purple colored text.", + "type": "color", + "value": "{global.icon.color.inverse}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-purple--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-purple", + "clicked" + ], + "references": [ + { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-gray--default": { + "default": { + "description": "Use as the default color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-gray--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-gray", + "default" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-gray--hover": { + "default": { + "description": "Use as the hover state color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-gray--hover", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-gray", + "hover" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--nonstatus--on-gray--clicked": { + "default": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for icons that are placed on a nonstatus gray background color and/or are paired with on-gray colored text.", + "type": "color", + "value": "{global.icon.color.regular}" + }, + "name": "pf-t--global--icon--color--nonstatus--on-gray--clicked", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "icon", + "color", + "nonstatus", + "on-gray", + "clicked" + ], + "references": [ + { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--high-contrast": { + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.border.color.default}" + }, + "name": "pf-t--global--border--color--high-contrast", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "high-contrast" + }, + "path": [ + "global", + "border", + "color", + "high-contrast" + ], + "references": [ + { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.border.color.300}" + }, + "name": "pf-t--global--border--color--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "default" + }, + "path": [ + "global", + "border", + "color", + "default" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--border--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "border", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--default": { + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.border.color.300}" + }, + "name": "pf-t--global--border--color--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "default" + }, + "path": [ + "global", + "border", + "color", + "default" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--border--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "border", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--hover": { + "default": { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.brand.100}" + }, + "name": "pf-t--global--border--color--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "hover" + }, + "path": [ + "global", + "border", + "color", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--clicked": { + "default": { + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--border--color--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "clicked" + }, + "path": [ + "global", + "border", + "color", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--subtle": { + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.border.color.300}" + }, + "name": "pf-t--global--border--color--subtle", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "border", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--border--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "border", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--disabled": { + "default": { + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.disabled.100}" + }, + "name": "pf-t--global--border--color--disabled", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "disabled" + }, + "path": [ + "global", + "border", + "color", + "disabled" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--disabled--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "100" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--alt": { + "default": { + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "type": "color", + "value": "#000000", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "name": "pf-t--global--border--color--alt", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "alt" + }, + "path": [ + "global", + "border", + "color", + "alt" + ], + "references": [ + { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "#000000", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "type": "color", + "value": "{color.black}" + }, + "name": "pf-t--global--background--color--primary--default", + "attributes": { + "category": "global", + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" + }, + "path": [ + "global", + "background", + "color", + "primary", + "default" + ], + "references": [ + { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#000000" + }, + "name": "pf-t--color--black", + "attributes": { + "category": "color", + "type": "black" + }, + "path": [ + "color", + "black" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--on-secondary": { + "default": { + "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "type": "color", + "value": "{global.dark.border.color.300}" + }, + "name": "pf-t--global--border--color--on-secondary", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "on-secondary" + }, + "path": [ + "global", + "border", + "color", + "on-secondary" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--border--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "border", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--control--default": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.dark.border.color.300}" + }, + "name": "pf-t--global--border--color--control--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "control", + "state": "default" + }, + "path": [ + "global", + "border", + "color", + "control", + "default" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--border--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "border", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--control--read-only": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.dark.border.color.50}" + }, + "name": "pf-t--global--border--color--control--read-only", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "control", + "state": "read-only" + }, + "path": [ + "global", + "border", + "color", + "control", + "read-only" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--border--color--50", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "50" + }, + "path": [ + "global", + "dark", + "border", + "color", + "50" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--default": { + "default": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.color.brand.default}" + }, + "name": "pf-t--global--border--color--brand--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "default" + }, + "path": [ + "global", + "border", + "color", + "brand", + "default" + ], + "references": [ + { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.100}" + }, + "name": "pf-t--global--color--brand--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "default" + }, + "path": [ + "global", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--hover": { + "default": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.color.brand.hover}" + }, + "name": "pf-t--global--border--color--brand--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "hover" + }, + "path": [ + "global", + "border", + "color", + "brand", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--color--brand--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--clicked": { + "default": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.color.brand.clicked}" + }, + "name": "pf-t--global--border--color--brand--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "clicked" + }, + "path": [ + "global", + "border", + "color", + "brand", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--color--brand--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--subtle--default": { + "default": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.dark.color.brand.subtle.200}" + }, + "name": "pf-t--global--border--color--brand--subtle--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "border", + "color", + "brand", + "subtle", + "default" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--dark--color--brand--subtle--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--subtle--hover": { + "default": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.dark.color.brand.subtle.300}" + }, + "name": "pf-t--global--border--color--brand--subtle--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "border", + "color", + "brand", + "subtle", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--subtle--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "300" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--subtle--clicked": { + "default": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.dark.color.brand.subtle.300}" + }, + "name": "pf-t--global--border--color--brand--subtle--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "border", + "color", + "brand", + "subtle", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--subtle--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "300" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--success--default": { + "default": { + "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.success.default}" + }, + "name": "pf-t--global--border--color--status--success--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "border", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--success--hover": { + "default": { + "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "type": "color", + "value": "{global.color.status.success.hover}" + }, + "name": "pf-t--global--border--color--status--success--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "border", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.300}" + }, + "name": "pf-t--global--color--status--success--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--status--success--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "300" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--success--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "type": "color", + "value": "{global.color.status.success.clicked}" + }, + "name": "pf-t--global--border--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "border", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.300}" + }, + "name": "pf-t--global--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--status--success--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "300" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--warning--default": { + "default": { + "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.warning.default}" + }, + "name": "pf-t--global--border--color--status--warning--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "border", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.warning.100}" + }, + "name": "pf-t--global--color--status--warning--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--status--warning--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--warning--hover": { + "default": { + "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.warning.hover}" + }, + "name": "pf-t--global--border--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "border", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--warning--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.warning.clicked}" + }, + "name": "pf-t--global--border--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "border", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--danger--default": { + "default": { + "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.danger.default}" + }, + "name": "pf-t--global--border--color--status--danger--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "border", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.danger.200}" + }, + "name": "pf-t--global--color--status--danger--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--danger--hover": { + "default": { + "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.danger.hover}" + }, + "name": "pf-t--global--border--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "border", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.250}" + }, + "name": "pf-t--global--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--status--danger--250", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "250" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--danger--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.danger.clicked}" + }, + "name": "pf-t--global--border--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "border", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.250}" + }, + "name": "pf-t--global--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--status--danger--250", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "250" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--info--default": { + "default": { + "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.info.default}" + }, + "name": "pf-t--global--border--color--status--info--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "border", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.info.100}" + }, + "name": "pf-t--global--color--status--info--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--status--info--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--info--hover": { + "default": { + "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.info.hover}" + }, + "name": "pf-t--global--border--color--status--info--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "border", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--info--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.info.clicked}" + }, + "name": "pf-t--global--border--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "border", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--custom--default": { + "default": { + "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.custom.default}" + }, + "name": "pf-t--global--border--color--status--custom--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "border", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--custom--hover": { + "default": { + "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.custom.hover}" + }, + "name": "pf-t--global--border--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "border", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.300}" + }, + "name": "pf-t--global--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--status--custom--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--custom--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.custom.clicked}" + }, + "name": "pf-t--global--border--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "border", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.300}" + }, + "name": "pf-t--global--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--status--custom--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--glass--default": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.border.color.subtle}" + }, + "name": "pf-t--global--border--color--glass--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "glass", + "state": "default" + }, + "path": [ + "global", + "border", + "color", + "glass", + "default" + ], + "references": [ + { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.border.color.300}" + }, + "name": "pf-t--global--border--color--subtle", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "border", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--border--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "border", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--red--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.dark.color.nonstatus.red.100}" + }, + "name": "pf-t--global--border--color--nonstatus--red--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "red", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f9a8a8" + }, + "name": "pf-t--color--red--30", + "attributes": { + "category": "color", + "type": "red", + "item": "30" + }, + "path": [ + "color", + "red", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--red--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.red.200}" + }, + "name": "pf-t--global--border--color--nonstatus--red--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "red", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--red--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.red.200}" + }, + "name": "pf-t--global--border--color--nonstatus--red--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "red", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orangered--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.orangered.100}" + }, + "name": "pf-t--global--border--color--nonstatus--orangered--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orangered", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orangered--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.orangered.200}" + }, + "name": "pf-t--global--border--color--nonstatus--orangered--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orangered", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orangered--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.orangered.200}" + }, + "name": "pf-t--global--border--color--nonstatus--orangered--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orangered", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orange--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.orange.100}" + }, + "name": "pf-t--global--border--color--nonstatus--orange--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orange", + "default" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orange--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.orange.200}" + }, + "name": "pf-t--global--border--color--nonstatus--orange--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orange", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orange--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.orange.200}" + }, + "name": "pf-t--global--border--color--nonstatus--orange--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "orange", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--yellow--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.yellow.100}" + }, + "name": "pf-t--global--border--color--nonstatus--yellow--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "yellow", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--yellow--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.yellow.200}" + }, + "name": "pf-t--global--border--color--nonstatus--yellow--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "yellow", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--yellow--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.yellow.200}" + }, + "name": "pf-t--global--border--color--nonstatus--yellow--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "yellow", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--green--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.green.100}" + }, + "name": "pf-t--global--border--color--nonstatus--green--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "green", + "default" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "100" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--green--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.green.200}" + }, + "name": "pf-t--global--border--color--nonstatus--green--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "green", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--green--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.green.200}" + }, + "name": "pf-t--global--border--color--nonstatus--green--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "green", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--teal--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.teal.100}" + }, + "name": "pf-t--global--border--color--nonstatus--teal--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "teal", + "default" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "100" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--teal--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.teal.200}" + }, + "name": "pf-t--global--border--color--nonstatus--teal--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "teal", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--teal--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.teal.200}" + }, + "name": "pf-t--global--border--color--nonstatus--teal--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "teal", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--blue--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.blue.100}" + }, + "name": "pf-t--global--border--color--nonstatus--blue--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "blue", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--blue--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.blue.200}" + }, + "name": "pf-t--global--border--color--nonstatus--blue--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "blue", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--blue--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.blue.200}" + }, + "name": "pf-t--global--border--color--nonstatus--blue--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "blue", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--purple--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.purple.100}" + }, + "name": "pf-t--global--border--color--nonstatus--purple--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "purple", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--purple--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.purple.200}" + }, + "name": "pf-t--global--border--color--nonstatus--purple--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "purple", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--purple--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.purple.200}" + }, + "name": "pf-t--global--border--color--nonstatus--purple--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "purple", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--gray--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.gray.200}" + }, + "name": "pf-t--global--border--color--nonstatus--gray--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "gray", + "default" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--gray--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.gray.300}" + }, + "name": "pf-t--global--border--color--nonstatus--gray--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "gray", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "300" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--gray--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels)", + "type": "color", + "value": "{global.dark.color.nonstatus.gray.300}" + }, + "name": "pf-t--global--border--color--nonstatus--gray--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "gray", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "300" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--main--default": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.border.color.default}" + }, + "name": "pf-t--global--border--color--main--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "main", + "state": "default" + }, + "path": [ + "global", + "border", + "color", + "main", + "default" + ], + "references": [ + { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.border.color.300}" + }, + "name": "pf-t--global--border--color--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "default" + }, + "path": [ + "global", + "border", + "color", + "default" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--border--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "border", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--regular": { + "default": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--subtle": { + "default": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "{global.dark.text.color.200}" + }, + "name": "pf-t--global--text--color--subtle", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "text", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--text--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "text", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--inverse": { + "default": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--placeholder": { + "default": { + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "type": "color", + "value": "{global.text.color.subtle}" + }, + "name": "pf-t--global--text--color--placeholder", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "placeholder" + }, + "path": [ + "global", + "text", + "color", + "placeholder" + ], + "references": [ + { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "{global.dark.text.color.200}" + }, + "name": "pf-t--global--text--color--subtle", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "text", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--text--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "text", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--disabled": { + "default": { + "description": "Use as the color of text on disabled elements, like disabled menu items.", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text on disabled elements, like disabled menu items.", + "type": "color", + "value": "{global.dark.color.disabled.200}" + }, + "name": "pf-t--global--text--color--disabled", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "disabled" + }, + "path": [ + "global", + "text", + "color", + "disabled" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--disabled--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-disabled": { + "default": { + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", + "type": "color", + "value": "{global.dark.color.disabled.400}" + }, + "name": "pf-t--global--text--color--on-disabled", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-disabled" + }, + "path": [ + "global", + "text", + "color", + "on-disabled" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--color--disabled--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "400" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "400" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--required": { + "default": { + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", + "type": "color", + "value": "{global.dark.text.color.400}" + }, + "name": "pf-t--global--text--color--required", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "required" + }, + "path": [ + "global", + "text", + "color", + "required" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--text--color--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "400" + }, + "path": [ + "global", + "dark", + "text", + "color", + "400" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-highlight": { + "default": { + "description": "Use as the color of text that is highlighted.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is highlighted.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--on-highlight", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-highlight" + }, + "path": [ + "global", + "text", + "color", + "on-highlight" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--link--default": { + "default": { + "description": "Use as the default text color for links.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default text color for links.", + "type": "color", + "value": "{global.dark.text.color.link.100}" + }, + "name": "pf-t--global--text--color--link--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "link", + "state": "default" + }, + "path": [ + "global", + "text", + "color", + "link", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--text--color--link--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--link--hover": { + "default": { + "description": "Use as the hover state text color for links.", + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state text color for links.", + "type": "color", + "value": "{global.dark.text.color.link.200}" + }, + "name": "pf-t--global--text--color--link--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "link", + "state": "hover" + }, + "path": [ + "global", + "text", + "color", + "link", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--text--color--link--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "200" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--link--visited": { + "default": { + "description": "Use as the color to indicate that a link has been visited.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color to indicate that a link has been visited.", + "type": "color", + "value": "{global.dark.text.color.link.400}" + }, + "name": "pf-t--global--text--color--link--visited", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "link", + "state": "visited" + }, + "path": [ + "global", + "text", + "color", + "link", + "visited" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--text--color--link--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "400" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--brand--default": { + "default": { + "description": "Use as the default color for branded text.", + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for branded text.", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "name": "pf-t--global--text--color--brand--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "brand", + "state": "default" + }, + "path": [ + "global", + "text", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--brand--hover": { + "default": { + "description": "Use as the hover state color for branded text.", + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for branded text.", + "type": "color", + "value": "{global.dark.color.brand.300}" + }, + "name": "pf-t--global--text--color--brand--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "brand", + "state": "hover" + }, + "path": [ + "global", + "text", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--color--brand--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--brand--clicked": { + "default": { + "description": "Use as the clicked state color for branded text.", + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for branded text.", + "type": "color", + "value": "{global.dark.color.brand.300}" + }, + "name": "pf-t--global--text--color--brand--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "brand", + "state": "clicked" + }, + "path": [ + "global", + "text", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--color--brand--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--default": { + "default": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--on-brand--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "default" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--hover": { + "default": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--on-brand--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "hover" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--clicked": { + "default": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--on-brand--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "clicked" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--accent--default": { + "default": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--on-brand--accent--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "accent", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--accent--hover": { + "default": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--on-brand--accent--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "accent", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--accent--clicked": { + "default": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--on-brand--accent--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "accent" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "accent", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--subtle--default": { + "default": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--on-brand--subtle--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "subtle", + "default" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--subtle--hover": { + "default": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--on-brand--subtle--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "subtle", + "hover" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--subtle--clicked": { + "default": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--on-brand--subtle--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "subtle" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "subtle", + "clicked" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--success--default": { + "default": { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.success.default}" + }, + "name": "pf-t--global--text--color--status--success--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "text", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.success.200}" + }, + "name": "pf-t--global--color--status--success--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "success", + "default" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--success--hover": { + "default": { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.success.hover}" + }, + "name": "pf-t--global--text--color--status--success--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "text", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.300}" + }, + "name": "pf-t--global--color--status--success--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "success", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--status--success--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "300" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--success--clicked": { + "default": { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.success.clicked}" + }, + "name": "pf-t--global--text--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "text", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a success status.", + "type": "color", + "value": "{global.dark.color.status.success.300}" + }, + "name": "pf-t--global--color--status--success--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "success", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "success", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--status--success--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "300" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-success--default": { + "default": { + "description": "Use as the default color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-success--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-success", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-success--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-success--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-success", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-success--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a success background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-success--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-success" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-success", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--warning--default": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.warning.default}" + }, + "name": "pf-t--global--text--color--status--warning--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.warning.100}" + }, + "name": "pf-t--global--color--status--warning--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "warning", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--status--warning--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--warning--hover": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.warning.hover}" + }, + "name": "pf-t--global--text--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "warning", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--warning--clicked": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.color.status.warning.clicked}" + }, + "name": "pf-t--global--text--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys a warning status.", + "type": "color", + "value": "{global.dark.color.status.warning.200}" + }, + "name": "pf-t--global--color--status--warning--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "warning", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "warning", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-warning--default": { + "default": { + "description": "Use as the default color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-warning--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-warning", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-warning--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-warning--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-warning", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-warning--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a warning background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-warning--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-warning" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-warning", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--danger--default": { + "default": { + "description": "Use as the default color for text that communicates a danger status.", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that communicates a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.300}" + }, + "name": "pf-t--global--text--color--status--danger--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "danger", + "default" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--status--danger--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "300" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--danger--hover": { + "default": { + "description": "Use as the hover state color for text that communicates a danger status.", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that communicates a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.300}" + }, + "name": "pf-t--global--text--color--status--danger--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "danger", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--status--danger--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "300" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--danger--clicked": { + "default": { + "description": "Use as the clicked state color for text that communicates a danger status.", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that communicates a danger status.", + "type": "color", + "value": "{global.dark.color.status.danger.300}" + }, + "name": "pf-t--global--text--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "danger", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--status--danger--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "300" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-danger--default": { + "default": { + "description": "Use as the default color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-danger--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-danger", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-danger--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-danger--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-danger", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-danger--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a danger background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-danger--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-danger" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-danger", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--info--default": { + "default": { + "description": "Use as the default color for text that communicates am info status.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that communicates am info status.", + "type": "color", + "value": "{global.color.status.info.default}" + }, + "name": "pf-t--global--text--color--status--info--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "text", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "type": "color", + "value": "{global.dark.color.status.info.100}" + }, + "name": "pf-t--global--color--status--info--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "info", + "default" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--status--info--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--info--hover": { + "default": { + "description": "Use as the hover state color for text that communicates an infostatus.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that communicates an infostatus.", + "type": "color", + "value": "{global.color.status.info.hover}" + }, + "name": "pf-t--global--text--color--status--info--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "text", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "info", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--info--clicked": { + "default": { + "description": "Use as the clicked state color for text that communicates an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that communicates an info status.", + "type": "color", + "value": "{global.color.status.info.clicked}" + }, + "name": "pf-t--global--text--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "text", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "{global.dark.color.status.info.200}" + }, + "name": "pf-t--global--color--status--info--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-info--default": { + "default": { + "description": "Use as the default color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-info--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-info", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-info--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-info--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-info", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-info--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on an info background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-info--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-info" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-info", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--custom--default": { + "default": { + "description": "Use as the default color for text that communicates a custom status.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that communicates a custom status.", + "type": "color", + "value": "{global.color.status.custom.default}" + }, + "name": "pf-t--global--text--color--status--custom--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" + }, + "path": [ + "global", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--custom--hover": { + "default": { + "description": "Use as the hover state color for text that communicates a custom status.", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that communicates a custom status.", + "type": "color", + "value": "{global.color.status.custom.hover}" + }, + "name": "pf-t--global--text--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.300}" + }, + "name": "pf-t--global--color--status--custom--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" + }, + "path": [ + "global", + "color", + "status", + "custom", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--status--custom--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--custom--clicked": { + "default": { + "description": "Use as the clicked state color for text that communicates a custom status.", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that communicates a custom status.", + "type": "color", + "value": "{global.color.status.custom.clicked}" + }, + "name": "pf-t--global--text--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.dark.color.status.custom.300}" + }, + "name": "pf-t--global--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--status--custom--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-custom--default": { + "default": { + "description": "Use as the default color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-custom--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-custom", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-custom--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-custom--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-custom", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--on-custom--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a custom background color, like in banners.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--on-custom--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "on-custom" + }, + "path": [ + "global", + "text", + "color", + "status", + "on-custom", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-default--default": { + "default": { + "description": "Use as the default color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-default--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-default", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-default--hover": { + "default": { + "description": "Use as the hover state color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-default--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-default", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-default--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed in elements that convey an unread status, like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-default--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-default", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-attention--default": { + "default": { + "description": "Use as the default color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-attention--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-attention", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-attention--hover": { + "default": { + "description": "Use as the hover state color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-attention--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-attention", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--status--unread--on-attention--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed in elements that convey an unread status and require greater attention like badges and stateful buttons.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--status--unread--on-attention--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "status", + "state": "unread" + }, + "path": [ + "global", + "text", + "color", + "status", + "unread", + "on-attention", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-red--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-red--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-red", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-red--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-red--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-red", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-red--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus red background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-red--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-red" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-red", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orangered--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orangered--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orangered", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orangered--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orangered--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orangered", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orangered--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus orangered background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orangered--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orangered" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orangered", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orange--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orange--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orange", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orange--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orange--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orange", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-orange--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus orange background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-orange--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-orange" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-orange", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-yellow--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-yellow--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-yellow", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-yellow--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-yellow--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-yellow", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-yellow--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus yellow background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-yellow--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-yellow" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-yellow", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-green--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-green--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-green", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-green--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-green--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-green", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-green--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus green background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-green--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-green" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-green", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-teal--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-teal--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-teal", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-teal--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-teal--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-teal", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-teal--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus teal background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-teal--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-teal" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-teal", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-blue--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-blue--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-blue", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-blue--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-blue--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-blue", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-blue--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus blue background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-blue--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-blue" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-blue", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-purple--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-purple--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-purple", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-purple--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-purple--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-purple", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-purple--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus purple background color.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--nonstatus--on-purple--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-purple" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-purple", + "clicked" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-gray--default": { + "default": { + "description": "Use as the default color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-gray--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-gray", + "default" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-gray--hover": { + "default": { + "description": "Use as the hover state color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-gray--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-gray", + "hover" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--nonstatus--on-gray--clicked": { + "default": { + "description": "Use as the clicked state color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for text that is placed on a nonstatus gray background color.", + "type": "color", + "value": "{global.text.color.regular}" + }, + "name": "pf-t--global--text--color--nonstatus--on-gray--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "nonstatus", + "state": "on-gray" + }, + "path": [ + "global", + "text", + "color", + "nonstatus", + "on-gray", + "clicked" + ], + "references": [ + { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "name": "pf-t--global--text--color--regular", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "text", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--sm--default": { + "default": { + "description": "Use as the color of small box-shadows.", + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of small box-shadows.", + "type": "color", + "value": "{global.dark.box-shadow.color.100}" + }, + "name": "pf-t--global--box-shadow--color--sm--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "sm", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "color", + "sm", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)" + }, + "name": "pf-t--global--dark--box-shadow--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--sm--directional": { + "default": { + "description": "Use as the color of small box-shadows.", + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of small box-shadows.", + "type": "color", + "value": "{global.dark.box-shadow.color.200}" + }, + "name": "pf-t--global--box-shadow--color--sm--directional", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "sm", + "state": "directional" + }, + "path": [ + "global", + "box-shadow", + "color", + "sm", + "directional" + ], + "references": [ + { + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)" + }, + "name": "pf-t--global--dark--box-shadow--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "200" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--md--default": { + "default": { + "description": "Use as the color of medium box-shadows.", + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of medium box-shadows.", + "type": "color", + "value": "{global.dark.box-shadow.color.100}" + }, + "name": "pf-t--global--box-shadow--color--md--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "md", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "color", + "md", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)" + }, + "name": "pf-t--global--dark--box-shadow--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--md--directional": { + "default": { + "description": "Use as the color of medium box-shadows.", + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of medium box-shadows.", + "type": "color", + "value": "{global.dark.box-shadow.color.200}" + }, + "name": "pf-t--global--box-shadow--color--md--directional", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "md", + "state": "directional" + }, + "path": [ + "global", + "box-shadow", + "color", + "md", + "directional" + ], + "references": [ + { + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)" + }, + "name": "pf-t--global--dark--box-shadow--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "200" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--lg--default": { + "default": { + "description": "Use as the color of large box-shadows.", + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of large box-shadows.", + "type": "color", + "value": "{global.dark.box-shadow.color.100}" + }, + "name": "pf-t--global--box-shadow--color--lg--default", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "lg", + "state": "default" + }, + "path": [ + "global", + "box-shadow", + "color", + "lg", + "default" + ], + "references": [ + { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)" + }, + "name": "pf-t--global--dark--box-shadow--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "100" + ] + } + ] + } + }, + "pf-t--global--box-shadow--color--lg--directional": { + "default": { + "description": "Use as the color of large box-shadows.", + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the color of large box-shadows.", + "type": "color", + "value": "{global.dark.box-shadow.color.200}" + }, + "name": "pf-t--global--box-shadow--color--lg--directional", + "attributes": { + "category": "global", + "type": "box-shadow", + "item": "color", + "subitem": "lg", + "state": "directional" + }, + "path": [ + "global", + "box-shadow", + "color", + "lg", + "directional" + ], + "references": [ + { + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)" + }, + "name": "pf-t--global--dark--box-shadow--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "200" + ] + } + ] + } + }, + "pf-t--global--text-decoration--color--default": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.dark.border.color.300}" + }, + "name": "pf-t--global--text-decoration--color--default", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "color", + "subitem": "default" + }, + "path": [ + "global", + "text-decoration", + "color", + "default" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--border--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "border", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--text-decoration--color--hover": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.border.color.hover}" + }, + "name": "pf-t--global--text-decoration--color--hover", + "attributes": { + "category": "global", + "type": "text-decoration", + "item": "color", + "subitem": "hover" + }, + "path": [ + "global", + "text-decoration", + "color", + "hover" + ], + "references": [ + { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.brand.100}" + }, + "name": "pf-t--global--border--color--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "hover" + }, + "path": [ + "global", + "border", + "color", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--focus-ring--color--default": { + "default": { + "description": "Use as color value for custom focus rings", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as color value for custom focus rings", + "type": "color", + "value": "{global.dark.focus-ring.color.100}" + }, + "name": "pf-t--global--focus-ring--color--default", + "attributes": { + "category": "global", + "type": "focus-ring", + "item": "color", + "subitem": "default" + }, + "path": [ + "global", + "focus-ring", + "color", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--focus-ring--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "focus-ring", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "focus-ring", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } + } + }, + "dimension": {}, + "motion": {} + }, + "base": { + "colors": { + "pf-t--global--dark--background--color--100": { + "default": { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.95}" + }, + "name": "pf-t--global--dark--background--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "background", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + }, + "pf-t--global--dark--background--color--200": { + "default": { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.80}" + }, + "name": "pf-t--global--dark--background--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "background", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + ] + } + }, + "pf-t--global--dark--background--color--300": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--background--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "background", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + }, + "pf-t--global--dark--background--color--400": { + "default": { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--background--color--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "400" + }, + "path": [ + "global", + "dark", + "background", + "color", + "400" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--background--color--450": { + "default": { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--dark--background--color--450", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "450" + }, + "path": [ + "global", + "dark", + "background", + "color", + "450" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--background--color--500": { + "default": { + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(21, 21, 21, 0.8000)" + }, + "name": "pf-t--global--dark--background--color--500", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "500" + }, + "path": [ + "global", + "dark", + "background", + "color", + "500" + ] + } + }, + "pf-t--global--dark--background--color--600": { + "default": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.1500)" + }, + "name": "pf-t--global--dark--background--color--600", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "600" + }, + "path": [ + "global", + "dark", + "background", + "color", + "600" + ] + } + }, + "pf-t--global--dark--background--color--700": { + "default": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(199, 199, 199, 0.2500)" + }, + "name": "pf-t--global--dark--background--color--700", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "700" + }, + "path": [ + "global", + "dark", + "background", + "color", + "700" + ] + } + }, + "pf-t--global--dark--background--color--highlight--100": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--background--color--highlight--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "highlight" + }, + "path": [ + "global", + "dark", + "background", + "color", + "highlight", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--background--color--highlight--200": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--background--color--highlight--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "background", + "subitem": "color", + "state": "highlight" + }, + "path": [ + "global", + "dark", + "background", + "color", + "highlight", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--100": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--200": { + "default": { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--brand--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--300": { + "default": { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--color--brand--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--accent--100": { + "default": { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.50}" + }, + "name": "pf-t--global--dark--color--brand--accent--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ee0000" + }, + "name": "pf-t--color--red--50", + "attributes": { + "category": "color", + "type": "red", + "item": "50" + }, + "path": [ + "color", + "red", + "50" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--accent--200": { + "default": { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.60}" + }, + "name": "pf-t--global--dark--color--brand--accent--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a60000" + }, + "name": "pf-t--color--red--60", + "attributes": { + "category": "color", + "type": "red", + "item": "60" + }, + "path": [ + "color", + "red", + "60" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--accent--300": { + "default": { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.40}" + }, + "name": "pf-t--global--dark--color--brand--accent--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "300" + ], + "references": [ + { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f56e6e" + }, + "name": "pf-t--color--red--40", + "attributes": { + "category": "color", + "type": "red", + "item": "40" + }, + "path": [ + "color", + "red", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--accent--350": { + "default": { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--dark--color--brand--accent--350", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "350" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--accent--400": { + "default": { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--color--brand--accent--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "400" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--subtle--100": { + "default": { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.70}" + }, + "name": "pf-t--global--dark--color--brand--subtle--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "100" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--subtle--200": { + "default": { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--dark--color--brand--subtle--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + }, + "pf-t--global--dark--color--brand--subtle--300": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--brand--subtle--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "subtle", + "300" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--disabled--100": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--disabled--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "100" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--disabled--200": { + "default": { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--disabled--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + }, + "pf-t--global--dark--color--disabled--300": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--color--disabled--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "300" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "300" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + }, + "pf-t--global--dark--color--disabled--400": { + "default": { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--color--disabled--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "400" + }, + "path": [ + "global", + "dark", + "color", + "disabled", + "400" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + }, + "pf-t--global--dark--color--favorite--100": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--favorite--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "100" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--favorite--200": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--favorite--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "favorite", + "state": "200" + }, + "path": [ + "global", + "dark", + "color", + "favorite", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--undefined--100": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--severity--undefined--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "undefined" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "undefined", + "100" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--none--100": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--severity--none--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "none" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "none", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--minor--100": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--color--severity--minor--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "minor" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "minor", + "100" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--moderate--100": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--severity--moderate--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "moderate" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "moderate", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--important--100": { + "default": { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.40}" + }, + "name": "pf-t--global--dark--color--severity--important--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "important" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "important", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f5921b" + }, + "name": "pf-t--color--orange--40", + "attributes": { + "category": "color", + "type": "orange", + "item": "40" + }, + "path": [ + "color", + "orange", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--critical--100": { + "default": { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "name": "pf-t--global--dark--color--severity--critical--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "critical" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "critical", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + ] + } + }, + "pf-t--global--dark--color--severity--critical--200": { + "default": { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--severity--critical--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", + "state": "critical" + }, + "path": [ + "global", + "dark", + "color", + "severity", + "critical", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--success--100": { + "default": { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.40}" + }, + "name": "pf-t--global--dark--color--status--success--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "100" + ], + "references": [ + { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--success--200": { + "default": { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--status--success--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "200" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--success--300": { + "default": { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--status--success--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "success" + }, + "path": [ + "global", + "dark", + "color", + "status", + "success", + "300" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--warning--100": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--status--warning--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--warning--200": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--status--warning--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "warning" + }, + "path": [ + "global", + "dark", + "color", + "status", + "warning", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--danger--100": { + "default": { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "name": "pf-t--global--dark--color--status--danger--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--danger--200": { + "default": { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "name": "pf-t--global--dark--color--status--danger--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--danger--250": { + "default": { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--status--danger--250", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "250" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--danger--300": { + "default": { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--status--danger--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" + }, + "path": [ + "global", + "dark", + "color", + "status", + "danger", + "300" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--info--100": { + "default": { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--status--info--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--info--200": { + "default": { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--status--info--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--info--300": { + "default": { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.10}" + }, + "name": "pf-t--global--dark--color--status--info--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" + }, + "path": [ + "global", + "dark", + "color", + "status", + "info", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ece6ff" + }, + "name": "pf-t--color--purple--10", + "attributes": { + "category": "color", + "type": "purple", + "item": "10" + }, + "path": [ + "color", + "purple", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--custom--100": { + "default": { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.40}" + }, + "name": "pf-t--global--dark--color--status--custom--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "100" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--custom--200": { + "default": { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--status--custom--300": { + "default": { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--status--custom--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--red--100": { + "default": { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f9a8a8" + }, + "name": "pf-t--color--red--30", + "attributes": { + "category": "color", + "type": "red", + "item": "30" + }, + "path": [ + "color", + "red", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--red--200": { + "default": { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--red--300": { + "default": { + "type": "color", + "value": "#fce3e3", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--red--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "red", + "300" + ], + "references": [ + { + "type": "color", + "value": "#fce3e3", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fce3e3" + }, + "name": "pf-t--color--red--10", + "attributes": { + "category": "color", + "type": "red", + "item": "10" + }, + "path": [ + "color", + "red", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--orangered--100": { + "default": { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--orangered--200": { + "default": { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--orangered--300": { + "default": { + "type": "color", + "value": "#ffe3d9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--orangered--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orangered" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orangered", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffe3d9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe3d9" + }, + "name": "pf-t--color--red-orange--10", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "10" + }, + "path": [ + "color", + "red-orange", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--orange--100": { + "default": { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--orange--200": { + "default": { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--orange--300": { + "default": { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--orange--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "orange" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "orange", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe8cc" + }, + "name": "pf-t--color--orange--10", + "attributes": { + "category": "color", + "type": "orange", + "item": "10" + }, + "path": [ + "color", + "orange", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--yellow--100": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--yellow--200": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "200" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--yellow--300": { + "default": { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--yellow--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "yellow" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "yellow", + "300" + ], + "references": [ + { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fff4cc" + }, + "name": "pf-t--color--yellow--10", + "attributes": { + "category": "color", + "type": "yellow", + "item": "10" + }, + "path": [ + "color", + "yellow", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--green--100": { + "default": { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "100" + ], + "references": [ + { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--green--200": { + "default": { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--green--300": { + "default": { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.green.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--green--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "green" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "green", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e9f7df" + }, + "name": "pf-t--color--green--10", + "attributes": { + "category": "color", + "type": "green", + "item": "10" + }, + "path": [ + "color", + "green", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--teal--100": { + "default": { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "100" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--teal--200": { + "default": { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--teal--300": { + "default": { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--teal--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "teal" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "teal", + "300" + ], + "references": [ + { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#daf2f2" + }, + "name": "pf-t--color--teal--10", + "attributes": { + "category": "color", + "type": "teal", + "item": "10" + }, + "path": [ + "color", + "teal", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--blue--100": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--blue--200": { + "default": { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--blue--300": { + "default": { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--blue--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "blue" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "blue", + "300" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--purple--100": { + "default": { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--purple--200": { + "default": { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--purple--300": { + "default": { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.10}" + }, + "name": "pf-t--global--dark--color--nonstatus--purple--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "purple" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "purple", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ece6ff" + }, + "name": "pf-t--color--purple--10", + "attributes": { + "category": "color", + "type": "purple", + "item": "10" + }, + "path": [ + "color", + "purple", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--gray--50": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--50", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "50" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--gray--100": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--gray--200": { + "default": { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + }, + "pf-t--global--dark--color--nonstatus--gray--300": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--nonstatus--gray--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "nonstatus", + "state": "gray" + }, + "path": [ + "global", + "dark", + "color", + "nonstatus", + "gray", + "300" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--border--color--50": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--dark--border--color--50", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "50" + }, + "path": [ + "global", + "dark", + "border", + "color", + "50" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + }, + "pf-t--global--dark--border--color--100": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--dark--border--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "border", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + }, + "pf-t--global--dark--border--color--200": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--border--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "border", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--border--color--300": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--border--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "border", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--100": { + "default": { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--text--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--200": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--dark--text--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "text", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--300": { + "default": { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--text--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--400": { + "default": { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--dark--text--color--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "400" + }, + "path": [ + "global", + "dark", + "text", + "color", + "400" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--link--100": { + "default": { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.20}" + }, + "name": "pf-t--global--dark--text--color--link--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--link--200": { + "default": { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.10}" + }, + "name": "pf-t--global--dark--text--color--link--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "200" + ], + "references": [ + { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--link--300": { + "default": { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.30}" + }, + "name": "pf-t--global--dark--text--color--link--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + ] + } + }, + "pf-t--global--dark--text--color--link--400": { + "default": { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.20}" + }, + "name": "pf-t--global--dark--text--color--link--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" + }, + "path": [ + "global", + "dark", + "text", + "color", + "link", + "400" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + ] + } + }, + "pf-t--global--dark--icon--color--100": { + "default": { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.10}" + }, + "name": "pf-t--global--dark--icon--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + ] + } + }, + "pf-t--global--dark--icon--color--200": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--icon--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + }, + "pf-t--global--dark--icon--color--300": { + "default": { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + }, + "pf-t--global--dark--box-shadow--color--100": { + "default": { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.5000)" + }, + "name": "pf-t--global--dark--box-shadow--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "100" + ] + } + }, + "pf-t--global--dark--box-shadow--color--200": { + "default": { + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "rgba(0, 0, 0, 0.6000)" + }, + "name": "pf-t--global--dark--box-shadow--color--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "box-shadow", + "subitem": "color", + "state": "200" + }, + "path": [ + "global", + "dark", + "box-shadow", + "color", + "200" + ] + } + }, + "pf-t--global--dark--focus-ring--color--100": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--focus-ring--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "focus-ring", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "focus-ring", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + } + }, + "dimension": {}, + "motion": {} + }, + "palette": { + "pf-t--global--color--brand--accent--default": { + "felt": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/felt/highcontrast-dark/felt.color.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.accent.400}" + }, + "name": "pf-t--global--color--brand--accent--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "default" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--color--brand--accent--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "400" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--accent--hover": { + "felt": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/felt/highcontrast-dark/felt.color.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.dark.color.brand.accent.350}" + }, + "name": "pf-t--global--color--brand--accent--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "hover" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--dark--color--brand--accent--350", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "350" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--accent--clicked": { + "felt": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/felt/highcontrast-dark/felt.color.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.dark.color.brand.accent.350}" + }, + "name": "pf-t--global--color--brand--accent--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.20}" + }, + "name": "pf-t--global--dark--color--brand--accent--350", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "350" + ], + "references": [ + { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--accent--default": { + "felt": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/felt/highcontrast-dark/felt.color.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.dark.color.brand.accent.400}" + }, + "name": "pf-t--global--border--color--brand--accent--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "border", + "color", + "brand", + "accent", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--color--brand--accent--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "400" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--accent--hover": { + "felt": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/felt/highcontrast-dark/felt.color.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.dark.color.brand.accent.400}" + }, + "name": "pf-t--global--border--color--brand--accent--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "border", + "color", + "brand", + "accent", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--color--brand--accent--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "400" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--accent--clicked": { + "felt": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/felt/highcontrast-dark/felt.color.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.dark.color.brand.accent.400}" + }, + "name": "pf-t--global--border--color--brand--accent--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "border", + "color", + "brand", + "accent", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--dark--color--brand--accent--400", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "dark", + "color", + "brand", + "accent", + "400" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--color--white": { + "default": { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + }, + "pf-t--color--black": { + "default": { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#000000" + }, + "name": "pf-t--color--black", + "attributes": { + "category": "color", + "type": "black" + }, + "path": [ + "color", + "black" + ] + } + }, + "pf-t--color--gray--10": { + "default": { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + }, + "pf-t--color--gray--20": { + "default": { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + }, + "pf-t--color--gray--30": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + }, + "pf-t--color--gray--40": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + }, + "pf-t--color--gray--45": { + "default": { + "type": "color", + "value": "#8c8c8c", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#8c8c8c" + }, + "name": "pf-t--color--gray--45", + "attributes": { + "category": "color", + "type": "gray", + "item": "45" + }, + "path": [ + "color", + "gray", + "45" + ] + } + }, + "pf-t--color--gray--50": { + "default": { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + }, + "pf-t--color--gray--60": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + }, + "pf-t--color--gray--70": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + }, + "pf-t--color--gray--80": { + "default": { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + }, + "pf-t--color--gray--90": { + "default": { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + }, + "pf-t--color--gray--95": { + "default": { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + }, + "pf-t--color--blue--10": { + "default": { + "type": "color", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0f0ff" + }, + "name": "pf-t--color--blue--10", + "attributes": { + "category": "color", + "type": "blue", + "item": "10" + }, + "path": [ + "color", + "blue", + "10" + ] + } + }, + "pf-t--color--blue--20": { + "default": { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } + }, + "pf-t--color--blue--30": { + "default": { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + }, + "pf-t--color--blue--40": { + "default": { + "type": "color", + "value": "#4394e5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4394e5" + }, + "name": "pf-t--color--blue--40", + "attributes": { + "category": "color", + "type": "blue", + "item": "40" + }, + "path": [ + "color", + "blue", + "40" + ] + } + }, + "pf-t--color--blue--50": { + "default": { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + }, + "pf-t--color--blue--60": { + "default": { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + }, + "pf-t--color--blue--70": { + "default": { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } + }, + "pf-t--color--blue--80": { + "default": { + "type": "color", + "value": "#032142", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#032142" + }, + "name": "pf-t--color--blue--80", + "attributes": { + "category": "color", + "type": "blue", + "item": "80" + }, + "path": [ + "color", + "blue", + "80" + ] + } + }, + "pf-t--color--teal--10": { + "default": { + "type": "color", + "value": "#daf2f2", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#daf2f2" + }, + "name": "pf-t--color--teal--10", + "attributes": { + "category": "color", + "type": "teal", + "item": "10" + }, + "path": [ + "color", + "teal", + "10" + ] + } + }, + "pf-t--color--teal--20": { + "default": { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } + }, + "pf-t--color--teal--30": { + "default": { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + }, + "pf-t--color--teal--40": { + "default": { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } + }, + "pf-t--color--teal--50": { + "default": { + "type": "color", + "value": "#37a3a3", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#37a3a3" + }, + "name": "pf-t--color--teal--50", + "attributes": { + "category": "color", + "type": "teal", + "item": "50" + }, + "path": [ + "color", + "teal", + "50" + ] + } + }, + "pf-t--color--teal--60": { + "default": { + "type": "color", + "value": "#147878", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#147878" + }, + "name": "pf-t--color--teal--60", + "attributes": { + "category": "color", + "type": "teal", + "item": "60" + }, + "path": [ + "color", + "teal", + "60" + ] + } + }, + "pf-t--color--teal--70": { + "default": { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d4d" + }, + "name": "pf-t--color--teal--70", + "attributes": { + "category": "color", + "type": "teal", + "item": "70" + }, + "path": [ + "color", + "teal", + "70" + ] + } + }, + "pf-t--color--teal--80": { + "default": { + "type": "color", + "value": "#003333", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003333" + }, + "name": "pf-t--color--teal--80", + "attributes": { + "category": "color", + "type": "teal", + "item": "80" + }, + "path": [ + "color", + "teal", + "80" + ] + } + }, + "pf-t--color--yellow--10": { + "default": { + "type": "color", + "value": "#fff4cc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fff4cc" + }, + "name": "pf-t--color--yellow--10", + "attributes": { + "category": "color", + "type": "yellow", + "item": "10" + }, + "path": [ + "color", + "yellow", + "10" + ] + } + }, + "pf-t--color--yellow--20": { + "default": { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + }, + "pf-t--color--yellow--30": { + "default": { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffcc17" + }, + "name": "pf-t--color--yellow--30", + "attributes": { + "category": "color", + "type": "yellow", + "item": "30" + }, + "path": [ + "color", + "yellow", + "30" + ] + } + }, + "pf-t--color--yellow--40": { + "default": { + "type": "color", + "value": "#dca614", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#dca614" + }, + "name": "pf-t--color--yellow--40", + "attributes": { + "category": "color", + "type": "yellow", + "item": "40" + }, + "path": [ + "color", + "yellow", + "40" + ] + } + }, + "pf-t--color--yellow--50": { + "default": { + "type": "color", + "value": "#b98412", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b98412" + }, + "name": "pf-t--color--yellow--50", + "attributes": { + "category": "color", + "type": "yellow", + "item": "50" + }, + "path": [ + "color", + "yellow", + "50" + ] + } + }, + "pf-t--color--yellow--60": { + "default": { + "type": "color", + "value": "#96640f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#96640f" + }, + "name": "pf-t--color--yellow--60", + "attributes": { + "category": "color", + "type": "yellow", + "item": "60" + }, + "path": [ + "color", + "yellow", + "60" + ] + } + }, + "pf-t--color--yellow--70": { + "default": { + "type": "color", + "value": "#73480b", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#73480b" + }, + "name": "pf-t--color--yellow--70", + "attributes": { + "category": "color", + "type": "yellow", + "item": "70" + }, + "path": [ + "color", + "yellow", + "70" + ] + } + }, + "pf-t--color--yellow--80": { + "default": { + "type": "color", + "value": "#54330b", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#54330b" + }, + "name": "pf-t--color--yellow--80", + "attributes": { + "category": "color", + "type": "yellow", + "item": "80" + }, + "path": [ + "color", + "yellow", + "80" + ] + } + }, + "pf-t--color--green--10": { + "default": { + "type": "color", + "value": "#e9f7df", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e9f7df" + }, + "name": "pf-t--color--green--10", + "attributes": { + "category": "color", + "type": "green", + "item": "10" + }, + "path": [ + "color", + "green", + "10" + ] + } + }, + "pf-t--color--green--20": { + "default": { + "type": "color", + "value": "#d1f1bb", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d1f1bb" + }, + "name": "pf-t--color--green--20", + "attributes": { + "category": "color", + "type": "green", + "item": "20" + }, + "path": [ + "color", + "green", + "20" + ] + } + }, + "pf-t--color--green--30": { + "default": { + "type": "color", + "value": "#afdc8f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#afdc8f" + }, + "name": "pf-t--color--green--30", + "attributes": { + "category": "color", + "type": "green", + "item": "30" + }, + "path": [ + "color", + "green", + "30" + ] + } + }, + "pf-t--color--green--40": { + "default": { + "type": "color", + "value": "#87bb62", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#87bb62" + }, + "name": "pf-t--color--green--40", + "attributes": { + "category": "color", + "type": "green", + "item": "40" + }, + "path": [ + "color", + "green", + "40" + ] + } + }, + "pf-t--color--green--50": { + "default": { + "type": "color", + "value": "#63993d", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63993d" + }, + "name": "pf-t--color--green--50", + "attributes": { + "category": "color", + "type": "green", + "item": "50" + }, + "path": [ + "color", + "green", + "50" + ] + } + }, + "pf-t--color--green--60": { + "default": { + "type": "color", + "value": "#3d7317", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d7317" + }, + "name": "pf-t--color--green--60", + "attributes": { + "category": "color", + "type": "green", + "item": "60" + }, + "path": [ + "color", + "green", + "60" + ] + } + }, + "pf-t--color--green--70": { + "default": { + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#204d00" + }, + "name": "pf-t--color--green--70", + "attributes": { + "category": "color", + "type": "green", + "item": "70" + }, + "path": [ + "color", + "green", + "70" + ] + } + }, + "pf-t--color--green--80": { + "default": { + "type": "color", + "value": "#183301", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#183301" + }, + "name": "pf-t--color--green--80", + "attributes": { + "category": "color", + "type": "green", + "item": "80" + }, + "path": [ + "color", + "green", + "80" + ] + } + }, + "pf-t--color--orange--10": { + "default": { + "type": "color", + "value": "#ffe8cc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe8cc" + }, + "name": "pf-t--color--orange--10", + "attributes": { + "category": "color", + "type": "orange", + "item": "10" + }, + "path": [ + "color", + "orange", + "10" + ] + } + }, + "pf-t--color--orange--20": { + "default": { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + }, + "pf-t--color--orange--30": { + "default": { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + }, + "pf-t--color--orange--40": { + "default": { + "type": "color", + "value": "#f5921b", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f5921b" + }, + "name": "pf-t--color--orange--40", + "attributes": { + "category": "color", + "type": "orange", + "item": "40" + }, + "path": [ + "color", + "orange", + "40" + ] + } + }, + "pf-t--color--orange--50": { + "default": { + "type": "color", + "value": "#ca6c0f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ca6c0f" + }, + "name": "pf-t--color--orange--50", + "attributes": { + "category": "color", + "type": "orange", + "item": "50" + }, + "path": [ + "color", + "orange", + "50" + ] + } + }, + "pf-t--color--orange--60": { + "default": { + "type": "color", + "value": "#9e4a06", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9e4a06" + }, + "name": "pf-t--color--orange--60", + "attributes": { + "category": "color", + "type": "orange", + "item": "60" + }, + "path": [ + "color", + "orange", + "60" + ] + } + }, + "pf-t--color--orange--70": { + "default": { + "type": "color", + "value": "#732e00", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#732e00" + }, + "name": "pf-t--color--orange--70", + "attributes": { + "category": "color", + "type": "orange", + "item": "70" + }, + "path": [ + "color", + "orange", + "70" + ] + } + }, + "pf-t--color--orange--80": { + "default": { + "type": "color", + "value": "#4d1f00", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d1f00" + }, + "name": "pf-t--color--orange--80", + "attributes": { + "category": "color", + "type": "orange", + "item": "80" + }, + "path": [ + "color", + "orange", + "80" + ] + } + }, + "pf-t--color--red-orange--10": { + "default": { + "type": "color", + "value": "#ffe3d9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe3d9" + }, + "name": "pf-t--color--red-orange--10", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "10" + }, + "path": [ + "color", + "red-orange", + "10" + ] + } + }, + "pf-t--color--red-orange--20": { + "default": { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + }, + "pf-t--color--red-orange--30": { + "default": { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + }, + "pf-t--color--red-orange--40": { + "default": { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } + }, + "pf-t--color--red-orange--50": { + "default": { + "type": "color", + "value": "#f0561d", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f0561d" + }, + "name": "pf-t--color--red-orange--50", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "50" + }, + "path": [ + "color", + "red-orange", + "50" + ] + } + }, + "pf-t--color--red-orange--60": { + "default": { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b1380b" + }, + "name": "pf-t--color--red-orange--60", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "60" + }, + "path": [ + "color", + "red-orange", + "60" + ] + } + }, + "pf-t--color--red-orange--70": { + "default": { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } + }, + "pf-t--color--red-orange--80": { + "default": { + "type": "color", + "value": "#4c1405", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4c1405" + }, + "name": "pf-t--color--red-orange--80", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "80" + }, + "path": [ + "color", + "red-orange", + "80" + ] + } + }, + "pf-t--color--purple--10": { + "default": { + "type": "color", + "value": "#ece6ff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ece6ff" + }, + "name": "pf-t--color--purple--10", + "attributes": { + "category": "color", + "type": "purple", + "item": "10" + }, + "path": [ + "color", + "purple", + "10" + ] + } + }, + "pf-t--color--purple--20": { + "default": { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } + }, + "pf-t--color--purple--30": { + "default": { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } + }, + "pf-t--color--purple--40": { + "default": { + "type": "color", + "value": "#876fd4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#876fd4" + }, + "name": "pf-t--color--purple--40", + "attributes": { + "category": "color", + "type": "purple", + "item": "40" + }, + "path": [ + "color", + "purple", + "40" + ] + } + }, + "pf-t--color--purple--50": { + "default": { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5e40be" + }, + "name": "pf-t--color--purple--50", + "attributes": { + "category": "color", + "type": "purple", + "item": "50" + }, + "path": [ + "color", + "purple", + "50" + ] + } + }, + "pf-t--color--purple--60": { + "default": { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d2785" + }, + "name": "pf-t--color--purple--60", + "attributes": { + "category": "color", + "type": "purple", + "item": "60" + }, + "path": [ + "color", + "purple", + "60" + ] + } + }, + "pf-t--color--purple--70": { + "default": { + "type": "color", + "value": "#21134d", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#21134d" + }, + "name": "pf-t--color--purple--70", + "attributes": { + "category": "color", + "type": "purple", + "item": "70" + }, + "path": [ + "color", + "purple", + "70" + ] + } + }, + "pf-t--color--purple--80": { + "default": { + "type": "color", + "value": "#1b0d33", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1b0d33" + }, + "name": "pf-t--color--purple--80", + "attributes": { + "category": "color", + "type": "purple", + "item": "80" + }, + "path": [ + "color", + "purple", + "80" + ] + } + }, + "pf-t--color--red--10": { + "default": { + "type": "color", + "value": "#fce3e3", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fce3e3" + }, + "name": "pf-t--color--red--10", + "attributes": { + "category": "color", + "type": "red", + "item": "10" + }, + "path": [ + "color", + "red", + "10" + ] + } + }, + "pf-t--color--red--20": { + "default": { + "type": "color", + "value": "#fbc5c5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbc5c5" + }, + "name": "pf-t--color--red--20", + "attributes": { + "category": "color", + "type": "red", + "item": "20" + }, + "path": [ + "color", + "red", + "20" + ] + } + }, + "pf-t--color--red--30": { + "default": { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f9a8a8" + }, + "name": "pf-t--color--red--30", + "attributes": { + "category": "color", + "type": "red", + "item": "30" + }, + "path": [ + "color", + "red", + "30" + ] + } + }, + "pf-t--color--red--40": { + "default": { + "type": "color", + "value": "#f56e6e", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f56e6e" + }, + "name": "pf-t--color--red--40", + "attributes": { + "category": "color", + "type": "red", + "item": "40" + }, + "path": [ + "color", + "red", + "40" + ] + } + }, + "pf-t--color--red--50": { + "default": { + "type": "color", + "value": "#ee0000", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ee0000" + }, + "name": "pf-t--color--red--50", + "attributes": { + "category": "color", + "type": "red", + "item": "50" + }, + "path": [ + "color", + "red", + "50" + ] + } + }, + "pf-t--color--red--60": { + "default": { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a60000" + }, + "name": "pf-t--color--red--60", + "attributes": { + "category": "color", + "type": "red", + "item": "60" + }, + "path": [ + "color", + "red", + "60" + ] + } + }, + "pf-t--color--red--70": { + "default": { + "type": "color", + "value": "#5f0000", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5f0000" + }, + "name": "pf-t--color--red--70", + "attributes": { + "category": "color", + "type": "red", + "item": "70" + }, + "path": [ + "color", + "red", + "70" + ] + } + }, + "pf-t--color--red--80": { + "default": { + "type": "color", + "value": "#3f0000", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3f0000" + }, + "name": "pf-t--color--red--80", + "attributes": { + "category": "color", + "type": "red", + "item": "80" + }, + "path": [ + "color", + "red", + "80" + ] + } + }, + "pf-t--color--red--05": { + "default": { + "type": "color", + "value": "#fef0f0", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fef0f0" + }, + "name": "pf-t--color--red--05", + "attributes": { + "category": "color", + "type": "red", + "item": "05" + }, + "path": [ + "color", + "red", + "05" + ] + } + } + }, + "chart": {} +} \ No newline at end of file diff --git a/packages/module/patternfly-docs/content/token-layers-glass-dark.json b/packages/module/patternfly-docs/content/token-layers-glass-dark.json index 58eb265..1a40152 100644 --- a/packages/module/patternfly-docs/content/token-layers-glass-dark.json +++ b/packages/module/patternfly-docs/content/token-layers-glass-dark.json @@ -6981,78 +6981,76 @@ ] } }, - "pf-t--global--icon--color--brand--default": { + "pf-t--global--icon--color--regular": { "default": { - "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", "type": "color", - "value": "#b9dafc", + "value": "#f2f2f2", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", "type": "color", - "value": "{global.dark.color.brand.200}" + "value": "{global.dark.icon.color.100}" }, - "name": "pf-t--global--icon--color--brand--default", + "name": "pf-t--global--icon--color--regular", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "brand", - "state": "default" + "subitem": "regular" }, "path": [ "global", "icon", "color", - "brand", - "default" + "regular" ], "references": [ { "type": "color", - "value": "#b9dafc", + "value": "#f2f2f2", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.20}" + "value": "{color.gray.10}" }, - "name": "pf-t--global--dark--color--brand--200", + "name": "pf-t--global--dark--icon--color--100", "attributes": { "category": "global", "type": "dark", - "item": "color", - "subitem": "brand", - "state": "200" + "item": "icon", + "subitem": "color", + "state": "100" }, "path": [ "global", "dark", + "icon", "color", - "brand", - "200" + "100" ], "references": [ { "type": "color", - "value": "#b9dafc", + "value": "#f2f2f2", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b9dafc" + "value": "#f2f2f2" }, - "name": "pf-t--color--blue--20", + "name": "pf-t--color--gray--10", "attributes": { "category": "color", - "type": "blue", - "item": "20" + "type": "gray", + "item": "10" }, "path": [ "color", - "blue", - "20" + "gray", + "10" ] } ] @@ -7060,78 +7058,76 @@ ] } }, - "pf-t--global--icon--color--brand--hover": { + "pf-t--global--icon--color--subtle": { "default": { - "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", "type": "color", - "value": "#e0f0ff", + "value": "#a3a3a3", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", "type": "color", - "value": "{global.dark.color.brand.300}" + "value": "{global.dark.icon.color.200}" }, - "name": "pf-t--global--icon--color--brand--hover", + "name": "pf-t--global--icon--color--subtle", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "brand", - "state": "hover" + "subitem": "subtle" }, "path": [ "global", "icon", "color", - "brand", - "hover" + "subtle" ], "references": [ { "type": "color", - "value": "#e0f0ff", + "value": "#a3a3a3", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.10}" + "value": "{color.gray.40}" }, - "name": "pf-t--global--dark--color--brand--300", + "name": "pf-t--global--dark--icon--color--200", "attributes": { "category": "global", "type": "dark", - "item": "color", - "subitem": "brand", - "state": "300" + "item": "icon", + "subitem": "color", + "state": "200" }, "path": [ "global", "dark", + "icon", "color", - "brand", - "300" + "200" ], "references": [ { "type": "color", - "value": "#e0f0ff", + "value": "#a3a3a3", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#e0f0ff" + "value": "#a3a3a3" }, - "name": "pf-t--color--blue--10", + "name": "pf-t--color--gray--40", "attributes": { "category": "color", - "type": "blue", - "item": "10" + "type": "gray", + "item": "40" }, "path": [ "color", - "blue", - "10" + "gray", + "40" ] } ] @@ -7139,78 +7135,76 @@ ] } }, - "pf-t--global--icon--color--brand--clicked": { + "pf-t--global--icon--color--inverse": { "default": { - "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#e0f0ff", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{global.dark.color.brand.300}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--icon--color--brand--clicked", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "brand", - "state": "clicked" + "subitem": "inverse" }, "path": [ "global", "icon", "color", - "brand", - "clicked" + "inverse" ], "references": [ { "type": "color", - "value": "#e0f0ff", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.10}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--color--brand--300", + "name": "pf-t--global--dark--icon--color--300", "attributes": { "category": "global", "type": "dark", - "item": "color", - "subitem": "brand", + "item": "icon", + "subitem": "color", "state": "300" }, "path": [ "global", "dark", + "icon", "color", - "brand", "300" ], "references": [ { "type": "color", - "value": "#e0f0ff", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#e0f0ff" + "value": "#1f1f1f" }, - "name": "pf-t--color--blue--10", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", - "type": "blue", - "item": "10" + "type": "gray", + "item": "90" }, "path": [ "color", - "blue", - "10" + "gray", + "90" ] } ] @@ -7218,135 +7212,76 @@ ] } }, - "pf-t--global--icon--color--brand--accent--default": { + "pf-t--global--icon--color--disabled": { "default": { - "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", "type": "color", - "value": "#92c5f9", + "value": "#707070", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", "type": "color", - "value": "{global.color.brand.accent.default}" + "value": "{global.dark.color.disabled.200}" }, - "name": "pf-t--global--icon--color--brand--accent--default", + "name": "pf-t--global--icon--color--disabled", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "brand", - "state": "accent" + "subitem": "disabled" }, "path": [ "global", "icon", "color", - "brand", - "accent", - "default" + "disabled" ], "references": [ { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#707070", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.color.brand.default}" + "value": "{color.gray.50}" }, - "name": "pf-t--global--color--brand--accent--default", + "name": "pf-t--global--dark--color--disabled--200", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "default" + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "200" }, "path": [ "global", + "dark", "color", - "brand", - "accent", - "default" + "disabled", + "200" ], "references": [ { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#707070", + "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.dark.color.brand.100}" + "value": "#707070" }, - "name": "pf-t--global--color--brand--default", + "name": "pf-t--color--gray--50", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "default" + "category": "color", + "type": "gray", + "item": "50" }, "path": [ - "global", "color", - "brand", - "default" - ], - "references": [ - { - "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/glass-dark/base.dark.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.blue.30}" - }, - "name": "pf-t--global--dark--color--brand--100", - "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "100" - }, - "path": [ - "global", - "dark", - "color", - "brand", - "100" - ], - "references": [ - { - "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#92c5f9" - }, - "name": "pf-t--color--blue--30", - "attributes": { - "category": "color", - "type": "blue", - "item": "30" - }, - "path": [ - "color", - "blue", - "30" - ] - } - ] - } + "gray", + "50" ] } ] @@ -7354,135 +7289,76 @@ ] } }, - "pf-t--global--icon--color--brand--accent--hover": { + "pf-t--global--icon--color--on-disabled": { "default": { - "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", "type": "color", - "value": "#b9dafc", + "value": "#383838", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", "type": "color", - "value": "{global.color.brand.accent.hover}" + "value": "{global.dark.color.disabled.300}" }, - "name": "pf-t--global--icon--color--brand--accent--hover", + "name": "pf-t--global--icon--color--on-disabled", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "brand", - "state": "accent" + "subitem": "on-disabled" }, "path": [ "global", "icon", "color", - "brand", - "accent", - "hover" + "on-disabled" ], "references": [ { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#383838", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.color.brand.hover}" + "value": "{color.gray.70}" }, - "name": "pf-t--global--color--brand--accent--hover", + "name": "pf-t--global--dark--color--disabled--300", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "hover" + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "300" }, "path": [ "global", + "dark", "color", - "brand", - "accent", - "hover" + "disabled", + "300" ], "references": [ { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#383838", + "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.dark.color.brand.200}" + "value": "#383838" }, - "name": "pf-t--global--color--brand--hover", + "name": "pf-t--color--gray--70", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "hover" + "category": "color", + "type": "gray", + "item": "70" }, "path": [ - "global", "color", - "brand", - "hover" - ], - "references": [ - { - "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/base.dark.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.blue.20}" - }, - "name": "pf-t--global--dark--color--brand--200", - "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "200" - }, - "path": [ - "global", - "dark", - "color", - "brand", - "200" - ], - "references": [ - { - "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#b9dafc" - }, - "name": "pf-t--color--blue--20", - "attributes": { - "category": "color", - "type": "blue", - "item": "20" - }, - "path": [ - "color", - "blue", - "20" - ] - } - ] - } + "gray", + "70" ] } ] @@ -7490,135 +7366,78 @@ ] } }, - "pf-t--global--icon--color--brand--accent--clicked": { + "pf-t--global--icon--color--brand--default": { "default": { - "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", "type": "color", "value": "#b9dafc", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "{global.color.brand.accent.clicked}" + "value": "{global.dark.color.brand.200}" }, - "name": "pf-t--global--icon--color--brand--accent--clicked", + "name": "pf-t--global--icon--color--brand--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "brand", - "state": "accent" + "state": "default" }, "path": [ "global", "icon", "color", "brand", - "accent", - "clicked" + "default" ], "references": [ { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.color.brand.clicked}" + "value": "{color.blue.20}" }, - "name": "pf-t--global--color--brand--accent--clicked", + "name": "pf-t--global--dark--color--brand--200", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "clicked" + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" }, "path": [ "global", + "dark", "color", "brand", - "accent", - "clicked" + "200" ], "references": [ { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.dark.color.brand.200}" + "value": "#b9dafc" }, - "name": "pf-t--global--color--brand--clicked", + "name": "pf-t--color--blue--20", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "clicked" + "category": "color", + "type": "blue", + "item": "20" }, "path": [ - "global", "color", - "brand", - "clicked" - ], - "references": [ - { - "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/base.dark.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.blue.20}" - }, - "name": "pf-t--global--dark--color--brand--200", - "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "200" - }, - "path": [ - "global", - "dark", - "color", - "brand", - "200" - ], - "references": [ - { - "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#b9dafc" - }, - "name": "pf-t--color--blue--20", - "attributes": { - "category": "color", - "type": "blue", - "item": "20" - }, - "path": [ - "color", - "blue", - "20" - ] - } - ] - } + "blue", + "20" ] } ] @@ -7626,105 +7445,78 @@ ] } }, - "pf-t--global--icon--color--on-brand--default": { + "pf-t--global--icon--color--brand--hover": { "default": { - "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "#1f1f1f", + "value": "#e0f0ff", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.dark.color.brand.300}" }, - "name": "pf-t--global--icon--color--on-brand--default", + "name": "pf-t--global--icon--color--brand--hover", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "on-brand", - "state": "default" + "subitem": "brand", + "state": "hover" }, "path": [ "global", "icon", "color", - "on-brand", - "default" + "brand", + "hover" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{color.blue.10}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--dark--color--brand--300", "attributes": { "category": "global", - "type": "icon", + "type": "dark", "item": "color", - "subitem": "inverse" + "subitem": "brand", + "state": "300" }, "path": [ "global", - "icon", + "dark", "color", - "inverse" + "brand", + "300" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "#e0f0ff" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--color--blue--10", "attributes": { - "category": "global", - "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "category": "color", + "type": "blue", + "item": "10" }, "path": [ - "global", - "dark", - "icon", "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#1f1f1f" - }, - "name": "pf-t--color--gray--90", - "attributes": { - "category": "color", - "type": "gray", - "item": "90" - }, - "path": [ - "color", - "gray", - "90" - ] - } + "blue", + "10" ] } ] @@ -7732,105 +7524,78 @@ ] } }, - "pf-t--global--icon--color--on-brand--hover": { + "pf-t--global--icon--color--brand--clicked": { "default": { - "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "#1f1f1f", + "value": "#e0f0ff", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.dark.color.brand.300}" }, - "name": "pf-t--global--icon--color--on-brand--hover", + "name": "pf-t--global--icon--color--brand--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "on-brand", - "state": "hover" + "subitem": "brand", + "state": "clicked" }, "path": [ "global", "icon", "color", - "on-brand", - "hover" + "brand", + "clicked" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{color.blue.10}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--dark--color--brand--300", "attributes": { "category": "global", - "type": "icon", + "type": "dark", "item": "color", - "subitem": "inverse" + "subitem": "brand", + "state": "300" }, "path": [ "global", - "icon", + "dark", "color", - "inverse" + "brand", + "300" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "#e0f0ff" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--color--blue--10", "attributes": { - "category": "global", - "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "category": "color", + "type": "blue", + "item": "10" }, "path": [ - "global", - "dark", - "icon", "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#1f1f1f" - }, - "name": "pf-t--color--gray--90", - "attributes": { - "category": "color", - "type": "gray", - "item": "90" - }, - "path": [ - "color", - "gray", - "90" - ] - } + "blue", + "10" ] } ] @@ -7838,103 +7603,133 @@ ] } }, - "pf-t--global--icon--color--on-brand--clicked": { + "pf-t--global--icon--color--brand--accent--default": { "default": { - "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "#1f1f1f", + "value": "#92c5f9", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.color.brand.accent.default}" }, - "name": "pf-t--global--icon--color--on-brand--clicked", + "name": "pf-t--global--icon--color--brand--accent--default", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "on-brand", - "state": "clicked" + "subitem": "brand", + "state": "accent" }, "path": [ "global", "icon", "color", - "on-brand", - "clicked" + "brand", + "accent", + "default" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#1f1f1f", + "value": "#92c5f9", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{global.color.brand.default}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--color--brand--accent--default", "attributes": { "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "default" }, "path": [ "global", - "icon", "color", - "inverse" + "brand", + "accent", + "default" ], "references": [ { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{color.gray.90}" + "value": "{global.dark.color.brand.100}" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--global--color--brand--default", "attributes": { "category": "global", - "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "type": "color", + "item": "brand", + "subitem": "default" }, "path": [ "global", - "dark", - "icon", "color", - "300" + "brand", + "default" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "{color.blue.30}" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--global--dark--color--brand--100", "attributes": { - "category": "color", - "type": "gray", - "item": "90" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" }, "path": [ + "global", + "dark", "color", - "gray", - "90" + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } ] } ] @@ -7944,104 +7739,133 @@ ] } }, - "pf-t--global--icon--color--on-brand--accent--default": { + "pf-t--global--icon--color--brand--accent--hover": { "default": { - "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "#1f1f1f", + "value": "#b9dafc", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.color.brand.accent.hover}" }, - "name": "pf-t--global--icon--color--on-brand--accent--default", + "name": "pf-t--global--icon--color--brand--accent--hover", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "on-brand", + "subitem": "brand", "state": "accent" }, "path": [ "global", "icon", "color", - "on-brand", + "brand", "accent", - "default" + "hover" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#1f1f1f", + "value": "#b9dafc", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{global.color.brand.hover}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--color--brand--accent--hover", "attributes": { "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "hover" }, "path": [ "global", - "icon", "color", - "inverse" + "brand", + "accent", + "hover" ], "references": [ { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{color.gray.90}" + "value": "{global.dark.color.brand.200}" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--global--color--brand--hover", "attributes": { "category": "global", - "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "type": "color", + "item": "brand", + "subitem": "hover" }, "path": [ "global", - "dark", - "icon", "color", - "300" + "brand", + "hover" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "{color.blue.20}" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--global--dark--color--brand--200", "attributes": { - "category": "color", - "type": "gray", - "item": "90" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" }, "path": [ + "global", + "dark", "color", - "gray", - "90" + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } ] } ] @@ -8051,104 +7875,133 @@ ] } }, - "pf-t--global--icon--color--on-brand--accent--hover": { + "pf-t--global--icon--color--brand--accent--clicked": { "default": { - "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "#1f1f1f", + "value": "#b9dafc", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.color.brand.accent.clicked}" }, - "name": "pf-t--global--icon--color--on-brand--accent--hover", + "name": "pf-t--global--icon--color--brand--accent--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "on-brand", + "subitem": "brand", "state": "accent" }, "path": [ "global", "icon", "color", - "on-brand", + "brand", "accent", - "hover" + "clicked" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#1f1f1f", + "value": "#b9dafc", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{global.color.brand.clicked}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--color--brand--accent--clicked", "attributes": { "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "clicked" }, "path": [ "global", - "icon", "color", - "inverse" + "brand", + "accent", + "clicked" ], "references": [ { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{color.gray.90}" + "value": "{global.dark.color.brand.200}" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--global--color--brand--clicked", "attributes": { "category": "global", - "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "type": "color", + "item": "brand", + "subitem": "clicked" }, "path": [ "global", - "dark", - "icon", "color", - "300" + "brand", + "clicked" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "{color.blue.20}" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--global--dark--color--brand--200", "attributes": { - "category": "color", - "type": "gray", - "item": "90" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" }, "path": [ + "global", + "dark", "color", - "gray", - "90" + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } ] } ] @@ -8158,33 +8011,32 @@ ] } }, - "pf-t--global--icon--color--on-brand--accent--clicked": { + "pf-t--global--icon--color--on-brand--default": { "default": { - "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--on-brand--accent--clicked", + "name": "pf-t--global--icon--color--on-brand--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "on-brand", - "state": "accent" + "state": "default" }, "path": [ "global", "icon", "color", "on-brand", - "accent", - "clicked" + "default" ], "references": [ { @@ -8265,104 +8117,103 @@ ] } }, - "pf-t--global--icon--color--on-brand--subtle--default": { + "pf-t--global--icon--color--on-brand--hover": { "default": { - "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.icon.color.regular}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--on-brand--subtle--default", + "name": "pf-t--global--icon--color--on-brand--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "on-brand", - "state": "subtle" + "state": "hover" }, "path": [ "global", "icon", "color", "on-brand", - "subtle", - "default" + "hover" ], "references": [ { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{global.dark.icon.color.100}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--icon--color--regular", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "regular" + "subitem": "inverse" }, "path": [ "global", "icon", "color", - "regular" + "inverse" ], "references": [ { "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.10}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--icon--color--100", + "name": "pf-t--global--dark--icon--color--300", "attributes": { "category": "global", "type": "dark", "item": "icon", "subitem": "color", - "state": "100" + "state": "300" }, "path": [ "global", "dark", "icon", "color", - "100" + "300" ], "references": [ { "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f2f2f2" + "value": "#1f1f1f" }, - "name": "pf-t--color--gray--10", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", "type": "gray", - "item": "10" + "item": "90" }, "path": [ "color", "gray", - "10" + "90" ] } ] @@ -8372,104 +8223,103 @@ ] } }, - "pf-t--global--icon--color--on-brand--subtle--hover": { + "pf-t--global--icon--color--on-brand--clicked": { "default": { - "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.icon.color.regular}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--on-brand--subtle--hover", + "name": "pf-t--global--icon--color--on-brand--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "on-brand", - "state": "subtle" + "state": "clicked" }, "path": [ "global", "icon", "color", "on-brand", - "subtle", - "hover" + "clicked" ], "references": [ { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{global.dark.icon.color.100}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--icon--color--regular", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "regular" + "subitem": "inverse" }, "path": [ "global", "icon", "color", - "regular" + "inverse" ], "references": [ { "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.10}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--icon--color--100", + "name": "pf-t--global--dark--icon--color--300", "attributes": { "category": "global", "type": "dark", "item": "icon", "subitem": "color", - "state": "100" + "state": "300" }, "path": [ "global", "dark", "icon", "color", - "100" + "300" ], "references": [ { "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f2f2f2" + "value": "#1f1f1f" }, - "name": "pf-t--color--gray--10", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", "type": "gray", - "item": "10" + "item": "90" }, "path": [ "color", "gray", - "10" + "90" ] } ] @@ -8479,104 +8329,104 @@ ] } }, - "pf-t--global--icon--color--on-brand--subtle--clicked": { + "pf-t--global--icon--color--on-brand--accent--default": { "default": { - "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.icon.color.regular}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--on-brand--subtle--clicked", + "name": "pf-t--global--icon--color--on-brand--accent--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "on-brand", - "state": "subtle" + "state": "accent" }, "path": [ "global", "icon", "color", "on-brand", - "subtle", - "clicked" + "accent", + "default" ], "references": [ { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{global.dark.icon.color.100}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--icon--color--regular", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "regular" + "subitem": "inverse" }, "path": [ "global", "icon", "color", - "regular" + "inverse" ], "references": [ { "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.10}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--icon--color--100", + "name": "pf-t--global--dark--icon--color--300", "attributes": { "category": "global", "type": "dark", "item": "icon", "subitem": "color", - "state": "100" + "state": "300" }, "path": [ "global", "dark", "icon", "color", - "100" + "300" ], "references": [ { "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f2f2f2" + "value": "#1f1f1f" }, - "name": "pf-t--color--gray--10", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", "type": "gray", - "item": "10" + "item": "90" }, "path": [ "color", "gray", - "10" + "90" ] } ] @@ -8586,103 +8436,104 @@ ] } }, - "pf-t--global--icon--color--favorite--default": { + "pf-t--global--icon--color--on-brand--accent--hover": { "default": { - "description": "Use as the icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "#ffcc17", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.color.favorite.default}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--favorite--default", + "name": "pf-t--global--icon--color--on-brand--accent--hover", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "favorite", - "state": "default" + "subitem": "on-brand", + "state": "accent" }, "path": [ "global", "icon", "color", - "favorite", - "default" + "on-brand", + "accent", + "hover" ], "references": [ { - "description": "Use as the default color for elements that have been favorited", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#ffcc17", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for elements that have been favorited", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{global.dark.color.favorite.100}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--color--favorite--default", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", - "type": "color", - "item": "favorite", - "subitem": "default" + "type": "icon", + "item": "color", + "subitem": "inverse" }, "path": [ "global", + "icon", "color", - "favorite", - "default" + "inverse" ], "references": [ { "type": "color", - "value": "#ffcc17", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.30}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--color--favorite--100", + "name": "pf-t--global--dark--icon--color--300", "attributes": { "category": "global", "type": "dark", - "item": "color", - "subitem": "favorite", - "state": "100" + "item": "icon", + "subitem": "color", + "state": "300" }, "path": [ "global", "dark", + "icon", "color", - "favorite", - "100" + "300" ], "references": [ { "type": "color", - "value": "#ffcc17", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffcc17" + "value": "#1f1f1f" }, - "name": "pf-t--color--yellow--30", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", - "type": "yellow", - "item": "30" + "type": "gray", + "item": "90" }, "path": [ "color", - "yellow", - "30" + "gray", + "90" ] } ] @@ -8692,103 +8543,104 @@ ] } }, - "pf-t--global--icon--color--favorite--hover": { + "pf-t--global--icon--color--on-brand--accent--clicked": { "default": { - "description": "Use as the hover state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "#ffe072", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.color.favorite.hover}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--favorite--hover", + "name": "pf-t--global--icon--color--on-brand--accent--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "favorite", - "state": "hover" + "subitem": "on-brand", + "state": "accent" }, "path": [ "global", "icon", "color", - "favorite", - "hover" + "on-brand", + "accent", + "clicked" ], "references": [ { - "description": "Use as the hover state for elements that have been favorited", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#ffe072", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have been favorited", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{global.dark.color.favorite.200}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--color--favorite--hover", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", - "type": "color", - "item": "favorite", - "subitem": "hover" + "type": "icon", + "item": "color", + "subitem": "inverse" }, "path": [ "global", + "icon", "color", - "favorite", - "hover" + "inverse" ], "references": [ { "type": "color", - "value": "#ffe072", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.20}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--color--favorite--200", + "name": "pf-t--global--dark--icon--color--300", "attributes": { "category": "global", "type": "dark", - "item": "color", - "subitem": "favorite", - "state": "200" + "item": "icon", + "subitem": "color", + "state": "300" }, "path": [ "global", "dark", + "icon", "color", - "favorite", - "200" + "300" ], "references": [ { "type": "color", - "value": "#ffe072", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffe072" + "value": "#1f1f1f" }, - "name": "pf-t--color--yellow--20", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", - "type": "yellow", - "item": "20" + "type": "gray", + "item": "90" }, "path": [ "color", - "yellow", - "20" + "gray", + "90" ] } ] @@ -8798,103 +8650,104 @@ ] } }, - "pf-t--global--icon--color--favorite--clicked": { + "pf-t--global--icon--color--on-brand--subtle--default": { "default": { - "description": "Use as the clicked state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "#ffe072", + "value": "#f2f2f2", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.color.favorite.clicked}" + "value": "{global.icon.color.regular}" }, - "name": "pf-t--global--icon--color--favorite--clicked", + "name": "pf-t--global--icon--color--on-brand--subtle--default", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "favorite", - "state": "clicked" + "subitem": "on-brand", + "state": "subtle" }, "path": [ "global", "icon", "color", - "favorite", - "clicked" + "on-brand", + "subtle", + "default" ], "references": [ { - "description": "Use as the clicked state for elements that have been favorited", + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", "type": "color", - "value": "#ffe072", + "value": "#f2f2f2", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have been favorited", + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", "type": "color", - "value": "{global.dark.color.favorite.200}" + "value": "{global.dark.icon.color.100}" }, - "name": "pf-t--global--color--favorite--clicked", + "name": "pf-t--global--icon--color--regular", "attributes": { "category": "global", - "type": "color", - "item": "favorite", - "subitem": "clicked" + "type": "icon", + "item": "color", + "subitem": "regular" }, "path": [ "global", + "icon", "color", - "favorite", - "clicked" + "regular" ], "references": [ { "type": "color", - "value": "#ffe072", + "value": "#f2f2f2", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.20}" + "value": "{color.gray.10}" }, - "name": "pf-t--global--dark--color--favorite--200", + "name": "pf-t--global--dark--icon--color--100", "attributes": { "category": "global", "type": "dark", - "item": "color", - "subitem": "favorite", - "state": "200" + "item": "icon", + "subitem": "color", + "state": "100" }, "path": [ "global", "dark", + "icon", "color", - "favorite", - "200" + "100" ], "references": [ { "type": "color", - "value": "#ffe072", + "value": "#f2f2f2", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffe072" + "value": "#f2f2f2" }, - "name": "pf-t--color--yellow--20", + "name": "pf-t--color--gray--10", "attributes": { "category": "color", - "type": "yellow", - "item": "20" + "type": "gray", + "item": "10" }, "path": [ "color", - "yellow", - "20" + "gray", + "10" ] } ] @@ -8904,107 +8757,104 @@ ] } }, - "pf-t--global--icon--color--status--success--default": { + "pf-t--global--icon--color--on-brand--subtle--hover": { "default": { - "description": "Use as the default color for text that communicates a success status.", + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "#87bb62", + "value": "#f2f2f2", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for text that communicates a success status.", + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.color.status.success.default}" + "value": "{global.icon.color.regular}" }, - "name": "pf-t--global--icon--color--status--success--default", + "name": "pf-t--global--icon--color--on-brand--subtle--hover", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "on-brand", + "state": "subtle" }, "path": [ "global", "icon", "color", - "status", - "success", - "default" + "on-brand", + "subtle", + "hover" ], "references": [ { - "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", "type": "color", - "value": "#87bb62", + "value": "#f2f2f2", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", "type": "color", - "value": "{global.dark.color.status.success.100}" + "value": "{global.dark.icon.color.100}" }, - "name": "pf-t--global--color--status--success--default", + "name": "pf-t--global--icon--color--regular", "attributes": { "category": "global", - "type": "color", - "item": "status", - "subitem": "success", - "state": "default" + "type": "icon", + "item": "color", + "subitem": "regular" }, "path": [ "global", + "icon", "color", - "status", - "success", - "default" + "regular" ], "references": [ { "type": "color", - "value": "#87bb62", + "value": "#f2f2f2", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.40}" + "value": "{color.gray.10}" }, - "name": "pf-t--global--dark--color--status--success--100", + "name": "pf-t--global--dark--icon--color--100", "attributes": { "category": "global", "type": "dark", - "item": "color", - "subitem": "status", - "state": "success" + "item": "icon", + "subitem": "color", + "state": "100" }, "path": [ "global", "dark", + "icon", "color", - "status", - "success", "100" ], "references": [ { "type": "color", - "value": "#87bb62", + "value": "#f2f2f2", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#87bb62" + "value": "#f2f2f2" }, - "name": "pf-t--color--green--40", + "name": "pf-t--color--gray--10", "attributes": { "category": "color", - "type": "green", - "item": "40" + "type": "gray", + "item": "10" }, "path": [ "color", - "green", - "40" + "gray", + "10" ] } ] @@ -9014,107 +8864,104 @@ ] } }, - "pf-t--global--icon--color--status--success--hover": { + "pf-t--global--icon--color--on-brand--subtle--clicked": { "default": { - "description": "Use as the hover state color for text that communicates a success status.", + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "#afdc8f", + "value": "#f2f2f2", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for text that communicates a success status.", + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.color.status.success.hover}" + "value": "{global.icon.color.regular}" }, - "name": "pf-t--global--icon--color--status--success--hover", + "name": "pf-t--global--icon--color--on-brand--subtle--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "on-brand", + "state": "subtle" }, "path": [ "global", "icon", "color", - "status", - "success", - "hover" + "on-brand", + "subtle", + "clicked" ], "references": [ { - "description": "Use as the hover state for any element that conveys a success status.", + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", "type": "color", - "value": "#afdc8f", + "value": "#f2f2f2", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys a success status.", + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", "type": "color", - "value": "{global.dark.color.status.success.200}" + "value": "{global.dark.icon.color.100}" }, - "name": "pf-t--global--color--status--success--hover", + "name": "pf-t--global--icon--color--regular", "attributes": { "category": "global", - "type": "color", - "item": "status", - "subitem": "success", - "state": "hover" + "type": "icon", + "item": "color", + "subitem": "regular" }, "path": [ "global", + "icon", "color", - "status", - "success", - "hover" + "regular" ], "references": [ { "type": "color", - "value": "#afdc8f", + "value": "#f2f2f2", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.30}" + "value": "{color.gray.10}" }, - "name": "pf-t--global--dark--color--status--success--200", + "name": "pf-t--global--dark--icon--color--100", "attributes": { "category": "global", "type": "dark", - "item": "color", - "subitem": "status", - "state": "success" + "item": "icon", + "subitem": "color", + "state": "100" }, "path": [ "global", "dark", + "icon", "color", - "status", - "success", - "200" + "100" ], "references": [ { "type": "color", - "value": "#afdc8f", + "value": "#f2f2f2", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#afdc8f" + "value": "#f2f2f2" }, - "name": "pf-t--color--green--30", + "name": "pf-t--color--gray--10", "attributes": { "category": "color", - "type": "green", - "item": "30" + "type": "gray", + "item": "10" }, "path": [ "color", - "green", - "30" + "gray", + "10" ] } ] @@ -9124,106 +8971,102 @@ ] } }, - "pf-t--global--icon--color--status--success--clicked": { + "pf-t--global--icon--color--favorite--default": { "default": { - "description": "Use as the clicked state color for text that communicates a success status.", + "description": "Use as the icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", "type": "color", - "value": "#afdc8f", + "value": "#ffcc17", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for text that communicates a success status.", + "description": "Use as the icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", "type": "color", - "value": "{global.color.status.success.clicked}" + "value": "{global.color.favorite.default}" }, - "name": "pf-t--global--icon--color--status--success--clicked", + "name": "pf-t--global--icon--color--favorite--default", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "favorite", + "state": "default" }, "path": [ "global", "icon", "color", - "status", - "success", - "clicked" + "favorite", + "default" ], "references": [ { - "description": "Use as the clicked state for any element that conveys a success status.", + "description": "Use as the default color for elements that have been favorited", "type": "color", - "value": "#afdc8f", + "value": "#ffcc17", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys a success status.", + "description": "Use as the default color for elements that have been favorited", "type": "color", - "value": "{global.dark.color.status.success.200}" + "value": "{global.dark.color.favorite.100}" }, - "name": "pf-t--global--color--status--success--clicked", + "name": "pf-t--global--color--favorite--default", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "clicked" + "item": "favorite", + "subitem": "default" }, "path": [ "global", "color", - "status", - "success", - "clicked" + "favorite", + "default" ], "references": [ { "type": "color", - "value": "#afdc8f", + "value": "#ffcc17", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.30}" + "value": "{color.yellow.30}" }, - "name": "pf-t--global--dark--color--status--success--200", + "name": "pf-t--global--dark--color--favorite--100", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "favorite", + "state": "100" }, "path": [ "global", "dark", "color", - "status", - "success", - "200" + "favorite", + "100" ], "references": [ { "type": "color", - "value": "#afdc8f", + "value": "#ffcc17", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#afdc8f" + "value": "#ffcc17" }, - "name": "pf-t--color--green--30", + "name": "pf-t--color--yellow--30", "attributes": { "category": "color", - "type": "green", + "type": "yellow", "item": "30" }, "path": [ "color", - "green", + "yellow", "30" ] } @@ -9234,104 +9077,103 @@ ] } }, - "pf-t--global--icon--color--status--on-success--default": { + "pf-t--global--icon--color--favorite--hover": { "default": { - "description": "Use as the default color for icons that are placed on a success background color and/or are paired with on-success colored text", + "description": "Use as the hover state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", "type": "color", - "value": "#1f1f1f", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that are placed on a success background color and/or are paired with on-success colored text", + "description": "Use as the hover state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.color.favorite.hover}" }, - "name": "pf-t--global--icon--color--status--on-success--default", + "name": "pf-t--global--icon--color--favorite--hover", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "status", - "state": "on-success" + "subitem": "favorite", + "state": "hover" }, "path": [ "global", "icon", "color", - "status", - "on-success", - "default" + "favorite", + "hover" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the hover state for elements that have been favorited", "type": "color", - "value": "#1f1f1f", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the hover state for elements that have been favorited", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{global.dark.color.favorite.200}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--color--favorite--hover", "attributes": { "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" + "type": "color", + "item": "favorite", + "subitem": "hover" }, "path": [ "global", - "icon", "color", - "inverse" + "favorite", + "hover" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "{color.yellow.20}" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--global--dark--color--favorite--200", "attributes": { "category": "global", "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "item": "color", + "subitem": "favorite", + "state": "200" }, "path": [ "global", "dark", - "icon", "color", - "300" + "favorite", + "200" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "#ffe072" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--color--yellow--20", "attributes": { "category": "color", - "type": "gray", - "item": "90" + "type": "yellow", + "item": "20" }, "path": [ "color", - "gray", - "90" + "yellow", + "20" ] } ] @@ -9341,104 +9183,103 @@ ] } }, - "pf-t--global--icon--color--status--on-success--hover": { + "pf-t--global--icon--color--favorite--clicked": { "default": { - "description": "Use as the hover state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "description": "Use as the clicked state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", "type": "color", - "value": "#1f1f1f", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "description": "Use as the clicked state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.color.favorite.clicked}" }, - "name": "pf-t--global--icon--color--status--on-success--hover", + "name": "pf-t--global--icon--color--favorite--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "status", - "state": "on-success" + "subitem": "favorite", + "state": "clicked" }, "path": [ "global", "icon", "color", - "status", - "on-success", - "hover" + "favorite", + "clicked" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the clicked state for elements that have been favorited", "type": "color", - "value": "#1f1f1f", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the clicked state for elements that have been favorited", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{global.dark.color.favorite.200}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--color--favorite--clicked", "attributes": { "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" + "type": "color", + "item": "favorite", + "subitem": "clicked" }, "path": [ "global", - "icon", "color", - "inverse" + "favorite", + "clicked" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "{color.yellow.20}" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--global--dark--color--favorite--200", "attributes": { "category": "global", "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "item": "color", + "subitem": "favorite", + "state": "200" }, "path": [ "global", "dark", - "icon", "color", - "300" + "favorite", + "200" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "#ffe072" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--color--yellow--20", "attributes": { "category": "color", - "type": "gray", - "item": "90" + "type": "yellow", + "item": "20" }, "path": [ "color", - "gray", - "90" + "yellow", + "20" ] } ] @@ -9448,104 +9289,107 @@ ] } }, - "pf-t--global--icon--color--status--on-success--clicked": { + "pf-t--global--icon--color--status--success--default": { "default": { - "description": "Use as the clicked state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "description": "Use as the default color for text that communicates a success status.", "type": "color", - "value": "#1f1f1f", + "value": "#87bb62", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "description": "Use as the default color for text that communicates a success status.", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.color.status.success.default}" }, - "name": "pf-t--global--icon--color--status--on-success--clicked", + "name": "pf-t--global--icon--color--status--success--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-success" + "state": "success" }, "path": [ "global", "icon", "color", "status", - "on-success", - "clicked" + "success", + "default" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", "type": "color", - "value": "#1f1f1f", + "value": "#87bb62", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{global.dark.color.status.success.100}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--color--status--success--default", "attributes": { "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" + "type": "color", + "item": "status", + "subitem": "success", + "state": "default" }, "path": [ "global", - "icon", "color", - "inverse" + "status", + "success", + "default" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#87bb62", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "{color.green.40}" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--global--dark--color--status--success--100", "attributes": { "category": "global", "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "item": "color", + "subitem": "status", + "state": "success" }, "path": [ "global", "dark", - "icon", "color", - "300" + "status", + "success", + "100" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#87bb62", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "#87bb62" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--color--green--40", "attributes": { "category": "color", - "type": "gray", - "item": "90" + "type": "green", + "item": "40" }, "path": [ "color", - "gray", - "90" + "green", + "40" ] } ] @@ -9555,217 +9399,107 @@ ] } }, - "pf-t--global--icon--color--status--warning--default": { + "pf-t--global--icon--color--status--success--hover": { "default": { - "description": "Use as the default color for text that communicates a warning status.", + "description": "Use as the hover state color for text that communicates a success status.", "type": "color", - "value": "#ffcc17", + "value": "#afdc8f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for text that communicates a warning status.", + "description": "Use as the hover state color for text that communicates a success status.", "type": "color", - "value": "{global.color.status.warning.default}" + "value": "{global.color.status.success.hover}" }, - "name": "pf-t--global--icon--color--status--warning--default", + "name": "pf-t--global--icon--color--status--success--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "warning" + "state": "success" }, "path": [ "global", "icon", "color", "status", - "warning", - "default" - ], - "references": [ - { - "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", - "type": "color", - "value": "#ffcc17", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", - "isSource": true, - "original": { - "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", - "type": "color", - "value": "{global.dark.color.status.warning.100}" - }, - "name": "pf-t--global--color--status--warning--default", - "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "warning", - "state": "default" - }, - "path": [ - "global", - "color", - "status", - "warning", - "default" - ], - "references": [ - { - "type": "color", - "value": "#ffcc17", - "filePath": "tokens/default/glass-dark/base.dark.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.yellow.30}" - }, - "name": "pf-t--global--dark--color--status--warning--100", - "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "status", - "state": "warning" - }, - "path": [ - "global", - "dark", - "color", - "status", - "warning", - "100" - ], - "references": [ - { - "type": "color", - "value": "#ffcc17", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#ffcc17" - }, - "name": "pf-t--color--yellow--30", - "attributes": { - "category": "color", - "type": "yellow", - "item": "30" - }, - "path": [ - "color", - "yellow", - "30" - ] - } - ] - } - ] - } - ] - } - }, - "pf-t--global--icon--color--status--warning--hover": { - "default": { - "description": "Use as the hover state color for text that communicates a warning status.", - "type": "color", - "value": "#ffe072", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", - "isSource": true, - "original": { - "description": "Use as the hover state color for text that communicates a warning status.", - "type": "color", - "value": "{global.color.status.warning.hover}" - }, - "name": "pf-t--global--icon--color--status--warning--hover", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "status", - "state": "warning" - }, - "path": [ - "global", - "icon", - "color", - "status", - "warning", + "success", "hover" ], "references": [ { - "description": "Use as the hover state for any element that conveys a warning status.", + "description": "Use as the hover state for any element that conveys a success status.", "type": "color", - "value": "#ffe072", + "value": "#afdc8f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys a warning status.", + "description": "Use as the hover state for any element that conveys a success status.", "type": "color", - "value": "{global.dark.color.status.warning.200}" + "value": "{global.dark.color.status.success.200}" }, - "name": "pf-t--global--color--status--warning--hover", + "name": "pf-t--global--color--status--success--hover", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "warning", + "subitem": "success", "state": "hover" }, "path": [ "global", "color", "status", - "warning", + "success", "hover" ], "references": [ { "type": "color", - "value": "#ffe072", + "value": "#afdc8f", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.20}" + "value": "{color.green.30}" }, - "name": "pf-t--global--dark--color--status--warning--200", + "name": "pf-t--global--dark--color--status--success--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "warning" + "state": "success" }, "path": [ "global", "dark", "color", "status", - "warning", + "success", "200" ], "references": [ { "type": "color", - "value": "#ffe072", + "value": "#afdc8f", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffe072" + "value": "#afdc8f" }, - "name": "pf-t--color--yellow--20", + "name": "pf-t--color--green--30", "attributes": { "category": "color", - "type": "yellow", - "item": "20" + "type": "green", + "item": "30" }, "path": [ "color", - "yellow", - "20" + "green", + "30" ] } ] @@ -9775,107 +9509,107 @@ ] } }, - "pf-t--global--icon--color--status--warning--clicked": { + "pf-t--global--icon--color--status--success--clicked": { "default": { - "description": "Use as the clicked state color for text that communicates a warning status.", + "description": "Use as the clicked state color for text that communicates a success status.", "type": "color", - "value": "#ffe072", + "value": "#afdc8f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for text that communicates a warning status.", + "description": "Use as the clicked state color for text that communicates a success status.", "type": "color", - "value": "{global.color.status.warning.clicked}" + "value": "{global.color.status.success.clicked}" }, - "name": "pf-t--global--icon--color--status--warning--clicked", + "name": "pf-t--global--icon--color--status--success--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "warning" + "state": "success" }, "path": [ "global", "icon", "color", "status", - "warning", + "success", "clicked" ], "references": [ { - "description": "Use as the clicked state for any element that conveys a warning status.", + "description": "Use as the clicked state for any element that conveys a success status.", "type": "color", - "value": "#ffe072", + "value": "#afdc8f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys a warning status.", + "description": "Use as the clicked state for any element that conveys a success status.", "type": "color", - "value": "{global.dark.color.status.warning.200}" + "value": "{global.dark.color.status.success.200}" }, - "name": "pf-t--global--color--status--warning--clicked", + "name": "pf-t--global--color--status--success--clicked", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "warning", + "subitem": "success", "state": "clicked" }, "path": [ "global", "color", "status", - "warning", + "success", "clicked" ], "references": [ { "type": "color", - "value": "#ffe072", + "value": "#afdc8f", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.20}" + "value": "{color.green.30}" }, - "name": "pf-t--global--dark--color--status--warning--200", + "name": "pf-t--global--dark--color--status--success--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "warning" + "state": "success" }, "path": [ "global", "dark", "color", "status", - "warning", + "success", "200" ], "references": [ { "type": "color", - "value": "#ffe072", + "value": "#afdc8f", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffe072" + "value": "#afdc8f" }, - "name": "pf-t--color--yellow--20", + "name": "pf-t--color--green--30", "attributes": { "category": "color", - "type": "yellow", - "item": "20" + "type": "green", + "item": "30" }, "path": [ "color", - "yellow", - "20" + "green", + "30" ] } ] @@ -9885,32 +9619,32 @@ ] } }, - "pf-t--global--icon--color--status--on-warning--default": { + "pf-t--global--icon--color--status--on-success--default": { "default": { - "description": "Use as the default color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "description": "Use as the default color for icons that are placed on a success background color and/or are paired with on-success colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "description": "Use as the default color for icons that are placed on a success background color and/or are paired with on-success colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-warning--default", + "name": "pf-t--global--icon--color--status--on-success--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-warning" + "state": "on-success" }, "path": [ "global", "icon", "color", "status", - "on-warning", + "on-success", "default" ], "references": [ @@ -9992,32 +9726,32 @@ ] } }, - "pf-t--global--icon--color--status--on-warning--hover": { + "pf-t--global--icon--color--status--on-success--hover": { "default": { - "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "description": "Use as the hover state color for icons that are placed on a success background color and/or are paired with on-success colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "description": "Use as the hover state color for icons that are placed on a success background color and/or are paired with on-success colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-warning--hover", + "name": "pf-t--global--icon--color--status--on-success--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-warning" + "state": "on-success" }, "path": [ "global", "icon", "color", "status", - "on-warning", + "on-success", "hover" ], "references": [ @@ -10099,32 +9833,32 @@ ] } }, - "pf-t--global--icon--color--status--on-warning--clicked": { + "pf-t--global--icon--color--status--on-success--clicked": { "default": { - "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "description": "Use as the clicked state color for icons that are placed on a success background color and/or are paired with on-success colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "description": "Use as the clicked state color for icons that are placed on a success background color and/or are paired with on-success colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-warning--clicked", + "name": "pf-t--global--icon--color--status--on-success--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-warning" + "state": "on-success" }, "path": [ "global", "icon", "color", "status", - "on-warning", + "on-success", "clicked" ], "references": [ @@ -10206,107 +9940,107 @@ ] } }, - "pf-t--global--icon--color--status--danger--default": { + "pf-t--global--icon--color--status--warning--default": { "default": { - "description": "Use as the default color for icons that convey danger, like in alerts or banners.", + "description": "Use as the default color for text that communicates a warning status.", "type": "color", - "value": "#f0561d", + "value": "#ffcc17", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that convey danger, like in alerts or banners.", + "description": "Use as the default color for text that communicates a warning status.", "type": "color", - "value": "{global.color.status.danger.default}" + "value": "{global.color.status.warning.default}" }, - "name": "pf-t--global--icon--color--status--danger--default", + "name": "pf-t--global--icon--color--status--warning--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "danger" + "state": "warning" }, "path": [ "global", "icon", "color", "status", - "danger", + "warning", "default" ], "references": [ { - "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", "type": "color", - "value": "#f0561d", + "value": "#ffcc17", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", "type": "color", - "value": "{global.dark.color.status.danger.100}" + "value": "{global.dark.color.status.warning.100}" }, - "name": "pf-t--global--color--status--danger--default", + "name": "pf-t--global--color--status--warning--default", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "danger", + "subitem": "warning", "state": "default" }, "path": [ "global", "color", "status", - "danger", + "warning", "default" ], "references": [ { "type": "color", - "value": "#f0561d", + "value": "#ffcc17", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.50}" + "value": "{color.yellow.30}" }, - "name": "pf-t--global--dark--color--status--danger--100", + "name": "pf-t--global--dark--color--status--warning--100", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "danger" + "state": "warning" }, "path": [ "global", "dark", "color", "status", - "danger", + "warning", "100" ], "references": [ { "type": "color", - "value": "#f0561d", + "value": "#ffcc17", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f0561d" + "value": "#ffcc17" }, - "name": "pf-t--color--red-orange--50", + "name": "pf-t--color--yellow--30", "attributes": { "category": "color", - "type": "red-orange", - "item": "50" + "type": "yellow", + "item": "30" }, "path": [ "color", - "red-orange", - "50" + "yellow", + "30" ] } ] @@ -10316,107 +10050,107 @@ ] } }, - "pf-t--global--icon--color--status--danger--hover": { + "pf-t--global--icon--color--status--warning--hover": { "default": { - "description": "Use as the hover state for icons that indicate danger.", + "description": "Use as the hover state color for text that communicates a warning status.", "type": "color", - "value": "#f4784a", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for icons that indicate danger.", + "description": "Use as the hover state color for text that communicates a warning status.", "type": "color", - "value": "{global.color.status.danger.hover}" + "value": "{global.color.status.warning.hover}" }, - "name": "pf-t--global--icon--color--status--danger--hover", + "name": "pf-t--global--icon--color--status--warning--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "danger" + "state": "warning" }, "path": [ "global", "icon", "color", "status", - "danger", + "warning", "hover" ], "references": [ { - "description": "Use as the hover state for any element that conveys a danger status.", + "description": "Use as the hover state for any element that conveys a warning status.", "type": "color", - "value": "#f4784a", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys a danger status.", + "description": "Use as the hover state for any element that conveys a warning status.", "type": "color", - "value": "{global.dark.color.status.danger.200}" + "value": "{global.dark.color.status.warning.200}" }, - "name": "pf-t--global--color--status--danger--hover", + "name": "pf-t--global--color--status--warning--hover", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "danger", + "subitem": "warning", "state": "hover" }, "path": [ "global", "color", "status", - "danger", + "warning", "hover" ], "references": [ { "type": "color", - "value": "#f4784a", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.40}" + "value": "{color.yellow.20}" }, - "name": "pf-t--global--dark--color--status--danger--200", + "name": "pf-t--global--dark--color--status--warning--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "danger" + "state": "warning" }, "path": [ "global", "dark", "color", "status", - "danger", + "warning", "200" ], "references": [ { "type": "color", - "value": "#f4784a", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f4784a" + "value": "#ffe072" }, - "name": "pf-t--color--red-orange--40", + "name": "pf-t--color--yellow--20", "attributes": { "category": "color", - "type": "red-orange", - "item": "40" + "type": "yellow", + "item": "20" }, "path": [ "color", - "red-orange", - "40" + "yellow", + "20" ] } ] @@ -10426,107 +10160,107 @@ ] } }, - "pf-t--global--icon--color--status--danger--clicked": { + "pf-t--global--icon--color--status--warning--clicked": { "default": { - "description": "Use as the clicked state for icons that indicate danger.", + "description": "Use as the clicked state color for text that communicates a warning status.", "type": "color", - "value": "#f4784a", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for icons that indicate danger.", + "description": "Use as the clicked state color for text that communicates a warning status.", "type": "color", - "value": "{global.color.status.danger.clicked}" + "value": "{global.color.status.warning.clicked}" }, - "name": "pf-t--global--icon--color--status--danger--clicked", + "name": "pf-t--global--icon--color--status--warning--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "danger" + "state": "warning" }, "path": [ "global", "icon", "color", "status", - "danger", + "warning", "clicked" ], "references": [ { - "description": "Use as the clicked state for any element that conveys a danger status.", + "description": "Use as the clicked state for any element that conveys a warning status.", "type": "color", - "value": "#f4784a", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys a danger status.", + "description": "Use as the clicked state for any element that conveys a warning status.", "type": "color", - "value": "{global.dark.color.status.danger.200}" + "value": "{global.dark.color.status.warning.200}" }, - "name": "pf-t--global--color--status--danger--clicked", + "name": "pf-t--global--color--status--warning--clicked", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "danger", + "subitem": "warning", "state": "clicked" }, "path": [ "global", "color", "status", - "danger", + "warning", "clicked" ], "references": [ { "type": "color", - "value": "#f4784a", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.40}" + "value": "{color.yellow.20}" }, - "name": "pf-t--global--dark--color--status--danger--200", + "name": "pf-t--global--dark--color--status--warning--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "danger" + "state": "warning" }, "path": [ "global", "dark", "color", "status", - "danger", + "warning", "200" ], "references": [ { "type": "color", - "value": "#f4784a", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f4784a" + "value": "#ffe072" }, - "name": "pf-t--color--red-orange--40", + "name": "pf-t--color--yellow--20", "attributes": { "category": "color", - "type": "red-orange", - "item": "40" + "type": "yellow", + "item": "20" }, "path": [ "color", - "red-orange", - "40" + "yellow", + "20" ] } ] @@ -10536,32 +10270,32 @@ ] } }, - "pf-t--global--icon--color--status--on-danger--default": { + "pf-t--global--icon--color--status--on-warning--default": { "default": { - "description": "Use as the default color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "description": "Use as the default color for icons that are placed on a warning background color and/or are paired with on-warning colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "description": "Use as the default color for icons that are placed on a warning background color and/or are paired with on-warning colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-danger--default", + "name": "pf-t--global--icon--color--status--on-warning--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-danger" + "state": "on-warning" }, "path": [ "global", "icon", "color", "status", - "on-danger", + "on-warning", "default" ], "references": [ @@ -10643,32 +10377,32 @@ ] } }, - "pf-t--global--icon--color--status--on-danger--hover": { + "pf-t--global--icon--color--status--on-warning--hover": { "default": { - "description": "Use as the hover state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-danger--hover", + "name": "pf-t--global--icon--color--status--on-warning--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-danger" + "state": "on-warning" }, "path": [ "global", "icon", "color", "status", - "on-danger", + "on-warning", "hover" ], "references": [ @@ -10750,32 +10484,32 @@ ] } }, - "pf-t--global--icon--color--status--on-danger--clicked": { + "pf-t--global--icon--color--status--on-warning--clicked": { "default": { - "description": "Use as the clicked state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-danger--clicked", + "name": "pf-t--global--icon--color--status--on-warning--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-danger" + "state": "on-warning" }, "path": [ "global", "icon", "color", "status", - "on-danger", + "on-warning", "clicked" ], "references": [ @@ -10857,107 +10591,107 @@ ] } }, - "pf-t--global--icon--color--status--info--default": { + "pf-t--global--icon--color--status--danger--default": { "default": { - "description": "Use as the default color for icons that identify informational messages, like in alerts or banners.", + "description": "Use as the default color for icons that convey danger, like in alerts or banners.", "type": "color", - "value": "#b6a6e9", + "value": "#f0561d", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that identify informational messages, like in alerts or banners.", + "description": "Use as the default color for icons that convey danger, like in alerts or banners.", "type": "color", - "value": "{global.color.status.info.default}" + "value": "{global.color.status.danger.default}" }, - "name": "pf-t--global--icon--color--status--info--default", + "name": "pf-t--global--icon--color--status--danger--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "info" + "state": "danger" }, "path": [ "global", "icon", "color", "status", - "info", + "danger", "default" ], "references": [ { - "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "#b6a6e9", + "value": "#f0561d", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "{global.dark.color.status.info.100}" + "value": "{global.dark.color.status.danger.100}" }, - "name": "pf-t--global--color--status--info--default", + "name": "pf-t--global--color--status--danger--default", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", + "subitem": "danger", "state": "default" }, "path": [ "global", "color", "status", - "info", + "danger", "default" ], "references": [ { "type": "color", - "value": "#b6a6e9", + "value": "#f0561d", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.30}" + "value": "{color.red-orange.50}" }, - "name": "pf-t--global--dark--color--status--info--100", + "name": "pf-t--global--dark--color--status--danger--100", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "info" + "state": "danger" }, "path": [ "global", "dark", "color", "status", - "info", + "danger", "100" ], "references": [ { "type": "color", - "value": "#b6a6e9", + "value": "#f0561d", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b6a6e9" + "value": "#f0561d" }, - "name": "pf-t--color--purple--30", + "name": "pf-t--color--red-orange--50", "attributes": { "category": "color", - "type": "purple", - "item": "30" + "type": "red-orange", + "item": "50" }, "path": [ "color", - "purple", - "30" + "red-orange", + "50" ] } ] @@ -10967,107 +10701,107 @@ ] } }, - "pf-t--global--icon--color--status--info--hover": { + "pf-t--global--icon--color--status--danger--hover": { "default": { - "description": "Use as the hover state for icons that identify informational messages.", + "description": "Use as the hover state for icons that indicate danger.", "type": "color", - "value": "#d0c5f4", + "value": "#f4784a", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for icons that identify informational messages.", + "description": "Use as the hover state for icons that indicate danger.", "type": "color", - "value": "{global.color.status.info.hover}" + "value": "{global.color.status.danger.hover}" }, - "name": "pf-t--global--icon--color--status--info--hover", + "name": "pf-t--global--icon--color--status--danger--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "info" + "state": "danger" }, "path": [ "global", "icon", "color", "status", - "info", + "danger", "hover" ], "references": [ { - "description": "Use as the hover state for any element that conveys an info status.", + "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "#d0c5f4", + "value": "#f4784a", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys an info status.", + "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "{global.dark.color.status.info.200}" + "value": "{global.dark.color.status.danger.200}" }, - "name": "pf-t--global--color--status--info--hover", + "name": "pf-t--global--color--status--danger--hover", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", + "subitem": "danger", "state": "hover" }, "path": [ "global", "color", "status", - "info", + "danger", "hover" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#f4784a", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.20}" + "value": "{color.red-orange.40}" }, - "name": "pf-t--global--dark--color--status--info--200", + "name": "pf-t--global--dark--color--status--danger--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "info" + "state": "danger" }, "path": [ "global", "dark", "color", "status", - "info", + "danger", "200" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#f4784a", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#d0c5f4" + "value": "#f4784a" }, - "name": "pf-t--color--purple--20", + "name": "pf-t--color--red-orange--40", "attributes": { "category": "color", - "type": "purple", - "item": "20" + "type": "red-orange", + "item": "40" }, "path": [ "color", - "purple", - "20" + "red-orange", + "40" ] } ] @@ -11077,107 +10811,107 @@ ] } }, - "pf-t--global--icon--color--status--info--clicked": { + "pf-t--global--icon--color--status--danger--clicked": { "default": { - "description": "Use as the clicked state for icons that identify informational messages.", + "description": "Use as the clicked state for icons that indicate danger.", "type": "color", - "value": "#d0c5f4", + "value": "#f4784a", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for icons that identify informational messages.", + "description": "Use as the clicked state for icons that indicate danger.", "type": "color", - "value": "{global.color.status.info.clicked}" + "value": "{global.color.status.danger.clicked}" }, - "name": "pf-t--global--icon--color--status--info--clicked", + "name": "pf-t--global--icon--color--status--danger--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "info" + "state": "danger" }, "path": [ "global", "icon", "color", "status", - "info", + "danger", "clicked" ], "references": [ { - "description": "Use as the clicked state for any element that conveys an info status.", + "description": "Use as the clicked state for any element that conveys a danger status.", "type": "color", - "value": "#d0c5f4", + "value": "#f4784a", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys an info status.", + "description": "Use as the clicked state for any element that conveys a danger status.", "type": "color", - "value": "{global.dark.color.status.info.200}" + "value": "{global.dark.color.status.danger.200}" }, - "name": "pf-t--global--color--status--info--clicked", + "name": "pf-t--global--color--status--danger--clicked", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", + "subitem": "danger", "state": "clicked" }, "path": [ "global", "color", "status", - "info", + "danger", "clicked" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#f4784a", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.20}" + "value": "{color.red-orange.40}" }, - "name": "pf-t--global--dark--color--status--info--200", + "name": "pf-t--global--dark--color--status--danger--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "info" + "state": "danger" }, "path": [ "global", "dark", "color", "status", - "info", + "danger", "200" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#f4784a", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#d0c5f4" + "value": "#f4784a" }, - "name": "pf-t--color--purple--20", + "name": "pf-t--color--red-orange--40", "attributes": { "category": "color", - "type": "purple", - "item": "20" + "type": "red-orange", + "item": "40" }, "path": [ "color", - "purple", - "20" + "red-orange", + "40" ] } ] @@ -11187,32 +10921,32 @@ ] } }, - "pf-t--global--icon--color--status--on-info--default": { + "pf-t--global--icon--color--status--on-danger--default": { "default": { - "description": "Use as the default color for icons that are placed on an info background color and/or are paired with on-info colored text", + "description": "Use as the default color for icons that are placed on a danger background color and/or are paired with on-danger colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that are placed on an info background color and/or are paired with on-info colored text", + "description": "Use as the default color for icons that are placed on a danger background color and/or are paired with on-danger colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-info--default", + "name": "pf-t--global--icon--color--status--on-danger--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-info" + "state": "on-danger" }, "path": [ "global", "icon", "color", "status", - "on-info", + "on-danger", "default" ], "references": [ @@ -11294,32 +11028,32 @@ ] } }, - "pf-t--global--icon--color--status--on-info--hover": { + "pf-t--global--icon--color--status--on-danger--hover": { "default": { - "description": "Use as the hover state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "description": "Use as the hover state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "description": "Use as the hover state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-info--hover", + "name": "pf-t--global--icon--color--status--on-danger--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-info" + "state": "on-danger" }, "path": [ "global", "icon", "color", "status", - "on-info", + "on-danger", "hover" ], "references": [ @@ -11401,32 +11135,32 @@ ] } }, - "pf-t--global--icon--color--status--on-info--clicked": { + "pf-t--global--icon--color--status--on-danger--clicked": { "default": { - "description": "Use as the clicked state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "description": "Use as the clicked state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "description": "Use as the clicked state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-info--clicked", + "name": "pf-t--global--icon--color--status--on-danger--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-info" + "state": "on-danger" }, "path": [ "global", "icon", "color", "status", - "on-info", + "on-danger", "clicked" ], "references": [ @@ -11508,107 +11242,107 @@ ] } }, - "pf-t--global--icon--color--status--custom--default": { + "pf-t--global--icon--color--status--info--default": { "default": { - "description": "Use as the default color for icons that convey generic status with no associated severity. This color can be customized.", + "description": "Use as the default color for icons that identify informational messages, like in alerts or banners.", "type": "color", - "value": "#63bdbd", + "value": "#b6a6e9", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that convey generic status with no associated severity. This color can be customized.", + "description": "Use as the default color for icons that identify informational messages, like in alerts or banners.", "type": "color", - "value": "{global.color.status.custom.default}" + "value": "{global.color.status.info.default}" }, - "name": "pf-t--global--icon--color--status--custom--default", + "name": "pf-t--global--icon--color--status--info--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "custom" + "state": "info" }, "path": [ "global", "icon", "color", "status", - "custom", + "info", "default" ], "references": [ { - "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "#63bdbd", + "value": "#b6a6e9", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "{global.dark.color.status.custom.100}" + "value": "{global.dark.color.status.info.100}" }, - "name": "pf-t--global--color--status--custom--default", + "name": "pf-t--global--color--status--info--default", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", + "subitem": "info", "state": "default" }, "path": [ "global", "color", "status", - "custom", + "info", "default" ], "references": [ { "type": "color", - "value": "#63bdbd", + "value": "#b6a6e9", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.40}" + "value": "{color.purple.30}" }, - "name": "pf-t--global--dark--color--status--custom--100", + "name": "pf-t--global--dark--color--status--info--100", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "custom" + "state": "info" }, "path": [ "global", "dark", "color", "status", - "custom", + "info", "100" ], "references": [ { "type": "color", - "value": "#63bdbd", + "value": "#b6a6e9", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#63bdbd" + "value": "#b6a6e9" }, - "name": "pf-t--color--teal--40", + "name": "pf-t--color--purple--30", "attributes": { "category": "color", - "type": "teal", - "item": "40" + "type": "purple", + "item": "30" }, "path": [ "color", - "teal", - "40" + "purple", + "30" ] } ] @@ -11618,107 +11352,107 @@ ] } }, - "pf-t--global--icon--color--status--custom--hover": { + "pf-t--global--icon--color--status--info--hover": { "default": { - "description": "Use as the hover state for icons that convey generic status with no associated severity.", + "description": "Use as the hover state for icons that identify informational messages.", "type": "color", - "value": "#9ad8d8", + "value": "#d0c5f4", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for icons that convey generic status with no associated severity.", + "description": "Use as the hover state for icons that identify informational messages.", "type": "color", - "value": "{global.color.status.custom.hover}" + "value": "{global.color.status.info.hover}" }, - "name": "pf-t--global--icon--color--status--custom--hover", + "name": "pf-t--global--icon--color--status--info--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "custom" + "state": "info" }, "path": [ "global", "icon", "color", "status", - "custom", + "info", "hover" ], "references": [ { - "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "#9ad8d8", + "value": "#d0c5f4", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "{global.dark.color.status.custom.200}" + "value": "{global.dark.color.status.info.200}" }, - "name": "pf-t--global--color--status--custom--hover", + "name": "pf-t--global--color--status--info--hover", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", + "subitem": "info", "state": "hover" }, "path": [ "global", "color", "status", - "custom", + "info", "hover" ], "references": [ { "type": "color", - "value": "#9ad8d8", + "value": "#d0c5f4", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.30}" + "value": "{color.purple.20}" }, - "name": "pf-t--global--dark--color--status--custom--200", + "name": "pf-t--global--dark--color--status--info--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "custom" + "state": "info" }, "path": [ "global", "dark", "color", "status", - "custom", + "info", "200" ], "references": [ { "type": "color", - "value": "#9ad8d8", + "value": "#d0c5f4", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#9ad8d8" + "value": "#d0c5f4" }, - "name": "pf-t--color--teal--30", + "name": "pf-t--color--purple--20", "attributes": { "category": "color", - "type": "teal", - "item": "30" + "type": "purple", + "item": "20" }, "path": [ "color", - "teal", - "30" + "purple", + "20" ] } ] @@ -11728,107 +11462,107 @@ ] } }, - "pf-t--global--icon--color--status--custom--clicked": { + "pf-t--global--icon--color--status--info--clicked": { "default": { - "description": "Use as the clicked state for icons that convey generic status with no associated severity.", + "description": "Use as the clicked state for icons that identify informational messages.", "type": "color", - "value": "#9ad8d8", + "value": "#d0c5f4", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for icons that convey generic status with no associated severity.", + "description": "Use as the clicked state for icons that identify informational messages.", "type": "color", - "value": "{global.color.status.custom.clicked}" + "value": "{global.color.status.info.clicked}" }, - "name": "pf-t--global--icon--color--status--custom--clicked", + "name": "pf-t--global--icon--color--status--info--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "custom" + "state": "info" }, "path": [ "global", "icon", "color", "status", - "custom", + "info", "clicked" ], "references": [ { - "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "#9ad8d8", + "value": "#d0c5f4", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "{global.dark.color.status.custom.200}" + "value": "{global.dark.color.status.info.200}" }, - "name": "pf-t--global--color--status--custom--clicked", + "name": "pf-t--global--color--status--info--clicked", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", + "subitem": "info", "state": "clicked" }, "path": [ "global", "color", "status", - "custom", + "info", "clicked" ], "references": [ { "type": "color", - "value": "#9ad8d8", + "value": "#d0c5f4", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.30}" + "value": "{color.purple.20}" }, - "name": "pf-t--global--dark--color--status--custom--200", + "name": "pf-t--global--dark--color--status--info--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "custom" + "state": "info" }, "path": [ "global", "dark", "color", "status", - "custom", + "info", "200" ], "references": [ { "type": "color", - "value": "#9ad8d8", + "value": "#d0c5f4", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#9ad8d8" + "value": "#d0c5f4" }, - "name": "pf-t--color--teal--30", + "name": "pf-t--color--purple--20", "attributes": { "category": "color", - "type": "teal", - "item": "30" + "type": "purple", + "item": "20" }, "path": [ "color", - "teal", - "30" + "purple", + "20" ] } ] @@ -11838,32 +11572,32 @@ ] } }, - "pf-t--global--icon--color--status--on-custom--default": { + "pf-t--global--icon--color--status--on-info--default": { "default": { - "description": "Use as the default color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status color, make sure that this token meets contrast requirements with your new custom status color.", + "description": "Use as the default color for icons that are placed on an info background color and/or are paired with on-info colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status color, make sure that this token meets contrast requirements with your new custom status color.", + "description": "Use as the default color for icons that are placed on an info background color and/or are paired with on-info colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-custom--default", + "name": "pf-t--global--icon--color--status--on-info--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-custom" + "state": "on-info" }, "path": [ "global", "icon", "color", "status", - "on-custom", + "on-info", "default" ], "references": [ @@ -11945,32 +11679,32 @@ ] } }, - "pf-t--global--icon--color--status--on-custom--hover": { + "pf-t--global--icon--color--status--on-info--hover": { "default": { - "description": "Use as the hover state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status hover color, make sure that this token meets contrast requirements with your new custom status hover color.", + "description": "Use as the hover state color for icons that are placed on an info background color and/or are paired with on-info colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status hover color, make sure that this token meets contrast requirements with your new custom status hover color.", + "description": "Use as the hover state color for icons that are placed on an info background color and/or are paired with on-info colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-custom--hover", + "name": "pf-t--global--icon--color--status--on-info--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-custom" + "state": "on-info" }, "path": [ "global", "icon", "color", "status", - "on-custom", + "on-info", "hover" ], "references": [ @@ -12052,32 +11786,32 @@ ] } }, - "pf-t--global--icon--color--status--on-custom--clicked": { + "pf-t--global--icon--color--status--on-info--clicked": { "default": { - "description": "Use as the clicked state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status clicked color, make sure that this token meets contrast requirements with your new custom status clicked color.", + "description": "Use as the clicked state color for icons that are placed on an info background color and/or are paired with on-info colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status clicked color, make sure that this token meets contrast requirements with your new custom status clicked color.", + "description": "Use as the clicked state color for icons that are placed on an info background color and/or are paired with on-info colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-custom--clicked", + "name": "pf-t--global--icon--color--status--on-info--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-custom" + "state": "on-info" }, "path": [ "global", "icon", "color", "status", - "on-custom", + "on-info", "clicked" ], "references": [ @@ -12159,105 +11893,107 @@ ] } }, - "pf-t--global--icon--color--status--unread--on-default--default": { + "pf-t--global--icon--color--status--custom--default": { "default": { - "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "description": "Use as the default color for icons that convey generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#1f1f1f", + "value": "#63bdbd", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "description": "Use as the default color for icons that convey generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.color.status.custom.default}" }, - "name": "pf-t--global--icon--color--status--unread--on-default--default", + "name": "pf-t--global--icon--color--status--custom--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "unread" + "state": "custom" }, "path": [ "global", "icon", "color", "status", - "unread", - "on-default", + "custom", "default" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#1f1f1f", + "value": "#63bdbd", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{global.dark.color.status.custom.100}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--color--status--custom--default", "attributes": { "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" }, "path": [ "global", - "icon", "color", - "inverse" + "status", + "custom", + "default" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#63bdbd", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "{color.teal.40}" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--global--dark--color--status--custom--100", "attributes": { "category": "global", "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "item": "color", + "subitem": "status", + "state": "custom" }, "path": [ "global", "dark", - "icon", "color", - "300" + "status", + "custom", + "100" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#63bdbd", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "#63bdbd" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--color--teal--40", "attributes": { "category": "color", - "type": "gray", - "item": "90" + "type": "teal", + "item": "40" }, "path": [ "color", - "gray", - "90" + "teal", + "40" ] } ] @@ -12267,105 +12003,107 @@ ] } }, - "pf-t--global--icon--color--status--unread--on-default--hover": { + "pf-t--global--icon--color--status--custom--hover": { "default": { - "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "description": "Use as the hover state for icons that convey generic status with no associated severity.", "type": "color", - "value": "#1f1f1f", + "value": "#9ad8d8", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "description": "Use as the hover state for icons that convey generic status with no associated severity.", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.color.status.custom.hover}" }, - "name": "pf-t--global--icon--color--status--unread--on-default--hover", + "name": "pf-t--global--icon--color--status--custom--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "unread" + "state": "custom" }, "path": [ "global", "icon", "color", "status", - "unread", - "on-default", + "custom", "hover" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#1f1f1f", + "value": "#9ad8d8", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{global.dark.color.status.custom.200}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--color--status--custom--hover", "attributes": { "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" }, "path": [ "global", - "icon", "color", - "inverse" + "status", + "custom", + "hover" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#9ad8d8", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "{color.teal.30}" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--global--dark--color--status--custom--200", "attributes": { "category": "global", "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "item": "color", + "subitem": "status", + "state": "custom" }, "path": [ "global", "dark", - "icon", "color", - "300" + "status", + "custom", + "200" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#9ad8d8", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "#9ad8d8" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--color--teal--30", "attributes": { "category": "color", - "type": "gray", - "item": "90" + "type": "teal", + "item": "30" }, "path": [ "color", - "gray", - "90" + "teal", + "30" ] } ] @@ -12375,105 +12113,107 @@ ] } }, - "pf-t--global--icon--color--status--unread--on-default--clicked": { + "pf-t--global--icon--color--status--custom--clicked": { "default": { - "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "description": "Use as the clicked state for icons that convey generic status with no associated severity.", "type": "color", - "value": "#1f1f1f", + "value": "#9ad8d8", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "description": "Use as the clicked state for icons that convey generic status with no associated severity.", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.color.status.custom.clicked}" }, - "name": "pf-t--global--icon--color--status--unread--on-default--clicked", + "name": "pf-t--global--icon--color--status--custom--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "unread" + "state": "custom" }, "path": [ "global", "icon", "color", "status", - "unread", - "on-default", + "custom", "clicked" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#1f1f1f", + "value": "#9ad8d8", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{global.dark.color.status.custom.200}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--color--status--custom--clicked", "attributes": { "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" }, "path": [ "global", - "icon", "color", - "inverse" + "status", + "custom", + "clicked" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#9ad8d8", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "{color.teal.30}" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--global--dark--color--status--custom--200", "attributes": { "category": "global", "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "item": "color", + "subitem": "status", + "state": "custom" }, "path": [ "global", "dark", - "icon", "color", - "300" + "status", + "custom", + "200" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#9ad8d8", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "#9ad8d8" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--color--teal--30", "attributes": { "category": "color", - "type": "gray", - "item": "90" + "type": "teal", + "item": "30" }, "path": [ "color", - "gray", - "90" + "teal", + "30" ] } ] @@ -12483,33 +12223,32 @@ ] } }, - "pf-t--global--icon--color--status--unread--on-attention--default": { + "pf-t--global--icon--color--status--on-custom--default": { "default": { - "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "description": "Use as the default color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status color, make sure that this token meets contrast requirements with your new custom status color.", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "description": "Use as the default color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status color, make sure that this token meets contrast requirements with your new custom status color.", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--unread--on-attention--default", + "name": "pf-t--global--icon--color--status--on-custom--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "unread" + "state": "on-custom" }, "path": [ "global", "icon", "color", "status", - "unread", - "on-attention", + "on-custom", "default" ], "references": [ @@ -12591,33 +12330,32 @@ ] } }, - "pf-t--global--icon--color--status--unread--on-attention--hover": { + "pf-t--global--icon--color--status--on-custom--hover": { "default": { - "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "description": "Use as the hover state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status hover color, make sure that this token meets contrast requirements with your new custom status hover color.", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "description": "Use as the hover state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status hover color, make sure that this token meets contrast requirements with your new custom status hover color.", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--unread--on-attention--hover", + "name": "pf-t--global--icon--color--status--on-custom--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "unread" + "state": "on-custom" }, "path": [ "global", "icon", "color", "status", - "unread", - "on-attention", + "on-custom", "hover" ], "references": [ @@ -12699,33 +12437,32 @@ ] } }, - "pf-t--global--icon--color--status--unread--on-attention--clicked": { + "pf-t--global--icon--color--status--on-custom--clicked": { "default": { - "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "description": "Use as the clicked state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status clicked color, make sure that this token meets contrast requirements with your new custom status clicked color.", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "description": "Use as the clicked state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status clicked color, make sure that this token meets contrast requirements with your new custom status clicked color.", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--unread--on-attention--clicked", + "name": "pf-t--global--icon--color--status--on-custom--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "unread" + "state": "on-custom" }, "path": [ "global", "icon", "color", "status", - "unread", - "on-attention", + "on-custom", "clicked" ], "references": [ @@ -12807,76 +12544,107 @@ ] } }, - "pf-t--global--icon--color--regular": { + "pf-t--global--icon--color--status--unread--on-default--default": { "default": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", "type": "color", - "value": "{global.dark.icon.color.100}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--regular", + "name": "pf-t--global--icon--color--status--unread--on-default--default", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "regular" + "subitem": "status", + "state": "unread" }, "path": [ "global", "icon", "color", - "regular" + "status", + "unread", + "on-default", + "default" ], "references": [ { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#f2f2f2", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{color.gray.10}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--dark--icon--color--100", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", - "type": "dark", - "item": "icon", - "subitem": "color", - "state": "100" + "type": "icon", + "item": "color", + "subitem": "inverse" }, "path": [ "global", - "dark", "icon", "color", - "100" + "inverse" ], "references": [ { "type": "color", - "value": "#f2f2f2", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#f2f2f2" + "value": "{color.gray.90}" }, - "name": "pf-t--color--gray--10", + "name": "pf-t--global--dark--icon--color--300", "attributes": { - "category": "color", - "type": "gray", - "item": "10" + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" }, "path": [ + "global", + "dark", + "icon", "color", - "gray", - "10" + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } ] } ] @@ -12884,76 +12652,107 @@ ] } }, - "pf-t--global--icon--color--subtle": { + "pf-t--global--icon--color--status--unread--on-default--hover": { "default": { - "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", "type": "color", - "value": "#a3a3a3", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", "type": "color", - "value": "{global.dark.icon.color.200}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--subtle", + "name": "pf-t--global--icon--color--status--unread--on-default--hover", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "subtle" + "subitem": "status", + "state": "unread" }, "path": [ "global", "icon", "color", - "subtle" + "status", + "unread", + "on-default", + "hover" ], "references": [ { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{color.gray.40}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--dark--icon--color--200", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", - "type": "dark", - "item": "icon", - "subitem": "color", - "state": "200" + "type": "icon", + "item": "color", + "subitem": "inverse" }, "path": [ "global", - "dark", "icon", "color", - "200" + "inverse" ], "references": [ { "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#a3a3a3" + "value": "{color.gray.90}" }, - "name": "pf-t--color--gray--40", + "name": "pf-t--global--dark--icon--color--300", "attributes": { - "category": "color", - "type": "gray", - "item": "40" + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" }, "path": [ + "global", + "dark", + "icon", "color", - "gray", - "40" + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } ] } ] @@ -12961,76 +12760,107 @@ ] } }, - "pf-t--global--icon--color--inverse": { + "pf-t--global--icon--color--status--unread--on-default--clicked": { "default": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--icon--color--status--unread--on-default--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "inverse" + "subitem": "status", + "state": "unread" }, "path": [ "global", "icon", "color", - "inverse" + "status", + "unread", + "on-default", + "clicked" ], "references": [ { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/base.dark.json", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{color.gray.90}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", - "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "type": "icon", + "item": "color", + "subitem": "inverse" }, "path": [ "global", - "dark", "icon", "color", - "300" + "inverse" ], "references": [ { "type": "color", "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/palette.color.json", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "{color.gray.90}" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--global--dark--icon--color--300", "attributes": { - "category": "color", - "type": "gray", - "item": "90" + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" }, "path": [ + "global", + "dark", + "icon", "color", - "gray", - "90" + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } ] } ] @@ -13038,76 +12868,107 @@ ] } }, - "pf-t--global--icon--color--disabled": { + "pf-t--global--icon--color--status--unread--on-attention--default": { "default": { - "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", "type": "color", - "value": "#707070", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", "type": "color", - "value": "{global.dark.color.disabled.200}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--disabled", + "name": "pf-t--global--icon--color--status--unread--on-attention--default", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "disabled" + "subitem": "status", + "state": "unread" }, "path": [ "global", "icon", "color", - "disabled" + "status", + "unread", + "on-attention", + "default" ], "references": [ { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#707070", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{color.gray.50}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--dark--color--disabled--200", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", - "type": "dark", + "type": "icon", "item": "color", - "subitem": "disabled", - "state": "200" + "subitem": "inverse" }, "path": [ "global", - "dark", + "icon", "color", - "disabled", - "200" + "inverse" ], "references": [ { "type": "color", - "value": "#707070", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#707070" + "value": "{color.gray.90}" }, - "name": "pf-t--color--gray--50", + "name": "pf-t--global--dark--icon--color--300", "attributes": { - "category": "color", - "type": "gray", - "item": "50" + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" }, "path": [ + "global", + "dark", + "icon", "color", - "gray", - "50" + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } ] } ] @@ -13115,76 +12976,107 @@ ] } }, - "pf-t--global--icon--color--on-disabled": { + "pf-t--global--icon--color--status--unread--on-attention--hover": { "default": { - "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", "type": "color", - "value": "#383838", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", "type": "color", - "value": "{global.dark.color.disabled.300}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--on-disabled", + "name": "pf-t--global--icon--color--status--unread--on-attention--hover", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "on-disabled" + "subitem": "status", + "state": "unread" }, "path": [ "global", "icon", "color", - "on-disabled" + "status", + "unread", + "on-attention", + "hover" ], "references": [ { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#383838", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{color.gray.70}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--dark--color--disabled--300", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", - "type": "dark", + "type": "icon", "item": "color", - "subitem": "disabled", - "state": "300" + "subitem": "inverse" }, "path": [ "global", - "dark", + "icon", "color", - "disabled", - "300" + "inverse" ], "references": [ { "type": "color", - "value": "#383838", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#383838" + "value": "{color.gray.90}" }, - "name": "pf-t--color--gray--70", + "name": "pf-t--global--dark--icon--color--300", "attributes": { - "category": "color", - "type": "gray", - "item": "70" + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" }, "path": [ + "global", + "dark", + "icon", "color", - "gray", - "70" + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } ] } ] @@ -13192,50 +13084,158 @@ ] } }, - "pf-t--global--icon--color--severity--undefined--default": { + "pf-t--global--icon--color--status--unread--on-attention--clicked": { "default": { - "description": "Use as the default color for severity icons that don’t communicate a specific severity level for issues.", + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", "type": "color", - "value": "#a3a3a3", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for severity icons that don’t communicate a specific severity level for issues.", + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", "type": "color", - "value": "{global.dark.color.severity.undefined.100}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--severity--undefined--default", + "name": "pf-t--global--icon--color--status--unread--on-attention--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "severity", - "state": "undefined" + "subitem": "status", + "state": "unread" }, "path": [ "global", "icon", "color", - "severity", - "undefined", - "default" + "status", + "unread", + "on-attention", + "clicked" ], "references": [ { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{color.gray.40}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--dark--color--severity--undefined--100", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", - "type": "dark", + "type": "icon", "item": "color", - "subitem": "severity", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--undefined--default": { + "default": { + "description": "Use as the default color for severity icons that don’t communicate a specific severity level for issues.", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that don’t communicate a specific severity level for issues.", + "type": "color", + "value": "{global.dark.color.severity.undefined.100}" + }, + "name": "pf-t--global--icon--color--severity--undefined--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "undefined" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "undefined", + "default" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--severity--undefined--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "severity", "state": "undefined" }, "path": [ @@ -16567,78 +16567,103 @@ ] } }, - "pf-t--global--border--color--control--default": { + "pf-t--global--border--color--high-contrast": { "default": { - "description": "Use as the default border for control elements like form inputs, menu toggles, and clickable cards", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#a3a3a3", + "value": "rgba(255, 255, 255, 0.0000)", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default border for control elements like form inputs, menu toggles, and clickable cards", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.dark.border.color.200}" + "value": "rgba(255, 255, 255, 0.0000)" }, - "name": "pf-t--global--border--color--control--default", + "name": "pf-t--global--border--color--high-contrast", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "control", - "state": "default" + "subitem": "high-contrast" + }, + "path": [ + "global", + "border", + "color", + "high-contrast" + ] + } + }, + "pf-t--global--border--color--default": { + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.border.color.100}" + }, + "name": "pf-t--global--border--color--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "default" }, "path": [ "global", "border", "color", - "control", "default" ], "references": [ { "type": "color", - "value": "#a3a3a3", + "value": "#4d4d4d", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.40}" + "value": "{color.gray.60}" }, - "name": "pf-t--global--dark--border--color--200", + "name": "pf-t--global--dark--border--color--100", "attributes": { "category": "global", "type": "dark", "item": "border", "subitem": "color", - "state": "200" + "state": "100" }, "path": [ "global", "dark", "border", "color", - "200" + "100" ], "references": [ { "type": "color", - "value": "#a3a3a3", + "value": "#4d4d4d", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#a3a3a3" + "value": "#4d4d4d" }, - "name": "pf-t--color--gray--40", + "name": "pf-t--color--gray--60", "attributes": { "category": "color", "type": "gray", - "item": "40" + "item": "60" }, "path": [ "color", "gray", - "40" + "60" ] } ] @@ -16646,78 +16671,76 @@ ] } }, - "pf-t--global--border--color--control--read-only": { + "pf-t--global--border--color--hover": { "default": { - "description": "Use as the read-only border for control elements like form inputs, menu toggles.", + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#383838", + "value": "#92c5f9", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the read-only border for control elements like form inputs, menu toggles.", + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.dark.border.color.50}" + "value": "{global.dark.color.brand.100}" }, - "name": "pf-t--global--border--color--control--read-only", + "name": "pf-t--global--border--color--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "control", - "state": "read-only" + "subitem": "hover" }, "path": [ "global", "border", "color", - "control", - "read-only" + "hover" ], "references": [ { "type": "color", - "value": "#383838", + "value": "#92c5f9", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.70}" + "value": "{color.blue.30}" }, - "name": "pf-t--global--dark--border--color--50", + "name": "pf-t--global--dark--color--brand--100", "attributes": { "category": "global", "type": "dark", - "item": "border", - "subitem": "color", - "state": "50" + "item": "color", + "subitem": "brand", + "state": "100" }, "path": [ "global", "dark", - "border", "color", - "50" + "brand", + "100" ], "references": [ { "type": "color", - "value": "#383838", + "value": "#92c5f9", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#383838" + "value": "#92c5f9" }, - "name": "pf-t--color--gray--70", + "name": "pf-t--color--blue--30", "attributes": { "category": "color", - "type": "gray", - "item": "70" + "type": "blue", + "item": "30" }, "path": [ "color", - "gray", - "70" + "blue", + "30" ] } ] @@ -16725,105 +16748,76 @@ ] } }, - "pf-t--global--border--color--brand--default": { + "pf-t--global--border--color--clicked": { "default": { - "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#92c5f9", + "value": "#b9dafc", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.default}" + "value": "{global.dark.color.brand.200}" }, - "name": "pf-t--global--border--color--brand--default", + "name": "pf-t--global--border--color--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "default" + "subitem": "clicked" }, "path": [ "global", "border", "color", - "brand", - "default" + "clicked" ], "references": [ { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.dark.color.brand.100}" + "value": "{color.blue.20}" }, - "name": "pf-t--global--color--brand--default", + "name": "pf-t--global--dark--color--brand--200", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "default" + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" }, "path": [ "global", + "dark", "color", "brand", - "default" + "200" ], "references": [ { "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.30}" + "value": "#b9dafc" }, - "name": "pf-t--global--dark--color--brand--100", + "name": "pf-t--color--blue--20", "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "100" + "category": "color", + "type": "blue", + "item": "20" }, "path": [ - "global", - "dark", "color", - "brand", - "100" - ], - "references": [ - { - "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#92c5f9" - }, - "name": "pf-t--color--blue--30", - "attributes": { - "category": "color", - "type": "blue", - "item": "30" - }, - "path": [ - "color", - "blue", - "30" - ] - } + "blue", + "20" ] } ] @@ -16831,105 +16825,76 @@ ] } }, - "pf-t--global--border--color--brand--hover": { + "pf-t--global--border--color--subtle": { "default": { - "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#b9dafc", + "value": "#383838", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.hover}" + "value": "{global.dark.border.color.50}" }, - "name": "pf-t--global--border--color--brand--hover", + "name": "pf-t--global--border--color--subtle", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "hover" + "subitem": "subtle" }, "path": [ "global", "border", "color", - "brand", - "hover" + "subtle" ], "references": [ { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#383838", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.dark.color.brand.200}" + "value": "{color.gray.70}" }, - "name": "pf-t--global--color--brand--hover", + "name": "pf-t--global--dark--border--color--50", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "hover" + "type": "dark", + "item": "border", + "subitem": "color", + "state": "50" }, "path": [ "global", + "dark", + "border", "color", - "brand", - "hover" + "50" ], "references": [ { "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#383838", + "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.20}" + "value": "#383838" }, - "name": "pf-t--global--dark--color--brand--200", + "name": "pf-t--color--gray--70", "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "200" + "category": "color", + "type": "gray", + "item": "70" }, "path": [ - "global", - "dark", "color", - "brand", - "200" - ], - "references": [ - { - "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#b9dafc" - }, - "name": "pf-t--color--blue--20", - "attributes": { - "category": "color", - "type": "blue", - "item": "20" - }, - "path": [ - "color", - "blue", - "20" - ] - } + "gray", + "70" ] } ] @@ -16937,105 +16902,76 @@ ] } }, - "pf-t--global--border--color--brand--clicked": { + "pf-t--global--border--color--disabled": { "default": { - "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#b9dafc", + "value": "#707070", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.clicked}" + "value": "{global.dark.color.disabled.200}" }, - "name": "pf-t--global--border--color--brand--clicked", + "name": "pf-t--global--border--color--disabled", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "clicked" + "subitem": "disabled" }, "path": [ "global", "border", "color", - "brand", - "clicked" + "disabled" ], "references": [ { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#707070", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.dark.color.brand.200}" + "value": "{color.gray.50}" }, - "name": "pf-t--global--color--brand--clicked", + "name": "pf-t--global--dark--color--disabled--200", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "clicked" + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "200" }, "path": [ "global", + "dark", "color", - "brand", - "clicked" + "disabled", + "200" ], "references": [ { "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#707070", + "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.20}" + "value": "#707070" }, - "name": "pf-t--global--dark--color--brand--200", + "name": "pf-t--color--gray--50", "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "200" + "category": "color", + "type": "gray", + "item": "50" }, "path": [ - "global", - "dark", "color", - "brand", - "200" - ], - "references": [ - { - "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#b9dafc" - }, - "name": "pf-t--color--blue--20", - "attributes": { - "category": "color", - "type": "blue", - "item": "20" - }, - "path": [ - "color", - "blue", - "20" - ] - } + "gray", + "50" ] } ] @@ -17043,271 +16979,132 @@ ] } }, - "pf-t--global--border--color--brand--accent--default": { + "pf-t--global--border--color--alt": { "default": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", "type": "color", - "value": "#92c5f9", + "value": "rgba(41, 41, 41, 0.5000)", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", "type": "color", - "value": "{global.color.brand.accent.default}" + "value": "{global.background.color.primary.default}" }, - "name": "pf-t--global--border--color--brand--accent--default", + "name": "pf-t--global--border--color--alt", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "accent" + "subitem": "alt" }, "path": [ "global", "border", "color", - "brand", - "accent", - "default" + "alt" ], "references": [ { - "description": "Use this color for elements that you want to reinforce your brand", + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", "type": "color", - "value": "#92c5f9", + "value": "rgba(41, 41, 41, 0.5000)", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use this color for elements that you want to reinforce your brand", + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", "type": "color", - "value": "{global.color.brand.default}" + "value": "rgba(41, 41, 41, 0.5000)" }, - "name": "pf-t--global--color--brand--accent--default", + "name": "pf-t--global--background--color--primary--default", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", + "type": "background", + "item": "color", + "subitem": "primary", "state": "default" }, "path": [ "global", + "background", "color", - "brand", - "accent", + "primary", "default" - ], - "references": [ - { - "description": "Use this color for elements that you want to reinforce your brand", - "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", - "isSource": true, - "original": { - "description": "Use this color for elements that you want to reinforce your brand", - "type": "color", - "value": "{global.dark.color.brand.100}" - }, - "name": "pf-t--global--color--brand--default", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "default" - }, - "path": [ - "global", - "color", - "brand", - "default" - ], - "references": [ - { - "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/glass-dark/base.dark.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.blue.30}" - }, - "name": "pf-t--global--dark--color--brand--100", - "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "100" - }, - "path": [ - "global", - "dark", - "color", - "brand", - "100" - ], - "references": [ - { - "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#92c5f9" - }, - "name": "pf-t--color--blue--30", - "attributes": { - "category": "color", - "type": "blue", - "item": "30" - }, - "path": [ - "color", - "blue", - "30" - ] - } - ] - } - ] - } ] } ] } }, - "pf-t--global--border--color--brand--accent--hover": { + "pf-t--global--border--color--on-secondary": { "default": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", + "description": "Use on borders/dividers that are placed on a secondary bkg color.", "type": "color", - "value": "#b9dafc", + "value": "#a3a3a3", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", + "description": "Use on borders/dividers that are placed on a secondary bkg color.", "type": "color", - "value": "{global.color.brand.accent.hover}" + "value": "{global.dark.border.color.200}" }, - "name": "pf-t--global--border--color--brand--accent--hover", + "name": "pf-t--global--border--color--on-secondary", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "accent" + "subitem": "on-secondary" }, "path": [ "global", "border", "color", - "brand", - "accent", - "hover" + "on-secondary" ], "references": [ { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.color.brand.hover}" + "value": "{color.gray.40}" }, - "name": "pf-t--global--color--brand--accent--hover", + "name": "pf-t--global--dark--border--color--200", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "hover" + "type": "dark", + "item": "border", + "subitem": "color", + "state": "200" }, "path": [ "global", + "dark", + "border", "color", - "brand", - "accent", - "hover" + "200" ], "references": [ { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.dark.color.brand.200}" + "value": "#a3a3a3" }, - "name": "pf-t--global--color--brand--hover", + "name": "pf-t--color--gray--40", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "hover" + "category": "color", + "type": "gray", + "item": "40" }, "path": [ - "global", "color", - "brand", - "hover" - ], - "references": [ - { - "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/base.dark.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.blue.20}" - }, - "name": "pf-t--global--dark--color--brand--200", - "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "200" - }, - "path": [ - "global", - "dark", - "color", - "brand", - "200" - ], - "references": [ - { - "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#b9dafc" - }, - "name": "pf-t--color--blue--20", - "attributes": { - "category": "color", - "type": "blue", - "item": "20" - }, - "path": [ - "color", - "blue", - "20" - ] - } - ] - } + "gray", + "40" ] } ] @@ -17315,135 +17112,76 @@ ] } }, - "pf-t--global--border--color--brand--accent--clicked": { + "pf-t--global--border--color--control--default": { "default": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", "type": "color", - "value": "#b9dafc", + "value": "#a3a3a3", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", "type": "color", - "value": "{global.color.brand.accent.clicked}" + "value": "{global.dark.border.color.200}" }, - "name": "pf-t--global--border--color--brand--accent--clicked", + "name": "pf-t--global--border--color--control--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "accent" + "subitem": "control", + "state": "default" }, "path": [ "global", "border", "color", - "brand", - "accent", - "clicked" + "control", + "default" ], "references": [ { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.color.brand.clicked}" + "value": "{color.gray.40}" }, - "name": "pf-t--global--color--brand--accent--clicked", + "name": "pf-t--global--dark--border--color--200", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "clicked" + "type": "dark", + "item": "border", + "subitem": "color", + "state": "200" }, "path": [ "global", + "dark", + "border", "color", - "brand", - "accent", - "clicked" + "200" ], "references": [ { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#a3a3a3", + "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.dark.color.brand.200}" + "value": "#a3a3a3" }, - "name": "pf-t--global--color--brand--clicked", + "name": "pf-t--color--gray--40", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "clicked" + "category": "color", + "type": "gray", + "item": "40" }, "path": [ - "global", "color", - "brand", - "clicked" - ], - "references": [ - { - "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/base.dark.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.blue.20}" - }, - "name": "pf-t--global--dark--color--brand--200", - "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "200" - }, - "path": [ - "global", - "dark", - "color", - "brand", - "200" - ], - "references": [ - { - "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#b9dafc" - }, - "name": "pf-t--color--blue--20", - "attributes": { - "category": "color", - "type": "blue", - "item": "20" - }, - "path": [ - "color", - "blue", - "20" - ] - } - ] - } + "gray", + "40" ] } ] @@ -17451,80 +17189,76 @@ ] } }, - "pf-t--global--border--color--brand--subtle--default": { + "pf-t--global--border--color--control--read-only": { "default": { - "description": "Use as the default border color for any subtle brand element like toggle groups", "type": "color", - "value": "#004d99", + "value": "#383838", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default border color for any subtle brand element like toggle groups", "type": "color", - "value": "{global.dark.color.brand.subtle.200}" + "value": "{global.dark.border.color.50}" }, - "name": "pf-t--global--border--color--brand--subtle--default", + "name": "pf-t--global--border--color--control--read-only", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "subtle" + "subitem": "control", + "state": "read-only" }, "path": [ "global", "border", "color", - "brand", - "subtle", - "default" + "control", + "read-only" ], "references": [ { "type": "color", - "value": "#004d99", + "value": "#383838", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.60}" + "value": "{color.gray.70}" }, - "name": "pf-t--global--dark--color--brand--subtle--200", + "name": "pf-t--global--dark--border--color--50", "attributes": { "category": "global", "type": "dark", - "item": "color", - "subitem": "brand", - "state": "subtle" + "item": "border", + "subitem": "color", + "state": "50" }, "path": [ "global", "dark", + "border", "color", - "brand", - "subtle", - "200" + "50" ], "references": [ { "type": "color", - "value": "#004d99", + "value": "#383838", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#004d99" + "value": "#383838" }, - "name": "pf-t--color--blue--60", + "name": "pf-t--color--gray--70", "attributes": { "category": "color", - "type": "blue", - "item": "60" + "type": "gray", + "item": "70" }, "path": [ "color", - "blue", - "60" + "gray", + "70" ] } ] @@ -17532,80 +17266,105 @@ ] } }, - "pf-t--global--border--color--brand--subtle--hover": { + "pf-t--global--border--color--brand--default": { "default": { - "description": "Use as the hover border color for any subtle brand element like toggle groups", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "#92c5f9", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover border color for any subtle brand element like toggle groups", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.dark.color.brand.subtle.300}" + "value": "{global.color.brand.default}" }, - "name": "pf-t--global--border--color--brand--subtle--hover", + "name": "pf-t--global--border--color--brand--default", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "brand", - "state": "subtle" + "state": "default" }, "path": [ "global", "border", "color", "brand", - "subtle", - "hover" + "default" ], "references": [ { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", "value": "#92c5f9", - "filePath": "tokens/default/glass-dark/base.dark.json", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{color.blue.30}" + "value": "{global.dark.color.brand.100}" }, - "name": "pf-t--global--dark--color--brand--subtle--300", + "name": "pf-t--global--color--brand--default", "attributes": { "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "subtle" + "type": "color", + "item": "brand", + "subitem": "default" }, "path": [ "global", - "dark", "color", "brand", - "subtle", - "300" + "default" ], "references": [ { "type": "color", "value": "#92c5f9", - "filePath": "tokens/default/glass-dark/palette.color.json", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#92c5f9" + "value": "{color.blue.30}" }, - "name": "pf-t--color--blue--30", + "name": "pf-t--global--dark--color--brand--100", "attributes": { - "category": "color", - "type": "blue", - "item": "30" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" }, "path": [ + "global", + "dark", "color", - "blue", - "30" + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } ] } ] @@ -17613,80 +17372,105 @@ ] } }, - "pf-t--global--border--color--brand--subtle--clicked": { + "pf-t--global--border--color--brand--hover": { "default": { - "description": "Use as the clicked border color for any subtle brand element like toggle groups", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#92c5f9", + "value": "#b9dafc", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked border color for any subtle brand element like toggle groups", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.dark.color.brand.subtle.300}" + "value": "{global.color.brand.hover}" }, - "name": "pf-t--global--border--color--brand--subtle--clicked", + "name": "pf-t--global--border--color--brand--hover", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "brand", - "state": "subtle" + "state": "hover" }, "path": [ "global", "border", "color", "brand", - "subtle", - "clicked" + "hover" ], "references": [ { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{color.blue.30}" + "value": "{global.dark.color.brand.200}" }, - "name": "pf-t--global--dark--color--brand--subtle--300", - "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "subtle" + "name": "pf-t--global--color--brand--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" }, "path": [ "global", - "dark", "color", "brand", - "subtle", - "300" + "hover" ], "references": [ { "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#92c5f9" + "value": "{color.blue.20}" }, - "name": "pf-t--color--blue--30", + "name": "pf-t--global--dark--color--brand--200", "attributes": { - "category": "color", - "type": "blue", - "item": "30" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" }, "path": [ + "global", + "dark", "color", - "blue", - "30" + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } ] } ] @@ -17694,107 +17478,103 @@ ] } }, - "pf-t--global--border--color--status--success--default": { + "pf-t--global--border--color--brand--clicked": { "default": { - "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#87bb62", + "value": "#b9dafc", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.success.default}" + "value": "{global.color.brand.clicked}" }, - "name": "pf-t--global--border--color--status--success--default", + "name": "pf-t--global--border--color--brand--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "brand", + "state": "clicked" }, "path": [ "global", "border", "color", - "status", - "success", - "default" + "brand", + "clicked" ], "references": [ { - "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#87bb62", + "value": "#b9dafc", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.dark.color.status.success.100}" + "value": "{global.dark.color.brand.200}" }, - "name": "pf-t--global--color--status--success--default", + "name": "pf-t--global--color--brand--clicked", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "default" + "item": "brand", + "subitem": "clicked" }, "path": [ "global", "color", - "status", - "success", - "default" + "brand", + "clicked" ], "references": [ { "type": "color", - "value": "#87bb62", + "value": "#b9dafc", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.40}" + "value": "{color.blue.20}" }, - "name": "pf-t--global--dark--color--status--success--100", + "name": "pf-t--global--dark--color--brand--200", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "brand", + "state": "200" }, "path": [ "global", "dark", "color", - "status", - "success", - "100" + "brand", + "200" ], "references": [ { "type": "color", - "value": "#87bb62", + "value": "#b9dafc", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#87bb62" + "value": "#b9dafc" }, - "name": "pf-t--color--green--40", + "name": "pf-t--color--blue--20", "attributes": { "category": "color", - "type": "green", - "item": "40" + "type": "blue", + "item": "20" }, "path": [ "color", - "green", - "40" + "blue", + "20" ] } ] @@ -17804,107 +17584,133 @@ ] } }, - "pf-t--global--border--color--status--success--hover": { + "pf-t--global--border--color--brand--accent--default": { "default": { - "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#afdc8f", + "value": "#92c5f9", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.success.hover}" + "value": "{global.color.brand.accent.default}" }, - "name": "pf-t--global--border--color--status--success--hover", + "name": "pf-t--global--border--color--brand--accent--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "brand", + "state": "accent" }, "path": [ "global", "border", "color", - "status", - "success", - "hover" + "brand", + "accent", + "default" ], "references": [ { - "description": "Use as the hover state for any element that conveys a success status.", + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#afdc8f", + "value": "#92c5f9", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys a success status.", + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.dark.color.status.success.200}" + "value": "{global.color.brand.default}" }, - "name": "pf-t--global--color--status--success--hover", + "name": "pf-t--global--color--brand--accent--default", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "hover" + "item": "brand", + "subitem": "accent", + "state": "default" }, "path": [ "global", "color", - "status", - "success", - "hover" + "brand", + "accent", + "default" ], "references": [ { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#afdc8f", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{color.green.30}" + "value": "{global.dark.color.brand.100}" }, - "name": "pf-t--global--dark--color--status--success--200", + "name": "pf-t--global--color--brand--default", "attributes": { "category": "global", - "type": "dark", - "item": "color", - "subitem": "status", - "state": "success" + "type": "color", + "item": "brand", + "subitem": "default" }, "path": [ "global", - "dark", "color", - "status", - "success", - "200" + "brand", + "default" ], "references": [ { "type": "color", - "value": "#afdc8f", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#afdc8f" + "value": "{color.blue.30}" }, - "name": "pf-t--color--green--30", + "name": "pf-t--global--dark--color--brand--100", "attributes": { - "category": "color", - "type": "green", - "item": "30" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" }, "path": [ + "global", + "dark", "color", - "green", - "30" + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } ] } ] @@ -17914,107 +17720,133 @@ ] } }, - "pf-t--global--border--color--status--success--clicked": { + "pf-t--global--border--color--brand--accent--hover": { "default": { - "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#afdc8f", + "value": "#b9dafc", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.success.clicked}" + "value": "{global.color.brand.accent.hover}" }, - "name": "pf-t--global--border--color--status--success--clicked", + "name": "pf-t--global--border--color--brand--accent--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "brand", + "state": "accent" }, "path": [ "global", "border", - "color", - "status", - "success", - "clicked" + "color", + "brand", + "accent", + "hover" ], "references": [ { - "description": "Use as the clicked state for any element that conveys a success status.", + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#afdc8f", + "value": "#b9dafc", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys a success status.", + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.dark.color.status.success.200}" + "value": "{global.color.brand.hover}" }, - "name": "pf-t--global--color--status--success--clicked", + "name": "pf-t--global--color--brand--accent--hover", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "clicked" + "item": "brand", + "subitem": "accent", + "state": "hover" }, "path": [ "global", "color", - "status", - "success", - "clicked" + "brand", + "accent", + "hover" ], "references": [ { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#afdc8f", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{color.green.30}" + "value": "{global.dark.color.brand.200}" }, - "name": "pf-t--global--dark--color--status--success--200", + "name": "pf-t--global--color--brand--hover", "attributes": { "category": "global", - "type": "dark", - "item": "color", - "subitem": "status", - "state": "success" + "type": "color", + "item": "brand", + "subitem": "hover" }, "path": [ "global", - "dark", "color", - "status", - "success", - "200" + "brand", + "hover" ], "references": [ { "type": "color", - "value": "#afdc8f", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#afdc8f" + "value": "{color.blue.20}" }, - "name": "pf-t--color--green--30", + "name": "pf-t--global--dark--color--brand--200", "attributes": { - "category": "color", - "type": "green", - "item": "30" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" }, "path": [ + "global", + "dark", "color", - "green", - "30" + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } ] } ] @@ -18024,107 +17856,133 @@ ] } }, - "pf-t--global--border--color--status--warning--default": { + "pf-t--global--border--color--brand--accent--clicked": { "default": { - "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#ffcc17", + "value": "#b9dafc", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.warning.default}" + "value": "{global.color.brand.accent.clicked}" }, - "name": "pf-t--global--border--color--status--warning--default", + "name": "pf-t--global--border--color--brand--accent--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "brand", + "state": "accent" }, "path": [ "global", "border", "color", - "status", - "warning", - "default" + "brand", + "accent", + "clicked" ], "references": [ { - "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#ffcc17", + "value": "#b9dafc", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.dark.color.status.warning.100}" + "value": "{global.color.brand.clicked}" }, - "name": "pf-t--global--color--status--warning--default", + "name": "pf-t--global--color--brand--accent--clicked", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "warning", - "state": "default" + "item": "brand", + "subitem": "accent", + "state": "clicked" }, "path": [ "global", "color", - "status", - "warning", - "default" + "brand", + "accent", + "clicked" ], "references": [ { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#ffcc17", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{color.yellow.30}" + "value": "{global.dark.color.brand.200}" }, - "name": "pf-t--global--dark--color--status--warning--100", + "name": "pf-t--global--color--brand--clicked", "attributes": { "category": "global", - "type": "dark", - "item": "color", - "subitem": "status", - "state": "warning" + "type": "color", + "item": "brand", + "subitem": "clicked" }, "path": [ "global", - "dark", "color", - "status", - "warning", - "100" + "brand", + "clicked" ], "references": [ { "type": "color", - "value": "#ffcc17", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#ffcc17" + "value": "{color.blue.20}" }, - "name": "pf-t--color--yellow--30", + "name": "pf-t--global--dark--color--brand--200", "attributes": { - "category": "color", - "type": "yellow", - "item": "30" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" }, "path": [ + "global", + "dark", "color", - "yellow", - "30" + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } ] } ] @@ -18134,109 +17992,80 @@ ] } }, - "pf-t--global--border--color--status--warning--hover": { + "pf-t--global--border--color--brand--subtle--default": { "default": { - "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#ffe072", + "value": "#004d99", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.warning.hover}" + "value": "{global.dark.color.brand.subtle.200}" }, - "name": "pf-t--global--border--color--status--warning--hover", + "name": "pf-t--global--border--color--brand--subtle--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "brand", + "state": "subtle" }, "path": [ "global", "border", "color", - "status", - "warning", - "hover" + "brand", + "subtle", + "default" ], "references": [ { - "description": "Use as the hover state for any element that conveys a warning status.", "type": "color", - "value": "#ffe072", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#004d99", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys a warning status.", "type": "color", - "value": "{global.dark.color.status.warning.200}" + "value": "{color.blue.60}" }, - "name": "pf-t--global--color--status--warning--hover", + "name": "pf-t--global--dark--color--brand--subtle--200", "attributes": { "category": "global", - "type": "color", - "item": "status", - "subitem": "warning", - "state": "hover" + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" }, "path": [ "global", + "dark", "color", - "status", - "warning", - "hover" + "brand", + "subtle", + "200" ], "references": [ { "type": "color", - "value": "#ffe072", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#004d99", + "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.20}" + "value": "#004d99" }, - "name": "pf-t--global--dark--color--status--warning--200", + "name": "pf-t--color--blue--60", "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "status", - "state": "warning" + "category": "color", + "type": "blue", + "item": "60" }, "path": [ - "global", - "dark", "color", - "status", - "warning", - "200" - ], - "references": [ - { - "type": "color", - "value": "#ffe072", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#ffe072" - }, - "name": "pf-t--color--yellow--20", - "attributes": { - "category": "color", - "type": "yellow", - "item": "20" - }, - "path": [ - "color", - "yellow", - "20" - ] - } + "blue", + "60" ] } ] @@ -18244,109 +18073,80 @@ ] } }, - "pf-t--global--border--color--status--warning--clicked": { + "pf-t--global--border--color--brand--subtle--hover": { "default": { - "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#ffe072", + "value": "#92c5f9", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.warning.clicked}" + "value": "{global.dark.color.brand.subtle.300}" }, - "name": "pf-t--global--border--color--status--warning--clicked", + "name": "pf-t--global--border--color--brand--subtle--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "brand", + "state": "subtle" }, "path": [ "global", "border", "color", - "status", - "warning", - "clicked" + "brand", + "subtle", + "hover" ], "references": [ { - "description": "Use as the clicked state for any element that conveys a warning status.", "type": "color", - "value": "#ffe072", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys a warning status.", "type": "color", - "value": "{global.dark.color.status.warning.200}" + "value": "{color.blue.30}" }, - "name": "pf-t--global--color--status--warning--clicked", + "name": "pf-t--global--dark--color--brand--subtle--300", "attributes": { "category": "global", - "type": "color", - "item": "status", - "subitem": "warning", - "state": "clicked" + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" }, "path": [ "global", + "dark", "color", - "status", - "warning", - "clicked" + "brand", + "subtle", + "300" ], "references": [ { "type": "color", - "value": "#ffe072", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.20}" + "value": "#92c5f9" }, - "name": "pf-t--global--dark--color--status--warning--200", + "name": "pf-t--color--blue--30", "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "status", - "state": "warning" + "category": "color", + "type": "blue", + "item": "30" }, "path": [ - "global", - "dark", "color", - "status", - "warning", - "200" - ], - "references": [ - { - "type": "color", - "value": "#ffe072", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#ffe072" - }, - "name": "pf-t--color--yellow--20", - "attributes": { - "category": "color", - "type": "yellow", - "item": "20" - }, - "path": [ - "color", - "yellow", - "20" - ] - } + "blue", + "30" ] } ] @@ -18354,109 +18154,80 @@ ] } }, - "pf-t--global--border--color--status--danger--default": { + "pf-t--global--border--color--brand--subtle--clicked": { "default": { - "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#f0561d", + "value": "#92c5f9", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.danger.default}" + "value": "{global.dark.color.brand.subtle.300}" }, - "name": "pf-t--global--border--color--status--danger--default", + "name": "pf-t--global--border--color--brand--subtle--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "danger" + "subitem": "brand", + "state": "subtle" }, "path": [ "global", "border", "color", - "status", - "danger", - "default" + "brand", + "subtle", + "clicked" ], "references": [ { - "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "#f0561d", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "{global.dark.color.status.danger.100}" + "value": "{color.blue.30}" }, - "name": "pf-t--global--color--status--danger--default", + "name": "pf-t--global--dark--color--brand--subtle--300", "attributes": { "category": "global", - "type": "color", - "item": "status", - "subitem": "danger", - "state": "default" + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" }, "path": [ "global", + "dark", "color", - "status", - "danger", - "default" + "brand", + "subtle", + "300" ], "references": [ { "type": "color", - "value": "#f0561d", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.50}" + "value": "#92c5f9" }, - "name": "pf-t--global--dark--color--status--danger--100", + "name": "pf-t--color--blue--30", "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "status", - "state": "danger" + "category": "color", + "type": "blue", + "item": "30" }, "path": [ - "global", - "dark", "color", - "status", - "danger", - "100" - ], - "references": [ - { - "type": "color", - "value": "#f0561d", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#f0561d" - }, - "name": "pf-t--color--red-orange--50", - "attributes": { - "category": "color", - "type": "red-orange", - "item": "50" - }, - "path": [ - "color", - "red-orange", - "50" - ] - } + "blue", + "30" ] } ] @@ -18464,106 +18235,106 @@ ] } }, - "pf-t--global--border--color--status--danger--hover": { + "pf-t--global--border--color--status--success--default": { "default": { - "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", "type": "color", - "value": "#f4784a", + "value": "#87bb62", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.danger.hover}" + "value": "{global.color.status.success.default}" }, - "name": "pf-t--global--border--color--status--danger--hover", + "name": "pf-t--global--border--color--status--success--default", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "danger" + "state": "success" }, "path": [ "global", "border", "color", "status", - "danger", - "hover" + "success", + "default" ], "references": [ { - "description": "Use as the hover state for any element that conveys a danger status.", + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", "type": "color", - "value": "#f4784a", + "value": "#87bb62", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys a danger status.", + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", "type": "color", - "value": "{global.dark.color.status.danger.200}" + "value": "{global.dark.color.status.success.100}" }, - "name": "pf-t--global--color--status--danger--hover", + "name": "pf-t--global--color--status--success--default", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "danger", - "state": "hover" + "subitem": "success", + "state": "default" }, "path": [ "global", "color", "status", - "danger", - "hover" + "success", + "default" ], "references": [ { "type": "color", - "value": "#f4784a", + "value": "#87bb62", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.40}" + "value": "{color.green.40}" }, - "name": "pf-t--global--dark--color--status--danger--200", + "name": "pf-t--global--dark--color--status--success--100", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "danger" + "state": "success" }, "path": [ "global", "dark", "color", "status", - "danger", - "200" + "success", + "100" ], "references": [ { "type": "color", - "value": "#f4784a", + "value": "#87bb62", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f4784a" + "value": "#87bb62" }, - "name": "pf-t--color--red-orange--40", + "name": "pf-t--color--green--40", "attributes": { "category": "color", - "type": "red-orange", + "type": "green", "item": "40" }, "path": [ "color", - "red-orange", + "green", "40" ] } @@ -18574,107 +18345,107 @@ ] } }, - "pf-t--global--border--color--status--danger--clicked": { + "pf-t--global--border--color--status--success--hover": { "default": { - "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "#f4784a", + "value": "#afdc8f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "{global.color.status.danger.clicked}" + "value": "{global.color.status.success.hover}" }, - "name": "pf-t--global--border--color--status--danger--clicked", + "name": "pf-t--global--border--color--status--success--hover", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "danger" + "state": "success" }, "path": [ "global", "border", "color", "status", - "danger", - "clicked" + "success", + "hover" ], "references": [ { - "description": "Use as the clicked state for any element that conveys a danger status.", + "description": "Use as the hover state for any element that conveys a success status.", "type": "color", - "value": "#f4784a", + "value": "#afdc8f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys a danger status.", + "description": "Use as the hover state for any element that conveys a success status.", "type": "color", - "value": "{global.dark.color.status.danger.200}" + "value": "{global.dark.color.status.success.200}" }, - "name": "pf-t--global--color--status--danger--clicked", + "name": "pf-t--global--color--status--success--hover", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "danger", - "state": "clicked" + "subitem": "success", + "state": "hover" }, "path": [ "global", "color", "status", - "danger", - "clicked" + "success", + "hover" ], "references": [ { "type": "color", - "value": "#f4784a", + "value": "#afdc8f", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.40}" + "value": "{color.green.30}" }, - "name": "pf-t--global--dark--color--status--danger--200", + "name": "pf-t--global--dark--color--status--success--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "danger" + "state": "success" }, "path": [ "global", "dark", "color", "status", - "danger", + "success", "200" ], "references": [ { "type": "color", - "value": "#f4784a", + "value": "#afdc8f", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f4784a" + "value": "#afdc8f" }, - "name": "pf-t--color--red-orange--40", + "name": "pf-t--color--green--30", "attributes": { "category": "color", - "type": "red-orange", - "item": "40" + "type": "green", + "item": "30" }, "path": [ "color", - "red-orange", - "40" + "green", + "30" ] } ] @@ -18684,106 +18455,106 @@ ] } }, - "pf-t--global--border--color--status--info--default": { + "pf-t--global--border--color--status--success--clicked": { "default": { - "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "#b6a6e9", + "value": "#afdc8f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "{global.color.status.info.default}" + "value": "{global.color.status.success.clicked}" }, - "name": "pf-t--global--border--color--status--info--default", + "name": "pf-t--global--border--color--status--success--clicked", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "info" + "state": "success" }, "path": [ "global", "border", "color", "status", - "info", - "default" + "success", + "clicked" ], "references": [ { - "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "description": "Use as the clicked state for any element that conveys a success status.", "type": "color", - "value": "#b6a6e9", + "value": "#afdc8f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "description": "Use as the clicked state for any element that conveys a success status.", "type": "color", - "value": "{global.dark.color.status.info.100}" + "value": "{global.dark.color.status.success.200}" }, - "name": "pf-t--global--color--status--info--default", + "name": "pf-t--global--color--status--success--clicked", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", - "state": "default" + "subitem": "success", + "state": "clicked" }, "path": [ "global", "color", "status", - "info", - "default" + "success", + "clicked" ], "references": [ { "type": "color", - "value": "#b6a6e9", + "value": "#afdc8f", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.30}" + "value": "{color.green.30}" }, - "name": "pf-t--global--dark--color--status--info--100", + "name": "pf-t--global--dark--color--status--success--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "info" + "state": "success" }, "path": [ "global", "dark", "color", "status", - "info", - "100" + "success", + "200" ], "references": [ { "type": "color", - "value": "#b6a6e9", + "value": "#afdc8f", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b6a6e9" + "value": "#afdc8f" }, - "name": "pf-t--color--purple--30", + "name": "pf-t--color--green--30", "attributes": { "category": "color", - "type": "purple", + "type": "green", "item": "30" }, "path": [ "color", - "purple", + "green", "30" ] } @@ -18794,107 +18565,107 @@ ] } }, - "pf-t--global--border--color--status--info--hover": { + "pf-t--global--border--color--status--warning--default": { "default": { - "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "#d0c5f4", + "value": "#ffcc17", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.info.hover}" + "value": "{global.color.status.warning.default}" }, - "name": "pf-t--global--border--color--status--info--hover", + "name": "pf-t--global--border--color--status--warning--default", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "info" + "state": "warning" }, "path": [ "global", "border", "color", "status", - "info", - "hover" + "warning", + "default" ], "references": [ { - "description": "Use as the hover state for any element that conveys an info status.", + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", "type": "color", - "value": "#d0c5f4", + "value": "#ffcc17", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys an info status.", + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", "type": "color", - "value": "{global.dark.color.status.info.200}" + "value": "{global.dark.color.status.warning.100}" }, - "name": "pf-t--global--color--status--info--hover", + "name": "pf-t--global--color--status--warning--default", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", - "state": "hover" + "subitem": "warning", + "state": "default" }, "path": [ "global", "color", "status", - "info", - "hover" + "warning", + "default" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#ffcc17", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.20}" + "value": "{color.yellow.30}" }, - "name": "pf-t--global--dark--color--status--info--200", + "name": "pf-t--global--dark--color--status--warning--100", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "info" + "state": "warning" }, "path": [ "global", "dark", "color", "status", - "info", - "200" + "warning", + "100" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#ffcc17", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#d0c5f4" + "value": "#ffcc17" }, - "name": "pf-t--color--purple--20", + "name": "pf-t--color--yellow--30", "attributes": { "category": "color", - "type": "purple", - "item": "20" + "type": "yellow", + "item": "30" }, "path": [ "color", - "purple", - "20" + "yellow", + "30" ] } ] @@ -18904,106 +18675,106 @@ ] } }, - "pf-t--global--border--color--status--info--clicked": { + "pf-t--global--border--color--status--warning--hover": { "default": { - "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "#d0c5f4", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.info.clicked}" + "value": "{global.color.status.warning.hover}" }, - "name": "pf-t--global--border--color--status--info--clicked", + "name": "pf-t--global--border--color--status--warning--hover", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "info" + "state": "warning" }, "path": [ "global", "border", "color", "status", - "info", - "clicked" + "warning", + "hover" ], "references": [ { - "description": "Use as the clicked state for any element that conveys an info status.", + "description": "Use as the hover state for any element that conveys a warning status.", "type": "color", - "value": "#d0c5f4", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys an info status.", + "description": "Use as the hover state for any element that conveys a warning status.", "type": "color", - "value": "{global.dark.color.status.info.200}" + "value": "{global.dark.color.status.warning.200}" }, - "name": "pf-t--global--color--status--info--clicked", + "name": "pf-t--global--color--status--warning--hover", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", - "state": "clicked" + "subitem": "warning", + "state": "hover" }, "path": [ "global", "color", "status", - "info", - "clicked" + "warning", + "hover" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.20}" + "value": "{color.yellow.20}" }, - "name": "pf-t--global--dark--color--status--info--200", + "name": "pf-t--global--dark--color--status--warning--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "info" + "state": "warning" }, "path": [ "global", "dark", "color", "status", - "info", + "warning", "200" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#d0c5f4" + "value": "#ffe072" }, - "name": "pf-t--color--purple--20", + "name": "pf-t--color--yellow--20", "attributes": { "category": "color", - "type": "purple", + "type": "yellow", "item": "20" }, "path": [ "color", - "purple", + "yellow", "20" ] } @@ -19014,107 +18785,107 @@ ] } }, - "pf-t--global--border--color--status--custom--default": { + "pf-t--global--border--color--status--warning--clicked": { "default": { - "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "#63bdbd", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.custom.default}" + "value": "{global.color.status.warning.clicked}" }, - "name": "pf-t--global--border--color--status--custom--default", + "name": "pf-t--global--border--color--status--warning--clicked", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "custom" + "state": "warning" }, "path": [ "global", "border", "color", "status", - "custom", - "default" + "warning", + "clicked" ], "references": [ { - "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the clicked state for any element that conveys a warning status.", "type": "color", - "value": "#63bdbd", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the clicked state for any element that conveys a warning status.", "type": "color", - "value": "{global.dark.color.status.custom.100}" + "value": "{global.dark.color.status.warning.200}" }, - "name": "pf-t--global--color--status--custom--default", + "name": "pf-t--global--color--status--warning--clicked", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", - "state": "default" + "subitem": "warning", + "state": "clicked" }, "path": [ "global", "color", "status", - "custom", - "default" + "warning", + "clicked" ], "references": [ { "type": "color", - "value": "#63bdbd", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.40}" + "value": "{color.yellow.20}" }, - "name": "pf-t--global--dark--color--status--custom--100", + "name": "pf-t--global--dark--color--status--warning--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "custom" + "state": "warning" }, "path": [ "global", "dark", "color", "status", - "custom", - "100" + "warning", + "200" ], "references": [ { "type": "color", - "value": "#63bdbd", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#63bdbd" + "value": "#ffe072" }, - "name": "pf-t--color--teal--40", + "name": "pf-t--color--yellow--20", "attributes": { "category": "color", - "type": "teal", - "item": "40" + "type": "yellow", + "item": "20" }, "path": [ "color", - "teal", - "40" + "yellow", + "20" ] } ] @@ -19124,107 +18895,107 @@ ] } }, - "pf-t--global--border--color--status--custom--hover": { + "pf-t--global--border--color--status--danger--default": { "default": { - "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "#9ad8d8", + "value": "#f0561d", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.custom.hover}" + "value": "{global.color.status.danger.default}" }, - "name": "pf-t--global--border--color--status--custom--hover", + "name": "pf-t--global--border--color--status--danger--default", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "custom" + "state": "danger" }, "path": [ "global", "border", "color", "status", - "custom", - "hover" + "danger", + "default" ], "references": [ { - "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "#9ad8d8", + "value": "#f0561d", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "{global.dark.color.status.custom.200}" + "value": "{global.dark.color.status.danger.100}" }, - "name": "pf-t--global--color--status--custom--hover", + "name": "pf-t--global--color--status--danger--default", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", - "state": "hover" + "subitem": "danger", + "state": "default" }, "path": [ "global", "color", "status", - "custom", - "hover" + "danger", + "default" ], "references": [ { "type": "color", - "value": "#9ad8d8", + "value": "#f0561d", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.30}" + "value": "{color.red-orange.50}" }, - "name": "pf-t--global--dark--color--status--custom--200", + "name": "pf-t--global--dark--color--status--danger--100", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "custom" + "state": "danger" }, "path": [ "global", "dark", "color", "status", - "custom", - "200" + "danger", + "100" ], "references": [ { "type": "color", - "value": "#9ad8d8", + "value": "#f0561d", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#9ad8d8" + "value": "#f0561d" }, - "name": "pf-t--color--teal--30", + "name": "pf-t--color--red-orange--50", "attributes": { "category": "color", - "type": "teal", - "item": "30" + "type": "red-orange", + "item": "50" }, "path": [ "color", - "teal", - "30" + "red-orange", + "50" ] } ] @@ -19234,107 +19005,107 @@ ] } }, - "pf-t--global--border--color--status--custom--clicked": { + "pf-t--global--border--color--status--danger--hover": { "default": { - "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "#9ad8d8", + "value": "#f4784a", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.custom.clicked}" + "value": "{global.color.status.danger.hover}" }, - "name": "pf-t--global--border--color--status--custom--clicked", + "name": "pf-t--global--border--color--status--danger--hover", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "custom" + "state": "danger" }, "path": [ "global", "border", "color", "status", - "custom", - "clicked" + "danger", + "hover" ], "references": [ { - "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "#9ad8d8", + "value": "#f4784a", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "{global.dark.color.status.custom.200}" + "value": "{global.dark.color.status.danger.200}" }, - "name": "pf-t--global--color--status--custom--clicked", + "name": "pf-t--global--color--status--danger--hover", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", - "state": "clicked" + "subitem": "danger", + "state": "hover" }, "path": [ "global", "color", "status", - "custom", - "clicked" + "danger", + "hover" ], "references": [ { "type": "color", - "value": "#9ad8d8", + "value": "#f4784a", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.30}" + "value": "{color.red-orange.40}" }, - "name": "pf-t--global--dark--color--status--custom--200", + "name": "pf-t--global--dark--color--status--danger--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "custom" + "state": "danger" }, "path": [ "global", "dark", "color", "status", - "custom", + "danger", "200" ], "references": [ { "type": "color", - "value": "#9ad8d8", + "value": "#f4784a", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#9ad8d8" + "value": "#f4784a" }, - "name": "pf-t--color--teal--30", + "name": "pf-t--color--red-orange--40", "attributes": { "category": "color", - "type": "teal", - "item": "30" + "type": "red-orange", + "item": "40" }, "path": [ "color", - "teal", - "30" + "red-orange", + "40" ] } ] @@ -19344,103 +19115,109 @@ ] } }, - "pf-t--global--border--color--high-contrast": { - "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "rgba(255, 255, 255, 0.0000)", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", - "isSource": true, - "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "rgba(255, 255, 255, 0.0000)" - }, - "name": "pf-t--global--border--color--high-contrast", - "attributes": { - "category": "global", - "type": "border", - "item": "color", - "subitem": "high-contrast" - }, - "path": [ - "global", - "border", - "color", - "high-contrast" - ] - } - }, - "pf-t--global--border--color--default": { + "pf-t--global--border--color--status--danger--clicked": { "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "#4d4d4d", + "value": "#f4784a", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.dark.border.color.100}" + "value": "{global.color.status.danger.clicked}" }, - "name": "pf-t--global--border--color--default", + "name": "pf-t--global--border--color--status--danger--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "default" + "subitem": "status", + "state": "danger" }, "path": [ "global", "border", "color", - "default" + "status", + "danger", + "clicked" ], "references": [ { + "description": "Use as the clicked state for any element that conveys a danger status.", "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", "type": "color", - "value": "{color.gray.60}" + "value": "{global.dark.color.status.danger.200}" }, - "name": "pf-t--global--dark--border--color--100", + "name": "pf-t--global--color--status--danger--clicked", "attributes": { "category": "global", - "type": "dark", - "item": "border", - "subitem": "color", - "state": "100" + "type": "color", + "item": "status", + "subitem": "danger", + "state": "clicked" }, "path": [ "global", - "dark", - "border", "color", - "100" + "status", + "danger", + "clicked" ], "references": [ { "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#4d4d4d" + "value": "{color.red-orange.40}" }, - "name": "pf-t--color--gray--60", + "name": "pf-t--global--dark--color--status--danger--200", "attributes": { - "category": "color", - "type": "gray", - "item": "60" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" }, "path": [ + "global", + "dark", "color", - "gray", - "60" + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f4784a", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f4784a" + }, + "name": "pf-t--color--red-orange--40", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "40" + }, + "path": [ + "color", + "red-orange", + "40" + ] + } ] } ] @@ -19448,76 +19225,109 @@ ] } }, - "pf-t--global--border--color--hover": { + "pf-t--global--border--color--status--info--default": { "default": { - "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "#92c5f9", + "value": "#b6a6e9", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.dark.color.brand.100}" + "value": "{global.color.status.info.default}" }, - "name": "pf-t--global--border--color--hover", + "name": "pf-t--global--border--color--status--info--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "hover" + "subitem": "status", + "state": "info" }, "path": [ "global", "border", "color", - "hover" + "status", + "info", + "default" ], "references": [ { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "{color.blue.30}" + "value": "{global.dark.color.status.info.100}" }, - "name": "pf-t--global--dark--color--brand--100", + "name": "pf-t--global--color--status--info--default", "attributes": { "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "100" + "type": "color", + "item": "status", + "subitem": "info", + "state": "default" }, "path": [ "global", - "dark", "color", - "brand", - "100" + "status", + "info", + "default" ], "references": [ { "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#92c5f9" + "value": "{color.purple.30}" }, - "name": "pf-t--color--blue--30", + "name": "pf-t--global--dark--color--status--info--100", "attributes": { - "category": "color", - "type": "blue", - "item": "30" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" }, "path": [ + "global", + "dark", "color", - "blue", - "30" + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } ] } ] @@ -19525,76 +19335,109 @@ ] } }, - "pf-t--global--border--color--clicked": { + "pf-t--global--border--color--status--info--hover": { "default": { - "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "#b9dafc", + "value": "#d0c5f4", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.dark.color.brand.200}" + "value": "{global.color.status.info.hover}" }, - "name": "pf-t--global--border--color--clicked", + "name": "pf-t--global--border--color--status--info--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "clicked" + "subitem": "status", + "state": "info" }, "path": [ "global", "border", "color", - "clicked" + "status", + "info", + "hover" ], "references": [ { + "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "{color.blue.20}" + "value": "{global.dark.color.status.info.200}" }, - "name": "pf-t--global--dark--color--brand--200", + "name": "pf-t--global--color--status--info--hover", "attributes": { "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "200" + "type": "color", + "item": "status", + "subitem": "info", + "state": "hover" }, "path": [ "global", - "dark", "color", - "brand", - "200" + "status", + "info", + "hover" ], "references": [ { "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#b9dafc" + "value": "{color.purple.20}" }, - "name": "pf-t--color--blue--20", + "name": "pf-t--global--dark--color--status--info--200", "attributes": { - "category": "color", - "type": "blue", - "item": "20" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" }, "path": [ + "global", + "dark", "color", - "blue", - "20" + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } ] } ] @@ -19602,76 +19445,109 @@ ] } }, - "pf-t--global--border--color--subtle": { + "pf-t--global--border--color--status--info--clicked": { "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "#383838", + "value": "#d0c5f4", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.dark.border.color.50}" + "value": "{global.color.status.info.clicked}" }, - "name": "pf-t--global--border--color--subtle", + "name": "pf-t--global--border--color--status--info--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "subtle" + "subitem": "status", + "state": "info" }, "path": [ "global", "border", "color", - "subtle" + "status", + "info", + "clicked" ], "references": [ { - "type": "color", - "value": "#383838", - "filePath": "tokens/default/glass-dark/base.dark.json", + "description": "Use as the clicked state for any element that conveys an info status.", + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "{color.gray.70}" + "value": "{global.dark.color.status.info.200}" }, - "name": "pf-t--global--dark--border--color--50", + "name": "pf-t--global--color--status--info--clicked", "attributes": { "category": "global", - "type": "dark", - "item": "border", - "subitem": "color", - "state": "50" + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" }, "path": [ "global", - "dark", - "border", "color", - "50" + "status", + "info", + "clicked" ], "references": [ { "type": "color", - "value": "#383838", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#383838" + "value": "{color.purple.20}" }, - "name": "pf-t--color--gray--70", + "name": "pf-t--global--dark--color--status--info--200", "attributes": { - "category": "color", - "type": "gray", - "item": "70" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" }, "path": [ + "global", + "dark", "color", - "gray", - "70" + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } ] } ] @@ -19679,76 +19555,109 @@ ] } }, - "pf-t--global--border--color--disabled": { + "pf-t--global--border--color--status--custom--default": { "default": { - "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "#707070", + "value": "#63bdbd", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.dark.color.disabled.200}" + "value": "{global.color.status.custom.default}" }, - "name": "pf-t--global--border--color--disabled", + "name": "pf-t--global--border--color--status--custom--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "disabled" + "subitem": "status", + "state": "custom" }, "path": [ "global", "border", "color", - "disabled" + "status", + "custom", + "default" ], "references": [ { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#707070", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{color.gray.50}" + "value": "{global.dark.color.status.custom.100}" }, - "name": "pf-t--global--dark--color--disabled--200", + "name": "pf-t--global--color--status--custom--default", "attributes": { "category": "global", - "type": "dark", - "item": "color", - "subitem": "disabled", - "state": "200" + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" }, "path": [ "global", - "dark", "color", - "disabled", - "200" + "status", + "custom", + "default" ], "references": [ { "type": "color", - "value": "#707070", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#707070" + "value": "{color.teal.40}" }, - "name": "pf-t--color--gray--50", + "name": "pf-t--global--dark--color--status--custom--100", "attributes": { - "category": "color", - "type": "gray", - "item": "50" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" }, "path": [ + "global", + "dark", "color", - "gray", - "50" + "status", + "custom", + "100" + ], + "references": [ + { + "type": "color", + "value": "#63bdbd", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#63bdbd" + }, + "name": "pf-t--color--teal--40", + "attributes": { + "category": "color", + "type": "teal", + "item": "40" + }, + "path": [ + "color", + "teal", + "40" + ] + } ] } ] @@ -19756,132 +19665,219 @@ ] } }, - "pf-t--global--border--color--alt": { + "pf-t--global--border--color--status--custom--hover": { "default": { - "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "rgba(41, 41, 41, 0.5000)", + "value": "#9ad8d8", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.background.color.primary.default}" + "value": "{global.color.status.custom.hover}" }, - "name": "pf-t--global--border--color--alt", + "name": "pf-t--global--border--color--status--custom--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "alt" + "subitem": "status", + "state": "custom" }, "path": [ "global", "border", "color", - "alt" + "status", + "custom", + "hover" ], "references": [ { - "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "rgba(41, 41, 41, 0.5000)", + "value": "#9ad8d8", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "rgba(41, 41, 41, 0.5000)" + "value": "{global.dark.color.status.custom.200}" }, - "name": "pf-t--global--background--color--primary--default", + "name": "pf-t--global--color--status--custom--hover", "attributes": { "category": "global", - "type": "background", - "item": "color", - "subitem": "primary", - "state": "default" + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" }, "path": [ "global", - "background", "color", - "primary", - "default" + "status", + "custom", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.30}" + }, + "name": "pf-t--global--dark--color--status--custom--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "dark", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } + ] + } ] } ] } }, - "pf-t--global--border--color--on-secondary": { + "pf-t--global--border--color--status--custom--clicked": { "default": { - "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "#a3a3a3", + "value": "#9ad8d8", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.dark.border.color.200}" + "value": "{global.color.status.custom.clicked}" }, - "name": "pf-t--global--border--color--on-secondary", + "name": "pf-t--global--border--color--status--custom--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "on-secondary" + "subitem": "status", + "state": "custom" }, "path": [ "global", "border", "color", - "on-secondary" + "status", + "custom", + "clicked" ], "references": [ { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{color.gray.40}" + "value": "{global.dark.color.status.custom.200}" }, - "name": "pf-t--global--dark--border--color--200", + "name": "pf-t--global--color--status--custom--clicked", "attributes": { "category": "global", - "type": "dark", - "item": "border", - "subitem": "color", - "state": "200" + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" }, "path": [ "global", - "dark", - "border", "color", - "200" + "status", + "custom", + "clicked" ], "references": [ { "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#a3a3a3" + "value": "{color.teal.30}" }, - "name": "pf-t--color--gray--40", + "name": "pf-t--global--dark--color--status--custom--200", "attributes": { - "category": "color", - "type": "gray", - "item": "40" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" }, "path": [ + "global", + "dark", "color", - "gray", - "40" + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } ] } ] @@ -22215,79 +22211,74 @@ ] } }, - "pf-t--global--text--color--link--default": { + "pf-t--global--text--color--regular": { "default": { - "description": "Use as the default text color for links.", + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "#b9dafc", + "value": "#ffffff", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default text color for links.", + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "{global.dark.text.color.link.100}" + "value": "{global.dark.text.color.100}" }, - "name": "pf-t--global--text--color--link--default", + "name": "pf-t--global--text--color--regular", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "link", - "state": "default" + "subitem": "regular" }, "path": [ "global", "text", "color", - "link", - "default" + "regular" ], "references": [ { "type": "color", - "value": "#b9dafc", + "value": "#ffffff", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.20}" + "value": "{color.white}" }, - "name": "pf-t--global--dark--text--color--link--100", + "name": "pf-t--global--dark--text--color--100", "attributes": { "category": "global", "type": "dark", "item": "text", "subitem": "color", - "state": "link" + "state": "100" }, "path": [ "global", "dark", "text", "color", - "link", "100" ], "references": [ { "type": "color", - "value": "#b9dafc", + "value": "#ffffff", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b9dafc" + "value": "#ffffff" }, - "name": "pf-t--color--blue--20", + "name": "pf-t--color--white", "attributes": { "category": "color", - "type": "blue", - "item": "20" + "type": "white" }, "path": [ "color", - "blue", - "20" + "white" ] } ] @@ -22295,79 +22286,76 @@ ] } }, - "pf-t--global--text--color--link--hover": { + "pf-t--global--text--color--subtle": { "default": { - "description": "Use as the hover state text color for links.", + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "value": "#e0f0ff", + "value": "#c7c7c7", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state text color for links.", + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "value": "{global.dark.text.color.link.200}" + "value": "{global.dark.text.color.200}" }, - "name": "pf-t--global--text--color--link--hover", + "name": "pf-t--global--text--color--subtle", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "link", - "state": "hover" + "subitem": "subtle" }, "path": [ "global", "text", "color", - "link", - "hover" + "subtle" ], "references": [ { "type": "color", - "value": "#e0f0ff", + "value": "#c7c7c7", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.10}" + "value": "{color.gray.30}" }, - "name": "pf-t--global--dark--text--color--link--200", + "name": "pf-t--global--dark--text--color--200", "attributes": { "category": "global", "type": "dark", "item": "text", "subitem": "color", - "state": "link" + "state": "200" }, "path": [ "global", "dark", "text", "color", - "link", "200" ], "references": [ { "type": "color", - "value": "#e0f0ff", + "value": "#c7c7c7", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#e0f0ff" + "value": "#c7c7c7" }, - "name": "pf-t--color--blue--10", + "name": "pf-t--color--gray--30", "attributes": { "category": "color", - "type": "blue", - "item": "10" + "type": "gray", + "item": "30" }, "path": [ "color", - "blue", - "10" + "gray", + "30" ] } ] @@ -22375,79 +22363,76 @@ ] } }, - "pf-t--global--text--color--link--visited": { + "pf-t--global--text--color--inverse": { "default": { - "description": "Use as the color to indicate that a link has been visited.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#b6a6e9", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color to indicate that a link has been visited.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.dark.text.color.link.300}" + "value": "{global.dark.text.color.300}" }, - "name": "pf-t--global--text--color--link--visited", + "name": "pf-t--global--text--color--inverse", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "link", - "state": "visited" + "subitem": "inverse" }, "path": [ "global", "text", "color", - "link", - "visited" + "inverse" ], "references": [ { "type": "color", - "value": "#b6a6e9", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.30}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--text--color--link--300", + "name": "pf-t--global--dark--text--color--300", "attributes": { "category": "global", "type": "dark", "item": "text", "subitem": "color", - "state": "link" + "state": "300" }, "path": [ "global", "dark", "text", "color", - "link", "300" ], "references": [ { "type": "color", - "value": "#b6a6e9", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b6a6e9" + "value": "#1f1f1f" }, - "name": "pf-t--color--purple--30", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", - "type": "purple", - "item": "30" + "type": "gray", + "item": "90" }, "path": [ "color", - "purple", - "30" + "gray", + "90" ] } ] @@ -22455,78 +22440,103 @@ ] } }, - "pf-t--global--text--color--brand--default": { + "pf-t--global--text--color--placeholder": { "default": { - "description": "Use as the default color for branded text.", + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", "type": "color", - "value": "#b9dafc", + "value": "#c7c7c7", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for branded text.", + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", "type": "color", - "value": "{global.dark.color.brand.200}" + "value": "{global.text.color.subtle}" }, - "name": "pf-t--global--text--color--brand--default", + "name": "pf-t--global--text--color--placeholder", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "brand", - "state": "default" + "subitem": "placeholder" }, "path": [ "global", "text", "color", - "brand", - "default" + "placeholder" ], "references": [ { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#c7c7c7", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "value": "{color.blue.20}" + "value": "{global.dark.text.color.200}" }, - "name": "pf-t--global--dark--color--brand--200", + "name": "pf-t--global--text--color--subtle", "attributes": { "category": "global", - "type": "dark", + "type": "text", "item": "color", - "subitem": "brand", - "state": "200" + "subitem": "subtle" }, "path": [ "global", - "dark", + "text", "color", - "brand", - "200" + "subtle" ], "references": [ { "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#c7c7c7", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#b9dafc" + "value": "{color.gray.30}" }, - "name": "pf-t--color--blue--20", + "name": "pf-t--global--dark--text--color--200", "attributes": { - "category": "color", - "type": "blue", - "item": "20" + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "200" }, "path": [ + "global", + "dark", + "text", "color", - "blue", - "20" + "200" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } ] } ] @@ -22534,78 +22544,76 @@ ] } }, - "pf-t--global--text--color--brand--hover": { + "pf-t--global--text--color--disabled": { "default": { - "description": "Use as the hover state color for branded text.", + "description": "Use as the color of text on disabled elements, like disabled menu items.", "type": "color", - "value": "#e0f0ff", + "value": "#707070", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for branded text.", + "description": "Use as the color of text on disabled elements, like disabled menu items.", "type": "color", - "value": "{global.dark.color.brand.300}" + "value": "{global.dark.color.disabled.200}" }, - "name": "pf-t--global--text--color--brand--hover", + "name": "pf-t--global--text--color--disabled", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "brand", - "state": "hover" + "subitem": "disabled" }, "path": [ "global", "text", "color", - "brand", - "hover" + "disabled" ], "references": [ { "type": "color", - "value": "#e0f0ff", + "value": "#707070", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.10}" + "value": "{color.gray.50}" }, - "name": "pf-t--global--dark--color--brand--300", + "name": "pf-t--global--dark--color--disabled--200", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "brand", - "state": "300" + "subitem": "disabled", + "state": "200" }, "path": [ "global", "dark", "color", - "brand", - "300" + "disabled", + "200" ], "references": [ { "type": "color", - "value": "#e0f0ff", + "value": "#707070", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#e0f0ff" + "value": "#707070" }, - "name": "pf-t--color--blue--10", + "name": "pf-t--color--gray--50", "attributes": { "category": "color", - "type": "blue", - "item": "10" + "type": "gray", + "item": "50" }, "path": [ "color", - "blue", - "10" + "gray", + "50" ] } ] @@ -22613,78 +22621,76 @@ ] } }, - "pf-t--global--text--color--brand--clicked": { + "pf-t--global--text--color--on-disabled": { "default": { - "description": "Use as the clicked state color for branded text.", + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", "type": "color", - "value": "#e0f0ff", + "value": "#383838", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for branded text.", + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", "type": "color", - "value": "{global.dark.color.brand.300}" + "value": "{global.dark.color.disabled.300}" }, - "name": "pf-t--global--text--color--brand--clicked", + "name": "pf-t--global--text--color--on-disabled", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "brand", - "state": "clicked" + "subitem": "on-disabled" }, "path": [ "global", "text", "color", - "brand", - "clicked" + "on-disabled" ], "references": [ { "type": "color", - "value": "#e0f0ff", + "value": "#383838", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.10}" + "value": "{color.gray.70}" }, - "name": "pf-t--global--dark--color--brand--300", + "name": "pf-t--global--dark--color--disabled--300", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "brand", + "subitem": "disabled", "state": "300" }, "path": [ "global", "dark", "color", - "brand", + "disabled", "300" ], "references": [ { "type": "color", - "value": "#e0f0ff", + "value": "#383838", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#e0f0ff" + "value": "#383838" }, - "name": "pf-t--color--blue--10", + "name": "pf-t--color--gray--70", "attributes": { "category": "color", - "type": "blue", - "item": "10" + "type": "gray", + "item": "70" }, "path": [ "color", - "blue", - "10" + "gray", + "70" ] } ] @@ -22692,74 +22698,76 @@ ] } }, - "pf-t--global--text--color--regular": { + "pf-t--global--text--color--required": { "default": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", "type": "color", - "value": "#ffffff", + "value": "#f89b78", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", "type": "color", - "value": "{global.dark.text.color.100}" + "value": "{global.dark.text.color.400}" }, - "name": "pf-t--global--text--color--regular", + "name": "pf-t--global--text--color--required", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "regular" + "subitem": "required" }, "path": [ "global", "text", "color", - "regular" + "required" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#f89b78", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.white}" + "value": "{color.red-orange.30}" }, - "name": "pf-t--global--dark--text--color--100", + "name": "pf-t--global--dark--text--color--400", "attributes": { "category": "global", "type": "dark", "item": "text", "subitem": "color", - "state": "100" + "state": "400" }, "path": [ "global", "dark", "text", "color", - "100" + "400" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#f89b78", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffffff" + "value": "#f89b78" }, - "name": "pf-t--color--white", + "name": "pf-t--color--red-orange--30", "attributes": { "category": "color", - "type": "white" + "type": "red-orange", + "item": "30" }, "path": [ "color", - "white" + "red-orange", + "30" ] } ] @@ -22767,76 +22775,76 @@ ] } }, - "pf-t--global--text--color--subtle": { + "pf-t--global--text--color--on-highlight": { "default": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "description": "Use as the color of text that is highlighted.", "type": "color", - "value": "#c7c7c7", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "description": "Use as the color of text that is highlighted.", "type": "color", - "value": "{global.dark.text.color.200}" + "value": "{global.dark.text.color.300}" }, - "name": "pf-t--global--text--color--subtle", + "name": "pf-t--global--text--color--on-highlight", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "subtle" + "subitem": "on-highlight" }, "path": [ "global", "text", "color", - "subtle" + "on-highlight" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.30}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--text--color--200", + "name": "pf-t--global--dark--text--color--300", "attributes": { "category": "global", "type": "dark", "item": "text", "subitem": "color", - "state": "200" + "state": "300" }, "path": [ "global", "dark", "text", "color", - "200" + "300" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#c7c7c7" + "value": "#1f1f1f" }, - "name": "pf-t--color--gray--30", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", "type": "gray", - "item": "30" + "item": "90" }, "path": [ "color", "gray", - "30" + "90" ] } ] @@ -22844,76 +22852,79 @@ ] } }, - "pf-t--global--text--color--inverse": { + "pf-t--global--text--color--link--default": { "default": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "description": "Use as the default text color for links.", "type": "color", - "value": "#1f1f1f", + "value": "#b9dafc", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "description": "Use as the default text color for links.", "type": "color", - "value": "{global.dark.text.color.300}" + "value": "{global.dark.text.color.link.100}" }, - "name": "pf-t--global--text--color--inverse", + "name": "pf-t--global--text--color--link--default", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "inverse" + "subitem": "link", + "state": "default" }, "path": [ "global", "text", "color", - "inverse" + "link", + "default" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#b9dafc", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "{color.blue.20}" }, - "name": "pf-t--global--dark--text--color--300", + "name": "pf-t--global--dark--text--color--link--100", "attributes": { "category": "global", "type": "dark", "item": "text", "subitem": "color", - "state": "300" + "state": "link" }, "path": [ "global", "dark", "text", "color", - "300" + "link", + "100" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#b9dafc", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "#b9dafc" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--color--blue--20", "attributes": { "category": "color", - "type": "gray", - "item": "90" + "type": "blue", + "item": "20" }, "path": [ "color", - "gray", - "90" + "blue", + "20" ] } ] @@ -22921,105 +22932,79 @@ ] } }, - "pf-t--global--text--color--on-brand--default": { + "pf-t--global--text--color--link--hover": { "default": { - "description": "Use as the default color for text placed on a brand-colored background.", + "description": "Use as the hover state text color for links.", "type": "color", - "value": "#1f1f1f", + "value": "#e0f0ff", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for text placed on a brand-colored background.", + "description": "Use as the hover state text color for links.", "type": "color", - "value": "{global.text.color.inverse}" + "value": "{global.dark.text.color.link.200}" }, - "name": "pf-t--global--text--color--on-brand--default", + "name": "pf-t--global--text--color--link--hover", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-brand", - "state": "default" + "subitem": "link", + "state": "hover" }, "path": [ "global", "text", - "color", - "on-brand", - "default" + "color", + "link", + "hover" ], "references": [ { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.dark.text.color.300}" + "value": "{color.blue.10}" }, - "name": "pf-t--global--text--color--inverse", + "name": "pf-t--global--dark--text--color--link--200", "attributes": { "category": "global", - "type": "text", - "item": "color", - "subitem": "inverse" + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" }, "path": [ "global", + "dark", "text", "color", - "inverse" + "link", + "200" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "#e0f0ff" }, - "name": "pf-t--global--dark--text--color--300", + "name": "pf-t--color--blue--10", "attributes": { - "category": "global", - "type": "dark", - "item": "text", - "subitem": "color", - "state": "300" + "category": "color", + "type": "blue", + "item": "10" }, "path": [ - "global", - "dark", - "text", "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#1f1f1f" - }, - "name": "pf-t--color--gray--90", - "attributes": { - "category": "color", - "type": "gray", - "item": "90" - }, - "path": [ - "color", - "gray", - "90" - ] - } + "blue", + "10" ] } ] @@ -23027,105 +23012,79 @@ ] } }, - "pf-t--global--text--color--on-brand--hover": { + "pf-t--global--text--color--link--visited": { "default": { - "description": "Use as the hover state color for text placed on a brand-colored background.", + "description": "Use as the color to indicate that a link has been visited.", "type": "color", - "value": "#1f1f1f", + "value": "#b6a6e9", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for text placed on a brand-colored background.", + "description": "Use as the color to indicate that a link has been visited.", "type": "color", - "value": "{global.text.color.inverse}" + "value": "{global.dark.text.color.link.300}" }, - "name": "pf-t--global--text--color--on-brand--hover", + "name": "pf-t--global--text--color--link--visited", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-brand", - "state": "hover" + "subitem": "link", + "state": "visited" }, "path": [ "global", "text", "color", - "on-brand", - "hover" + "link", + "visited" ], "references": [ { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.dark.text.color.300}" + "value": "{color.purple.30}" }, - "name": "pf-t--global--text--color--inverse", + "name": "pf-t--global--dark--text--color--link--300", "attributes": { "category": "global", - "type": "text", - "item": "color", - "subitem": "inverse" + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" }, "path": [ "global", + "dark", "text", "color", - "inverse" + "link", + "300" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#b6a6e9", + "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "#b6a6e9" }, - "name": "pf-t--global--dark--text--color--300", + "name": "pf-t--color--purple--30", "attributes": { - "category": "global", - "type": "dark", - "item": "text", - "subitem": "color", - "state": "300" + "category": "color", + "type": "purple", + "item": "30" }, "path": [ - "global", - "dark", - "text", "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#1f1f1f" - }, - "name": "pf-t--color--gray--90", - "attributes": { - "category": "color", - "type": "gray", - "item": "90" - }, - "path": [ - "color", - "gray", - "90" - ] - } + "purple", + "30" ] } ] @@ -23133,105 +23092,78 @@ ] } }, - "pf-t--global--text--color--on-brand--clicked": { + "pf-t--global--text--color--brand--default": { "default": { - "description": "Use as the clicked state color for text placed on a brand-colored background.", + "description": "Use as the default color for branded text.", "type": "color", - "value": "#1f1f1f", + "value": "#b9dafc", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for text placed on a brand-colored background.", + "description": "Use as the default color for branded text.", "type": "color", - "value": "{global.text.color.inverse}" + "value": "{global.dark.color.brand.200}" }, - "name": "pf-t--global--text--color--on-brand--clicked", + "name": "pf-t--global--text--color--brand--default", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-brand", - "state": "clicked" + "subitem": "brand", + "state": "default" }, "path": [ "global", "text", "color", - "on-brand", - "clicked" + "brand", + "default" ], "references": [ { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.dark.text.color.300}" + "value": "{color.blue.20}" }, - "name": "pf-t--global--text--color--inverse", + "name": "pf-t--global--dark--color--brand--200", "attributes": { "category": "global", - "type": "text", + "type": "dark", "item": "color", - "subitem": "inverse" + "subitem": "brand", + "state": "200" }, "path": [ "global", - "text", + "dark", "color", - "inverse" + "brand", + "200" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#b9dafc", + "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "#b9dafc" }, - "name": "pf-t--global--dark--text--color--300", + "name": "pf-t--color--blue--20", "attributes": { - "category": "global", - "type": "dark", - "item": "text", - "subitem": "color", - "state": "300" + "category": "color", + "type": "blue", + "item": "20" }, "path": [ - "global", - "dark", - "text", "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#1f1f1f" - }, - "name": "pf-t--color--gray--90", - "attributes": { - "category": "color", - "type": "gray", - "item": "90" - }, - "path": [ - "color", - "gray", - "90" - ] - } + "blue", + "20" ] } ] @@ -23239,106 +23171,78 @@ ] } }, - "pf-t--global--text--color--on-brand--accent--default": { + "pf-t--global--text--color--brand--hover": { "default": { - "description": "Use as the default color for text placed on a brand-colored background.", + "description": "Use as the hover state color for branded text.", "type": "color", - "value": "#1f1f1f", + "value": "#e0f0ff", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for text placed on a brand-colored background.", + "description": "Use as the hover state color for branded text.", "type": "color", - "value": "{global.text.color.inverse}" + "value": "{global.dark.color.brand.300}" }, - "name": "pf-t--global--text--color--on-brand--accent--default", + "name": "pf-t--global--text--color--brand--hover", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-brand", - "state": "accent" + "subitem": "brand", + "state": "hover" }, "path": [ "global", "text", "color", - "on-brand", - "accent", - "default" + "brand", + "hover" ], "references": [ { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.dark.text.color.300}" + "value": "{color.blue.10}" }, - "name": "pf-t--global--text--color--inverse", + "name": "pf-t--global--dark--color--brand--300", "attributes": { "category": "global", - "type": "text", + "type": "dark", "item": "color", - "subitem": "inverse" + "subitem": "brand", + "state": "300" }, "path": [ "global", - "text", + "dark", "color", - "inverse" + "brand", + "300" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "#e0f0ff" }, - "name": "pf-t--global--dark--text--color--300", + "name": "pf-t--color--blue--10", "attributes": { - "category": "global", - "type": "dark", - "item": "text", - "subitem": "color", - "state": "300" + "category": "color", + "type": "blue", + "item": "10" }, "path": [ - "global", - "dark", - "text", "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#1f1f1f" - }, - "name": "pf-t--color--gray--90", - "attributes": { - "category": "color", - "type": "gray", - "item": "90" - }, - "path": [ - "color", - "gray", - "90" - ] - } + "blue", + "10" ] } ] @@ -23346,106 +23250,78 @@ ] } }, - "pf-t--global--text--color--on-brand--accent--hover": { + "pf-t--global--text--color--brand--clicked": { "default": { - "description": "Use as the hover state color for text placed on a brand-colored background.", + "description": "Use as the clicked state color for branded text.", "type": "color", - "value": "#1f1f1f", + "value": "#e0f0ff", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for text placed on a brand-colored background.", + "description": "Use as the clicked state color for branded text.", "type": "color", - "value": "{global.text.color.inverse}" + "value": "{global.dark.color.brand.300}" }, - "name": "pf-t--global--text--color--on-brand--accent--hover", + "name": "pf-t--global--text--color--brand--clicked", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-brand", - "state": "accent" + "subitem": "brand", + "state": "clicked" }, "path": [ "global", "text", "color", - "on-brand", - "accent", - "hover" + "brand", + "clicked" ], "references": [ { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.dark.text.color.300}" + "value": "{color.blue.10}" }, - "name": "pf-t--global--text--color--inverse", + "name": "pf-t--global--dark--color--brand--300", "attributes": { "category": "global", - "type": "text", + "type": "dark", "item": "color", - "subitem": "inverse" + "subitem": "brand", + "state": "300" }, "path": [ "global", - "text", + "dark", "color", - "inverse" + "brand", + "300" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#e0f0ff", + "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "#e0f0ff" }, - "name": "pf-t--global--dark--text--color--300", + "name": "pf-t--color--blue--10", "attributes": { - "category": "global", - "type": "dark", - "item": "text", - "subitem": "color", - "state": "300" + "category": "color", + "type": "blue", + "item": "10" }, "path": [ - "global", - "dark", - "text", "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#1f1f1f" - }, - "name": "pf-t--color--gray--90", - "attributes": { - "category": "color", - "type": "gray", - "item": "90" - }, - "path": [ - "color", - "gray", - "90" - ] - } + "blue", + "10" ] } ] @@ -23453,33 +23329,32 @@ ] } }, - "pf-t--global--text--color--on-brand--accent--clicked": { + "pf-t--global--text--color--on-brand--default": { "default": { - "description": "Use as the clicked state color for text placed on a brand-colored background.", + "description": "Use as the default color for text placed on a brand-colored background.", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for text placed on a brand-colored background.", + "description": "Use as the default color for text placed on a brand-colored background.", "type": "color", "value": "{global.text.color.inverse}" }, - "name": "pf-t--global--text--color--on-brand--accent--clicked", + "name": "pf-t--global--text--color--on-brand--default", "attributes": { "category": "global", "type": "text", "item": "color", "subitem": "on-brand", - "state": "accent" + "state": "default" }, "path": [ "global", "text", "color", "on-brand", - "accent", - "clicked" + "default" ], "references": [ { @@ -23560,102 +23435,103 @@ ] } }, - "pf-t--global--text--color--on-brand--subtle--default": { + "pf-t--global--text--color--on-brand--hover": { "default": { - "description": "Use as the default color for text placed on a brand-colored background.", + "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the default color for text placed on a brand-colored background.", + "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.text.color.regular}" + "value": "{global.text.color.inverse}" }, - "name": "pf-t--global--text--color--on-brand--subtle--default", + "name": "pf-t--global--text--color--on-brand--hover", "attributes": { "category": "global", "type": "text", "item": "color", "subitem": "on-brand", - "state": "subtle" + "state": "hover" }, "path": [ "global", "text", "color", "on-brand", - "subtle", - "default" + "hover" ], "references": [ { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.dark.text.color.100}" + "value": "{global.dark.text.color.300}" }, - "name": "pf-t--global--text--color--regular", + "name": "pf-t--global--text--color--inverse", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "regular" + "subitem": "inverse" }, "path": [ "global", "text", "color", - "regular" + "inverse" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.white}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--text--color--100", + "name": "pf-t--global--dark--text--color--300", "attributes": { "category": "global", "type": "dark", "item": "text", "subitem": "color", - "state": "100" + "state": "300" }, "path": [ "global", "dark", "text", "color", - "100" + "300" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffffff" + "value": "#1f1f1f" }, - "name": "pf-t--color--white", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", - "type": "white" + "type": "gray", + "item": "90" }, "path": [ "color", - "white" + "gray", + "90" ] } ] @@ -23665,102 +23541,103 @@ ] } }, - "pf-t--global--text--color--on-brand--subtle--hover": { + "pf-t--global--text--color--on-brand--clicked": { "default": { - "description": "Use as the hover state color for text placed on a brand-colored background.", + "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for text placed on a brand-colored background.", + "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.text.color.regular}" + "value": "{global.text.color.inverse}" }, - "name": "pf-t--global--text--color--on-brand--subtle--hover", + "name": "pf-t--global--text--color--on-brand--clicked", "attributes": { "category": "global", "type": "text", "item": "color", "subitem": "on-brand", - "state": "subtle" + "state": "clicked" }, "path": [ "global", "text", "color", "on-brand", - "subtle", - "hover" + "clicked" ], "references": [ { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.dark.text.color.100}" + "value": "{global.dark.text.color.300}" }, - "name": "pf-t--global--text--color--regular", + "name": "pf-t--global--text--color--inverse", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "regular" + "subitem": "inverse" }, "path": [ "global", "text", "color", - "regular" + "inverse" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.white}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--text--color--100", + "name": "pf-t--global--dark--text--color--300", "attributes": { "category": "global", "type": "dark", "item": "text", "subitem": "color", - "state": "100" + "state": "300" }, "path": [ "global", "dark", "text", "color", - "100" + "300" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffffff" + "value": "#1f1f1f" }, - "name": "pf-t--color--white", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", - "type": "white" + "type": "gray", + "item": "90" }, "path": [ "color", - "white" + "gray", + "90" ] } ] @@ -23770,102 +23647,104 @@ ] } }, - "pf-t--global--text--color--on-brand--subtle--clicked": { + "pf-t--global--text--color--on-brand--accent--default": { "default": { - "description": "Use as the clicked state color for text placed on a brand-colored background.", + "description": "Use as the default color for text placed on a brand-colored background.", "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for text placed on a brand-colored background.", + "description": "Use as the default color for text placed on a brand-colored background.", "type": "color", - "value": "{global.text.color.regular}" + "value": "{global.text.color.inverse}" }, - "name": "pf-t--global--text--color--on-brand--subtle--clicked", + "name": "pf-t--global--text--color--on-brand--accent--default", "attributes": { "category": "global", "type": "text", "item": "color", "subitem": "on-brand", - "state": "subtle" + "state": "accent" }, "path": [ "global", "text", "color", "on-brand", - "subtle", - "clicked" + "accent", + "default" ], "references": [ { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.dark.text.color.100}" + "value": "{global.dark.text.color.300}" }, - "name": "pf-t--global--text--color--regular", + "name": "pf-t--global--text--color--inverse", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "regular" + "subitem": "inverse" }, "path": [ "global", "text", "color", - "regular" + "inverse" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.white}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--text--color--100", + "name": "pf-t--global--dark--text--color--300", "attributes": { "category": "global", "type": "dark", "item": "text", "subitem": "color", - "state": "100" + "state": "300" }, "path": [ "global", "dark", "text", "color", - "100" + "300" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffffff" + "value": "#1f1f1f" }, - "name": "pf-t--color--white", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", - "type": "white" + "type": "gray", + "item": "90" }, "path": [ "color", - "white" + "gray", + "90" ] } ] @@ -23875,101 +23754,104 @@ ] } }, - "pf-t--global--text--color--placeholder": { + "pf-t--global--text--color--on-brand--accent--hover": { "default": { - "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", - "value": "#c7c7c7", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.text.color.subtle}" + "value": "{global.text.color.inverse}" }, - "name": "pf-t--global--text--color--placeholder", + "name": "pf-t--global--text--color--on-brand--accent--hover", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "placeholder" + "subitem": "on-brand", + "state": "accent" }, "path": [ "global", "text", "color", - "placeholder" + "on-brand", + "accent", + "hover" ], "references": [ { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#c7c7c7", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.dark.text.color.200}" + "value": "{global.dark.text.color.300}" }, - "name": "pf-t--global--text--color--subtle", + "name": "pf-t--global--text--color--inverse", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "subtle" + "subitem": "inverse" }, "path": [ "global", "text", "color", - "subtle" + "inverse" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.30}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--text--color--200", + "name": "pf-t--global--dark--text--color--300", "attributes": { "category": "global", "type": "dark", "item": "text", "subitem": "color", - "state": "200" + "state": "300" }, "path": [ "global", "dark", "text", "color", - "200" + "300" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#c7c7c7" + "value": "#1f1f1f" }, - "name": "pf-t--color--gray--30", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", "type": "gray", - "item": "30" + "item": "90" }, "path": [ "color", "gray", - "30" + "90" ] } ] @@ -23979,76 +23861,106 @@ ] } }, - "pf-t--global--text--color--disabled": { + "pf-t--global--text--color--on-brand--accent--clicked": { "default": { - "description": "Use as the color of text on disabled elements, like disabled menu items.", + "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", - "value": "#707070", + "value": "#1f1f1f", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color of text on disabled elements, like disabled menu items.", + "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.dark.color.disabled.200}" + "value": "{global.text.color.inverse}" }, - "name": "pf-t--global--text--color--disabled", + "name": "pf-t--global--text--color--on-brand--accent--clicked", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "disabled" + "subitem": "on-brand", + "state": "accent" }, "path": [ "global", "text", "color", - "disabled" + "on-brand", + "accent", + "clicked" ], "references": [ { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#707070", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{color.gray.50}" + "value": "{global.dark.text.color.300}" }, - "name": "pf-t--global--dark--color--disabled--200", + "name": "pf-t--global--text--color--inverse", "attributes": { "category": "global", - "type": "dark", + "type": "text", "item": "color", - "subitem": "disabled", - "state": "200" + "subitem": "inverse" }, "path": [ "global", - "dark", + "text", "color", - "disabled", - "200" + "inverse" ], "references": [ { "type": "color", - "value": "#707070", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#707070" + "value": "{color.gray.90}" }, - "name": "pf-t--color--gray--50", + "name": "pf-t--global--dark--text--color--300", "attributes": { - "category": "color", - "type": "gray", - "item": "50" + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" }, "path": [ + "global", + "dark", + "text", "color", - "gray", - "50" + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } ] } ] @@ -24056,76 +23968,104 @@ ] } }, - "pf-t--global--text--color--on-disabled": { + "pf-t--global--text--color--on-brand--subtle--default": { "default": { - "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", + "description": "Use as the default color for text placed on a brand-colored background.", "type": "color", - "value": "#383838", + "value": "#ffffff", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", + "description": "Use as the default color for text placed on a brand-colored background.", "type": "color", - "value": "{global.dark.color.disabled.300}" + "value": "{global.text.color.regular}" }, - "name": "pf-t--global--text--color--on-disabled", + "name": "pf-t--global--text--color--on-brand--subtle--default", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-disabled" + "subitem": "on-brand", + "state": "subtle" }, "path": [ "global", "text", "color", - "on-disabled" + "on-brand", + "subtle", + "default" ], "references": [ { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "#383838", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "{color.gray.70}" + "value": "{global.dark.text.color.100}" }, - "name": "pf-t--global--dark--color--disabled--300", + "name": "pf-t--global--text--color--regular", "attributes": { "category": "global", - "type": "dark", + "type": "text", "item": "color", - "subitem": "disabled", - "state": "300" + "subitem": "regular" }, "path": [ "global", - "dark", + "text", "color", - "disabled", - "300" + "regular" ], "references": [ { "type": "color", - "value": "#383838", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#383838" + "value": "{color.white}" }, - "name": "pf-t--color--gray--70", + "name": "pf-t--global--dark--text--color--100", "attributes": { - "category": "color", - "type": "gray", - "item": "70" + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" }, "path": [ + "global", + "dark", + "text", "color", - "gray", - "70" + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } ] } ] @@ -24133,76 +24073,104 @@ ] } }, - "pf-t--global--text--color--required": { + "pf-t--global--text--color--on-brand--subtle--hover": { "default": { - "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", + "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", - "value": "#f89b78", + "value": "#ffffff", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", + "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.dark.text.color.400}" + "value": "{global.text.color.regular}" }, - "name": "pf-t--global--text--color--required", + "name": "pf-t--global--text--color--on-brand--subtle--hover", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "required" + "subitem": "on-brand", + "state": "subtle" }, "path": [ "global", "text", "color", - "required" + "on-brand", + "subtle", + "hover" ], "references": [ { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "#f89b78", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "{color.red-orange.30}" + "value": "{global.dark.text.color.100}" }, - "name": "pf-t--global--dark--text--color--400", + "name": "pf-t--global--text--color--regular", "attributes": { "category": "global", - "type": "dark", - "item": "text", - "subitem": "color", - "state": "400" + "type": "text", + "item": "color", + "subitem": "regular" }, "path": [ "global", - "dark", "text", "color", - "400" + "regular" ], "references": [ { "type": "color", - "value": "#f89b78", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#f89b78" + "value": "{color.white}" }, - "name": "pf-t--color--red-orange--30", + "name": "pf-t--global--dark--text--color--100", "attributes": { - "category": "color", - "type": "red-orange", - "item": "30" + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" }, "path": [ + "global", + "dark", + "text", "color", - "red-orange", - "30" + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } ] } ] @@ -24210,76 +24178,104 @@ ] } }, - "pf-t--global--text--color--on-highlight": { + "pf-t--global--text--color--on-brand--subtle--clicked": { "default": { - "description": "Use as the color of text that is highlighted.", + "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", - "value": "#1f1f1f", + "value": "#ffffff", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as the color of text that is highlighted.", + "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.dark.text.color.300}" + "value": "{global.text.color.regular}" }, - "name": "pf-t--global--text--color--on-highlight", + "name": "pf-t--global--text--color--on-brand--subtle--clicked", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-highlight" + "subitem": "on-brand", + "state": "subtle" }, "path": [ "global", "text", "color", - "on-highlight" + "on-brand", + "subtle", + "clicked" ], "references": [ { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/base.dark.json", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "{color.gray.90}" + "value": "{global.dark.text.color.100}" }, - "name": "pf-t--global--dark--text--color--300", + "name": "pf-t--global--text--color--regular", "attributes": { "category": "global", - "type": "dark", - "item": "text", - "subitem": "color", - "state": "300" + "type": "text", + "item": "color", + "subitem": "regular" }, "path": [ "global", - "dark", "text", "color", - "300" + "regular" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass-dark/palette.color.json", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "{color.white}" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--global--dark--text--color--100", "attributes": { - "category": "color", - "type": "gray", - "item": "90" + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" }, "path": [ + "global", + "dark", + "text", "color", - "gray", - "90" + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } ] } ] @@ -31241,147 +31237,70 @@ "type": "dark", "item": "box-shadow", "subitem": "color", - "state": "100" - }, - "path": [ - "global", - "dark", - "box-shadow", - "color", - "100" - ] - } - ] - } - }, - "pf-t--global--box-shadow--color--lg--directional": { - "default": { - "description": "Use as the color of large box-shadows.", - "type": "color", - "value": "rgba(0, 0, 0, 0.6000)", - "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", - "isSource": true, - "original": { - "description": "Use as the color of large box-shadows.", - "type": "color", - "value": "{global.dark.box-shadow.color.200}" - }, - "name": "pf-t--global--box-shadow--color--lg--directional", - "attributes": { - "category": "global", - "type": "box-shadow", - "item": "color", - "subitem": "lg", - "state": "directional" - }, - "path": [ - "global", - "box-shadow", - "color", - "lg", - "directional" - ], - "references": [ - { - "type": "color", - "value": "rgba(0, 0, 0, 0.6000)", - "filePath": "tokens/default/glass-dark/base.dark.json", - "isSource": true, - "original": { - "type": "color", - "value": "rgba(0, 0, 0, 0.6000)" - }, - "name": "pf-t--global--dark--box-shadow--color--200", - "attributes": { - "category": "global", - "type": "dark", - "item": "box-shadow", - "subitem": "color", - "state": "200" + "state": "100" }, "path": [ "global", "dark", "box-shadow", "color", - "200" + "100" ] } ] } }, - "pf-t--global--focus-ring--color--default": { + "pf-t--global--box-shadow--color--lg--directional": { "default": { - "description": "Use as color value for custom focus rings", + "description": "Use as the color of large box-shadows.", "type": "color", - "value": "#92c5f9", + "value": "rgba(0, 0, 0, 0.6000)", "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", "isSource": true, "original": { - "description": "Use as color value for custom focus rings", + "description": "Use as the color of large box-shadows.", "type": "color", - "value": "{global.dark.focus-ring.color.100}" + "value": "{global.dark.box-shadow.color.200}" }, - "name": "pf-t--global--focus-ring--color--default", + "name": "pf-t--global--box-shadow--color--lg--directional", "attributes": { "category": "global", - "type": "focus-ring", + "type": "box-shadow", "item": "color", - "subitem": "default" + "subitem": "lg", + "state": "directional" }, "path": [ "global", - "focus-ring", + "box-shadow", "color", - "default" + "lg", + "directional" ], "references": [ { "type": "color", - "value": "#92c5f9", + "value": "rgba(0, 0, 0, 0.6000)", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.30}" + "value": "rgba(0, 0, 0, 0.6000)" }, - "name": "pf-t--global--dark--focus-ring--color--100", + "name": "pf-t--global--dark--box-shadow--color--200", "attributes": { "category": "global", "type": "dark", - "item": "focus-ring", + "item": "box-shadow", "subitem": "color", - "state": "100" + "state": "200" }, "path": [ "global", "dark", - "focus-ring", + "box-shadow", "color", - "100" - ], - "references": [ - { - "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#92c5f9" - }, - "name": "pf-t--color--blue--30", - "attributes": { - "category": "color", - "type": "blue", - "item": "30" - }, - "path": [ - "color", - "blue", - "30" - ] - } + "200" ] } ] @@ -31563,6 +31482,83 @@ } ] } + }, + "pf-t--global--focus-ring--color--default": { + "default": { + "description": "Use as color value for custom focus rings", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/semantic.glass.dark.json", + "isSource": true, + "original": { + "description": "Use as color value for custom focus rings", + "type": "color", + "value": "{global.dark.focus-ring.color.100}" + }, + "name": "pf-t--global--focus-ring--color--default", + "attributes": { + "category": "global", + "type": "focus-ring", + "item": "color", + "subitem": "default" + }, + "path": [ + "global", + "focus-ring", + "color", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--focus-ring--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "focus-ring", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "focus-ring", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } } }, "dimension": {}, @@ -32859,160 +32855,160 @@ ] } }, - "pf-t--global--dark--color--status--success--100": { + "pf-t--global--dark--color--severity--undefined--100": { "default": { "type": "color", - "value": "#87bb62", + "value": "#a3a3a3", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.40}" + "value": "{color.gray.40}" }, - "name": "pf-t--global--dark--color--status--success--100", + "name": "pf-t--global--dark--color--severity--undefined--100", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "severity", + "state": "undefined" }, "path": [ "global", "dark", "color", - "status", - "success", + "severity", + "undefined", "100" ], "references": [ { "type": "color", - "value": "#87bb62", + "value": "#a3a3a3", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#87bb62" + "value": "#a3a3a3" }, - "name": "pf-t--color--green--40", + "name": "pf-t--color--gray--40", "attributes": { "category": "color", - "type": "green", + "type": "gray", "item": "40" }, "path": [ "color", - "green", + "gray", "40" ] } ] } }, - "pf-t--global--dark--color--status--success--200": { + "pf-t--global--dark--color--severity--none--100": { "default": { "type": "color", - "value": "#afdc8f", + "value": "#92c5f9", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.30}" + "value": "{color.blue.30}" }, - "name": "pf-t--global--dark--color--status--success--200", + "name": "pf-t--global--dark--color--severity--none--100", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "severity", + "state": "none" }, "path": [ "global", "dark", "color", - "status", - "success", - "200" + "severity", + "none", + "100" ], "references": [ { "type": "color", - "value": "#afdc8f", + "value": "#92c5f9", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#afdc8f" + "value": "#92c5f9" }, - "name": "pf-t--color--green--30", + "name": "pf-t--color--blue--30", "attributes": { "category": "color", - "type": "green", + "type": "blue", "item": "30" }, "path": [ "color", - "green", + "blue", "30" ] } ] } }, - "pf-t--global--dark--color--status--success--300": { + "pf-t--global--dark--color--severity--minor--100": { "default": { "type": "color", - "value": "#d1f1bb", + "value": "#c7c7c7", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.20}" + "value": "{color.gray.30}" }, - "name": "pf-t--global--dark--color--status--success--300", + "name": "pf-t--global--dark--color--severity--minor--100", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "severity", + "state": "minor" }, "path": [ "global", "dark", "color", - "status", - "success", - "300" + "severity", + "minor", + "100" ], "references": [ { "type": "color", - "value": "#d1f1bb", + "value": "#c7c7c7", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#d1f1bb" + "value": "#c7c7c7" }, - "name": "pf-t--color--green--20", + "name": "pf-t--color--gray--30", "attributes": { "category": "color", - "type": "green", - "item": "20" + "type": "gray", + "item": "30" }, "path": [ "color", - "green", - "20" + "gray", + "30" ] } ] } }, - "pf-t--global--dark--color--status--warning--100": { + "pf-t--global--dark--color--severity--moderate--100": { "default": { "type": "color", "value": "#ffcc17", @@ -33022,20 +33018,20 @@ "type": "color", "value": "{color.yellow.30}" }, - "name": "pf-t--global--dark--color--status--warning--100", + "name": "pf-t--global--dark--color--severity--moderate--100", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "severity", + "state": "moderate" }, "path": [ "global", "dark", "color", - "status", - "warning", + "severity", + "moderate", "100" ], "references": [ @@ -33063,58 +33059,58 @@ ] } }, - "pf-t--global--dark--color--status--warning--200": { + "pf-t--global--dark--color--severity--important--100": { "default": { "type": "color", - "value": "#ffe072", + "value": "#f5921b", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.20}" + "value": "{color.orange.40}" }, - "name": "pf-t--global--dark--color--status--warning--200", + "name": "pf-t--global--dark--color--severity--important--100", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "severity", + "state": "important" }, "path": [ "global", "dark", "color", - "status", - "warning", - "200" + "severity", + "important", + "100" ], "references": [ { "type": "color", - "value": "#ffe072", + "value": "#f5921b", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffe072" + "value": "#f5921b" }, - "name": "pf-t--color--yellow--20", + "name": "pf-t--color--orange--40", "attributes": { "category": "color", - "type": "yellow", - "item": "20" + "type": "orange", + "item": "40" }, "path": [ "color", - "yellow", - "20" + "orange", + "40" ] } ] } }, - "pf-t--global--dark--color--status--danger--100": { + "pf-t--global--dark--color--severity--critical--100": { "default": { "type": "color", "value": "#f0561d", @@ -33124,20 +33120,20 @@ "type": "color", "value": "{color.red-orange.50}" }, - "name": "pf-t--global--dark--color--status--danger--100", + "name": "pf-t--global--dark--color--severity--critical--100", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "status", - "state": "danger" + "subitem": "severity", + "state": "critical" }, "path": [ "global", "dark", "color", - "status", - "danger", + "severity", + "critical", "100" ], "references": [ @@ -33165,7 +33161,7 @@ ] } }, - "pf-t--global--dark--color--status--danger--200": { + "pf-t--global--dark--color--severity--critical--200": { "default": { "type": "color", "value": "#f4784a", @@ -33175,20 +33171,20 @@ "type": "color", "value": "{color.red-orange.40}" }, - "name": "pf-t--global--dark--color--status--danger--200", + "name": "pf-t--global--dark--color--severity--critical--200", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "status", - "state": "danger" + "subitem": "severity", + "state": "critical" }, "path": [ "global", "dark", "color", - "status", - "danger", + "severity", + "critical", "200" ], "references": [ @@ -33216,766 +33212,766 @@ ] } }, - "pf-t--global--dark--color--status--danger--250": { + "pf-t--global--dark--color--status--success--100": { "default": { "type": "color", - "value": "#f89b78", + "value": "#87bb62", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.30}" + "value": "{color.green.40}" }, - "name": "pf-t--global--dark--color--status--danger--250", + "name": "pf-t--global--dark--color--status--success--100", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "danger" + "state": "success" }, "path": [ "global", "dark", "color", "status", - "danger", - "250" + "success", + "100" ], "references": [ { "type": "color", - "value": "#f89b78", + "value": "#87bb62", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f89b78" + "value": "#87bb62" }, - "name": "pf-t--color--red-orange--30", + "name": "pf-t--color--green--40", "attributes": { "category": "color", - "type": "red-orange", - "item": "30" + "type": "green", + "item": "40" }, "path": [ "color", - "red-orange", - "30" + "green", + "40" ] } ] } }, - "pf-t--global--dark--color--status--danger--300": { + "pf-t--global--dark--color--status--success--200": { "default": { "type": "color", - "value": "#fbbea8", + "value": "#afdc8f", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.20}" + "value": "{color.green.30}" }, - "name": "pf-t--global--dark--color--status--danger--300", + "name": "pf-t--global--dark--color--status--success--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "danger" + "state": "success" }, "path": [ "global", "dark", "color", "status", - "danger", - "300" + "success", + "200" ], "references": [ { "type": "color", - "value": "#fbbea8", + "value": "#afdc8f", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#fbbea8" + "value": "#afdc8f" }, - "name": "pf-t--color--red-orange--20", + "name": "pf-t--color--green--30", "attributes": { "category": "color", - "type": "red-orange", - "item": "20" + "type": "green", + "item": "30" }, "path": [ "color", - "red-orange", - "20" + "green", + "30" ] } ] } }, - "pf-t--global--dark--color--status--info--100": { + "pf-t--global--dark--color--status--success--300": { "default": { "type": "color", - "value": "#b6a6e9", + "value": "#d1f1bb", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.30}" + "value": "{color.green.20}" }, - "name": "pf-t--global--dark--color--status--info--100", + "name": "pf-t--global--dark--color--status--success--300", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "info" + "state": "success" }, "path": [ "global", "dark", "color", "status", - "info", - "100" + "success", + "300" ], "references": [ { "type": "color", - "value": "#b6a6e9", + "value": "#d1f1bb", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b6a6e9" + "value": "#d1f1bb" }, - "name": "pf-t--color--purple--30", + "name": "pf-t--color--green--20", "attributes": { "category": "color", - "type": "purple", - "item": "30" + "type": "green", + "item": "20" }, "path": [ "color", - "purple", - "30" + "green", + "20" ] } ] } }, - "pf-t--global--dark--color--status--info--200": { + "pf-t--global--dark--color--status--warning--100": { "default": { "type": "color", - "value": "#d0c5f4", + "value": "#ffcc17", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.20}" + "value": "{color.yellow.30}" }, - "name": "pf-t--global--dark--color--status--info--200", + "name": "pf-t--global--dark--color--status--warning--100", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "info" + "state": "warning" }, "path": [ "global", "dark", "color", "status", - "info", - "200" + "warning", + "100" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#ffcc17", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#d0c5f4" + "value": "#ffcc17" }, - "name": "pf-t--color--purple--20", + "name": "pf-t--color--yellow--30", "attributes": { "category": "color", - "type": "purple", - "item": "20" + "type": "yellow", + "item": "30" }, "path": [ "color", - "purple", - "20" + "yellow", + "30" ] } ] } }, - "pf-t--global--dark--color--status--info--300": { + "pf-t--global--dark--color--status--warning--200": { "default": { "type": "color", - "value": "#ece6ff", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.10}" + "value": "{color.yellow.20}" }, - "name": "pf-t--global--dark--color--status--info--300", + "name": "pf-t--global--dark--color--status--warning--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "info" + "state": "warning" }, "path": [ "global", "dark", "color", "status", - "info", - "300" + "warning", + "200" ], "references": [ { "type": "color", - "value": "#ece6ff", + "value": "#ffe072", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ece6ff" + "value": "#ffe072" }, - "name": "pf-t--color--purple--10", + "name": "pf-t--color--yellow--20", "attributes": { "category": "color", - "type": "purple", - "item": "10" + "type": "yellow", + "item": "20" }, "path": [ "color", - "purple", - "10" + "yellow", + "20" ] } ] } }, - "pf-t--global--dark--color--status--custom--100": { + "pf-t--global--dark--color--status--danger--100": { "default": { "type": "color", - "value": "#63bdbd", + "value": "#f0561d", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.40}" + "value": "{color.red-orange.50}" }, - "name": "pf-t--global--dark--color--status--custom--100", + "name": "pf-t--global--dark--color--status--danger--100", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "custom" + "state": "danger" }, "path": [ "global", "dark", "color", "status", - "custom", + "danger", "100" ], "references": [ { "type": "color", - "value": "#63bdbd", + "value": "#f0561d", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#63bdbd" + "value": "#f0561d" }, - "name": "pf-t--color--teal--40", + "name": "pf-t--color--red-orange--50", "attributes": { "category": "color", - "type": "teal", - "item": "40" + "type": "red-orange", + "item": "50" }, "path": [ "color", - "teal", - "40" + "red-orange", + "50" ] } ] } }, - "pf-t--global--dark--color--status--custom--200": { + "pf-t--global--dark--color--status--danger--200": { "default": { "type": "color", - "value": "#9ad8d8", + "value": "#f4784a", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.30}" + "value": "{color.red-orange.40}" }, - "name": "pf-t--global--dark--color--status--custom--200", + "name": "pf-t--global--dark--color--status--danger--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "custom" + "state": "danger" }, "path": [ "global", "dark", "color", "status", - "custom", + "danger", "200" ], "references": [ { "type": "color", - "value": "#9ad8d8", + "value": "#f4784a", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#9ad8d8" + "value": "#f4784a" }, - "name": "pf-t--color--teal--30", + "name": "pf-t--color--red-orange--40", "attributes": { "category": "color", - "type": "teal", - "item": "30" + "type": "red-orange", + "item": "40" }, "path": [ "color", - "teal", - "30" + "red-orange", + "40" ] } ] } }, - "pf-t--global--dark--color--status--custom--300": { + "pf-t--global--dark--color--status--danger--250": { "default": { "type": "color", - "value": "#b9e5e5", + "value": "#f89b78", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.20}" + "value": "{color.red-orange.30}" }, - "name": "pf-t--global--dark--color--status--custom--300", + "name": "pf-t--global--dark--color--status--danger--250", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "custom" + "state": "danger" }, "path": [ "global", "dark", "color", "status", - "custom", - "300" + "danger", + "250" ], "references": [ { "type": "color", - "value": "#b9e5e5", + "value": "#f89b78", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b9e5e5" + "value": "#f89b78" }, - "name": "pf-t--color--teal--20", + "name": "pf-t--color--red-orange--30", "attributes": { "category": "color", - "type": "teal", - "item": "20" + "type": "red-orange", + "item": "30" }, "path": [ "color", - "teal", - "20" + "red-orange", + "30" ] } ] } }, - "pf-t--global--dark--color--severity--undefined--100": { + "pf-t--global--dark--color--status--danger--300": { "default": { "type": "color", - "value": "#a3a3a3", + "value": "#fbbea8", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.40}" + "value": "{color.red-orange.20}" }, - "name": "pf-t--global--dark--color--severity--undefined--100", + "name": "pf-t--global--dark--color--status--danger--300", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "severity", - "state": "undefined" + "subitem": "status", + "state": "danger" }, "path": [ "global", "dark", "color", - "severity", - "undefined", - "100" + "status", + "danger", + "300" ], "references": [ { "type": "color", - "value": "#a3a3a3", + "value": "#fbbea8", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#a3a3a3" + "value": "#fbbea8" }, - "name": "pf-t--color--gray--40", + "name": "pf-t--color--red-orange--20", "attributes": { "category": "color", - "type": "gray", - "item": "40" + "type": "red-orange", + "item": "20" }, "path": [ "color", - "gray", - "40" + "red-orange", + "20" ] } ] } }, - "pf-t--global--dark--color--severity--none--100": { + "pf-t--global--dark--color--status--info--100": { "default": { "type": "color", - "value": "#92c5f9", + "value": "#b6a6e9", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.30}" + "value": "{color.purple.30}" }, - "name": "pf-t--global--dark--color--severity--none--100", + "name": "pf-t--global--dark--color--status--info--100", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "severity", - "state": "none" + "subitem": "status", + "state": "info" }, "path": [ "global", "dark", "color", - "severity", - "none", + "status", + "info", "100" ], "references": [ { "type": "color", - "value": "#92c5f9", + "value": "#b6a6e9", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#92c5f9" + "value": "#b6a6e9" }, - "name": "pf-t--color--blue--30", + "name": "pf-t--color--purple--30", "attributes": { "category": "color", - "type": "blue", + "type": "purple", "item": "30" }, "path": [ "color", - "blue", + "purple", "30" ] } ] } }, - "pf-t--global--dark--color--severity--minor--100": { + "pf-t--global--dark--color--status--info--200": { "default": { "type": "color", - "value": "#c7c7c7", + "value": "#d0c5f4", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.30}" + "value": "{color.purple.20}" }, - "name": "pf-t--global--dark--color--severity--minor--100", + "name": "pf-t--global--dark--color--status--info--200", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "severity", - "state": "minor" + "subitem": "status", + "state": "info" }, "path": [ "global", "dark", "color", - "severity", - "minor", - "100" + "status", + "info", + "200" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#d0c5f4", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#c7c7c7" + "value": "#d0c5f4" }, - "name": "pf-t--color--gray--30", + "name": "pf-t--color--purple--20", "attributes": { "category": "color", - "type": "gray", - "item": "30" + "type": "purple", + "item": "20" }, "path": [ "color", - "gray", - "30" + "purple", + "20" ] } ] } }, - "pf-t--global--dark--color--severity--moderate--100": { + "pf-t--global--dark--color--status--info--300": { "default": { "type": "color", - "value": "#ffcc17", + "value": "#ece6ff", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.30}" + "value": "{color.purple.10}" }, - "name": "pf-t--global--dark--color--severity--moderate--100", + "name": "pf-t--global--dark--color--status--info--300", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "severity", - "state": "moderate" + "subitem": "status", + "state": "info" }, "path": [ "global", "dark", "color", - "severity", - "moderate", - "100" + "status", + "info", + "300" ], "references": [ { "type": "color", - "value": "#ffcc17", + "value": "#ece6ff", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffcc17" + "value": "#ece6ff" }, - "name": "pf-t--color--yellow--30", + "name": "pf-t--color--purple--10", "attributes": { "category": "color", - "type": "yellow", - "item": "30" + "type": "purple", + "item": "10" }, "path": [ "color", - "yellow", - "30" + "purple", + "10" ] } ] } }, - "pf-t--global--dark--color--severity--important--100": { + "pf-t--global--dark--color--status--custom--100": { "default": { "type": "color", - "value": "#f5921b", + "value": "#63bdbd", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.orange.40}" + "value": "{color.teal.40}" }, - "name": "pf-t--global--dark--color--severity--important--100", + "name": "pf-t--global--dark--color--status--custom--100", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "severity", - "state": "important" + "subitem": "status", + "state": "custom" }, "path": [ "global", "dark", "color", - "severity", - "important", + "status", + "custom", "100" ], "references": [ { "type": "color", - "value": "#f5921b", + "value": "#63bdbd", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f5921b" + "value": "#63bdbd" }, - "name": "pf-t--color--orange--40", + "name": "pf-t--color--teal--40", "attributes": { "category": "color", - "type": "orange", + "type": "teal", "item": "40" }, "path": [ "color", - "orange", + "teal", "40" ] } ] } }, - "pf-t--global--dark--color--severity--critical--100": { + "pf-t--global--dark--color--status--custom--200": { "default": { "type": "color", - "value": "#f0561d", + "value": "#9ad8d8", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.50}" + "value": "{color.teal.30}" }, - "name": "pf-t--global--dark--color--severity--critical--100", + "name": "pf-t--global--dark--color--status--custom--200", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "severity", - "state": "critical" + "subitem": "status", + "state": "custom" }, "path": [ "global", "dark", "color", - "severity", - "critical", - "100" + "status", + "custom", + "200" ], "references": [ { "type": "color", - "value": "#f0561d", + "value": "#9ad8d8", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f0561d" + "value": "#9ad8d8" }, - "name": "pf-t--color--red-orange--50", + "name": "pf-t--color--teal--30", "attributes": { "category": "color", - "type": "red-orange", - "item": "50" + "type": "teal", + "item": "30" }, "path": [ "color", - "red-orange", - "50" + "teal", + "30" ] } ] } }, - "pf-t--global--dark--color--severity--critical--200": { + "pf-t--global--dark--color--status--custom--300": { "default": { "type": "color", - "value": "#f4784a", + "value": "#b9e5e5", "filePath": "tokens/default/glass-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.40}" + "value": "{color.teal.20}" }, - "name": "pf-t--global--dark--color--severity--critical--200", + "name": "pf-t--global--dark--color--status--custom--300", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "severity", - "state": "critical" + "subitem": "status", + "state": "custom" }, "path": [ "global", "dark", "color", - "severity", - "critical", - "200" + "status", + "custom", + "300" ], "references": [ { "type": "color", - "value": "#f4784a", + "value": "#b9e5e5", "filePath": "tokens/default/glass-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f4784a" + "value": "#b9e5e5" }, - "name": "pf-t--color--red-orange--40", + "name": "pf-t--color--teal--20", "attributes": { "category": "color", - "type": "red-orange", - "item": "40" + "type": "teal", + "item": "20" }, "path": [ "color", - "red-orange", - "40" + "teal", + "20" ] } ] @@ -36291,6 +36287,27 @@ ] } }, + "pf-t--color--black": { + "default": { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/glass-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#000000" + }, + "name": "pf-t--color--black", + "attributes": { + "category": "color", + "type": "black" + }, + "path": [ + "color", + "black" + ] + } + }, "pf-t--color--gray--10": { "default": { "type": "color", @@ -36544,27 +36561,6 @@ ] } }, - "pf-t--color--black": { - "default": { - "type": "color", - "value": "#000000", - "filePath": "tokens/default/glass-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#000000" - }, - "name": "pf-t--color--black", - "attributes": { - "category": "color", - "type": "black" - }, - "path": [ - "color", - "black" - ] - } - }, "pf-t--color--blue--10": { "default": { "type": "color", diff --git a/packages/module/patternfly-docs/content/token-layers-glass.json b/packages/module/patternfly-docs/content/token-layers-glass.json index 230150a..84cd4db 100644 --- a/packages/module/patternfly-docs/content/token-layers-glass.json +++ b/packages/module/patternfly-docs/content/token-layers-glass.json @@ -1,6 +1,379 @@ { "semantic": { "colors": { + "pf-t--global--icon--color--regular": { + "default": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--subtle": { + "default": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "{global.icon.color.200}" + }, + "name": "pf-t--global--icon--color--subtle", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "icon", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--icon--color--200", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "200" + }, + "path": [ + "global", + "icon", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--inverse": { + "default": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--disabled": { + "default": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "{global.color.disabled.200}" + }, + "name": "pf-t--global--icon--color--disabled", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "disabled" + }, + "path": [ + "global", + "icon", + "color", + "disabled" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--color--disabled--200", + "attributes": { + "category": "global", + "type": "color", + "item": "disabled", + "subitem": "200" + }, + "path": [ + "global", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-disabled": { + "default": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "{global.color.disabled.300}" + }, + "name": "pf-t--global--icon--color--on-disabled", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-disabled" + }, + "path": [ + "global", + "icon", + "color", + "on-disabled" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--color--disabled--300", + "attributes": { + "category": "global", + "type": "color", + "item": "disabled", + "subitem": "300" + }, + "path": [ + "global", + "color", + "disabled", + "300" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, "pf-t--global--icon--color--brand--default": { "default": { "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", @@ -5680,379 +6053,6 @@ ] } }, - "pf-t--global--icon--color--regular": { - "default": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass/semantic.glass.json", - "isSource": true, - "original": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", - "type": "color", - "value": "{global.icon.color.100}" - }, - "name": "pf-t--global--icon--color--regular", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "regular" - }, - "path": [ - "global", - "icon", - "color", - "regular" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.90}" - }, - "name": "pf-t--global--icon--color--100", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "100" - }, - "path": [ - "global", - "icon", - "color", - "100" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#1f1f1f" - }, - "name": "pf-t--color--gray--90", - "attributes": { - "category": "color", - "type": "gray", - "item": "90" - }, - "path": [ - "color", - "gray", - "90" - ] - } - ] - } - ] - } - }, - "pf-t--global--icon--color--subtle": { - "default": { - "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", - "type": "color", - "value": "#707070", - "filePath": "tokens/default/glass/semantic.glass.json", - "isSource": true, - "original": { - "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", - "type": "color", - "value": "{global.icon.color.200}" - }, - "name": "pf-t--global--icon--color--subtle", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "subtle" - }, - "path": [ - "global", - "icon", - "color", - "subtle" - ], - "references": [ - { - "type": "color", - "value": "#707070", - "filePath": "tokens/default/glass/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.50}" - }, - "name": "pf-t--global--icon--color--200", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "200" - }, - "path": [ - "global", - "icon", - "color", - "200" - ], - "references": [ - { - "type": "color", - "value": "#707070", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#707070" - }, - "name": "pf-t--color--gray--50", - "attributes": { - "category": "color", - "type": "gray", - "item": "50" - }, - "path": [ - "color", - "gray", - "50" - ] - } - ] - } - ] - } - }, - "pf-t--global--icon--color--inverse": { - "default": { - "description": "Use as the color for icons that are placed on an inverse background color", - "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/glass/semantic.glass.json", - "isSource": true, - "original": { - "description": "Use as the color for icons that are placed on an inverse background color", - "type": "color", - "value": "{global.icon.color.300}" - }, - "name": "pf-t--global--icon--color--inverse", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" - }, - "path": [ - "global", - "icon", - "color", - "inverse" - ], - "references": [ - { - "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/glass/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.white}" - }, - "name": "pf-t--global--icon--color--300", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "300" - }, - "path": [ - "global", - "icon", - "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#ffffff" - }, - "name": "pf-t--color--white", - "attributes": { - "category": "color", - "type": "white" - }, - "path": [ - "color", - "white" - ] - } - ] - } - ] - } - }, - "pf-t--global--icon--color--disabled": { - "default": { - "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/glass/semantic.glass.json", - "isSource": true, - "original": { - "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", - "type": "color", - "value": "{global.color.disabled.200}" - }, - "name": "pf-t--global--icon--color--disabled", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "disabled" - }, - "path": [ - "global", - "icon", - "color", - "disabled" - ], - "references": [ - { - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/glass/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.40}" - }, - "name": "pf-t--global--color--disabled--200", - "attributes": { - "category": "global", - "type": "color", - "item": "disabled", - "subitem": "200" - }, - "path": [ - "global", - "color", - "disabled", - "200" - ], - "references": [ - { - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#a3a3a3" - }, - "name": "pf-t--color--gray--40", - "attributes": { - "category": "color", - "type": "gray", - "item": "40" - }, - "path": [ - "color", - "gray", - "40" - ] - } - ] - } - ] - } - }, - "pf-t--global--icon--color--on-disabled": { - "default": { - "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", - "type": "color", - "value": "#707070", - "filePath": "tokens/default/glass/semantic.glass.json", - "isSource": true, - "original": { - "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", - "type": "color", - "value": "{global.color.disabled.300}" - }, - "name": "pf-t--global--icon--color--on-disabled", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "on-disabled" - }, - "path": [ - "global", - "icon", - "color", - "on-disabled" - ], - "references": [ - { - "type": "color", - "value": "#707070", - "filePath": "tokens/default/glass/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.50}" - }, - "name": "pf-t--global--color--disabled--300", - "attributes": { - "category": "global", - "type": "color", - "item": "disabled", - "subitem": "300" - }, - "path": [ - "global", - "color", - "disabled", - "300" - ], - "references": [ - { - "type": "color", - "value": "#707070", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#707070" - }, - "name": "pf-t--color--gray--50", - "attributes": { - "category": "color", - "type": "gray", - "item": "50" - }, - "path": [ - "color", - "gray", - "50" - ] - } - ] - } - ] - } - }, "pf-t--global--icon--color--severity--undefined--default": { "default": { "description": "Use as the default color for severity icons that don’t communicate a specific severity level for issues.", @@ -9368,76 +9368,101 @@ ] } }, - "pf-t--global--border--color--control--default": { + "pf-t--global--border--color--high-contrast": { "default": { - "description": "Use as the default border for control elements like form inputs, menu toggles, and clickable cards", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#8c8c8c", + "value": "rgba(255, 255, 255, 0.0000)", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default border for control elements like form inputs, menu toggles, and clickable cards", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.border.color.300}" + "value": "rgba(255, 255, 255, 0.0000)" }, - "name": "pf-t--global--border--color--control--default", + "name": "pf-t--global--border--color--high-contrast", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "control", - "state": "default" + "subitem": "high-contrast" + }, + "path": [ + "global", + "border", + "color", + "high-contrast" + ] + } + }, + "pf-t--global--border--color--default": { + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.border.color.50}" + }, + "name": "pf-t--global--border--color--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "default" }, "path": [ "global", "border", "color", - "control", "default" ], "references": [ { "type": "color", - "value": "#8c8c8c", + "value": "#e0e0e0", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.45}" + "value": "{color.gray.20}" }, - "name": "pf-t--global--border--color--300", + "name": "pf-t--global--border--color--50", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "300" + "subitem": "50" }, "path": [ "global", "border", "color", - "300" + "50" ], "references": [ { "type": "color", - "value": "#8c8c8c", + "value": "#e0e0e0", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#8c8c8c" + "value": "#e0e0e0" }, - "name": "pf-t--color--gray--45", + "name": "pf-t--color--gray--20", "attributes": { "category": "color", "type": "gray", - "item": "45" + "item": "20" }, "path": [ "color", "gray", - "45" + "20" ] } ] @@ -9445,76 +9470,74 @@ ] } }, - "pf-t--global--border--color--control--read-only": { + "pf-t--global--border--color--hover": { "default": { - "description": "Use as the read-only border for control elements like form inputs, menu toggles.", + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#c7c7c7", + "value": "#4394e5", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the read-only border for control elements like form inputs, menu toggles.", + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.border.color.100}" + "value": "{global.color.brand.100}" }, - "name": "pf-t--global--border--color--control--read-only", + "name": "pf-t--global--border--color--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "control", - "state": "read-only" + "subitem": "hover" }, "path": [ "global", "border", "color", - "control", - "read-only" + "hover" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#4394e5", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.30}" + "value": "{color.blue.40}" }, - "name": "pf-t--global--border--color--100", + "name": "pf-t--global--color--brand--100", "attributes": { "category": "global", - "type": "border", - "item": "color", + "type": "color", + "item": "brand", "subitem": "100" }, "path": [ "global", - "border", "color", + "brand", "100" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#4394e5", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#c7c7c7" + "value": "#4394e5" }, - "name": "pf-t--color--gray--30", + "name": "pf-t--color--blue--40", "attributes": { "category": "color", - "type": "gray", - "item": "30" + "type": "blue", + "item": "40" }, "path": [ "color", - "gray", - "30" + "blue", + "40" ] } ] @@ -9522,103 +9545,74 @@ ] } }, - "pf-t--global--border--color--brand--default": { + "pf-t--global--border--color--clicked": { "default": { - "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", "value": "#0066cc", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.default}" + "value": "{global.color.brand.200}" }, - "name": "pf-t--global--border--color--brand--default", + "name": "pf-t--global--border--color--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "default" + "subitem": "clicked" }, "path": [ "global", "border", "color", - "brand", - "default" + "clicked" ], "references": [ { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", "value": "#0066cc", - "filePath": "tokens/default/glass/semantic.glass.json", + "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.color.brand.200}" + "value": "{color.blue.50}" }, - "name": "pf-t--global--color--brand--default", + "name": "pf-t--global--color--brand--200", "attributes": { "category": "global", "type": "color", "item": "brand", - "subitem": "default" + "subitem": "200" }, "path": [ "global", "color", "brand", - "default" + "200" ], "references": [ { "type": "color", "value": "#0066cc", - "filePath": "tokens/default/glass/base.json", + "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.50}" + "value": "#0066cc" }, - "name": "pf-t--global--color--brand--200", + "name": "pf-t--color--blue--50", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "200" + "category": "color", + "type": "blue", + "item": "50" }, "path": [ - "global", "color", - "brand", - "200" - ], - "references": [ - { - "type": "color", - "value": "#0066cc", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#0066cc" - }, - "name": "pf-t--color--blue--50", - "attributes": { - "category": "color", - "type": "blue", - "item": "50" - }, - "path": [ - "color", - "blue", - "50" - ] - } + "blue", + "50" ] } ] @@ -9626,103 +9620,74 @@ ] } }, - "pf-t--global--border--color--brand--hover": { + "pf-t--global--border--color--subtle": { "default": { - "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#004d99", + "value": "#e0e0e0", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.hover}" + "value": "{global.border.color.50}" }, - "name": "pf-t--global--border--color--brand--hover", + "name": "pf-t--global--border--color--subtle", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "hover" + "subitem": "subtle" }, "path": [ "global", "border", "color", - "brand", - "hover" + "subtle" ], "references": [ { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#004d99", - "filePath": "tokens/default/glass/semantic.glass.json", + "value": "#e0e0e0", + "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.color.brand.300}" + "value": "{color.gray.20}" }, - "name": "pf-t--global--color--brand--hover", + "name": "pf-t--global--border--color--50", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "hover" + "type": "border", + "item": "color", + "subitem": "50" }, "path": [ "global", + "border", "color", - "brand", - "hover" + "50" ], "references": [ { "type": "color", - "value": "#004d99", - "filePath": "tokens/default/glass/base.json", + "value": "#e0e0e0", + "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.60}" + "value": "#e0e0e0" }, - "name": "pf-t--global--color--brand--300", + "name": "pf-t--color--gray--20", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "300" + "category": "color", + "type": "gray", + "item": "20" }, "path": [ - "global", "color", - "brand", - "300" - ], - "references": [ - { - "type": "color", - "value": "#004d99", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#004d99" - }, - "name": "pf-t--color--blue--60", - "attributes": { - "category": "color", - "type": "blue", - "item": "60" - }, - "path": [ - "color", - "blue", - "60" - ] - } + "gray", + "20" ] } ] @@ -9730,103 +9695,74 @@ ] } }, - "pf-t--global--border--color--brand--clicked": { + "pf-t--global--border--color--disabled": { "default": { - "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#004d99", + "value": "#a3a3a3", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.clicked}" + "value": "{global.color.disabled.200}" }, - "name": "pf-t--global--border--color--brand--clicked", + "name": "pf-t--global--border--color--disabled", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "clicked" + "subitem": "disabled" }, "path": [ "global", "border", "color", - "brand", - "clicked" + "disabled" ], "references": [ { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#004d99", - "filePath": "tokens/default/glass/semantic.glass.json", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.color.brand.300}" + "value": "{color.gray.40}" }, - "name": "pf-t--global--color--brand--clicked", + "name": "pf-t--global--color--disabled--200", "attributes": { "category": "global", "type": "color", - "item": "brand", - "subitem": "clicked" + "item": "disabled", + "subitem": "200" }, "path": [ "global", "color", - "brand", - "clicked" + "disabled", + "200" ], "references": [ { "type": "color", - "value": "#004d99", - "filePath": "tokens/default/glass/base.json", + "value": "#a3a3a3", + "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.60}" + "value": "#a3a3a3" }, - "name": "pf-t--global--color--brand--300", + "name": "pf-t--color--gray--40", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "300" + "category": "color", + "type": "gray", + "item": "40" }, "path": [ - "global", "color", - "brand", - "300" - ], - "references": [ - { - "type": "color", - "value": "#004d99", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#004d99" - }, - "name": "pf-t--color--blue--60", - "attributes": { - "category": "color", - "type": "blue", - "item": "60" - }, - "path": [ - "color", - "blue", - "60" - ] - } + "gray", + "40" ] } ] @@ -9834,267 +9770,130 @@ ] } }, - "pf-t--global--border--color--brand--accent--default": { + "pf-t--global--border--color--alt": { "default": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", "type": "color", - "value": "#0066cc", + "value": "rgba(255, 255, 255, 0.6000)", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", "type": "color", - "value": "{global.color.brand.accent.default}" + "value": "{global.background.color.primary.default}" }, - "name": "pf-t--global--border--color--brand--accent--default", + "name": "pf-t--global--border--color--alt", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "accent" + "subitem": "alt" }, "path": [ "global", "border", "color", - "brand", - "accent", - "default" + "alt" ], "references": [ { - "description": "Use this color for elements that you want to reinforce your brand", + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", "type": "color", - "value": "#0066cc", + "value": "rgba(255, 255, 255, 0.6000)", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use this color for elements that you want to reinforce your brand", + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", "type": "color", - "value": "{global.color.brand.default}" + "value": "rgba(255, 255, 255, 0.6000)" }, - "name": "pf-t--global--color--brand--accent--default", + "name": "pf-t--global--background--color--primary--default", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", + "type": "background", + "item": "color", + "subitem": "primary", "state": "default" }, "path": [ "global", + "background", "color", - "brand", - "accent", + "primary", "default" - ], - "references": [ - { - "description": "Use this color for elements that you want to reinforce your brand", - "type": "color", - "value": "#0066cc", - "filePath": "tokens/default/glass/semantic.glass.json", - "isSource": true, - "original": { - "description": "Use this color for elements that you want to reinforce your brand", - "type": "color", - "value": "{global.color.brand.200}" - }, - "name": "pf-t--global--color--brand--default", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "default" - }, - "path": [ - "global", - "color", - "brand", - "default" - ], - "references": [ - { - "type": "color", - "value": "#0066cc", - "filePath": "tokens/default/glass/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.blue.50}" - }, - "name": "pf-t--global--color--brand--200", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "200" - }, - "path": [ - "global", - "color", - "brand", - "200" - ], - "references": [ - { - "type": "color", - "value": "#0066cc", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#0066cc" - }, - "name": "pf-t--color--blue--50", - "attributes": { - "category": "color", - "type": "blue", - "item": "50" - }, - "path": [ - "color", - "blue", - "50" - ] - } - ] - } - ] - } ] } ] } }, - "pf-t--global--border--color--brand--accent--hover": { + "pf-t--global--border--color--on-secondary": { "default": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", + "description": "Use on borders/dividers that are placed on a secondary bkg color.", "type": "color", - "value": "#004d99", + "value": "#8c8c8c", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", + "description": "Use on borders/dividers that are placed on a secondary bkg color.", "type": "color", - "value": "{global.color.brand.accent.hover}" + "value": "{global.border.color.300}" }, - "name": "pf-t--global--border--color--brand--accent--hover", + "name": "pf-t--global--border--color--on-secondary", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "accent" + "subitem": "on-secondary" }, "path": [ "global", "border", "color", - "brand", - "accent", - "hover" + "on-secondary" ], "references": [ { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#004d99", - "filePath": "tokens/default/glass/semantic.glass.json", + "value": "#8c8c8c", + "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.color.brand.hover}" + "value": "{color.gray.45}" }, - "name": "pf-t--global--color--brand--accent--hover", + "name": "pf-t--global--border--color--300", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "hover" + "type": "border", + "item": "color", + "subitem": "300" }, "path": [ "global", + "border", "color", - "brand", - "accent", - "hover" + "300" ], "references": [ { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#004d99", - "filePath": "tokens/default/glass/semantic.glass.json", + "value": "#8c8c8c", + "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.color.brand.300}" + "value": "#8c8c8c" }, - "name": "pf-t--global--color--brand--hover", + "name": "pf-t--color--gray--45", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "hover" + "category": "color", + "type": "gray", + "item": "45" }, "path": [ - "global", "color", - "brand", - "hover" - ], - "references": [ - { - "type": "color", - "value": "#004d99", - "filePath": "tokens/default/glass/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.blue.60}" - }, - "name": "pf-t--global--color--brand--300", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "300" - }, - "path": [ - "global", - "color", - "brand", - "300" - ], - "references": [ - { - "type": "color", - "value": "#004d99", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#004d99" - }, - "name": "pf-t--color--blue--60", - "attributes": { - "category": "color", - "type": "blue", - "item": "60" - }, - "path": [ - "color", - "blue", - "60" - ] - } - ] - } + "gray", + "45" ] } ] @@ -10102,133 +9901,74 @@ ] } }, - "pf-t--global--border--color--brand--accent--clicked": { + "pf-t--global--border--color--control--default": { "default": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", "type": "color", - "value": "#004d99", + "value": "#8c8c8c", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", "type": "color", - "value": "{global.color.brand.accent.clicked}" + "value": "{global.border.color.300}" }, - "name": "pf-t--global--border--color--brand--accent--clicked", + "name": "pf-t--global--border--color--control--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "accent" + "subitem": "control", + "state": "default" }, "path": [ "global", "border", "color", - "brand", - "accent", - "clicked" + "control", + "default" ], "references": [ { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#004d99", - "filePath": "tokens/default/glass/semantic.glass.json", + "value": "#8c8c8c", + "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.color.brand.clicked}" + "value": "{color.gray.45}" }, - "name": "pf-t--global--color--brand--accent--clicked", + "name": "pf-t--global--border--color--300", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "clicked" + "type": "border", + "item": "color", + "subitem": "300" }, "path": [ "global", + "border", "color", - "brand", - "accent", - "clicked" + "300" ], "references": [ { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#004d99", - "filePath": "tokens/default/glass/semantic.glass.json", + "value": "#8c8c8c", + "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.color.brand.300}" + "value": "#8c8c8c" }, - "name": "pf-t--global--color--brand--clicked", + "name": "pf-t--color--gray--45", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "clicked" + "category": "color", + "type": "gray", + "item": "45" }, "path": [ - "global", "color", - "brand", - "clicked" - ], - "references": [ - { - "type": "color", - "value": "#004d99", - "filePath": "tokens/default/glass/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.blue.60}" - }, - "name": "pf-t--global--color--brand--300", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "300" - }, - "path": [ - "global", - "color", - "brand", - "300" - ], - "references": [ - { - "type": "color", - "value": "#004d99", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#004d99" - }, - "name": "pf-t--color--blue--60", - "attributes": { - "category": "color", - "type": "blue", - "item": "60" - }, - "path": [ - "color", - "blue", - "60" - ] - } - ] - } + "gray", + "45" ] } ] @@ -10236,79 +9976,74 @@ ] } }, - "pf-t--global--border--color--brand--subtle--default": { + "pf-t--global--border--color--control--read-only": { "default": { - "description": "Use as the default border color for any subtle brand element like toggle groups", "type": "color", - "value": "#b9dafc", + "value": "#c7c7c7", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default border color for any subtle brand element like toggle groups", "type": "color", - "value": "{global.color.brand.subtle.200}" + "value": "{global.border.color.100}" }, - "name": "pf-t--global--border--color--brand--subtle--default", + "name": "pf-t--global--border--color--control--read-only", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "subtle" + "subitem": "control", + "state": "read-only" }, "path": [ "global", "border", "color", - "brand", - "subtle", - "default" + "control", + "read-only" ], "references": [ { "type": "color", - "value": "#b9dafc", + "value": "#c7c7c7", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.20}" + "value": "{color.gray.30}" }, - "name": "pf-t--global--color--brand--subtle--200", + "name": "pf-t--global--border--color--100", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "subtle", - "state": "200" + "type": "border", + "item": "color", + "subitem": "100" }, "path": [ "global", + "border", "color", - "brand", - "subtle", - "200" + "100" ], "references": [ { "type": "color", - "value": "#b9dafc", + "value": "#c7c7c7", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b9dafc" + "value": "#c7c7c7" }, - "name": "pf-t--color--blue--20", + "name": "pf-t--color--gray--30", "attributes": { "category": "color", - "type": "blue", - "item": "20" + "type": "gray", + "item": "30" }, "path": [ "color", - "blue", - "20" + "gray", + "30" ] } ] @@ -10316,79 +10051,103 @@ ] } }, - "pf-t--global--border--color--brand--subtle--hover": { + "pf-t--global--border--color--brand--default": { "default": { - "description": "Use as the hover border color for any subtle brand element like toggle groups", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#4394e5", + "value": "#0066cc", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the hover border color for any subtle brand element like toggle groups", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.brand.subtle.300}" + "value": "{global.color.brand.default}" }, - "name": "pf-t--global--border--color--brand--subtle--hover", + "name": "pf-t--global--border--color--brand--default", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "brand", - "state": "subtle" + "state": "default" }, "path": [ "global", "border", "color", "brand", - "subtle", - "hover" + "default" ], "references": [ { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#4394e5", - "filePath": "tokens/default/glass/base.json", + "value": "#0066cc", + "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{color.blue.40}" + "value": "{global.color.brand.200}" }, - "name": "pf-t--global--color--brand--subtle--300", + "name": "pf-t--global--color--brand--default", "attributes": { "category": "global", "type": "color", "item": "brand", - "subitem": "subtle", - "state": "300" + "subitem": "default" }, "path": [ "global", "color", "brand", - "subtle", - "300" + "default" ], "references": [ { "type": "color", - "value": "#4394e5", - "filePath": "tokens/default/glass/palette.color.json", + "value": "#0066cc", + "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "#4394e5" + "value": "{color.blue.50}" }, - "name": "pf-t--color--blue--40", + "name": "pf-t--global--color--brand--200", "attributes": { - "category": "color", - "type": "blue", - "item": "40" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "200" }, "path": [ + "global", "color", - "blue", - "40" + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } ] } ] @@ -10396,79 +10155,103 @@ ] } }, - "pf-t--global--border--color--brand--subtle--clicked": { + "pf-t--global--border--color--brand--hover": { "default": { - "description": "Use as the clicked border color for any subtle brand element like toggle groups", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#4394e5", + "value": "#004d99", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the clicked border color for any subtle brand element like toggle groups", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.brand.subtle.300}" + "value": "{global.color.brand.hover}" }, - "name": "pf-t--global--border--color--brand--subtle--clicked", + "name": "pf-t--global--border--color--brand--hover", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "brand", - "state": "subtle" + "state": "hover" }, "path": [ "global", "border", "color", "brand", - "subtle", - "clicked" + "hover" ], "references": [ { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#4394e5", - "filePath": "tokens/default/glass/base.json", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{color.blue.40}" + "value": "{global.color.brand.300}" }, - "name": "pf-t--global--color--brand--subtle--300", + "name": "pf-t--global--color--brand--hover", "attributes": { "category": "global", "type": "color", "item": "brand", - "subitem": "subtle", - "state": "300" + "subitem": "hover" }, "path": [ "global", "color", "brand", - "subtle", - "300" + "hover" ], "references": [ { "type": "color", - "value": "#4394e5", - "filePath": "tokens/default/glass/palette.color.json", + "value": "#004d99", + "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "#4394e5" + "value": "{color.blue.60}" }, - "name": "pf-t--color--blue--40", + "name": "pf-t--global--color--brand--300", "attributes": { - "category": "color", - "type": "blue", - "item": "40" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" }, "path": [ + "global", "color", - "blue", - "40" + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } ] } ] @@ -10476,105 +10259,100 @@ ] } }, - "pf-t--global--border--color--status--success--default": { + "pf-t--global--border--color--brand--clicked": { "default": { - "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#3d7317", + "value": "#004d99", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.success.default}" + "value": "{global.color.brand.clicked}" }, - "name": "pf-t--global--border--color--status--success--default", + "name": "pf-t--global--border--color--brand--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "brand", + "state": "clicked" }, "path": [ "global", "border", "color", - "status", - "success", - "default" + "brand", + "clicked" ], "references": [ { - "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#3d7317", + "value": "#004d99", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.color.status.success.100}" + "value": "{global.color.brand.300}" }, - "name": "pf-t--global--color--status--success--default", + "name": "pf-t--global--color--brand--clicked", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "default" + "item": "brand", + "subitem": "clicked" }, "path": [ "global", "color", - "status", - "success", - "default" + "brand", + "clicked" ], "references": [ { "type": "color", - "value": "#3d7317", + "value": "#004d99", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.60}" + "value": "{color.blue.60}" }, - "name": "pf-t--global--color--status--success--100", + "name": "pf-t--global--color--brand--300", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "100" + "item": "brand", + "subitem": "300" }, "path": [ "global", "color", - "status", - "success", - "100" + "brand", + "300" ], "references": [ { "type": "color", - "value": "#3d7317", + "value": "#004d99", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#3d7317" + "value": "#004d99" }, - "name": "pf-t--color--green--60", + "name": "pf-t--color--blue--60", "attributes": { "category": "color", - "type": "green", + "type": "blue", "item": "60" }, "path": [ "color", - "green", + "blue", "60" ] } @@ -10585,215 +10363,399 @@ ] } }, - "pf-t--global--border--color--status--success--hover": { + "pf-t--global--border--color--brand--accent--default": { "default": { - "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#204d00", + "value": "#0066cc", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.success.hover}" + "value": "{global.color.brand.accent.default}" }, - "name": "pf-t--global--border--color--status--success--hover", + "name": "pf-t--global--border--color--brand--accent--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "brand", + "state": "accent" }, "path": [ "global", "border", "color", - "status", - "success", - "hover" + "brand", + "accent", + "default" ], "references": [ { - "description": "Use as the hover state for any element that conveys a success status.", + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#204d00", + "value": "#0066cc", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys a success status.", + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.color.status.success.200}" + "value": "{global.color.brand.default}" }, - "name": "pf-t--global--color--status--success--hover", + "name": "pf-t--global--color--brand--accent--default", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "hover" + "item": "brand", + "subitem": "accent", + "state": "default" }, "path": [ "global", "color", - "status", - "success", - "hover" + "brand", + "accent", + "default" ], "references": [ { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#204d00", - "filePath": "tokens/default/glass/base.json", + "value": "#0066cc", + "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{color.green.70}" + "value": "{global.color.brand.200}" }, - "name": "pf-t--global--color--status--success--200", + "name": "pf-t--global--color--brand--default", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "200" + "item": "brand", + "subitem": "default" }, "path": [ "global", "color", - "status", - "success", - "200" + "brand", + "default" ], "references": [ { "type": "color", - "value": "#204d00", - "filePath": "tokens/default/glass/palette.color.json", + "value": "#0066cc", + "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "#204d00" + "value": "{color.blue.50}" }, - "name": "pf-t--color--green--70", + "name": "pf-t--global--color--brand--200", "attributes": { - "category": "color", - "type": "green", - "item": "70" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "200" }, "path": [ + "global", "color", - "green", - "70" - ] - } - ] - } - ] - } - ] - } - }, - "pf-t--global--border--color--status--success--clicked": { - "default": { - "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", - "type": "color", - "value": "#204d00", - "filePath": "tokens/default/glass/semantic.glass.json", - "isSource": true, + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--accent--hover": { + "default": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.success.clicked}" + "value": "{global.color.brand.accent.hover}" }, - "name": "pf-t--global--border--color--status--success--clicked", + "name": "pf-t--global--border--color--brand--accent--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "brand", + "state": "accent" }, "path": [ "global", "border", "color", - "status", - "success", + "brand", + "accent", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.color.brand.hover}" + }, + "name": "pf-t--global--color--brand--accent--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "hover" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.color.brand.300}" + }, + "name": "pf-t--global--color--brand--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--brand--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" + }, + "path": [ + "global", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--accent--clicked": { + "default": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.color.brand.accent.clicked}" + }, + "name": "pf-t--global--border--color--brand--accent--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "accent" + }, + "path": [ + "global", + "border", + "color", + "brand", + "accent", "clicked" ], "references": [ { - "description": "Use as the clicked state for any element that conveys a success status.", + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#204d00", + "value": "#004d99", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys a success status.", + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.color.status.success.200}" + "value": "{global.color.brand.clicked}" }, - "name": "pf-t--global--color--status--success--clicked", + "name": "pf-t--global--color--brand--accent--clicked", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", + "item": "brand", + "subitem": "accent", "state": "clicked" }, "path": [ "global", "color", - "status", - "success", + "brand", + "accent", "clicked" ], "references": [ { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#204d00", - "filePath": "tokens/default/glass/base.json", + "value": "#004d99", + "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{color.green.70}" + "value": "{global.color.brand.300}" }, - "name": "pf-t--global--color--status--success--200", + "name": "pf-t--global--color--brand--clicked", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "200" + "item": "brand", + "subitem": "clicked" }, "path": [ "global", "color", - "status", - "success", - "200" + "brand", + "clicked" ], "references": [ { "type": "color", - "value": "#204d00", - "filePath": "tokens/default/glass/palette.color.json", + "value": "#004d99", + "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "#204d00" + "value": "{color.blue.60}" }, - "name": "pf-t--color--green--70", + "name": "pf-t--global--color--brand--300", "attributes": { - "category": "color", - "type": "green", - "item": "70" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" }, "path": [ + "global", "color", - "green", - "70" + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } ] } ] @@ -10803,79 +10765,79 @@ ] } }, - "pf-t--global--border--color--status--warning--default": { + "pf-t--global--border--color--brand--subtle--default": { "default": { - "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#dca614", + "value": "#b9dafc", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.warning.200}" + "value": "{global.color.brand.subtle.200}" }, - "name": "pf-t--global--border--color--status--warning--default", + "name": "pf-t--global--border--color--brand--subtle--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "brand", + "state": "subtle" }, "path": [ "global", "border", "color", - "status", - "warning", + "brand", + "subtle", "default" ], "references": [ { "type": "color", - "value": "#dca614", + "value": "#b9dafc", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.40}" + "value": "{color.blue.20}" }, - "name": "pf-t--global--color--status--warning--200", + "name": "pf-t--global--color--brand--subtle--200", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "warning", + "item": "brand", + "subitem": "subtle", "state": "200" }, "path": [ "global", "color", - "status", - "warning", + "brand", + "subtle", "200" ], "references": [ { "type": "color", - "value": "#dca614", + "value": "#b9dafc", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#dca614" + "value": "#b9dafc" }, - "name": "pf-t--color--yellow--40", + "name": "pf-t--color--blue--20", "attributes": { "category": "color", - "type": "yellow", - "item": "40" + "type": "blue", + "item": "20" }, "path": [ "color", - "yellow", - "40" + "blue", + "20" ] } ] @@ -10883,79 +10845,79 @@ ] } }, - "pf-t--global--border--color--status--warning--hover": { + "pf-t--global--border--color--brand--subtle--hover": { "default": { - "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#b98412", + "value": "#4394e5", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.warning.300}" + "value": "{global.color.brand.subtle.300}" }, - "name": "pf-t--global--border--color--status--warning--hover", + "name": "pf-t--global--border--color--brand--subtle--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "brand", + "state": "subtle" }, "path": [ "global", "border", "color", - "status", - "warning", + "brand", + "subtle", "hover" ], "references": [ { "type": "color", - "value": "#b98412", + "value": "#4394e5", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.50}" + "value": "{color.blue.40}" }, - "name": "pf-t--global--color--status--warning--300", + "name": "pf-t--global--color--brand--subtle--300", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "warning", + "item": "brand", + "subitem": "subtle", "state": "300" }, "path": [ "global", "color", - "status", - "warning", + "brand", + "subtle", "300" ], "references": [ { "type": "color", - "value": "#b98412", + "value": "#4394e5", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b98412" + "value": "#4394e5" }, - "name": "pf-t--color--yellow--50", + "name": "pf-t--color--blue--40", "attributes": { "category": "color", - "type": "yellow", - "item": "50" + "type": "blue", + "item": "40" }, "path": [ "color", - "yellow", - "50" + "blue", + "40" ] } ] @@ -10963,79 +10925,79 @@ ] } }, - "pf-t--global--border--color--status--warning--clicked": { + "pf-t--global--border--color--brand--subtle--clicked": { "default": { - "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#b98412", + "value": "#4394e5", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.warning.300}" + "value": "{global.color.brand.subtle.300}" }, - "name": "pf-t--global--border--color--status--warning--clicked", + "name": "pf-t--global--border--color--brand--subtle--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "brand", + "state": "subtle" }, "path": [ "global", "border", "color", - "status", - "warning", + "brand", + "subtle", "clicked" ], "references": [ { "type": "color", - "value": "#b98412", + "value": "#4394e5", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.50}" + "value": "{color.blue.40}" }, - "name": "pf-t--global--color--status--warning--300", + "name": "pf-t--global--color--brand--subtle--300", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "warning", + "item": "brand", + "subitem": "subtle", "state": "300" }, "path": [ "global", "color", - "status", - "warning", + "brand", + "subtle", "300" ], "references": [ { "type": "color", - "value": "#b98412", + "value": "#4394e5", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b98412" + "value": "#4394e5" }, - "name": "pf-t--color--yellow--50", + "name": "pf-t--color--blue--40", "attributes": { "category": "color", - "type": "yellow", - "item": "50" + "type": "blue", + "item": "40" }, "path": [ "color", - "yellow", - "50" + "blue", + "40" ] } ] @@ -11043,105 +11005,105 @@ ] } }, - "pf-t--global--border--color--status--danger--default": { + "pf-t--global--border--color--status--success--default": { "default": { - "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", "type": "color", - "value": "#b1380b", + "value": "#3d7317", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.danger.default}" + "value": "{global.color.status.success.default}" }, - "name": "pf-t--global--border--color--status--danger--default", + "name": "pf-t--global--border--color--status--success--default", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "danger" + "state": "success" }, "path": [ "global", "border", "color", "status", - "danger", + "success", "default" ], "references": [ { - "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", "type": "color", - "value": "#b1380b", + "value": "#3d7317", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", "type": "color", - "value": "{global.color.status.danger.100}" + "value": "{global.color.status.success.100}" }, - "name": "pf-t--global--color--status--danger--default", + "name": "pf-t--global--color--status--success--default", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "danger", + "subitem": "success", "state": "default" }, "path": [ "global", "color", "status", - "danger", + "success", "default" ], "references": [ { "type": "color", - "value": "#b1380b", + "value": "#3d7317", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.60}" + "value": "{color.green.60}" }, - "name": "pf-t--global--color--status--danger--100", + "name": "pf-t--global--color--status--success--100", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "danger", + "subitem": "success", "state": "100" }, "path": [ "global", "color", "status", - "danger", + "success", "100" ], "references": [ { "type": "color", - "value": "#b1380b", + "value": "#3d7317", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b1380b" + "value": "#3d7317" }, - "name": "pf-t--color--red-orange--60", + "name": "pf-t--color--green--60", "attributes": { "category": "color", - "type": "red-orange", + "type": "green", "item": "60" }, "path": [ "color", - "red-orange", + "green", "60" ] } @@ -11152,105 +11114,105 @@ ] } }, - "pf-t--global--border--color--status--danger--hover": { + "pf-t--global--border--color--status--success--hover": { "default": { - "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "#731f00", + "value": "#204d00", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "{global.color.status.danger.hover}" + "value": "{global.color.status.success.hover}" }, - "name": "pf-t--global--border--color--status--danger--hover", + "name": "pf-t--global--border--color--status--success--hover", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "danger" + "state": "success" }, "path": [ "global", "border", "color", "status", - "danger", + "success", "hover" ], "references": [ { - "description": "Use as the hover state for any element that conveys a danger status.", + "description": "Use as the hover state for any element that conveys a success status.", "type": "color", - "value": "#731f00", + "value": "#204d00", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys a danger status.", + "description": "Use as the hover state for any element that conveys a success status.", "type": "color", - "value": "{global.color.status.danger.200}" + "value": "{global.color.status.success.200}" }, - "name": "pf-t--global--color--status--danger--hover", + "name": "pf-t--global--color--status--success--hover", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "danger", + "subitem": "success", "state": "hover" }, "path": [ "global", "color", "status", - "danger", + "success", "hover" ], "references": [ { "type": "color", - "value": "#731f00", + "value": "#204d00", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.70}" + "value": "{color.green.70}" }, - "name": "pf-t--global--color--status--danger--200", + "name": "pf-t--global--color--status--success--200", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "danger", + "subitem": "success", "state": "200" }, "path": [ "global", "color", "status", - "danger", + "success", "200" ], "references": [ { "type": "color", - "value": "#731f00", + "value": "#204d00", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#731f00" + "value": "#204d00" }, - "name": "pf-t--color--red-orange--70", + "name": "pf-t--color--green--70", "attributes": { "category": "color", - "type": "red-orange", + "type": "green", "item": "70" }, "path": [ "color", - "red-orange", + "green", "70" ] } @@ -11261,105 +11223,105 @@ ] } }, - "pf-t--global--border--color--status--danger--clicked": { + "pf-t--global--border--color--status--success--clicked": { "default": { - "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "#731f00", + "value": "#204d00", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "{global.color.status.danger.clicked}" + "value": "{global.color.status.success.clicked}" }, - "name": "pf-t--global--border--color--status--danger--clicked", + "name": "pf-t--global--border--color--status--success--clicked", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "danger" + "state": "success" }, "path": [ "global", "border", "color", "status", - "danger", + "success", "clicked" ], "references": [ { - "description": "Use as the clicked state for any element that conveys a danger status.", + "description": "Use as the clicked state for any element that conveys a success status.", "type": "color", - "value": "#731f00", + "value": "#204d00", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys a danger status.", + "description": "Use as the clicked state for any element that conveys a success status.", "type": "color", - "value": "{global.color.status.danger.200}" + "value": "{global.color.status.success.200}" }, - "name": "pf-t--global--color--status--danger--clicked", + "name": "pf-t--global--color--status--success--clicked", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "danger", + "subitem": "success", "state": "clicked" }, "path": [ "global", "color", "status", - "danger", + "success", "clicked" ], "references": [ { "type": "color", - "value": "#731f00", + "value": "#204d00", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.70}" + "value": "{color.green.70}" }, - "name": "pf-t--global--color--status--danger--200", + "name": "pf-t--global--color--status--success--200", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "danger", + "subitem": "success", "state": "200" }, "path": [ "global", "color", "status", - "danger", + "success", "200" ], "references": [ { "type": "color", - "value": "#731f00", + "value": "#204d00", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#731f00" + "value": "#204d00" }, - "name": "pf-t--color--red-orange--70", + "name": "pf-t--color--green--70", "attributes": { "category": "color", - "type": "red-orange", + "type": "green", "item": "70" }, "path": [ "color", - "red-orange", + "green", "70" ] } @@ -11370,108 +11332,79 @@ ] } }, - "pf-t--global--border--color--status--info--default": { + "pf-t--global--border--color--status--warning--default": { "default": { - "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "#5e40be", + "value": "#dca614", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.info.default}" + "value": "{global.color.status.warning.200}" }, - "name": "pf-t--global--border--color--status--info--default", + "name": "pf-t--global--border--color--status--warning--default", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "info" + "state": "warning" }, "path": [ "global", "border", "color", "status", - "info", + "warning", "default" ], "references": [ { - "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "#5e40be", - "filePath": "tokens/default/glass/semantic.glass.json", + "value": "#dca614", + "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "{global.color.status.info.100}" + "value": "{color.yellow.40}" }, - "name": "pf-t--global--color--status--info--default", + "name": "pf-t--global--color--status--warning--200", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", - "state": "default" + "subitem": "warning", + "state": "200" }, "path": [ "global", "color", "status", - "info", - "default" + "warning", + "200" ], "references": [ { "type": "color", - "value": "#5e40be", - "filePath": "tokens/default/glass/base.json", + "value": "#dca614", + "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.50}" + "value": "#dca614" }, - "name": "pf-t--global--color--status--info--100", + "name": "pf-t--color--yellow--40", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "info", - "state": "100" + "category": "color", + "type": "yellow", + "item": "40" }, "path": [ - "global", "color", - "status", - "info", - "100" - ], - "references": [ - { - "type": "color", - "value": "#5e40be", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#5e40be" - }, - "name": "pf-t--color--purple--50", - "attributes": { - "category": "color", - "type": "purple", - "item": "50" - }, - "path": [ - "color", - "purple", - "50" - ] - } + "yellow", + "40" ] } ] @@ -11479,108 +11412,79 @@ ] } }, - "pf-t--global--border--color--status--info--hover": { + "pf-t--global--border--color--status--warning--hover": { "default": { - "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "#3d2785", + "value": "#b98412", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.info.hover}" + "value": "{global.color.status.warning.300}" }, - "name": "pf-t--global--border--color--status--info--hover", + "name": "pf-t--global--border--color--status--warning--hover", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "info" + "state": "warning" }, "path": [ "global", "border", "color", "status", - "info", + "warning", "hover" ], "references": [ { - "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "#3d2785", - "filePath": "tokens/default/glass/semantic.glass.json", + "value": "#b98412", + "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "{global.color.status.info.200}" + "value": "{color.yellow.50}" }, - "name": "pf-t--global--color--status--info--hover", + "name": "pf-t--global--color--status--warning--300", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", - "state": "hover" + "subitem": "warning", + "state": "300" }, "path": [ "global", "color", "status", - "info", - "hover" + "warning", + "300" ], "references": [ { "type": "color", - "value": "#3d2785", - "filePath": "tokens/default/glass/base.json", + "value": "#b98412", + "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.60}" + "value": "#b98412" }, - "name": "pf-t--global--color--status--info--200", + "name": "pf-t--color--yellow--50", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "info", - "state": "200" + "category": "color", + "type": "yellow", + "item": "50" }, "path": [ - "global", "color", - "status", - "info", - "200" - ], - "references": [ - { - "type": "color", - "value": "#3d2785", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#3d2785" - }, - "name": "pf-t--color--purple--60", - "attributes": { - "category": "color", - "type": "purple", - "item": "60" - }, - "path": [ - "color", - "purple", - "60" - ] - } + "yellow", + "50" ] } ] @@ -11588,108 +11492,79 @@ ] } }, - "pf-t--global--border--color--status--info--clicked": { + "pf-t--global--border--color--status--warning--clicked": { "default": { - "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "#3d2785", + "value": "#b98412", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.info.clicked}" + "value": "{global.color.status.warning.300}" }, - "name": "pf-t--global--border--color--status--info--clicked", + "name": "pf-t--global--border--color--status--warning--clicked", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "info" + "state": "warning" }, "path": [ "global", "border", "color", "status", - "info", + "warning", "clicked" ], "references": [ { - "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "#3d2785", - "filePath": "tokens/default/glass/semantic.glass.json", + "value": "#b98412", + "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "{global.color.status.info.200}" + "value": "{color.yellow.50}" }, - "name": "pf-t--global--color--status--info--clicked", + "name": "pf-t--global--color--status--warning--300", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", - "state": "clicked" + "subitem": "warning", + "state": "300" }, "path": [ "global", "color", "status", - "info", - "clicked" + "warning", + "300" ], "references": [ { "type": "color", - "value": "#3d2785", - "filePath": "tokens/default/glass/base.json", + "value": "#b98412", + "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.60}" + "value": "#b98412" }, - "name": "pf-t--global--color--status--info--200", + "name": "pf-t--color--yellow--50", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "info", - "state": "200" + "category": "color", + "type": "yellow", + "item": "50" }, "path": [ - "global", "color", - "status", - "info", - "200" - ], - "references": [ - { - "type": "color", - "value": "#3d2785", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#3d2785" - }, - "name": "pf-t--color--purple--60", - "attributes": { - "category": "color", - "type": "purple", - "item": "60" - }, - "path": [ - "color", - "purple", - "60" - ] - } + "yellow", + "50" ] } ] @@ -11697,105 +11572,105 @@ ] } }, - "pf-t--global--border--color--status--custom--default": { + "pf-t--global--border--color--status--danger--default": { "default": { - "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "#147878", + "value": "#b1380b", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.custom.default}" + "value": "{global.color.status.danger.default}" }, - "name": "pf-t--global--border--color--status--custom--default", + "name": "pf-t--global--border--color--status--danger--default", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "custom" + "state": "danger" }, "path": [ "global", "border", "color", "status", - "custom", + "danger", "default" ], "references": [ { - "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "#147878", + "value": "#b1380b", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "{global.color.status.custom.100}" + "value": "{global.color.status.danger.100}" }, - "name": "pf-t--global--color--status--custom--default", + "name": "pf-t--global--color--status--danger--default", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", + "subitem": "danger", "state": "default" }, "path": [ "global", "color", "status", - "custom", + "danger", "default" ], "references": [ { "type": "color", - "value": "#147878", + "value": "#b1380b", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.60}" + "value": "{color.red-orange.60}" }, - "name": "pf-t--global--color--status--custom--100", + "name": "pf-t--global--color--status--danger--100", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", + "subitem": "danger", "state": "100" }, "path": [ "global", "color", "status", - "custom", + "danger", "100" ], "references": [ { "type": "color", - "value": "#147878", + "value": "#b1380b", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#147878" + "value": "#b1380b" }, - "name": "pf-t--color--teal--60", + "name": "pf-t--color--red-orange--60", "attributes": { "category": "color", - "type": "teal", + "type": "red-orange", "item": "60" }, "path": [ "color", - "teal", + "red-orange", "60" ] } @@ -11806,105 +11681,105 @@ ] } }, - "pf-t--global--border--color--status--custom--hover": { + "pf-t--global--border--color--status--danger--hover": { "default": { - "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "#004d4d", + "value": "#731f00", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.custom.hover}" + "value": "{global.color.status.danger.hover}" }, - "name": "pf-t--global--border--color--status--custom--hover", + "name": "pf-t--global--border--color--status--danger--hover", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "custom" + "state": "danger" }, "path": [ "global", "border", "color", "status", - "custom", + "danger", "hover" ], "references": [ { - "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "#004d4d", + "value": "#731f00", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "{global.color.status.custom.200}" + "value": "{global.color.status.danger.200}" }, - "name": "pf-t--global--color--status--custom--hover", + "name": "pf-t--global--color--status--danger--hover", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", + "subitem": "danger", "state": "hover" }, "path": [ "global", "color", "status", - "custom", + "danger", "hover" ], "references": [ { "type": "color", - "value": "#004d4d", + "value": "#731f00", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.70}" + "value": "{color.red-orange.70}" }, - "name": "pf-t--global--color--status--custom--200", + "name": "pf-t--global--color--status--danger--200", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", + "subitem": "danger", "state": "200" }, "path": [ "global", "color", "status", - "custom", + "danger", "200" ], "references": [ { "type": "color", - "value": "#004d4d", + "value": "#731f00", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#004d4d" + "value": "#731f00" }, - "name": "pf-t--color--teal--70", + "name": "pf-t--color--red-orange--70", "attributes": { "category": "color", - "type": "teal", + "type": "red-orange", "item": "70" }, "path": [ "color", - "teal", + "red-orange", "70" ] } @@ -11915,105 +11790,105 @@ ] } }, - "pf-t--global--border--color--status--custom--clicked": { + "pf-t--global--border--color--status--danger--clicked": { "default": { - "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "#004d4d", + "value": "#731f00", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.custom.clicked}" + "value": "{global.color.status.danger.clicked}" }, - "name": "pf-t--global--border--color--status--custom--clicked", + "name": "pf-t--global--border--color--status--danger--clicked", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "custom" + "state": "danger" }, "path": [ "global", "border", "color", "status", - "custom", + "danger", "clicked" ], "references": [ { - "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the clicked state for any element that conveys a danger status.", "type": "color", - "value": "#004d4d", + "value": "#731f00", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the clicked state for any element that conveys a danger status.", "type": "color", - "value": "{global.color.status.custom.200}" + "value": "{global.color.status.danger.200}" }, - "name": "pf-t--global--color--status--custom--clicked", + "name": "pf-t--global--color--status--danger--clicked", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", + "subitem": "danger", "state": "clicked" }, "path": [ "global", "color", "status", - "custom", + "danger", "clicked" ], "references": [ { "type": "color", - "value": "#004d4d", + "value": "#731f00", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.70}" + "value": "{color.red-orange.70}" }, - "name": "pf-t--global--color--status--custom--200", + "name": "pf-t--global--color--status--danger--200", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", + "subitem": "danger", "state": "200" }, "path": [ "global", "color", "status", - "custom", + "danger", "200" ], "references": [ { "type": "color", - "value": "#004d4d", + "value": "#731f00", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#004d4d" + "value": "#731f00" }, - "name": "pf-t--color--teal--70", + "name": "pf-t--color--red-orange--70", "attributes": { "category": "color", - "type": "teal", + "type": "red-orange", "item": "70" }, "path": [ "color", - "teal", + "red-orange", "70" ] } @@ -12024,101 +11899,108 @@ ] } }, - "pf-t--global--border--color--high-contrast": { - "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "rgba(255, 255, 255, 0.0000)", - "filePath": "tokens/default/glass/semantic.glass.json", - "isSource": true, - "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "rgba(255, 255, 255, 0.0000)" - }, - "name": "pf-t--global--border--color--high-contrast", - "attributes": { - "category": "global", - "type": "border", - "item": "color", - "subitem": "high-contrast" - }, - "path": [ - "global", - "border", - "color", - "high-contrast" - ] - } - }, - "pf-t--global--border--color--default": { + "pf-t--global--border--color--status--info--default": { "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "#c7c7c7", + "value": "#5e40be", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.border.color.100}" + "value": "{global.color.status.info.default}" }, - "name": "pf-t--global--border--color--default", + "name": "pf-t--global--border--color--status--info--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "default" + "subitem": "status", + "state": "info" }, "path": [ "global", "border", "color", + "status", + "info", "default" ], "references": [ { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "#c7c7c7", - "filePath": "tokens/default/glass/base.json", + "value": "#5e40be", + "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "{color.gray.30}" + "value": "{global.color.status.info.100}" }, - "name": "pf-t--global--border--color--100", + "name": "pf-t--global--color--status--info--default", "attributes": { "category": "global", - "type": "border", - "item": "color", - "subitem": "100" + "type": "color", + "item": "status", + "subitem": "info", + "state": "default" }, "path": [ "global", - "border", "color", - "100" + "status", + "info", + "default" ], "references": [ { "type": "color", - "value": "#c7c7c7", - "filePath": "tokens/default/glass/palette.color.json", + "value": "#5e40be", + "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "#c7c7c7" + "value": "{color.purple.50}" }, - "name": "pf-t--color--gray--30", + "name": "pf-t--global--color--status--info--100", "attributes": { - "category": "color", - "type": "gray", - "item": "30" + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "100" }, "path": [ + "global", "color", - "gray", - "30" + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5e40be" + }, + "name": "pf-t--color--purple--50", + "attributes": { + "category": "color", + "type": "purple", + "item": "50" + }, + "path": [ + "color", + "purple", + "50" + ] + } ] } ] @@ -12126,74 +12008,108 @@ ] } }, - "pf-t--global--border--color--hover": { + "pf-t--global--border--color--status--info--hover": { "default": { - "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "#4394e5", + "value": "#3d2785", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.brand.100}" + "value": "{global.color.status.info.hover}" }, - "name": "pf-t--global--border--color--hover", + "name": "pf-t--global--border--color--status--info--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "hover" + "subitem": "status", + "state": "info" }, "path": [ "global", "border", "color", + "status", + "info", "hover" ], "references": [ { + "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "#4394e5", - "filePath": "tokens/default/glass/base.json", + "value": "#3d2785", + "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { + "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "{color.blue.40}" + "value": "{global.color.status.info.200}" }, - "name": "pf-t--global--color--brand--100", + "name": "pf-t--global--color--status--info--hover", "attributes": { "category": "global", "type": "color", - "item": "brand", - "subitem": "100" + "item": "status", + "subitem": "info", + "state": "hover" }, "path": [ "global", "color", - "brand", - "100" + "status", + "info", + "hover" ], "references": [ { "type": "color", - "value": "#4394e5", - "filePath": "tokens/default/glass/palette.color.json", + "value": "#3d2785", + "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "#4394e5" + "value": "{color.purple.60}" }, - "name": "pf-t--color--blue--40", + "name": "pf-t--global--color--status--info--200", "attributes": { - "category": "color", - "type": "blue", - "item": "40" + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "200" }, "path": [ + "global", "color", - "blue", - "40" + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d2785" + }, + "name": "pf-t--color--purple--60", + "attributes": { + "category": "color", + "type": "purple", + "item": "60" + }, + "path": [ + "color", + "purple", + "60" + ] + } ] } ] @@ -12201,74 +12117,108 @@ ] } }, - "pf-t--global--border--color--clicked": { + "pf-t--global--border--color--status--info--clicked": { "default": { - "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "#0066cc", + "value": "#3d2785", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.brand.200}" + "value": "{global.color.status.info.clicked}" }, - "name": "pf-t--global--border--color--clicked", + "name": "pf-t--global--border--color--status--info--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "clicked" + "subitem": "status", + "state": "info" }, "path": [ "global", "border", "color", + "status", + "info", "clicked" ], "references": [ { + "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "#0066cc", - "filePath": "tokens/default/glass/base.json", + "value": "#3d2785", + "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { + "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "{color.blue.50}" + "value": "{global.color.status.info.200}" }, - "name": "pf-t--global--color--brand--200", + "name": "pf-t--global--color--status--info--clicked", "attributes": { "category": "global", "type": "color", - "item": "brand", - "subitem": "200" + "item": "status", + "subitem": "info", + "state": "clicked" }, "path": [ "global", "color", - "brand", - "200" + "status", + "info", + "clicked" ], "references": [ { "type": "color", - "value": "#0066cc", - "filePath": "tokens/default/glass/palette.color.json", + "value": "#3d2785", + "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "#0066cc" + "value": "{color.purple.60}" }, - "name": "pf-t--color--blue--50", + "name": "pf-t--global--color--status--info--200", "attributes": { - "category": "color", - "type": "blue", - "item": "50" + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "200" }, "path": [ + "global", "color", - "blue", - "50" + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d2785" + }, + "name": "pf-t--color--purple--60", + "attributes": { + "category": "color", + "type": "purple", + "item": "60" + }, + "path": [ + "color", + "purple", + "60" + ] + } ] } ] @@ -12276,74 +12226,108 @@ ] } }, - "pf-t--global--border--color--subtle": { + "pf-t--global--border--color--status--custom--default": { "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "#e0e0e0", + "value": "#147878", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.border.color.50}" + "value": "{global.color.status.custom.default}" }, - "name": "pf-t--global--border--color--subtle", + "name": "pf-t--global--border--color--status--custom--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "subtle" + "subitem": "status", + "state": "custom" }, "path": [ "global", "border", "color", - "subtle" + "status", + "custom", + "default" ], "references": [ { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#e0e0e0", - "filePath": "tokens/default/glass/base.json", + "value": "#147878", + "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{color.gray.20}" + "value": "{global.color.status.custom.100}" }, - "name": "pf-t--global--border--color--50", + "name": "pf-t--global--color--status--custom--default", "attributes": { "category": "global", - "type": "border", - "item": "color", - "subitem": "50" + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" }, "path": [ "global", - "border", "color", - "50" + "status", + "custom", + "default" ], "references": [ { "type": "color", - "value": "#e0e0e0", - "filePath": "tokens/default/glass/palette.color.json", + "value": "#147878", + "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "#e0e0e0" + "value": "{color.teal.60}" }, - "name": "pf-t--color--gray--20", + "name": "pf-t--global--color--status--custom--100", "attributes": { - "category": "color", - "type": "gray", - "item": "20" + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "100" }, "path": [ + "global", "color", - "gray", - "20" + "status", + "custom", + "100" + ], + "references": [ + { + "type": "color", + "value": "#147878", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#147878" + }, + "name": "pf-t--color--teal--60", + "attributes": { + "category": "color", + "type": "teal", + "item": "60" + }, + "path": [ + "color", + "teal", + "60" + ] + } ] } ] @@ -12351,74 +12335,108 @@ ] } }, - "pf-t--global--border--color--disabled": { + "pf-t--global--border--color--status--custom--hover": { "default": { - "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "#a3a3a3", + "value": "#004d4d", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.disabled.200}" + "value": "{global.color.status.custom.hover}" }, - "name": "pf-t--global--border--color--disabled", + "name": "pf-t--global--border--color--status--custom--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "disabled" + "subitem": "status", + "state": "custom" }, "path": [ "global", "border", "color", - "disabled" + "status", + "custom", + "hover" ], "references": [ { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/glass/base.json", + "value": "#004d4d", + "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{color.gray.40}" + "value": "{global.color.status.custom.200}" }, - "name": "pf-t--global--color--disabled--200", + "name": "pf-t--global--color--status--custom--hover", "attributes": { "category": "global", "type": "color", - "item": "disabled", - "subitem": "200" + "item": "status", + "subitem": "custom", + "state": "hover" }, "path": [ "global", "color", - "disabled", - "200" + "status", + "custom", + "hover" ], "references": [ { "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/glass/palette.color.json", + "value": "#004d4d", + "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "#a3a3a3" + "value": "{color.teal.70}" }, - "name": "pf-t--color--gray--40", + "name": "pf-t--global--color--status--custom--200", "attributes": { - "category": "color", - "type": "gray", - "item": "40" + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "200" }, "path": [ + "global", "color", - "gray", - "40" + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d4d" + }, + "name": "pf-t--color--teal--70", + "attributes": { + "category": "color", + "type": "teal", + "item": "70" + }, + "path": [ + "color", + "teal", + "70" + ] + } ] } ] @@ -12426,130 +12444,108 @@ ] } }, - "pf-t--global--border--color--alt": { + "pf-t--global--border--color--status--custom--clicked": { "default": { - "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "rgba(255, 255, 255, 0.6000)", + "value": "#004d4d", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.background.color.primary.default}" + "value": "{global.color.status.custom.clicked}" }, - "name": "pf-t--global--border--color--alt", + "name": "pf-t--global--border--color--status--custom--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "alt" + "subitem": "status", + "state": "custom" }, "path": [ "global", "border", "color", - "alt" + "status", + "custom", + "clicked" ], "references": [ { - "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "rgba(255, 255, 255, 0.6000)", + "value": "#004d4d", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "rgba(255, 255, 255, 0.6000)" + "value": "{global.color.status.custom.200}" }, - "name": "pf-t--global--background--color--primary--default", + "name": "pf-t--global--color--status--custom--clicked", "attributes": { "category": "global", - "type": "background", - "item": "color", - "subitem": "primary", - "state": "default" - }, - "path": [ - "global", - "background", - "color", - "primary", - "default" - ] - } - ] - } - }, - "pf-t--global--border--color--on-secondary": { - "default": { - "description": "Use on borders/dividers that are placed on a secondary bkg color.", - "type": "color", - "value": "#8c8c8c", - "filePath": "tokens/default/glass/semantic.glass.json", - "isSource": true, - "original": { - "description": "Use on borders/dividers that are placed on a secondary bkg color.", - "type": "color", - "value": "{global.border.color.300}" - }, - "name": "pf-t--global--border--color--on-secondary", - "attributes": { - "category": "global", - "type": "border", - "item": "color", - "subitem": "on-secondary" - }, - "path": [ - "global", - "border", - "color", - "on-secondary" - ], - "references": [ - { - "type": "color", - "value": "#8c8c8c", - "filePath": "tokens/default/glass/base.json", - "isSource": true, - "original": { "type": "color", - "value": "{color.gray.45}" - }, - "name": "pf-t--global--border--color--300", - "attributes": { - "category": "global", - "type": "border", - "item": "color", - "subitem": "300" + "item": "status", + "subitem": "custom", + "state": "clicked" }, "path": [ "global", - "border", "color", - "300" + "status", + "custom", + "clicked" ], "references": [ { "type": "color", - "value": "#8c8c8c", - "filePath": "tokens/default/glass/palette.color.json", + "value": "#004d4d", + "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "#8c8c8c" + "value": "{color.teal.70}" }, - "name": "pf-t--color--gray--45", + "name": "pf-t--global--color--status--custom--200", "attributes": { - "category": "color", - "type": "gray", - "item": "45" + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "200" }, "path": [ + "global", "color", - "gray", - "45" + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d4d" + }, + "name": "pf-t--color--teal--70", + "attributes": { + "category": "color", + "type": "teal", + "item": "70" + }, + "path": [ + "color", + "teal", + "70" + ] + } ] } ] @@ -20250,42 +20246,753 @@ "isSource": true, "original": { "type": "color", - "value": "{color.red.30}" + "value": "{color.red.30}" + }, + "name": "pf-t--global--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f9a8a8" + }, + "name": "pf-t--color--red--30", + "attributes": { + "category": "color", + "type": "red", + "item": "30" + }, + "path": [ + "color", + "red", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--red--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status red background color.", + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status red background color.", + "type": "color", + "value": "{global.color.nonstatus.red.200}" + }, + "name": "pf-t--global--color--nonstatus--red--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.30}" + }, + "name": "pf-t--global--color--nonstatus--red--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f9a8a8", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f9a8a8" + }, + "name": "pf-t--color--red--30", + "attributes": { + "category": "color", + "type": "red", + "item": "30" + }, + "path": [ + "color", + "red", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orangered--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange-red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange-red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.color.nonstatus.orangered.100}" + }, + "name": "pf-t--global--color--nonstatus--orangered--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "default" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "name": "pf-t--global--color--nonstatus--orangered--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "100" + ], + "references": [ + { + "type": "color", + "value": "#fbbea8", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fbbea8" + }, + "name": "pf-t--color--red-orange--20", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "20" + }, + "path": [ + "color", + "red-orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orangered--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status orange-red background color.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status orange-red background color.", + "type": "color", + "value": "{global.color.nonstatus.orangered.200}" + }, + "name": "pf-t--global--color--nonstatus--orangered--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orangered--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status orange-red background color.", + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status orange-red background color.", + "type": "color", + "value": "{global.color.nonstatus.orangered.200}" + }, + "name": "pf-t--global--color--nonstatus--orangered--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "name": "pf-t--global--color--nonstatus--orangered--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orangered", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "orangered", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orange--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.color.nonstatus.orange.100}" + }, + "name": "pf-t--global--color--nonstatus--orange--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "default" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.20}" + }, + "name": "pf-t--global--color--nonstatus--orange--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "100" + ], + "references": [ + { + "type": "color", + "value": "#fccb8f", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#fccb8f" + }, + "name": "pf-t--color--orange--20", + "attributes": { + "category": "color", + "type": "orange", + "item": "20" + }, + "path": [ + "color", + "orange", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orange--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status orange background color.", + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status orange background color.", + "type": "color", + "value": "{global.color.nonstatus.orange.200}" + }, + "name": "pf-t--global--color--nonstatus--orange--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.30}" + }, + "name": "pf-t--global--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--orange--clicked": { + "default": { + "description": "Use as the clicked state color for any element that uses the non status orange background color.", + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that uses the non status orange background color.", + "type": "color", + "value": "{global.color.nonstatus.orange.200}" + }, + "name": "pf-t--global--color--nonstatus--orange--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "clicked" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.orange.30}" + }, + "name": "pf-t--global--color--nonstatus--orange--200", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "orange", + "state": "200" + }, + "path": [ + "global", + "color", + "nonstatus", + "orange", + "200" + ], + "references": [ + { + "type": "color", + "value": "#f8ae54", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f8ae54" + }, + "name": "pf-t--color--orange--30", + "attributes": { + "category": "color", + "type": "orange", + "item": "30" + }, + "path": [ + "color", + "orange", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--yellow--default": { + "default": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the default background color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.color.nonstatus.yellow.100}" + }, + "name": "pf-t--global--color--nonstatus--yellow--default", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "default" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "default" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.20}" + }, + "name": "pf-t--global--color--nonstatus--yellow--100", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "100" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffe072", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffe072" + }, + "name": "pf-t--color--yellow--20", + "attributes": { + "category": "color", + "type": "yellow", + "item": "20" + }, + "path": [ + "color", + "yellow", + "20" + ] + } + ] + } + ] + } + }, + "pf-t--global--color--nonstatus--yellow--hover": { + "default": { + "description": "Use as the hover state color for any element that uses the non status yellow background color.", + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/semantic.glass.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for any element that uses the non status yellow background color.", + "type": "color", + "value": "{global.color.nonstatus.yellow.200}" + }, + "name": "pf-t--global--color--nonstatus--yellow--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "yellow", + "state": "hover" + }, + "path": [ + "global", + "color", + "nonstatus", + "yellow", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#ffcc17", + "filePath": "tokens/default/glass/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.yellow.30}" }, - "name": "pf-t--global--color--nonstatus--red--200", + "name": "pf-t--global--color--nonstatus--yellow--200", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "red", + "subitem": "yellow", "state": "200" }, "path": [ "global", "color", "nonstatus", - "red", + "yellow", "200" ], "references": [ { "type": "color", - "value": "#f9a8a8", + "value": "#ffcc17", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f9a8a8" + "value": "#ffcc17" }, - "name": "pf-t--color--red--30", + "name": "pf-t--color--yellow--30", "attributes": { "category": "color", - "type": "red", + "type": "yellow", "item": "30" }, "path": [ "color", - "red", + "yellow", "30" ] } @@ -20294,77 +21001,77 @@ ] } }, - "pf-t--global--color--nonstatus--red--clicked": { + "pf-t--global--color--nonstatus--yellow--clicked": { "default": { - "description": "Use as the clicked state color for any element that uses the non status red background color.", + "description": "Use as the clicked state color for any element that uses the non status yellow background color.", "type": "color", - "value": "#f9a8a8", + "value": "#ffcc17", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the clicked state color for any element that uses the non status red background color.", + "description": "Use as the clicked state color for any element that uses the non status yellow background color.", "type": "color", - "value": "{global.color.nonstatus.red.200}" + "value": "{global.color.nonstatus.yellow.200}" }, - "name": "pf-t--global--color--nonstatus--red--clicked", + "name": "pf-t--global--color--nonstatus--yellow--clicked", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "red", + "subitem": "yellow", "state": "clicked" }, "path": [ "global", "color", "nonstatus", - "red", + "yellow", "clicked" ], "references": [ { "type": "color", - "value": "#f9a8a8", + "value": "#ffcc17", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.red.30}" + "value": "{color.yellow.30}" }, - "name": "pf-t--global--color--nonstatus--red--200", + "name": "pf-t--global--color--nonstatus--yellow--200", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "red", + "subitem": "yellow", "state": "200" }, "path": [ "global", "color", "nonstatus", - "red", + "yellow", "200" ], "references": [ { "type": "color", - "value": "#f9a8a8", + "value": "#ffcc17", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f9a8a8" + "value": "#ffcc17" }, - "name": "pf-t--color--red--30", + "name": "pf-t--color--yellow--30", "attributes": { "category": "color", - "type": "red", + "type": "yellow", "item": "30" }, "path": [ "color", - "red", + "yellow", "30" ] } @@ -20373,77 +21080,77 @@ ] } }, - "pf-t--global--color--nonstatus--orangered--default": { + "pf-t--global--color--nonstatus--green--default": { "default": { - "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange-red (i.e. color-coded labels, banners, etc.)", + "description": "Use as the default background color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels, banners, etc.)", "type": "color", - "value": "#fbbea8", + "value": "#d1f1bb", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange-red (i.e. color-coded labels, banners, etc.)", + "description": "Use as the default background color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels, banners, etc.)", "type": "color", - "value": "{global.color.nonstatus.orangered.100}" + "value": "{global.color.nonstatus.green.100}" }, - "name": "pf-t--global--color--nonstatus--orangered--default", + "name": "pf-t--global--color--nonstatus--green--default", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "orangered", + "subitem": "green", "state": "default" }, "path": [ "global", "color", "nonstatus", - "orangered", + "green", "default" ], "references": [ { "type": "color", - "value": "#fbbea8", + "value": "#d1f1bb", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.20}" + "value": "{color.green.20}" }, - "name": "pf-t--global--color--nonstatus--orangered--100", + "name": "pf-t--global--color--nonstatus--green--100", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "orangered", + "subitem": "green", "state": "100" }, "path": [ "global", "color", "nonstatus", - "orangered", + "green", "100" ], "references": [ { "type": "color", - "value": "#fbbea8", + "value": "#d1f1bb", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#fbbea8" + "value": "#d1f1bb" }, - "name": "pf-t--color--red-orange--20", + "name": "pf-t--color--green--20", "attributes": { "category": "color", - "type": "red-orange", + "type": "green", "item": "20" }, "path": [ "color", - "red-orange", + "green", "20" ] } @@ -20452,77 +21159,77 @@ ] } }, - "pf-t--global--color--nonstatus--orangered--hover": { + "pf-t--global--color--nonstatus--green--hover": { "default": { - "description": "Use as the hover state color for any element that uses the non status orange-red background color.", + "description": "Use as the hover state color for any element that uses the non status green background color.", "type": "color", - "value": "#f89b78", + "value": "#afdc8f", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the hover state color for any element that uses the non status orange-red background color.", + "description": "Use as the hover state color for any element that uses the non status green background color.", "type": "color", - "value": "{global.color.nonstatus.orangered.200}" + "value": "{global.color.nonstatus.green.200}" }, - "name": "pf-t--global--color--nonstatus--orangered--hover", + "name": "pf-t--global--color--nonstatus--green--hover", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "orangered", + "subitem": "green", "state": "hover" }, "path": [ "global", "color", "nonstatus", - "orangered", + "green", "hover" ], "references": [ { "type": "color", - "value": "#f89b78", + "value": "#afdc8f", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.30}" + "value": "{color.green.30}" }, - "name": "pf-t--global--color--nonstatus--orangered--200", + "name": "pf-t--global--color--nonstatus--green--200", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "orangered", + "subitem": "green", "state": "200" }, "path": [ "global", "color", "nonstatus", - "orangered", + "green", "200" ], "references": [ { "type": "color", - "value": "#f89b78", + "value": "#afdc8f", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f89b78" + "value": "#afdc8f" }, - "name": "pf-t--color--red-orange--30", + "name": "pf-t--color--green--30", "attributes": { "category": "color", - "type": "red-orange", + "type": "green", "item": "30" }, "path": [ "color", - "red-orange", + "green", "30" ] } @@ -20531,77 +21238,77 @@ ] } }, - "pf-t--global--color--nonstatus--orangered--clicked": { + "pf-t--global--color--nonstatus--green--clicked": { "default": { - "description": "Use as the clicked state color for any element that uses the non status orange-red background color.", + "description": "Use as the clicked state color for any element that uses the non status green background color.", "type": "color", - "value": "#f89b78", + "value": "#afdc8f", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the clicked state color for any element that uses the non status orange-red background color.", + "description": "Use as the clicked state color for any element that uses the non status green background color.", "type": "color", - "value": "{global.color.nonstatus.orangered.200}" + "value": "{global.color.nonstatus.green.200}" }, - "name": "pf-t--global--color--nonstatus--orangered--clicked", + "name": "pf-t--global--color--nonstatus--green--clicked", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "orangered", + "subitem": "green", "state": "clicked" }, "path": [ "global", "color", "nonstatus", - "orangered", + "green", "clicked" ], "references": [ { "type": "color", - "value": "#f89b78", + "value": "#afdc8f", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.30}" + "value": "{color.green.30}" }, - "name": "pf-t--global--color--nonstatus--orangered--200", + "name": "pf-t--global--color--nonstatus--green--200", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "orangered", + "subitem": "green", "state": "200" }, "path": [ "global", "color", "nonstatus", - "orangered", + "green", "200" ], "references": [ { "type": "color", - "value": "#f89b78", + "value": "#afdc8f", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f89b78" + "value": "#afdc8f" }, - "name": "pf-t--color--red-orange--30", + "name": "pf-t--color--green--30", "attributes": { "category": "color", - "type": "red-orange", + "type": "green", "item": "30" }, "path": [ "color", - "red-orange", + "green", "30" ] } @@ -20610,77 +21317,77 @@ ] } }, - "pf-t--global--color--nonstatus--orange--default": { + "pf-t--global--color--nonstatus--teal--default": { "default": { - "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels, banners, etc.)", + "description": "Use as the default background color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels, banners, etc.)", "type": "color", - "value": "#fccb8f", + "value": "#b9e5e5", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default background color for any element that does not convey status and that you always will want to be orange (i.e. color-coded labels, banners, etc.)", + "description": "Use as the default background color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels, banners, etc.)", "type": "color", - "value": "{global.color.nonstatus.orange.100}" + "value": "{global.color.nonstatus.teal.100}" }, - "name": "pf-t--global--color--nonstatus--orange--default", + "name": "pf-t--global--color--nonstatus--teal--default", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "orange", + "subitem": "teal", "state": "default" }, "path": [ "global", "color", "nonstatus", - "orange", + "teal", "default" ], "references": [ { "type": "color", - "value": "#fccb8f", + "value": "#b9e5e5", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.orange.20}" + "value": "{color.teal.20}" }, - "name": "pf-t--global--color--nonstatus--orange--100", + "name": "pf-t--global--color--nonstatus--teal--100", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "orange", + "subitem": "teal", "state": "100" }, "path": [ "global", "color", "nonstatus", - "orange", + "teal", "100" ], "references": [ { "type": "color", - "value": "#fccb8f", + "value": "#b9e5e5", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#fccb8f" + "value": "#b9e5e5" }, - "name": "pf-t--color--orange--20", + "name": "pf-t--color--teal--20", "attributes": { "category": "color", - "type": "orange", + "type": "teal", "item": "20" }, "path": [ "color", - "orange", + "teal", "20" ] } @@ -20689,77 +21396,77 @@ ] } }, - "pf-t--global--color--nonstatus--orange--hover": { + "pf-t--global--color--nonstatus--teal--hover": { "default": { - "description": "Use as the hover state color for any element that uses the non status orange background color.", + "description": "Use as the hover state color for any element that uses the non status teal background color.", "type": "color", - "value": "#f8ae54", + "value": "#9ad8d8", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the hover state color for any element that uses the non status orange background color.", + "description": "Use as the hover state color for any element that uses the non status teal background color.", "type": "color", - "value": "{global.color.nonstatus.orange.200}" + "value": "{global.color.nonstatus.teal.200}" }, - "name": "pf-t--global--color--nonstatus--orange--hover", + "name": "pf-t--global--color--nonstatus--teal--hover", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "orange", + "subitem": "teal", "state": "hover" }, "path": [ "global", "color", "nonstatus", - "orange", + "teal", "hover" ], "references": [ { "type": "color", - "value": "#f8ae54", + "value": "#9ad8d8", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.orange.30}" + "value": "{color.teal.30}" }, - "name": "pf-t--global--color--nonstatus--orange--200", + "name": "pf-t--global--color--nonstatus--teal--200", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "orange", + "subitem": "teal", "state": "200" }, "path": [ "global", "color", "nonstatus", - "orange", + "teal", "200" ], "references": [ { "type": "color", - "value": "#f8ae54", + "value": "#9ad8d8", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f8ae54" + "value": "#9ad8d8" }, - "name": "pf-t--color--orange--30", + "name": "pf-t--color--teal--30", "attributes": { "category": "color", - "type": "orange", + "type": "teal", "item": "30" }, "path": [ "color", - "orange", + "teal", "30" ] } @@ -20768,77 +21475,77 @@ ] } }, - "pf-t--global--color--nonstatus--orange--clicked": { + "pf-t--global--color--nonstatus--teal--clicked": { "default": { - "description": "Use as the clicked state color for any element that uses the non status orange background color.", + "description": "Use as the clicked state color for any element that uses the non status teal background color.", "type": "color", - "value": "#f8ae54", + "value": "#9ad8d8", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the clicked state color for any element that uses the non status orange background color.", + "description": "Use as the clicked state color for any element that uses the non status teal background color.", "type": "color", - "value": "{global.color.nonstatus.orange.200}" + "value": "{global.color.nonstatus.teal.200}" }, - "name": "pf-t--global--color--nonstatus--orange--clicked", + "name": "pf-t--global--color--nonstatus--teal--clicked", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "orange", + "subitem": "teal", "state": "clicked" }, "path": [ "global", "color", "nonstatus", - "orange", + "teal", "clicked" ], "references": [ { "type": "color", - "value": "#f8ae54", + "value": "#9ad8d8", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.orange.30}" + "value": "{color.teal.30}" }, - "name": "pf-t--global--color--nonstatus--orange--200", + "name": "pf-t--global--color--nonstatus--teal--200", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "orange", + "subitem": "teal", "state": "200" }, "path": [ "global", "color", "nonstatus", - "orange", + "teal", "200" ], "references": [ { "type": "color", - "value": "#f8ae54", + "value": "#9ad8d8", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f8ae54" + "value": "#9ad8d8" }, - "name": "pf-t--color--orange--30", + "name": "pf-t--color--teal--30", "attributes": { "category": "color", - "type": "orange", + "type": "teal", "item": "30" }, "path": [ "color", - "orange", + "teal", "30" ] } @@ -20847,77 +21554,77 @@ ] } }, - "pf-t--global--color--nonstatus--yellow--default": { + "pf-t--global--color--nonstatus--blue--default": { "default": { - "description": "Use as the default background color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels, banners, etc.)", + "description": "Use as the default background color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels, banners, etc.)", "type": "color", - "value": "#ffe072", + "value": "#b9dafc", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default background color for any element that does not convey status and that you always will want to be yellow (i.e. color-coded labels, banners, etc.)", + "description": "Use as the default background color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels, banners, etc.)", "type": "color", - "value": "{global.color.nonstatus.yellow.100}" + "value": "{global.color.nonstatus.blue.100}" }, - "name": "pf-t--global--color--nonstatus--yellow--default", + "name": "pf-t--global--color--nonstatus--blue--default", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "yellow", + "subitem": "blue", "state": "default" }, "path": [ "global", "color", "nonstatus", - "yellow", + "blue", "default" ], "references": [ { "type": "color", - "value": "#ffe072", + "value": "#b9dafc", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.20}" + "value": "{color.blue.20}" }, - "name": "pf-t--global--color--nonstatus--yellow--100", + "name": "pf-t--global--color--nonstatus--blue--100", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "yellow", + "subitem": "blue", "state": "100" }, "path": [ "global", "color", "nonstatus", - "yellow", + "blue", "100" ], "references": [ { "type": "color", - "value": "#ffe072", + "value": "#b9dafc", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffe072" + "value": "#b9dafc" }, - "name": "pf-t--color--yellow--20", + "name": "pf-t--color--blue--20", "attributes": { "category": "color", - "type": "yellow", + "type": "blue", "item": "20" }, "path": [ "color", - "yellow", + "blue", "20" ] } @@ -20926,77 +21633,77 @@ ] } }, - "pf-t--global--color--nonstatus--yellow--hover": { + "pf-t--global--color--nonstatus--blue--hover": { "default": { - "description": "Use as the hover state color for any element that uses the non status yellow background color.", + "description": "Use as the hover state color for any element that uses the non status blue background color.", "type": "color", - "value": "#ffcc17", + "value": "#92c5f9", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the hover state color for any element that uses the non status yellow background color.", + "description": "Use as the hover state color for any element that uses the non status blue background color.", "type": "color", - "value": "{global.color.nonstatus.yellow.200}" + "value": "{global.color.nonstatus.blue.200}" }, - "name": "pf-t--global--color--nonstatus--yellow--hover", + "name": "pf-t--global--color--nonstatus--blue--hover", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "yellow", + "subitem": "blue", "state": "hover" }, "path": [ "global", "color", "nonstatus", - "yellow", + "blue", "hover" ], "references": [ { "type": "color", - "value": "#ffcc17", + "value": "#92c5f9", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.30}" + "value": "{color.blue.30}" }, - "name": "pf-t--global--color--nonstatus--yellow--200", + "name": "pf-t--global--color--nonstatus--blue--200", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "yellow", + "subitem": "blue", "state": "200" }, "path": [ "global", "color", "nonstatus", - "yellow", + "blue", "200" ], "references": [ { "type": "color", - "value": "#ffcc17", + "value": "#92c5f9", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffcc17" + "value": "#92c5f9" }, - "name": "pf-t--color--yellow--30", + "name": "pf-t--color--blue--30", "attributes": { "category": "color", - "type": "yellow", + "type": "blue", "item": "30" }, "path": [ "color", - "yellow", + "blue", "30" ] } @@ -21005,77 +21712,77 @@ ] } }, - "pf-t--global--color--nonstatus--yellow--clicked": { + "pf-t--global--color--nonstatus--blue--clicked": { "default": { - "description": "Use as the clicked state color for any element that uses the non status yellow background color.", + "description": "Use as the clicked state color for any element that uses the non status blue background color.", "type": "color", - "value": "#ffcc17", + "value": "#92c5f9", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the clicked state color for any element that uses the non status yellow background color.", + "description": "Use as the clicked state color for any element that uses the non status blue background color.", "type": "color", - "value": "{global.color.nonstatus.yellow.200}" + "value": "{global.color.nonstatus.blue.200}" }, - "name": "pf-t--global--color--nonstatus--yellow--clicked", + "name": "pf-t--global--color--nonstatus--blue--clicked", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "yellow", + "subitem": "blue", "state": "clicked" }, "path": [ "global", "color", "nonstatus", - "yellow", + "blue", "clicked" ], "references": [ { "type": "color", - "value": "#ffcc17", + "value": "#92c5f9", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.30}" + "value": "{color.blue.30}" }, - "name": "pf-t--global--color--nonstatus--yellow--200", + "name": "pf-t--global--color--nonstatus--blue--200", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "yellow", + "subitem": "blue", "state": "200" }, "path": [ "global", "color", "nonstatus", - "yellow", + "blue", "200" ], "references": [ { "type": "color", - "value": "#ffcc17", + "value": "#92c5f9", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffcc17" + "value": "#92c5f9" }, - "name": "pf-t--color--yellow--30", + "name": "pf-t--color--blue--30", "attributes": { "category": "color", - "type": "yellow", + "type": "blue", "item": "30" }, "path": [ "color", - "yellow", + "blue", "30" ] } @@ -21084,77 +21791,77 @@ ] } }, - "pf-t--global--color--nonstatus--green--default": { + "pf-t--global--color--nonstatus--purple--default": { "default": { - "description": "Use as the default background color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels, banners, etc.)", + "description": "Use as the default background color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels, banners, etc.)", "type": "color", - "value": "#d1f1bb", + "value": "#d0c5f4", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default background color for any element that does not convey status and that you always will want to be green (i.e. color-coded labels, banners, etc.)", + "description": "Use as the default background color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels, banners, etc.)", "type": "color", - "value": "{global.color.nonstatus.green.100}" + "value": "{global.color.nonstatus.purple.100}" }, - "name": "pf-t--global--color--nonstatus--green--default", + "name": "pf-t--global--color--nonstatus--purple--default", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "green", + "subitem": "purple", "state": "default" }, "path": [ "global", "color", "nonstatus", - "green", + "purple", "default" ], "references": [ { "type": "color", - "value": "#d1f1bb", + "value": "#d0c5f4", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.20}" + "value": "{color.purple.20}" }, - "name": "pf-t--global--color--nonstatus--green--100", + "name": "pf-t--global--color--nonstatus--purple--100", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "green", + "subitem": "purple", "state": "100" }, "path": [ "global", "color", "nonstatus", - "green", + "purple", "100" ], "references": [ { "type": "color", - "value": "#d1f1bb", + "value": "#d0c5f4", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#d1f1bb" + "value": "#d0c5f4" }, - "name": "pf-t--color--green--20", + "name": "pf-t--color--purple--20", "attributes": { "category": "color", - "type": "green", + "type": "purple", "item": "20" }, "path": [ "color", - "green", + "purple", "20" ] } @@ -21163,156 +21870,77 @@ ] } }, - "pf-t--global--color--nonstatus--green--hover": { + "pf-t--global--color--nonstatus--purple--hover": { "default": { - "description": "Use as the hover state color for any element that uses the non status green background color.", + "description": "Use as the hover state color for any element that uses the non status purple background color.", "type": "color", - "value": "#afdc8f", + "value": "#b6a6e9", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the hover state color for any element that uses the non status green background color.", + "description": "Use as the hover state color for any element that uses the non status purple background color.", "type": "color", - "value": "{global.color.nonstatus.green.200}" + "value": "{global.color.nonstatus.purple.200}" }, - "name": "pf-t--global--color--nonstatus--green--hover", + "name": "pf-t--global--color--nonstatus--purple--hover", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "green", + "subitem": "purple", "state": "hover" }, "path": [ "global", "color", "nonstatus", - "green", + "purple", "hover" ], "references": [ { "type": "color", - "value": "#afdc8f", - "filePath": "tokens/default/glass/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.green.30}" - }, - "name": "pf-t--global--color--nonstatus--green--200", - "attributes": { - "category": "global", - "type": "color", - "item": "nonstatus", - "subitem": "green", - "state": "200" - }, - "path": [ - "global", - "color", - "nonstatus", - "green", - "200" - ], - "references": [ - { - "type": "color", - "value": "#afdc8f", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#afdc8f" - }, - "name": "pf-t--color--green--30", - "attributes": { - "category": "color", - "type": "green", - "item": "30" - }, - "path": [ - "color", - "green", - "30" - ] - } - ] - } - ] - } - }, - "pf-t--global--color--nonstatus--green--clicked": { - "default": { - "description": "Use as the clicked state color for any element that uses the non status green background color.", - "type": "color", - "value": "#afdc8f", - "filePath": "tokens/default/glass/semantic.glass.json", - "isSource": true, - "original": { - "description": "Use as the clicked state color for any element that uses the non status green background color.", - "type": "color", - "value": "{global.color.nonstatus.green.200}" - }, - "name": "pf-t--global--color--nonstatus--green--clicked", - "attributes": { - "category": "global", - "type": "color", - "item": "nonstatus", - "subitem": "green", - "state": "clicked" - }, - "path": [ - "global", - "color", - "nonstatus", - "green", - "clicked" - ], - "references": [ - { - "type": "color", - "value": "#afdc8f", + "value": "#b6a6e9", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.30}" + "value": "{color.purple.30}" }, - "name": "pf-t--global--color--nonstatus--green--200", + "name": "pf-t--global--color--nonstatus--purple--200", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "green", + "subitem": "purple", "state": "200" }, "path": [ "global", "color", "nonstatus", - "green", + "purple", "200" ], "references": [ { "type": "color", - "value": "#afdc8f", + "value": "#b6a6e9", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#afdc8f" + "value": "#b6a6e9" }, - "name": "pf-t--color--green--30", + "name": "pf-t--color--purple--30", "attributes": { "category": "color", - "type": "green", + "type": "purple", "item": "30" }, "path": [ "color", - "green", + "purple", "30" ] } @@ -21321,78 +21949,78 @@ ] } }, - "pf-t--global--color--nonstatus--teal--default": { + "pf-t--global--color--nonstatus--purple--clicked": { "default": { - "description": "Use as the default background color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels, banners, etc.)", + "description": "Use as the clicked state color for any element that uses the non status purple background color.", "type": "color", - "value": "#b9e5e5", + "value": "#b6a6e9", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default background color for any element that does not convey status and that you always will want to be teal (i.e. color-coded labels, banners, etc.)", + "description": "Use as the clicked state color for any element that uses the non status purple background color.", "type": "color", - "value": "{global.color.nonstatus.teal.100}" + "value": "{global.color.nonstatus.purple.200}" }, - "name": "pf-t--global--color--nonstatus--teal--default", + "name": "pf-t--global--color--nonstatus--purple--clicked", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "teal", - "state": "default" + "subitem": "purple", + "state": "clicked" }, "path": [ "global", "color", "nonstatus", - "teal", - "default" + "purple", + "clicked" ], "references": [ { "type": "color", - "value": "#b9e5e5", + "value": "#b6a6e9", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.20}" + "value": "{color.purple.30}" }, - "name": "pf-t--global--color--nonstatus--teal--100", + "name": "pf-t--global--color--nonstatus--purple--200", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "teal", - "state": "100" + "subitem": "purple", + "state": "200" }, "path": [ "global", "color", "nonstatus", - "teal", - "100" + "purple", + "200" ], "references": [ { "type": "color", - "value": "#b9e5e5", + "value": "#b6a6e9", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b9e5e5" + "value": "#b6a6e9" }, - "name": "pf-t--color--teal--20", + "name": "pf-t--color--purple--30", "attributes": { "category": "color", - "type": "teal", - "item": "20" + "type": "purple", + "item": "30" }, "path": [ "color", - "teal", - "20" + "purple", + "30" ] } ] @@ -21400,78 +22028,78 @@ ] } }, - "pf-t--global--color--nonstatus--teal--hover": { + "pf-t--global--color--nonstatus--gray--default": { "default": { - "description": "Use as the hover state color for any element that uses the non status teal background color.", + "description": "Use as the default background color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels, banners, etc.)", "type": "color", - "value": "#9ad8d8", + "value": "#e0e0e0", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the hover state color for any element that uses the non status teal background color.", + "description": "Use as the default background color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels, banners, etc.)", "type": "color", - "value": "{global.color.nonstatus.teal.200}" + "value": "{global.color.nonstatus.gray.100}" }, - "name": "pf-t--global--color--nonstatus--teal--hover", + "name": "pf-t--global--color--nonstatus--gray--default", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "teal", - "state": "hover" + "subitem": "gray", + "state": "default" }, "path": [ "global", "color", "nonstatus", - "teal", - "hover" + "gray", + "default" ], "references": [ { "type": "color", - "value": "#9ad8d8", + "value": "#e0e0e0", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.30}" + "value": "{color.gray.20}" }, - "name": "pf-t--global--color--nonstatus--teal--200", + "name": "pf-t--global--color--nonstatus--gray--100", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "teal", - "state": "200" + "subitem": "gray", + "state": "100" }, "path": [ "global", "color", "nonstatus", - "teal", - "200" + "gray", + "100" ], "references": [ { "type": "color", - "value": "#9ad8d8", + "value": "#e0e0e0", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#9ad8d8" + "value": "#e0e0e0" }, - "name": "pf-t--color--teal--30", + "name": "pf-t--color--gray--20", "attributes": { "category": "color", - "type": "teal", - "item": "30" + "type": "gray", + "item": "20" }, "path": [ "color", - "teal", - "30" + "gray", + "20" ] } ] @@ -21479,77 +22107,77 @@ ] } }, - "pf-t--global--color--nonstatus--teal--clicked": { + "pf-t--global--color--nonstatus--gray--hover": { "default": { - "description": "Use as the clicked state color for any element that uses the non status teal background color.", + "description": "Use as the hover state color for any element that uses the non status gray background color.", "type": "color", - "value": "#9ad8d8", + "value": "#c7c7c7", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the clicked state color for any element that uses the non status teal background color.", + "description": "Use as the hover state color for any element that uses the non status gray background color.", "type": "color", - "value": "{global.color.nonstatus.teal.200}" + "value": "{global.color.nonstatus.gray.200}" }, - "name": "pf-t--global--color--nonstatus--teal--clicked", + "name": "pf-t--global--color--nonstatus--gray--hover", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "teal", - "state": "clicked" + "subitem": "gray", + "state": "hover" }, "path": [ "global", "color", "nonstatus", - "teal", - "clicked" + "gray", + "hover" ], "references": [ { "type": "color", - "value": "#9ad8d8", + "value": "#c7c7c7", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.30}" + "value": "{color.gray.30}" }, - "name": "pf-t--global--color--nonstatus--teal--200", + "name": "pf-t--global--color--nonstatus--gray--200", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "teal", + "subitem": "gray", "state": "200" }, "path": [ "global", "color", "nonstatus", - "teal", + "gray", "200" ], "references": [ { "type": "color", - "value": "#9ad8d8", + "value": "#c7c7c7", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#9ad8d8" + "value": "#c7c7c7" }, - "name": "pf-t--color--teal--30", + "name": "pf-t--color--gray--30", "attributes": { "category": "color", - "type": "teal", + "type": "gray", "item": "30" }, "path": [ "color", - "teal", + "gray", "30" ] } @@ -21558,78 +22186,78 @@ ] } }, - "pf-t--global--color--nonstatus--blue--default": { + "pf-t--global--color--nonstatus--gray--clicked": { "default": { - "description": "Use as the default background color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels, banners, etc.)", + "description": "Use as the clicked state color for any element that uses the non status gray background color.", "type": "color", - "value": "#b9dafc", + "value": "#c7c7c7", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default background color for any element that does not convey status and that you always will want to be blue (i.e. color-coded labels, banners, etc.)", + "description": "Use as the clicked state color for any element that uses the non status gray background color.", "type": "color", - "value": "{global.color.nonstatus.blue.100}" + "value": "{global.color.nonstatus.gray.200}" }, - "name": "pf-t--global--color--nonstatus--blue--default", + "name": "pf-t--global--color--nonstatus--gray--clicked", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "blue", - "state": "default" + "subitem": "gray", + "state": "clicked" }, "path": [ "global", "color", "nonstatus", - "blue", - "default" + "gray", + "clicked" ], "references": [ { "type": "color", - "value": "#b9dafc", + "value": "#c7c7c7", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.20}" + "value": "{color.gray.30}" }, - "name": "pf-t--global--color--nonstatus--blue--100", + "name": "pf-t--global--color--nonstatus--gray--200", "attributes": { "category": "global", "type": "color", "item": "nonstatus", - "subitem": "blue", - "state": "100" + "subitem": "gray", + "state": "200" }, "path": [ "global", "color", "nonstatus", - "blue", - "100" + "gray", + "200" ], "references": [ { "type": "color", - "value": "#b9dafc", + "value": "#c7c7c7", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b9dafc" + "value": "#c7c7c7" }, - "name": "pf-t--color--blue--20", + "name": "pf-t--color--gray--30", "attributes": { "category": "color", - "type": "blue", - "item": "20" + "type": "gray", + "item": "30" }, "path": [ "color", - "blue", - "20" + "gray", + "30" ] } ] @@ -21637,78 +22265,78 @@ ] } }, - "pf-t--global--color--nonstatus--blue--hover": { + "pf-t--global--text--color--link--default": { "default": { - "description": "Use as the hover state color for any element that uses the non status blue background color.", + "description": "Use as the default text color for links.", "type": "color", - "value": "#92c5f9", + "value": "#0066cc", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the hover state color for any element that uses the non status blue background color.", + "description": "Use as the default text color for links.", "type": "color", - "value": "{global.color.nonstatus.blue.200}" + "value": "{global.text.color.link.100}" }, - "name": "pf-t--global--color--nonstatus--blue--hover", + "name": "pf-t--global--text--color--link--default", "attributes": { "category": "global", - "type": "color", - "item": "nonstatus", - "subitem": "blue", - "state": "hover" + "type": "text", + "item": "color", + "subitem": "link", + "state": "default" }, "path": [ "global", + "text", "color", - "nonstatus", - "blue", - "hover" + "link", + "default" ], "references": [ { "type": "color", - "value": "#92c5f9", + "value": "#0066cc", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.30}" + "value": "{color.blue.50}" }, - "name": "pf-t--global--color--nonstatus--blue--200", + "name": "pf-t--global--text--color--link--100", "attributes": { "category": "global", - "type": "color", - "item": "nonstatus", - "subitem": "blue", - "state": "200" + "type": "text", + "item": "color", + "subitem": "link", + "state": "100" }, "path": [ "global", + "text", "color", - "nonstatus", - "blue", - "200" + "link", + "100" ], "references": [ { "type": "color", - "value": "#92c5f9", + "value": "#0066cc", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#92c5f9" + "value": "#0066cc" }, - "name": "pf-t--color--blue--30", + "name": "pf-t--color--blue--50", "attributes": { "category": "color", "type": "blue", - "item": "30" + "item": "50" }, "path": [ "color", "blue", - "30" + "50" ] } ] @@ -21716,78 +22344,78 @@ ] } }, - "pf-t--global--color--nonstatus--blue--clicked": { + "pf-t--global--text--color--link--hover": { "default": { - "description": "Use as the clicked state color for any element that uses the non status blue background color.", + "description": "Use as the hover state text color for links.", "type": "color", - "value": "#92c5f9", + "value": "#004d99", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the clicked state color for any element that uses the non status blue background color.", + "description": "Use as the hover state text color for links.", "type": "color", - "value": "{global.color.nonstatus.blue.200}" + "value": "{global.text.color.link.200}" }, - "name": "pf-t--global--color--nonstatus--blue--clicked", + "name": "pf-t--global--text--color--link--hover", "attributes": { "category": "global", - "type": "color", - "item": "nonstatus", - "subitem": "blue", - "state": "clicked" + "type": "text", + "item": "color", + "subitem": "link", + "state": "hover" }, "path": [ "global", + "text", "color", - "nonstatus", - "blue", - "clicked" + "link", + "hover" ], "references": [ { "type": "color", - "value": "#92c5f9", + "value": "#004d99", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.30}" + "value": "{color.blue.60}" }, - "name": "pf-t--global--color--nonstatus--blue--200", + "name": "pf-t--global--text--color--link--200", "attributes": { "category": "global", - "type": "color", - "item": "nonstatus", - "subitem": "blue", + "type": "text", + "item": "color", + "subitem": "link", "state": "200" }, "path": [ "global", + "text", "color", - "nonstatus", - "blue", + "link", "200" ], "references": [ { "type": "color", - "value": "#92c5f9", + "value": "#004d99", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#92c5f9" + "value": "#004d99" }, - "name": "pf-t--color--blue--30", + "name": "pf-t--color--blue--60", "attributes": { "category": "color", "type": "blue", - "item": "30" + "item": "60" }, "path": [ "color", "blue", - "30" + "60" ] } ] @@ -21795,78 +22423,78 @@ ] } }, - "pf-t--global--color--nonstatus--purple--default": { + "pf-t--global--text--color--link--visited": { "default": { - "description": "Use as the default background color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels, banners, etc.)", + "description": "Use as the color to indicate that a link has been visited.", "type": "color", - "value": "#d0c5f4", + "value": "#5e40be", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default background color for any element that does not convey status and that you always will want to be purple (i.e. color-coded labels, banners, etc.)", + "description": "Use as the color to indicate that a link has been visited.", "type": "color", - "value": "{global.color.nonstatus.purple.100}" + "value": "{global.text.color.link.300}" }, - "name": "pf-t--global--color--nonstatus--purple--default", + "name": "pf-t--global--text--color--link--visited", "attributes": { "category": "global", - "type": "color", - "item": "nonstatus", - "subitem": "purple", - "state": "default" + "type": "text", + "item": "color", + "subitem": "link", + "state": "visited" }, "path": [ "global", + "text", "color", - "nonstatus", - "purple", - "default" + "link", + "visited" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#5e40be", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.20}" + "value": "{color.purple.50}" }, - "name": "pf-t--global--color--nonstatus--purple--100", + "name": "pf-t--global--text--color--link--300", "attributes": { "category": "global", - "type": "color", - "item": "nonstatus", - "subitem": "purple", - "state": "100" + "type": "text", + "item": "color", + "subitem": "link", + "state": "300" }, "path": [ "global", + "text", "color", - "nonstatus", - "purple", - "100" + "link", + "300" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#5e40be", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#d0c5f4" + "value": "#5e40be" }, - "name": "pf-t--color--purple--20", + "name": "pf-t--color--purple--50", "attributes": { "category": "color", "type": "purple", - "item": "20" + "item": "50" }, "path": [ "color", "purple", - "20" + "50" ] } ] @@ -21874,78 +22502,74 @@ ] } }, - "pf-t--global--color--nonstatus--purple--hover": { + "pf-t--global--text--color--regular": { "default": { - "description": "Use as the hover state color for any element that uses the non status purple background color.", + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "#b6a6e9", + "value": "#151515", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the hover state color for any element that uses the non status purple background color.", + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "{global.color.nonstatus.purple.200}" + "value": "{global.text.color.100}" }, - "name": "pf-t--global--color--nonstatus--purple--hover", + "name": "pf-t--global--text--color--regular", "attributes": { "category": "global", - "type": "color", - "item": "nonstatus", - "subitem": "purple", - "state": "hover" + "type": "text", + "item": "color", + "subitem": "regular" }, "path": [ "global", + "text", "color", - "nonstatus", - "purple", - "hover" + "regular" ], "references": [ { "type": "color", - "value": "#b6a6e9", + "value": "#151515", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.30}" + "value": "{color.gray.95}" }, - "name": "pf-t--global--color--nonstatus--purple--200", + "name": "pf-t--global--text--color--100", "attributes": { "category": "global", - "type": "color", - "item": "nonstatus", - "subitem": "purple", - "state": "200" + "type": "text", + "item": "color", + "subitem": "100" }, "path": [ "global", + "text", "color", - "nonstatus", - "purple", - "200" + "100" ], "references": [ { "type": "color", - "value": "#b6a6e9", + "value": "#151515", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b6a6e9" + "value": "#151515" }, - "name": "pf-t--color--purple--30", + "name": "pf-t--color--gray--95", "attributes": { "category": "color", - "type": "purple", - "item": "30" + "type": "gray", + "item": "95" }, "path": [ "color", - "purple", - "30" + "gray", + "95" ] } ] @@ -21953,78 +22577,74 @@ ] } }, - "pf-t--global--color--nonstatus--purple--clicked": { + "pf-t--global--text--color--subtle": { "default": { - "description": "Use as the clicked state color for any element that uses the non status purple background color.", + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "value": "#b6a6e9", + "value": "#4d4d4d", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the clicked state color for any element that uses the non status purple background color.", + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "value": "{global.color.nonstatus.purple.200}" + "value": "{global.text.color.200}" }, - "name": "pf-t--global--color--nonstatus--purple--clicked", + "name": "pf-t--global--text--color--subtle", "attributes": { "category": "global", - "type": "color", - "item": "nonstatus", - "subitem": "purple", - "state": "clicked" + "type": "text", + "item": "color", + "subitem": "subtle" }, "path": [ "global", + "text", "color", - "nonstatus", - "purple", - "clicked" + "subtle" ], "references": [ { "type": "color", - "value": "#b6a6e9", + "value": "#4d4d4d", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.30}" + "value": "{color.gray.60}" }, - "name": "pf-t--global--color--nonstatus--purple--200", + "name": "pf-t--global--text--color--200", "attributes": { "category": "global", - "type": "color", - "item": "nonstatus", - "subitem": "purple", - "state": "200" + "type": "text", + "item": "color", + "subitem": "200" }, "path": [ "global", + "text", "color", - "nonstatus", - "purple", "200" ], "references": [ { "type": "color", - "value": "#b6a6e9", + "value": "#4d4d4d", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b6a6e9" + "value": "#4d4d4d" }, - "name": "pf-t--color--purple--30", + "name": "pf-t--color--gray--60", "attributes": { "category": "color", - "type": "purple", - "item": "30" + "type": "gray", + "item": "60" }, "path": [ "color", - "purple", - "30" + "gray", + "60" ] } ] @@ -22032,78 +22652,72 @@ ] } }, - "pf-t--global--color--nonstatus--gray--default": { + "pf-t--global--text--color--inverse": { "default": { - "description": "Use as the default background color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels, banners, etc.)", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#e0e0e0", + "value": "#ffffff", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default background color for any element that does not convey status and that you always will want to be gray (i.e. color-coded labels, banners, etc.)", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.color.nonstatus.gray.100}" + "value": "{global.text.color.300}" }, - "name": "pf-t--global--color--nonstatus--gray--default", + "name": "pf-t--global--text--color--inverse", "attributes": { "category": "global", - "type": "color", - "item": "nonstatus", - "subitem": "gray", - "state": "default" + "type": "text", + "item": "color", + "subitem": "inverse" }, "path": [ "global", + "text", "color", - "nonstatus", - "gray", - "default" + "inverse" ], "references": [ { "type": "color", - "value": "#e0e0e0", + "value": "#ffffff", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.20}" + "value": "{color.white}" }, - "name": "pf-t--global--color--nonstatus--gray--100", + "name": "pf-t--global--text--color--300", "attributes": { "category": "global", - "type": "color", - "item": "nonstatus", - "subitem": "gray", - "state": "100" + "type": "text", + "item": "color", + "subitem": "300" }, "path": [ "global", + "text", "color", - "nonstatus", - "gray", - "100" + "300" ], "references": [ { "type": "color", - "value": "#e0e0e0", + "value": "#ffffff", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#e0e0e0" + "value": "#ffffff" }, - "name": "pf-t--color--gray--20", + "name": "pf-t--color--white", "attributes": { "category": "color", - "type": "gray", - "item": "20" + "type": "white" }, "path": [ "color", - "gray", - "20" + "white" ] } ] @@ -22111,78 +22725,101 @@ ] } }, - "pf-t--global--color--nonstatus--gray--hover": { + "pf-t--global--text--color--placeholder": { "default": { - "description": "Use as the hover state color for any element that uses the non status gray background color.", + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", "type": "color", - "value": "#c7c7c7", + "value": "#4d4d4d", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the hover state color for any element that uses the non status gray background color.", + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", "type": "color", - "value": "{global.color.nonstatus.gray.200}" + "value": "{global.text.color.subtle}" }, - "name": "pf-t--global--color--nonstatus--gray--hover", + "name": "pf-t--global--text--color--placeholder", "attributes": { "category": "global", - "type": "color", - "item": "nonstatus", - "subitem": "gray", - "state": "hover" + "type": "text", + "item": "color", + "subitem": "placeholder" }, "path": [ "global", + "text", "color", - "nonstatus", - "gray", - "hover" + "placeholder" ], "references": [ { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "value": "#c7c7c7", - "filePath": "tokens/default/glass/base.json", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "value": "{color.gray.30}" + "value": "{global.text.color.200}" }, - "name": "pf-t--global--color--nonstatus--gray--200", + "name": "pf-t--global--text--color--subtle", "attributes": { "category": "global", - "type": "color", - "item": "nonstatus", - "subitem": "gray", - "state": "200" + "type": "text", + "item": "color", + "subitem": "subtle" }, "path": [ "global", + "text", "color", - "nonstatus", - "gray", - "200" + "subtle" ], "references": [ { "type": "color", - "value": "#c7c7c7", - "filePath": "tokens/default/glass/palette.color.json", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "#c7c7c7" + "value": "{color.gray.60}" }, - "name": "pf-t--color--gray--30", + "name": "pf-t--global--text--color--200", "attributes": { - "category": "color", - "type": "gray", - "item": "30" + "category": "global", + "type": "text", + "item": "color", + "subitem": "200" }, "path": [ + "global", + "text", "color", - "gray", - "30" + "200" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } ] } ] @@ -22190,78 +22827,74 @@ ] } }, - "pf-t--global--color--nonstatus--gray--clicked": { + "pf-t--global--text--color--disabled": { "default": { - "description": "Use as the clicked state color for any element that uses the non status gray background color.", + "description": "Use as the color of text on disabled elements, like disabled menu items.", "type": "color", - "value": "#c7c7c7", + "value": "#a3a3a3", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the clicked state color for any element that uses the non status gray background color.", + "description": "Use as the color of text on disabled elements, like disabled menu items.", "type": "color", - "value": "{global.color.nonstatus.gray.200}" + "value": "{global.color.disabled.200}" }, - "name": "pf-t--global--color--nonstatus--gray--clicked", + "name": "pf-t--global--text--color--disabled", "attributes": { "category": "global", - "type": "color", - "item": "nonstatus", - "subitem": "gray", - "state": "clicked" + "type": "text", + "item": "color", + "subitem": "disabled" }, "path": [ "global", + "text", "color", - "nonstatus", - "gray", - "clicked" + "disabled" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#a3a3a3", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.30}" + "value": "{color.gray.40}" }, - "name": "pf-t--global--color--nonstatus--gray--200", + "name": "pf-t--global--color--disabled--200", "attributes": { "category": "global", "type": "color", - "item": "nonstatus", - "subitem": "gray", - "state": "200" + "item": "disabled", + "subitem": "200" }, "path": [ "global", "color", - "nonstatus", - "gray", + "disabled", "200" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#a3a3a3", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#c7c7c7" + "value": "#a3a3a3" }, - "name": "pf-t--color--gray--30", + "name": "pf-t--color--gray--40", "attributes": { "category": "color", "type": "gray", - "item": "30" + "item": "40" }, "path": [ "color", "gray", - "30" + "40" ] } ] @@ -22269,77 +22902,73 @@ ] } }, - "pf-t--global--text--color--link--default": { + "pf-t--global--text--color--on-disabled": { "default": { - "description": "Use as the default text color for links.", + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", "type": "color", - "value": "#0066cc", + "value": "#707070", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the default text color for links.", + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", "type": "color", - "value": "{global.text.color.link.100}" + "value": "{global.color.disabled.300}" }, - "name": "pf-t--global--text--color--link--default", + "name": "pf-t--global--text--color--on-disabled", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "link", - "state": "default" + "subitem": "on-disabled" }, "path": [ "global", "text", "color", - "link", - "default" + "on-disabled" ], "references": [ { "type": "color", - "value": "#0066cc", + "value": "#707070", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.50}" + "value": "{color.gray.50}" }, - "name": "pf-t--global--text--color--link--100", + "name": "pf-t--global--color--disabled--300", "attributes": { "category": "global", - "type": "text", - "item": "color", - "subitem": "link", - "state": "100" + "type": "color", + "item": "disabled", + "subitem": "300" }, "path": [ "global", - "text", "color", - "link", - "100" + "disabled", + "300" ], "references": [ { "type": "color", - "value": "#0066cc", + "value": "#707070", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#0066cc" + "value": "#707070" }, - "name": "pf-t--color--blue--50", + "name": "pf-t--color--gray--50", "attributes": { "category": "color", - "type": "blue", + "type": "gray", "item": "50" }, "path": [ "color", - "blue", + "gray", "50" ] } @@ -22348,78 +22977,74 @@ ] } }, - "pf-t--global--text--color--link--hover": { + "pf-t--global--text--color--required": { "default": { - "description": "Use as the hover state text color for links.", + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", "type": "color", - "value": "#004d99", + "value": "#f4784a", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the hover state text color for links.", + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", "type": "color", - "value": "{global.text.color.link.200}" + "value": "{global.text.color.400}" }, - "name": "pf-t--global--text--color--link--hover", + "name": "pf-t--global--text--color--required", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "link", - "state": "hover" + "subitem": "required" }, "path": [ "global", "text", "color", - "link", - "hover" + "required" ], "references": [ { "type": "color", - "value": "#004d99", + "value": "#f4784a", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.60}" + "value": "{color.red-orange.40}" }, - "name": "pf-t--global--text--color--link--200", + "name": "pf-t--global--text--color--400", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "link", - "state": "200" + "subitem": "400" }, "path": [ "global", "text", "color", - "link", - "200" + "400" ], "references": [ { "type": "color", - "value": "#004d99", + "value": "#f4784a", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#004d99" + "value": "#f4784a" }, - "name": "pf-t--color--blue--60", + "name": "pf-t--color--red-orange--40", "attributes": { "category": "color", - "type": "blue", - "item": "60" + "type": "red-orange", + "item": "40" }, "path": [ "color", - "blue", - "60" + "red-orange", + "40" ] } ] @@ -22427,78 +23052,74 @@ ] } }, - "pf-t--global--text--color--link--visited": { + "pf-t--global--text--color--on-highlight": { "default": { - "description": "Use as the color to indicate that a link has been visited.", + "description": "Use as the color of text that is highlighted.", "type": "color", - "value": "#5e40be", + "value": "#151515", "filePath": "tokens/default/glass/semantic.glass.json", "isSource": true, "original": { - "description": "Use as the color to indicate that a link has been visited.", + "description": "Use as the color of text that is highlighted.", "type": "color", - "value": "{global.text.color.link.300}" + "value": "{global.text.color.100}" }, - "name": "pf-t--global--text--color--link--visited", + "name": "pf-t--global--text--color--on-highlight", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "link", - "state": "visited" + "subitem": "on-highlight" }, "path": [ "global", "text", "color", - "link", - "visited" + "on-highlight" ], "references": [ { "type": "color", - "value": "#5e40be", + "value": "#151515", "filePath": "tokens/default/glass/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.50}" + "value": "{color.gray.95}" }, - "name": "pf-t--global--text--color--link--300", + "name": "pf-t--global--text--color--100", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "link", - "state": "300" + "subitem": "100" }, "path": [ "global", "text", "color", - "link", - "300" + "100" ], "references": [ { "type": "color", - "value": "#5e40be", + "value": "#151515", "filePath": "tokens/default/glass/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#5e40be" + "value": "#151515" }, - "name": "pf-t--color--purple--50", + "name": "pf-t--color--gray--95", "attributes": { "category": "color", - "type": "purple", - "item": "50" + "type": "gray", + "item": "95" }, "path": [ "color", - "purple", - "50" + "gray", + "95" ] } ] @@ -22818,229 +23439,6 @@ ] } }, - "pf-t--global--text--color--regular": { - "default": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", - "type": "color", - "value": "#151515", - "filePath": "tokens/default/glass/semantic.glass.json", - "isSource": true, - "original": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", - "type": "color", - "value": "{global.text.color.100}" - }, - "name": "pf-t--global--text--color--regular", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "regular" - }, - "path": [ - "global", - "text", - "color", - "regular" - ], - "references": [ - { - "type": "color", - "value": "#151515", - "filePath": "tokens/default/glass/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.95}" - }, - "name": "pf-t--global--text--color--100", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "100" - }, - "path": [ - "global", - "text", - "color", - "100" - ], - "references": [ - { - "type": "color", - "value": "#151515", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#151515" - }, - "name": "pf-t--color--gray--95", - "attributes": { - "category": "color", - "type": "gray", - "item": "95" - }, - "path": [ - "color", - "gray", - "95" - ] - } - ] - } - ] - } - }, - "pf-t--global--text--color--subtle": { - "default": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/glass/semantic.glass.json", - "isSource": true, - "original": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", - "type": "color", - "value": "{global.text.color.200}" - }, - "name": "pf-t--global--text--color--subtle", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "subtle" - }, - "path": [ - "global", - "text", - "color", - "subtle" - ], - "references": [ - { - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/glass/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.60}" - }, - "name": "pf-t--global--text--color--200", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "200" - }, - "path": [ - "global", - "text", - "color", - "200" - ], - "references": [ - { - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#4d4d4d" - }, - "name": "pf-t--color--gray--60", - "attributes": { - "category": "color", - "type": "gray", - "item": "60" - }, - "path": [ - "color", - "gray", - "60" - ] - } - ] - } - ] - } - }, - "pf-t--global--text--color--inverse": { - "default": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", - "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/glass/semantic.glass.json", - "isSource": true, - "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", - "type": "color", - "value": "{global.text.color.300}" - }, - "name": "pf-t--global--text--color--inverse", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "inverse" - }, - "path": [ - "global", - "text", - "color", - "inverse" - ], - "references": [ - { - "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/glass/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.white}" - }, - "name": "pf-t--global--text--color--300", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "300" - }, - "path": [ - "global", - "text", - "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#ffffff" - }, - "name": "pf-t--color--white", - "attributes": { - "category": "color", - "type": "white" - }, - "path": [ - "color", - "white" - ] - } - ] - } - ] - } - }, "pf-t--global--text--color--on-brand--default": { "default": { "description": "Use as the default color for text placed on a brand-colored background.", @@ -23971,408 +24369,6 @@ ] } }, - "pf-t--global--text--color--placeholder": { - "default": { - "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/glass/semantic.glass.json", - "isSource": true, - "original": { - "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", - "type": "color", - "value": "{global.text.color.subtle}" - }, - "name": "pf-t--global--text--color--placeholder", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "placeholder" - }, - "path": [ - "global", - "text", - "color", - "placeholder" - ], - "references": [ - { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/glass/semantic.glass.json", - "isSource": true, - "original": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", - "type": "color", - "value": "{global.text.color.200}" - }, - "name": "pf-t--global--text--color--subtle", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "subtle" - }, - "path": [ - "global", - "text", - "color", - "subtle" - ], - "references": [ - { - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/glass/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.60}" - }, - "name": "pf-t--global--text--color--200", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "200" - }, - "path": [ - "global", - "text", - "color", - "200" - ], - "references": [ - { - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#4d4d4d" - }, - "name": "pf-t--color--gray--60", - "attributes": { - "category": "color", - "type": "gray", - "item": "60" - }, - "path": [ - "color", - "gray", - "60" - ] - } - ] - } - ] - } - ] - } - }, - "pf-t--global--text--color--disabled": { - "default": { - "description": "Use as the color of text on disabled elements, like disabled menu items.", - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/glass/semantic.glass.json", - "isSource": true, - "original": { - "description": "Use as the color of text on disabled elements, like disabled menu items.", - "type": "color", - "value": "{global.color.disabled.200}" - }, - "name": "pf-t--global--text--color--disabled", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "disabled" - }, - "path": [ - "global", - "text", - "color", - "disabled" - ], - "references": [ - { - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/glass/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.40}" - }, - "name": "pf-t--global--color--disabled--200", - "attributes": { - "category": "global", - "type": "color", - "item": "disabled", - "subitem": "200" - }, - "path": [ - "global", - "color", - "disabled", - "200" - ], - "references": [ - { - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#a3a3a3" - }, - "name": "pf-t--color--gray--40", - "attributes": { - "category": "color", - "type": "gray", - "item": "40" - }, - "path": [ - "color", - "gray", - "40" - ] - } - ] - } - ] - } - }, - "pf-t--global--text--color--on-disabled": { - "default": { - "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", - "type": "color", - "value": "#707070", - "filePath": "tokens/default/glass/semantic.glass.json", - "isSource": true, - "original": { - "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", - "type": "color", - "value": "{global.color.disabled.300}" - }, - "name": "pf-t--global--text--color--on-disabled", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "on-disabled" - }, - "path": [ - "global", - "text", - "color", - "on-disabled" - ], - "references": [ - { - "type": "color", - "value": "#707070", - "filePath": "tokens/default/glass/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.50}" - }, - "name": "pf-t--global--color--disabled--300", - "attributes": { - "category": "global", - "type": "color", - "item": "disabled", - "subitem": "300" - }, - "path": [ - "global", - "color", - "disabled", - "300" - ], - "references": [ - { - "type": "color", - "value": "#707070", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#707070" - }, - "name": "pf-t--color--gray--50", - "attributes": { - "category": "color", - "type": "gray", - "item": "50" - }, - "path": [ - "color", - "gray", - "50" - ] - } - ] - } - ] - } - }, - "pf-t--global--text--color--required": { - "default": { - "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", - "type": "color", - "value": "#f4784a", - "filePath": "tokens/default/glass/semantic.glass.json", - "isSource": true, - "original": { - "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", - "type": "color", - "value": "{global.text.color.400}" - }, - "name": "pf-t--global--text--color--required", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "required" - }, - "path": [ - "global", - "text", - "color", - "required" - ], - "references": [ - { - "type": "color", - "value": "#f4784a", - "filePath": "tokens/default/glass/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.red-orange.40}" - }, - "name": "pf-t--global--text--color--400", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "400" - }, - "path": [ - "global", - "text", - "color", - "400" - ], - "references": [ - { - "type": "color", - "value": "#f4784a", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#f4784a" - }, - "name": "pf-t--color--red-orange--40", - "attributes": { - "category": "color", - "type": "red-orange", - "item": "40" - }, - "path": [ - "color", - "red-orange", - "40" - ] - } - ] - } - ] - } - }, - "pf-t--global--text--color--on-highlight": { - "default": { - "description": "Use as the color of text that is highlighted.", - "type": "color", - "value": "#151515", - "filePath": "tokens/default/glass/semantic.glass.json", - "isSource": true, - "original": { - "description": "Use as the color of text that is highlighted.", - "type": "color", - "value": "{global.text.color.100}" - }, - "name": "pf-t--global--text--color--on-highlight", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "on-highlight" - }, - "path": [ - "global", - "text", - "color", - "on-highlight" - ], - "references": [ - { - "type": "color", - "value": "#151515", - "filePath": "tokens/default/glass/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.95}" - }, - "name": "pf-t--global--text--color--100", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "100" - }, - "path": [ - "global", - "text", - "color", - "100" - ], - "references": [ - { - "type": "color", - "value": "#151515", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#151515" - }, - "name": "pf-t--color--gray--95", - "attributes": { - "category": "color", - "type": "gray", - "item": "95" - }, - "path": [ - "color", - "gray", - "95" - ] - } - ] - } - ] - } - }, "pf-t--global--text--color--status--success--default": { "default": { "type": "color", @@ -37839,6 +37835,81 @@ ] } }, + "pf-t--global--font--family--100": { + "default": { + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + }, + "name": "pf-t--global--font--family--100", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "100" + }, + "path": [ + "global", + "font", + "family", + "100" + ] + } + }, + "pf-t--global--font--family--200": { + "default": { + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + }, + "name": "pf-t--global--font--family--200", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "200" + }, + "path": [ + "global", + "font", + "family", + "200" + ] + } + }, + "pf-t--global--font--family--300": { + "default": { + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" + }, + "name": "pf-t--global--font--family--300", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "300" + }, + "path": [ + "global", + "font", + "family", + "300" + ] + } + }, "pf-t--global--font--line-height--100": { "default": { "type": "number", @@ -38189,81 +38260,6 @@ ] } }, - "pf-t--global--font--family--100": { - "default": { - "type": "string", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "string", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" - }, - "name": "pf-t--global--font--family--100", - "attributes": { - "category": "global", - "type": "font", - "item": "family", - "subitem": "100" - }, - "path": [ - "global", - "font", - "family", - "100" - ] - } - }, - "pf-t--global--font--family--200": { - "default": { - "type": "string", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "string", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" - }, - "name": "pf-t--global--font--family--200", - "attributes": { - "category": "global", - "type": "font", - "item": "family", - "subitem": "200" - }, - "path": [ - "global", - "font", - "family", - "200" - ] - } - }, - "pf-t--global--font--family--300": { - "default": { - "type": "string", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "string", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" - }, - "name": "pf-t--global--font--family--300", - "attributes": { - "category": "global", - "type": "font", - "item": "family", - "subitem": "300" - }, - "path": [ - "global", - "font", - "family", - "300" - ] - } - }, "pf-t--global--z-index--100": { "default": { "type": "number", @@ -40415,77 +40411,76 @@ ] } }, - "pf-t--global--spacer--action--horizontal--plain--default": { + "pf-t--global--spacer--action--horizontal--compact": { "default": { - "description": "Use to set the horizontal padding inside a plain action, like plain buttons.", + "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", "type": "number", - "value": "0.5rem", + "value": "1rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use to set the horizontal padding inside a plain action, like plain buttons.", + "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", "type": "number", - "value": "{global.spacer.sm}" + "value": "{global.spacer.md}" }, - "name": "pf-t--global--spacer--action--horizontal--plain--default", + "name": "pf-t--global--spacer--action--horizontal--compact", "attributes": { "category": "global", "type": "spacer", "item": "action", "subitem": "horizontal", - "state": "plain" + "state": "compact" }, "path": [ "global", "spacer", "action", "horizontal", - "plain", - "default" + "compact" ], "references": [ { - "description": "Use for small spaces between elements.", + "description": "Use for medium-sized spaces between elements.", "type": "number", - "value": "0.5rem", + "value": "1rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for small spaces between elements.", + "description": "Use for medium-sized spaces between elements.", "type": "number", - "value": "{global.spacer.200}" + "value": "{global.spacer.300}" }, - "name": "pf-t--global--spacer--sm", + "name": "pf-t--global--spacer--md", "attributes": { "category": "global", "type": "spacer", - "item": "sm" + "item": "md" }, "path": [ "global", "spacer", - "sm" + "md" ], "references": [ { "type": "number", - "value": "0.5rem", + "value": "1rem", "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 8 + "value": 16 }, - "name": "pf-t--global--spacer--200", + "name": "pf-t--global--spacer--300", "attributes": { "category": "global", "type": "spacer", - "item": "200" + "item": "300" }, "path": [ "global", "spacer", - "200" + "300" ] } ] @@ -40493,77 +40488,76 @@ ] } }, - "pf-t--global--spacer--action--horizontal--plain--compact": { + "pf-t--global--spacer--action--horizontal--spacious": { "default": { - "description": "Use to set the horizontal padding inside a compact, plain action/button.", + "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", "type": "number", - "value": "0.25rem", + "value": "2rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use to set the horizontal padding inside a compact, plain action/button.", + "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", "type": "number", - "value": "{global.spacer.xs}" + "value": "{global.spacer.xl}" }, - "name": "pf-t--global--spacer--action--horizontal--plain--compact", + "name": "pf-t--global--spacer--action--horizontal--spacious", "attributes": { "category": "global", "type": "spacer", "item": "action", "subitem": "horizontal", - "state": "plain" + "state": "spacious" }, "path": [ "global", "spacer", "action", "horizontal", - "plain", - "compact" + "spacious" ], "references": [ { - "description": "Use for extra small spaces between elements.", + "description": "Use for extra large spaces between elements.", "type": "number", - "value": "0.25rem", + "value": "2rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for extra small spaces between elements.", + "description": "Use for extra large spaces between elements.", "type": "number", - "value": "{global.spacer.100}" + "value": "{global.spacer.500}" }, - "name": "pf-t--global--spacer--xs", + "name": "pf-t--global--spacer--xl", "attributes": { "category": "global", "type": "spacer", - "item": "xs" + "item": "xl" }, "path": [ "global", "spacer", - "xs" + "xl" ], "references": [ { "type": "number", - "value": "0.25rem", + "value": "2rem", "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 4 + "value": 32 }, - "name": "pf-t--global--spacer--100", + "name": "pf-t--global--spacer--500", "attributes": { "category": "global", "type": "spacer", - "item": "100" + "item": "500" }, "path": [ "global", "spacer", - "100" + "500" ] } ] @@ -40571,76 +40565,77 @@ ] } }, - "pf-t--global--spacer--action--horizontal--compact": { + "pf-t--global--spacer--action--horizontal--plain--default": { "default": { - "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", + "description": "Use to set the horizontal padding inside a plain action, like plain buttons.", "type": "number", - "value": "1rem", + "value": "0.5rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", + "description": "Use to set the horizontal padding inside a plain action, like plain buttons.", "type": "number", - "value": "{global.spacer.md}" + "value": "{global.spacer.sm}" }, - "name": "pf-t--global--spacer--action--horizontal--compact", + "name": "pf-t--global--spacer--action--horizontal--plain--default", "attributes": { "category": "global", "type": "spacer", "item": "action", "subitem": "horizontal", - "state": "compact" + "state": "plain" }, "path": [ "global", "spacer", "action", "horizontal", - "compact" + "plain", + "default" ], "references": [ { - "description": "Use for medium-sized spaces between elements.", + "description": "Use for small spaces between elements.", "type": "number", - "value": "1rem", + "value": "0.5rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for medium-sized spaces between elements.", + "description": "Use for small spaces between elements.", "type": "number", - "value": "{global.spacer.300}" + "value": "{global.spacer.200}" }, - "name": "pf-t--global--spacer--md", + "name": "pf-t--global--spacer--sm", "attributes": { "category": "global", "type": "spacer", - "item": "md" + "item": "sm" }, "path": [ "global", "spacer", - "md" + "sm" ], "references": [ { "type": "number", - "value": "1rem", + "value": "0.5rem", "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 16 + "value": 8 }, - "name": "pf-t--global--spacer--300", + "name": "pf-t--global--spacer--200", "attributes": { "category": "global", "type": "spacer", - "item": "300" + "item": "200" }, "path": [ "global", "spacer", - "300" + "200" ] } ] @@ -40648,76 +40643,77 @@ ] } }, - "pf-t--global--spacer--action--horizontal--spacious": { + "pf-t--global--spacer--action--horizontal--plain--compact": { "default": { - "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", + "description": "Use to set the horizontal padding inside a compact, plain action/button.", "type": "number", - "value": "2rem", + "value": "0.25rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", + "description": "Use to set the horizontal padding inside a compact, plain action/button.", "type": "number", - "value": "{global.spacer.xl}" + "value": "{global.spacer.xs}" }, - "name": "pf-t--global--spacer--action--horizontal--spacious", + "name": "pf-t--global--spacer--action--horizontal--plain--compact", "attributes": { "category": "global", "type": "spacer", "item": "action", "subitem": "horizontal", - "state": "spacious" + "state": "plain" }, "path": [ "global", "spacer", "action", "horizontal", - "spacious" + "plain", + "compact" ], "references": [ { - "description": "Use for extra large spaces between elements.", + "description": "Use for extra small spaces between elements.", "type": "number", - "value": "2rem", + "value": "0.25rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for extra large spaces between elements.", + "description": "Use for extra small spaces between elements.", "type": "number", - "value": "{global.spacer.500}" + "value": "{global.spacer.100}" }, - "name": "pf-t--global--spacer--xl", + "name": "pf-t--global--spacer--xs", "attributes": { "category": "global", "type": "spacer", - "item": "xl" + "item": "xs" }, "path": [ "global", "spacer", - "xl" + "xs" ], "references": [ { "type": "number", - "value": "2rem", + "value": "0.25rem", "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 32 + "value": 4 }, - "name": "pf-t--global--spacer--500", + "name": "pf-t--global--spacer--100", "attributes": { "category": "global", "type": "spacer", - "item": "500" + "item": "100" }, "path": [ "global", "spacer", - "500" + "100" ] } ] @@ -42034,110 +42030,78 @@ ] } }, - "pf-t--global--icon--size--font--heading--h1": { + "pf-t--global--icon--size--font--xs": { "default": { - "description": "Use for icons that are placed inline with first level headings", + "description": "Use for icons that are placed inline with font–size–xs text", "type": "number", - "value": "1.5rem", + "value": "0.75rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with first level headings", + "description": "Use for icons that are placed inline with font–size–xs text", "type": "number", - "value": "{global.font.size.heading.h1}" + "value": "{global.font.size.xs}" }, - "name": "pf-t--global--icon--size--font--heading--h1", + "name": "pf-t--global--icon--size--font--xs", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "xs" }, "path": [ "global", "icon", "size", "font", - "heading", - "h1" + "xs" ], "references": [ { - "description": "Use as the font size for first level headings.", "type": "number", - "value": "1.5rem", + "value": "0.75rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for first level headings.", "type": "number", - "value": "{global.font.size.2xl}" + "value": "{global.font.size.100}" }, - "name": "pf-t--global--font--size--heading--h1", + "name": "pf-t--global--font--size--xs", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h1" + "subitem": "xs" }, "path": [ "global", "font", "size", - "heading", - "h1" + "xs" ], "references": [ { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.5rem", - "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "value": "0.75rem", + "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.600}" + "value": 12 }, - "name": "pf-t--global--font--size--2xl", + "name": "pf-t--global--font--size--100", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "2xl" + "subitem": "100" }, "path": [ "global", "font", "size", - "2xl" - ], - "references": [ - { - "type": "number", - "value": "1.5rem", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 24 - }, - "name": "pf-t--global--font--size--600", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "600" - }, - "path": [ - "global", - "font", - "size", - "600" - ] - } + "100" ] } ] @@ -42145,110 +42109,80 @@ ] } }, - "pf-t--global--icon--size--font--heading--h2": { + "pf-t--global--icon--size--font--sm": { "default": { - "description": "Use for icons that are placed inline with second level headings", + "description": "Use for icons that are placed inline with font–size–sm text", "type": "number", - "value": "1.25rem", + "value": "0.875rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with second level headings", + "description": "Use for icons that are placed inline with font–size–sm text", "type": "number", - "value": "{global.font.size.heading.h2}" + "value": "{global.font.size.sm}" }, - "name": "pf-t--global--icon--size--font--heading--h2", + "name": "pf-t--global--icon--size--font--sm", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "sm" }, "path": [ "global", "icon", "size", "font", - "heading", - "h2" + "sm" ], "references": [ { - "description": "Use as the font size for second level headings.", + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "1.25rem", + "value": "0.875rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for second level headings.", + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.xl}" + "value": "{global.font.size.200}" }, - "name": "pf-t--global--font--size--heading--h2", + "name": "pf-t--global--font--size--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h2" + "subitem": "sm" }, "path": [ "global", "font", "size", - "heading", - "h2" + "sm" ], "references": [ { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.25rem", - "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "value": "0.875rem", + "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.500}" + "value": 14 }, - "name": "pf-t--global--font--size--xl", + "name": "pf-t--global--font--size--200", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xl" + "subitem": "200" }, "path": [ "global", "font", "size", - "xl" - ], - "references": [ - { - "type": "number", - "value": "1.25rem", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 20 - }, - "name": "pf-t--global--font--size--500", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "500" - }, - "path": [ - "global", - "font", - "size", - "500" - ] - } + "200" ] } ] @@ -42256,110 +42190,161 @@ ] } }, - "pf-t--global--icon--size--font--heading--h3": { + "pf-t--global--icon--size--font--md": { "default": { - "description": "Use for icons that are placed inline with third level headings", + "description": "Use for icons that are placed inline with font–size–md text", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use for icons that are placed inline with font–size–md text", + "type": "number", + "value": "{global.font.size.md}" + }, + "name": "pf-t--global--icon--size--font--md", + "attributes": { + "category": "global", + "type": "icon", + "item": "size", + "subitem": "font", + "state": "md" + }, + "path": [ + "global", + "icon", + "size", + "font", + "md" + ], + "references": [ + { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "isSource": true, + "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" + }, + "name": "pf-t--global--font--size--md", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "md" + }, + "path": [ + "global", + "font", + "size", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--size--font--lg": { + "default": { + "description": "Use for icons that are placed inline with font–size–lg text", "type": "number", "value": "1.125rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with third level headings", + "description": "Use for icons that are placed inline with font–size–lg text", "type": "number", - "value": "{global.font.size.heading.h3}" + "value": "{global.font.size.lg}" }, - "name": "pf-t--global--icon--size--font--heading--h3", + "name": "pf-t--global--icon--size--font--lg", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "lg" }, "path": [ "global", "icon", "size", "font", - "heading", - "h3" + "lg" ], "references": [ { - "description": "Use as the font size for third level headings.", + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", "value": "1.125rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for third level headings.", + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.lg}" + "value": "{global.font.size.400}" }, - "name": "pf-t--global--font--size--heading--h3", + "name": "pf-t--global--font--size--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h3" + "subitem": "lg" }, "path": [ "global", "font", "size", - "heading", - "h3" + "lg" ], "references": [ { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", "value": "1.125rem", - "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.400}" + "value": 18 }, - "name": "pf-t--global--font--size--lg", + "name": "pf-t--global--font--size--400", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "lg" + "subitem": "400" }, "path": [ "global", "font", "size", - "lg" - ], - "references": [ - { - "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 18 - }, - "name": "pf-t--global--font--size--400", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "400" - }, - "path": [ - "global", - "font", - "size", - "400" - ] - } + "400" ] } ] @@ -42367,110 +42352,80 @@ ] } }, - "pf-t--global--icon--size--font--heading--h4": { + "pf-t--global--icon--size--font--xl": { "default": { - "description": "Use for icons that are placed inline with fourth level headings", + "description": "Use for icons that are placed inline with font–size–xl text", "type": "number", - "value": "1rem", + "value": "1.25rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with fourth level headings", + "description": "Use for icons that are placed inline with font–size–xl text", "type": "number", - "value": "{global.font.size.heading.h4}" + "value": "{global.font.size.xl}" }, - "name": "pf-t--global--icon--size--font--heading--h4", + "name": "pf-t--global--icon--size--font--xl", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "xl" }, "path": [ "global", "icon", "size", "font", - "heading", - "h4" + "xl" ], "references": [ { - "description": "Use as the font size for fourth-level headings.", + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.25rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for fourth-level headings.", + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.500}" }, - "name": "pf-t--global--font--size--heading--h4", + "name": "pf-t--global--font--size--xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h4" + "subitem": "xl" }, "path": [ "global", "font", - "size", - "heading", - "h4" + "size", + "xl" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "value": "1.25rem", + "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 20 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--500", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "500" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "500" ] } ] @@ -42478,110 +42433,80 @@ ] } }, - "pf-t--global--icon--size--font--heading--h5": { + "pf-t--global--icon--size--font--2xl": { "default": { - "description": "Use for icons that are placed inline with fifth level headings", + "description": "Use for icons that are placed inline with font–size–2xl text", "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with fifth level headings", + "description": "Use for icons that are placed inline with font–size–2xl text", "type": "number", - "value": "{global.font.size.heading.h5}" + "value": "{global.font.size.2xl}" }, - "name": "pf-t--global--icon--size--font--heading--h5", + "name": "pf-t--global--icon--size--font--2xl", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "2xl" }, "path": [ "global", "icon", "size", "font", - "heading", - "h5" + "2xl" ], "references": [ { - "description": "Use as the font size for fifth level headings.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for fifth level headings.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.600}" }, - "name": "pf-t--global--font--size--heading--h5", + "name": "pf-t--global--font--size--2xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h5" + "subitem": "2xl" }, "path": [ "global", "font", "size", - "heading", - "h5" + "2xl" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "value": "1.5rem", + "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 24 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--600", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "600" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "600" ] } ] @@ -42589,110 +42514,80 @@ ] } }, - "pf-t--global--icon--size--font--heading--h6": { + "pf-t--global--icon--size--font--3xl": { "default": { - "description": "Use for icons that are placed inline with sixth level headings", + "description": "Use for icons that are placed inline with font–size–3xl text", "type": "number", - "value": "1rem", + "value": "1.75rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with sixth level headings", + "description": "Use for icons that are placed inline with font–size–3xl text", "type": "number", - "value": "{global.font.size.heading.h6}" + "value": "{global.font.size.3xl}" }, - "name": "pf-t--global--icon--size--font--heading--h6", + "name": "pf-t--global--icon--size--font--3xl", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "3xl" }, "path": [ "global", "icon", "size", "font", - "heading", - "h6" + "3xl" ], "references": [ { - "description": "Use as the font size for sixth level headings.", + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.75rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for sixth level headings.", + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.700}" }, - "name": "pf-t--global--font--size--heading--h6", + "name": "pf-t--global--font--size--3xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h6" + "subitem": "3xl" }, "path": [ "global", "font", "size", - "heading", - "h6" + "3xl" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "value": "1.75rem", + "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 28 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--700", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "700" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "700" ] } ] @@ -42700,108 +42595,80 @@ ] } }, - "pf-t--global--icon--size--font--body--sm": { + "pf-t--global--icon--size--font--4xl": { "default": { - "description": "Use for icons that are placed inline with small body text", + "description": "Use for icons that are placed inline with font–size–3xl text", "type": "number", - "value": "0.75rem", + "value": "2.25rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with small body text", + "description": "Use for icons that are placed inline with font–size–3xl text", "type": "number", - "value": "{global.font.size.body.sm}" + "value": "{global.font.size.4xl}" }, - "name": "pf-t--global--icon--size--font--body--sm", + "name": "pf-t--global--icon--size--font--4xl", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "body" + "state": "4xl" }, "path": [ "global", "icon", "size", "font", - "body", - "sm" + "4xl" ], "references": [ { - "description": "Use for a smaller font size in body sections.", + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "0.75rem", + "value": "2.25rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for a smaller font size in body sections.", + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.xs}" + "value": "{global.font.size.800}" }, - "name": "pf-t--global--font--size--body--sm", + "name": "pf-t--global--font--size--4xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "body", - "state": "sm" + "subitem": "4xl" }, "path": [ "global", "font", "size", - "body", - "sm" + "4xl" ], "references": [ { "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "value": "2.25rem", + "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": "{global.font.size.100}" + "value": 36 }, - "name": "pf-t--global--font--size--xs", + "name": "pf-t--global--font--size--800", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xs" + "subitem": "800" }, "path": [ "global", "font", "size", - "xs" - ], - "references": [ - { - "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 12 - }, - "name": "pf-t--global--font--size--100", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "100" - }, - "path": [ - "global", - "font", - "size", - "100" - ] - } + "800" ] } ] @@ -42809,108 +42676,108 @@ ] } }, - "pf-t--global--icon--size--font--body--default": { + "pf-t--global--icon--size--font--heading--h1": { "default": { - "description": "Use for icons that are placed inline with default body text", + "description": "Use for icons that are placed inline with first level headings", "type": "number", - "value": "0.875rem", + "value": "1.5rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with default body text", + "description": "Use for icons that are placed inline with first level headings", "type": "number", - "value": "{global.font.size.body.default}" + "value": "{global.font.size.heading.h1}" }, - "name": "pf-t--global--icon--size--font--body--default", + "name": "pf-t--global--icon--size--font--heading--h1", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "body" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "body", - "default" + "heading", + "h1" ], "references": [ { - "description": "Use as the default font size in body sections.", + "description": "Use as the font size for first level headings.", "type": "number", - "value": "0.875rem", + "value": "1.5rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the default font size in body sections.", + "description": "Use as the font size for first level headings.", "type": "number", - "value": "{global.font.size.sm}" + "value": "{global.font.size.2xl}" }, - "name": "pf-t--global--font--size--body--default", + "name": "pf-t--global--font--size--heading--h1", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "body", - "state": "default" + "subitem": "heading", + "state": "h1" }, "path": [ "global", "font", "size", - "body", - "default" + "heading", + "h1" ], "references": [ { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "0.875rem", + "value": "1.5rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.200}" + "value": "{global.font.size.600}" }, - "name": "pf-t--global--font--size--sm", + "name": "pf-t--global--font--size--2xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "sm" + "subitem": "2xl" }, "path": [ "global", "font", "size", - "sm" + "2xl" ], "references": [ { "type": "number", - "value": "0.875rem", + "value": "1.5rem", "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 14 + "value": 24 }, - "name": "pf-t--global--font--size--200", + "name": "pf-t--global--font--size--600", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "200" + "subitem": "600" }, "path": [ "global", "font", "size", - "200" + "600" ] } ] @@ -42920,108 +42787,108 @@ ] } }, - "pf-t--global--icon--size--font--body--lg": { + "pf-t--global--icon--size--font--heading--h2": { "default": { - "description": "Use for icons that are placed inline with large body text", + "description": "Use for icons that are placed inline with second level headings", "type": "number", - "value": "1rem", + "value": "1.25rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with large body text", + "description": "Use for icons that are placed inline with second level headings", "type": "number", - "value": "{global.font.size.body.lg}" + "value": "{global.font.size.heading.h2}" }, - "name": "pf-t--global--icon--size--font--body--lg", + "name": "pf-t--global--icon--size--font--heading--h2", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "body" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "body", - "lg" + "heading", + "h2" ], "references": [ { - "description": "Use for a larger font size in body sections.", + "description": "Use as the font size for second level headings.", "type": "number", - "value": "1rem", + "value": "1.25rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for a larger font size in body sections.", + "description": "Use as the font size for second level headings.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.xl}" }, - "name": "pf-t--global--font--size--body--lg", + "name": "pf-t--global--font--size--heading--h2", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "body", - "state": "lg" + "subitem": "heading", + "state": "h2" }, "path": [ "global", "font", "size", - "body", - "lg" + "heading", + "h2" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.25rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": "{global.font.size.500}" }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "xl" }, "path": [ "global", "font", "size", - "md" + "xl" ], "references": [ { "type": "number", - "value": "1rem", + "value": "1.25rem", "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 16 + "value": 20 }, - "name": "pf-t--global--font--size--300", + "name": "pf-t--global--font--size--500", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "300" + "subitem": "500" }, "path": [ "global", "font", "size", - "300" + "500" ] } ] @@ -43031,78 +42898,110 @@ ] } }, - "pf-t--global--icon--size--font--xs": { + "pf-t--global--icon--size--font--heading--h3": { "default": { - "description": "Use for icons that are placed inline with font–size–xs text", + "description": "Use for icons that are placed inline with third level headings", "type": "number", - "value": "0.75rem", + "value": "1.125rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–xs text", + "description": "Use for icons that are placed inline with third level headings", "type": "number", - "value": "{global.font.size.xs}" + "value": "{global.font.size.heading.h3}" }, - "name": "pf-t--global--icon--size--font--xs", + "name": "pf-t--global--icon--size--font--heading--h3", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "xs" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "xs" + "heading", + "h3" ], "references": [ { + "description": "Use as the font size for third level headings.", "type": "number", - "value": "0.75rem", + "value": "1.125rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { + "description": "Use as the font size for third level headings.", "type": "number", - "value": "{global.font.size.100}" + "value": "{global.font.size.lg}" }, - "name": "pf-t--global--font--size--xs", + "name": "pf-t--global--font--size--heading--h3", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xs" + "subitem": "heading", + "state": "h3" }, "path": [ "global", "font", "size", - "xs" + "heading", + "h3" ], "references": [ { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/glass/base.dimension.json", + "value": "1.125rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": 12 + "value": "{global.font.size.400}" }, - "name": "pf-t--global--font--size--100", + "name": "pf-t--global--font--size--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "100" + "subitem": "lg" }, "path": [ "global", "font", "size", - "100" + "lg" + ], + "references": [ + { + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 18 + }, + "name": "pf-t--global--font--size--400", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "400" + }, + "path": [ + "global", + "font", + "size", + "400" + ] + } ] } ] @@ -43110,80 +43009,110 @@ ] } }, - "pf-t--global--icon--size--font--sm": { + "pf-t--global--icon--size--font--heading--h4": { "default": { - "description": "Use for icons that are placed inline with font–size–sm text", + "description": "Use for icons that are placed inline with fourth level headings", "type": "number", - "value": "0.875rem", + "value": "1rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–sm text", + "description": "Use for icons that are placed inline with fourth level headings", "type": "number", - "value": "{global.font.size.sm}" + "value": "{global.font.size.heading.h4}" }, - "name": "pf-t--global--icon--size--font--sm", + "name": "pf-t--global--icon--size--font--heading--h4", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "sm" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "sm" + "heading", + "h4" ], "references": [ { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "description": "Use as the font size for fourth-level headings.", "type": "number", - "value": "0.875rem", + "value": "1rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "description": "Use as the font size for fourth-level headings.", "type": "number", - "value": "{global.font.size.200}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--sm", + "name": "pf-t--global--font--size--heading--h4", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "sm" + "subitem": "heading", + "state": "h4" }, "path": [ "global", "font", "size", - "sm" + "heading", + "h4" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "0.875rem", - "filePath": "tokens/default/glass/base.dimension.json", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 14 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--200", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "200" + "subitem": "md" }, "path": [ "global", "font", "size", - "200" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] @@ -43191,80 +43120,110 @@ ] } }, - "pf-t--global--icon--size--font--md": { + "pf-t--global--icon--size--font--heading--h5": { "default": { - "description": "Use for icons that are placed inline with font–size–md text", + "description": "Use for icons that are placed inline with fifth level headings", "type": "number", "value": "1rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–md text", + "description": "Use for icons that are placed inline with fifth level headings", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.heading.h5}" }, - "name": "pf-t--global--icon--size--font--md", + "name": "pf-t--global--icon--size--font--heading--h5", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "md" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "md" + "heading", + "h5" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use as the font size for fifth level headings.", "type": "number", "value": "1rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use as the font size for fifth level headings.", "type": "number", - "value": "{global.font.size.300}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--heading--h5", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "heading", + "state": "h5" }, "path": [ "global", "font", "size", - "md" + "heading", + "h5" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", "value": "1rem", - "filePath": "tokens/default/glass/base.dimension.json", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 16 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--300", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "300" + "subitem": "md" }, "path": [ "global", "font", "size", - "300" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] @@ -43272,80 +43231,110 @@ ] } }, - "pf-t--global--icon--size--font--lg": { + "pf-t--global--icon--size--font--heading--h6": { "default": { - "description": "Use for icons that are placed inline with font–size–lg text", + "description": "Use for icons that are placed inline with sixth level headings", "type": "number", - "value": "1.125rem", + "value": "1rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–lg text", + "description": "Use for icons that are placed inline with sixth level headings", "type": "number", - "value": "{global.font.size.lg}" + "value": "{global.font.size.heading.h6}" }, - "name": "pf-t--global--icon--size--font--lg", + "name": "pf-t--global--icon--size--font--heading--h6", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "lg" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "lg" + "heading", + "h6" ], "references": [ { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "description": "Use as the font size for sixth level headings.", "type": "number", - "value": "1.125rem", + "value": "1rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "description": "Use as the font size for sixth level headings.", "type": "number", - "value": "{global.font.size.400}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--lg", + "name": "pf-t--global--font--size--heading--h6", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "lg" + "subitem": "heading", + "state": "h6" }, "path": [ "global", "font", "size", - "lg" + "heading", + "h6" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/glass/base.dimension.json", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 18 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--400", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "400" + "subitem": "md" }, "path": [ "global", "font", "size", - "400" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] @@ -43353,80 +43342,108 @@ ] } }, - "pf-t--global--icon--size--font--xl": { + "pf-t--global--icon--size--font--body--sm": { "default": { - "description": "Use for icons that are placed inline with font–size–xl text", + "description": "Use for icons that are placed inline with small body text", "type": "number", - "value": "1.25rem", + "value": "0.75rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–xl text", + "description": "Use for icons that are placed inline with small body text", "type": "number", - "value": "{global.font.size.xl}" + "value": "{global.font.size.body.sm}" }, - "name": "pf-t--global--icon--size--font--xl", + "name": "pf-t--global--icon--size--font--body--sm", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "xl" + "state": "body" }, "path": [ "global", "icon", "size", "font", - "xl" + "body", + "sm" ], "references": [ { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "description": "Use for a smaller font size in body sections.", "type": "number", - "value": "1.25rem", + "value": "0.75rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "description": "Use for a smaller font size in body sections.", "type": "number", - "value": "{global.font.size.500}" + "value": "{global.font.size.xs}" }, - "name": "pf-t--global--font--size--xl", + "name": "pf-t--global--font--size--body--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xl" + "subitem": "body", + "state": "sm" }, "path": [ "global", "font", "size", - "xl" + "body", + "sm" ], "references": [ { "type": "number", - "value": "1.25rem", - "filePath": "tokens/default/glass/base.dimension.json", + "value": "0.75rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { "type": "number", - "value": 20 + "value": "{global.font.size.100}" }, - "name": "pf-t--global--font--size--500", + "name": "pf-t--global--font--size--xs", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "500" + "subitem": "xs" }, "path": [ "global", "font", "size", - "500" + "xs" + ], + "references": [ + { + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 12 + }, + "name": "pf-t--global--font--size--100", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "100" + }, + "path": [ + "global", + "font", + "size", + "100" + ] + } ] } ] @@ -43434,80 +43451,110 @@ ] } }, - "pf-t--global--icon--size--font--2xl": { + "pf-t--global--icon--size--font--body--default": { "default": { - "description": "Use for icons that are placed inline with font–size–2xl text", + "description": "Use for icons that are placed inline with default body text", "type": "number", - "value": "1.5rem", + "value": "0.875rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–2xl text", + "description": "Use for icons that are placed inline with default body text", "type": "number", - "value": "{global.font.size.2xl}" + "value": "{global.font.size.body.default}" }, - "name": "pf-t--global--icon--size--font--2xl", + "name": "pf-t--global--icon--size--font--body--default", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "2xl" + "state": "body" }, "path": [ "global", "icon", "size", "font", - "2xl" + "body", + "default" ], "references": [ { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "description": "Use as the default font size in body sections.", "type": "number", - "value": "1.5rem", + "value": "0.875rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "description": "Use as the default font size in body sections.", "type": "number", - "value": "{global.font.size.600}" + "value": "{global.font.size.sm}" }, - "name": "pf-t--global--font--size--2xl", + "name": "pf-t--global--font--size--body--default", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "2xl" + "subitem": "body", + "state": "default" }, "path": [ "global", "font", "size", - "2xl" + "body", + "default" ], "references": [ { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "1.5rem", - "filePath": "tokens/default/glass/base.dimension.json", + "value": "0.875rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": 24 + "value": "{global.font.size.200}" }, - "name": "pf-t--global--font--size--600", + "name": "pf-t--global--font--size--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "600" + "subitem": "sm" }, "path": [ "global", "font", "size", - "600" + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 14 + }, + "name": "pf-t--global--font--size--200", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "200" + }, + "path": [ + "global", + "font", + "size", + "200" + ] + } ] } ] @@ -43515,80 +43562,110 @@ ] } }, - "pf-t--global--icon--size--font--3xl": { + "pf-t--global--icon--size--font--body--lg": { "default": { - "description": "Use for icons that are placed inline with font–size–3xl text", + "description": "Use for icons that are placed inline with large body text", "type": "number", - "value": "1.75rem", + "value": "1rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–3xl text", + "description": "Use for icons that are placed inline with large body text", "type": "number", - "value": "{global.font.size.3xl}" + "value": "{global.font.size.body.lg}" }, - "name": "pf-t--global--icon--size--font--3xl", + "name": "pf-t--global--icon--size--font--body--lg", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "3xl" + "state": "body" }, "path": [ "global", "icon", "size", "font", - "3xl" + "body", + "lg" ], "references": [ { - "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "description": "Use for a larger font size in body sections.", "type": "number", - "value": "1.75rem", + "value": "1rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "description": "Use for a larger font size in body sections.", "type": "number", - "value": "{global.font.size.700}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--3xl", + "name": "pf-t--global--font--size--body--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "3xl" + "subitem": "body", + "state": "lg" }, "path": [ "global", "font", "size", - "3xl" + "body", + "lg" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1.75rem", - "filePath": "tokens/default/glass/base.dimension.json", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 28 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--700", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "700" + "subitem": "md" }, "path": [ "global", "font", "size", - "700" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] @@ -43596,221 +43673,188 @@ ] } }, - "pf-t--global--icon--size--font--4xl": { + "pf-t--global--border--width--regular": { "default": { - "description": "Use for icons that are placed inline with font–size–3xl text", + "description": "Use as the default border width for elements.", "type": "number", - "value": "2.25rem", + "value": "1px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–3xl text", + "description": "Use as the default border width for elements.", "type": "number", - "value": "{global.font.size.4xl}" + "value": "{global.border.width.100}" }, - "name": "pf-t--global--icon--size--font--4xl", + "name": "pf-t--global--border--width--regular", "attributes": { "category": "global", - "type": "icon", - "item": "size", - "subitem": "font", - "state": "4xl" + "type": "border", + "item": "width", + "subitem": "regular" }, "path": [ "global", - "icon", - "size", - "font", - "4xl" + "border", + "width", + "regular" ], "references": [ { - "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "2.25rem", - "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "value": "1px", + "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.800}" + "value": 1 }, - "name": "pf-t--global--font--size--4xl", + "name": "pf-t--global--border--width--100", "attributes": { "category": "global", - "type": "font", - "item": "size", - "subitem": "4xl" + "type": "border", + "item": "width", + "subitem": "100" }, "path": [ "global", - "font", - "size", - "4xl" - ], - "references": [ - { - "type": "number", - "value": "2.25rem", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 36 - }, - "name": "pf-t--global--font--size--800", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "800" - }, - "path": [ - "global", - "font", - "size", - "800" - ] - } + "border", + "width", + "100" ] } ] } }, - "pf-t--global--border--width--divider--default": { + "pf-t--global--border--width--strong": { "default": { - "description": "Use as the default border width for dividers.", + "description": "Use as a stronger/wider border width for elements.", "type": "number", - "value": "1px", + "value": "2px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the default border width for dividers.", + "description": "Use as a stronger/wider border width for elements.", "type": "number", - "value": "{global.border.width.100}" + "value": "{global.border.width.200}" }, - "name": "pf-t--global--border--width--divider--default", + "name": "pf-t--global--border--width--strong", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "divider", - "state": "default" + "subitem": "strong" }, "path": [ "global", "border", "width", - "divider", - "default" + "strong" ], "references": [ { "type": "number", - "value": "1px", + "value": "2px", "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 1 + "value": 2 }, - "name": "pf-t--global--border--width--100", + "name": "pf-t--global--border--width--200", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "100" + "subitem": "200" }, "path": [ "global", "border", "width", - "100" + "200" ] } ] } }, - "pf-t--global--border--width--divider--hover": { + "pf-t--global--border--width--extra-strong": { "default": { - "description": "Use as the border width hover state for dividers.", + "description": "Use as the strongest/widest border width for elements.", "type": "number", - "value": "1px", + "value": "3px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the border width hover state for dividers.", + "description": "Use as the strongest/widest border width for elements.", "type": "number", - "value": "{global.border.width.100}" + "value": "{global.border.width.300}" }, - "name": "pf-t--global--border--width--divider--hover", + "name": "pf-t--global--border--width--extra-strong", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "divider", - "state": "hover" + "subitem": "extra-strong" }, "path": [ "global", "border", "width", - "divider", - "hover" + "extra-strong" ], "references": [ { "type": "number", - "value": "1px", + "value": "3px", "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 1 + "value": 3 }, - "name": "pf-t--global--border--width--100", + "name": "pf-t--global--border--width--300", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "100" + "subitem": "300" }, "path": [ "global", "border", "width", - "100" + "300" ] } ] } }, - "pf-t--global--border--width--divider--clicked": { + "pf-t--global--border--width--divider--default": { "default": { - "description": "Use as the border width clicked state for dividers.", + "description": "Use as the default border width for dividers.", "type": "number", "value": "1px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the border width clicked state for dividers.", + "description": "Use as the default border width for dividers.", "type": "number", "value": "{global.border.width.100}" }, - "name": "pf-t--global--border--width--divider--clicked", + "name": "pf-t--global--border--width--divider--default", "attributes": { "category": "global", "type": "border", "item": "width", "subitem": "divider", - "state": "clicked" + "state": "default" }, "path": [ "global", "border", "width", "divider", - "clicked" + "default" ], "references": [ { @@ -43839,30 +43883,32 @@ ] } }, - "pf-t--global--border--width--regular": { + "pf-t--global--border--width--divider--hover": { "default": { - "description": "Use as the default border width for elements.", + "description": "Use as the border width hover state for dividers.", "type": "number", "value": "1px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the default border width for elements.", + "description": "Use as the border width hover state for dividers.", "type": "number", "value": "{global.border.width.100}" }, - "name": "pf-t--global--border--width--regular", + "name": "pf-t--global--border--width--divider--hover", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "regular" + "subitem": "divider", + "state": "hover" }, "path": [ "global", "border", "width", - "regular" + "divider", + "hover" ], "references": [ { @@ -43891,105 +43937,55 @@ ] } }, - "pf-t--global--border--width--strong": { - "default": { - "description": "Use as a stronger/wider border width for elements.", - "type": "number", - "value": "2px", - "filePath": "tokens/default/glass/semantic.dimension.glass.json", - "isSource": true, - "original": { - "description": "Use as a stronger/wider border width for elements.", - "type": "number", - "value": "{global.border.width.200}" - }, - "name": "pf-t--global--border--width--strong", - "attributes": { - "category": "global", - "type": "border", - "item": "width", - "subitem": "strong" - }, - "path": [ - "global", - "border", - "width", - "strong" - ], - "references": [ - { - "type": "number", - "value": "2px", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 2 - }, - "name": "pf-t--global--border--width--200", - "attributes": { - "category": "global", - "type": "border", - "item": "width", - "subitem": "200" - }, - "path": [ - "global", - "border", - "width", - "200" - ] - } - ] - } - }, - "pf-t--global--border--width--extra-strong": { + "pf-t--global--border--width--divider--clicked": { "default": { - "description": "Use as the strongest/widest border width for elements.", + "description": "Use as the border width clicked state for dividers.", "type": "number", - "value": "3px", + "value": "1px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the strongest/widest border width for elements.", + "description": "Use as the border width clicked state for dividers.", "type": "number", - "value": "{global.border.width.300}" + "value": "{global.border.width.100}" }, - "name": "pf-t--global--border--width--extra-strong", + "name": "pf-t--global--border--width--divider--clicked", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "extra-strong" + "subitem": "divider", + "state": "clicked" }, "path": [ "global", "border", "width", - "extra-strong" + "divider", + "clicked" ], "references": [ { "type": "number", - "value": "3px", + "value": "1px", "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 3 + "value": 1 }, - "name": "pf-t--global--border--width--300", + "name": "pf-t--global--border--width--100", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "300" + "subitem": "100" }, "path": [ "global", "border", "width", - "300" + "100" ] } ] @@ -44533,79 +44529,127 @@ ] } }, - "pf-t--global--border--width--action--plain--default": { + "pf-t--global--border--width--action--hover": { "default": { - "description": "Use as the default border width for plain actions", + "description": "Use as the hover state border width for actions like secondary and tertiary buttons", "type": "number", - "value": "0px", + "value": "2px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the default border width for plain actions", + "description": "Use as the hover state border width for actions like secondary and tertiary buttons", "type": "number", - "value": 0 + "value": "{global.border.width.200}" }, - "name": "pf-t--global--border--width--action--plain--default", + "name": "pf-t--global--border--width--action--hover", "attributes": { "category": "global", "type": "border", "item": "width", "subitem": "action", - "state": "plain" + "state": "hover" }, "path": [ "global", "border", "width", "action", - "plain", - "default" + "hover" + ], + "references": [ + { + "type": "number", + "value": "2px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 2 + }, + "name": "pf-t--global--border--width--200", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "200" + }, + "path": [ + "global", + "border", + "width", + "200" + ] + } ] } }, - "pf-t--global--border--width--action--plain--hover": { + "pf-t--global--border--width--action--clicked": { "default": { - "description": "Use as the border width for plain actions in their hover state", + "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", "type": "number", - "value": "0px", + "value": "2px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the border width for plain actions in their hover state", + "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", "type": "number", - "value": 0 + "value": "{global.border.width.200}" }, - "name": "pf-t--global--border--width--action--plain--hover", + "name": "pf-t--global--border--width--action--clicked", "attributes": { "category": "global", "type": "border", "item": "width", "subitem": "action", - "state": "plain" + "state": "clicked" }, "path": [ "global", "border", "width", "action", - "plain", - "hover" + "clicked" + ], + "references": [ + { + "type": "number", + "value": "2px", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 2 + }, + "name": "pf-t--global--border--width--200", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "200" + }, + "path": [ + "global", + "border", + "width", + "200" + ] + } ] } }, - "pf-t--global--border--width--action--plain--clicked": { + "pf-t--global--border--width--action--plain--default": { "default": { - "description": "Use as the border width for plain actions in their clicked state", + "description": "Use as the default border width for plain actions", "type": "number", "value": "0px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the border width for plain actions in their clicked state", + "description": "Use as the default border width for plain actions", "type": "number", "value": 0 }, - "name": "pf-t--global--border--width--action--plain--clicked", + "name": "pf-t--global--border--width--action--plain--default", "attributes": { "category": "global", "type": "border", @@ -44619,115 +44663,67 @@ "width", "action", "plain", - "clicked" + "default" ] } }, - "pf-t--global--border--width--action--hover": { + "pf-t--global--border--width--action--plain--hover": { "default": { - "description": "Use as the hover state border width for actions like secondary and tertiary buttons", + "description": "Use as the border width for plain actions in their hover state", "type": "number", - "value": "2px", + "value": "0px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the hover state border width for actions like secondary and tertiary buttons", + "description": "Use as the border width for plain actions in their hover state", "type": "number", - "value": "{global.border.width.200}" + "value": 0 }, - "name": "pf-t--global--border--width--action--hover", + "name": "pf-t--global--border--width--action--plain--hover", "attributes": { "category": "global", "type": "border", "item": "width", "subitem": "action", - "state": "hover" + "state": "plain" }, "path": [ "global", "border", "width", "action", + "plain", "hover" - ], - "references": [ - { - "type": "number", - "value": "2px", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 2 - }, - "name": "pf-t--global--border--width--200", - "attributes": { - "category": "global", - "type": "border", - "item": "width", - "subitem": "200" - }, - "path": [ - "global", - "border", - "width", - "200" - ] - } ] } }, - "pf-t--global--border--width--action--clicked": { + "pf-t--global--border--width--action--plain--clicked": { "default": { - "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", + "description": "Use as the border width for plain actions in their clicked state", "type": "number", - "value": "2px", + "value": "0px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", + "description": "Use as the border width for plain actions in their clicked state", "type": "number", - "value": "{global.border.width.200}" + "value": 0 }, - "name": "pf-t--global--border--width--action--clicked", + "name": "pf-t--global--border--width--action--plain--clicked", "attributes": { "category": "global", "type": "border", "item": "width", "subitem": "action", - "state": "clicked" + "state": "plain" }, "path": [ "global", "border", "width", "action", + "plain", "clicked" - ], - "references": [ - { - "type": "number", - "value": "2px", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 2 - }, - "name": "pf-t--global--border--width--200", - "attributes": { - "category": "global", - "type": "border", - "item": "width", - "subitem": "200" - }, - "path": [ - "global", - "border", - "width", - "200" - ] - } ] } }, @@ -45205,78 +45201,78 @@ ] } }, - "pf-t--global--border--radius--glass--default": { + "pf-t--global--border--radius--control--default": { "default": { "type": "number", - "value": "16px", + "value": "6px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { "type": "number", - "value": "{global.border.radius.medium}" + "value": "{global.border.radius.small}" }, - "name": "pf-t--global--border--radius--glass--default", + "name": "pf-t--global--border--radius--control--default", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "glass", + "subitem": "control", "state": "default" }, "path": [ "global", "border", "radius", - "glass", + "control", "default" ], "references": [ { - "description": "Use to adjust the curvature of the border corners for an element. Use for moderately rounded corners, like cards.", + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", "type": "number", - "value": "16px", + "value": "6px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use to adjust the curvature of the border corners for an element. Use for moderately rounded corners, like cards.", + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", "type": "number", - "value": "{global.border.radius.300}" + "value": "{global.border.radius.200}" }, - "name": "pf-t--global--border--radius--medium", + "name": "pf-t--global--border--radius--small", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "medium" + "subitem": "small" }, "path": [ "global", "border", "radius", - "medium" + "small" ], "references": [ { "type": "number", - "value": "16px", + "value": "6px", "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 16 + "value": 6 }, - "name": "pf-t--global--border--radius--300", + "name": "pf-t--global--border--radius--200", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "300" + "subitem": "200" }, "path": [ "global", "border", "radius", - "300" + "200" ] } ] @@ -45284,7 +45280,7 @@ ] } }, - "pf-t--global--border--radius--control--default": { + "pf-t--global--border--radius--control--form-element": { "default": { "type": "number", "value": "6px", @@ -45294,20 +45290,20 @@ "type": "number", "value": "{global.border.radius.small}" }, - "name": "pf-t--global--border--radius--control--default", + "name": "pf-t--global--border--radius--control--form-element", "attributes": { "category": "global", "type": "border", "item": "radius", "subitem": "control", - "state": "default" + "state": "form-element" }, "path": [ "global", "border", "radius", "control", - "default" + "form-element" ], "references": [ { @@ -45363,78 +45359,78 @@ ] } }, - "pf-t--global--border--radius--control--form-element": { + "pf-t--global--border--radius--glass--default": { "default": { "type": "number", - "value": "6px", + "value": "16px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { "type": "number", - "value": "{global.border.radius.small}" + "value": "{global.border.radius.medium}" }, - "name": "pf-t--global--border--radius--control--form-element", + "name": "pf-t--global--border--radius--glass--default", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "control", - "state": "form-element" + "subitem": "glass", + "state": "default" }, "path": [ "global", "border", "radius", - "control", - "form-element" + "glass", + "default" ], "references": [ { - "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "description": "Use to adjust the curvature of the border corners for an element. Use for moderately rounded corners, like cards.", "type": "number", - "value": "6px", + "value": "16px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "description": "Use to adjust the curvature of the border corners for an element. Use for moderately rounded corners, like cards.", "type": "number", - "value": "{global.border.radius.200}" + "value": "{global.border.radius.300}" }, - "name": "pf-t--global--border--radius--small", + "name": "pf-t--global--border--radius--medium", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "small" + "subitem": "medium" }, "path": [ "global", "border", "radius", - "small" + "medium" ], "references": [ { "type": "number", - "value": "6px", + "value": "16px", "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 6 + "value": 16 }, - "name": "pf-t--global--border--radius--200", + "name": "pf-t--global--border--radius--300", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "200" + "subitem": "300" }, "path": [ "global", "border", "radius", - "200" + "300" ] } ] @@ -45442,79 +45438,78 @@ ] } }, - "pf-t--global--border--radius--action--plain--default": { + "pf-t--global--border--radius--action--default": { "default": { "type": "number", - "value": "6px", + "value": "999px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { "type": "number", - "value": "{global.border.radius.small}" + "value": "{global.border.radius.pill}" }, - "name": "pf-t--global--border--radius--action--plain--default", + "name": "pf-t--global--border--radius--action--default", "attributes": { "category": "global", "type": "border", "item": "radius", "subitem": "action", - "state": "plain" + "state": "default" }, "path": [ "global", "border", "radius", "action", - "plain", "default" ], "references": [ { - "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", "type": "number", - "value": "6px", + "value": "999px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", "type": "number", - "value": "{global.border.radius.200}" + "value": "{global.border.radius.500}" }, - "name": "pf-t--global--border--radius--small", + "name": "pf-t--global--border--radius--pill", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "small" + "subitem": "pill" }, "path": [ "global", "border", "radius", - "small" + "pill" ], "references": [ { "type": "number", - "value": "6px", + "value": "999px", "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 6 + "value": 999 }, - "name": "pf-t--global--border--radius--200", + "name": "pf-t--global--border--radius--500", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "200" + "subitem": "500" }, "path": [ "global", "border", "radius", - "200" + "500" ] } ] @@ -45522,78 +45517,79 @@ ] } }, - "pf-t--global--border--radius--action--default": { + "pf-t--global--border--radius--action--plain--default": { "default": { "type": "number", - "value": "999px", + "value": "6px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { "type": "number", - "value": "{global.border.radius.pill}" + "value": "{global.border.radius.small}" }, - "name": "pf-t--global--border--radius--action--default", + "name": "pf-t--global--border--radius--action--plain--default", "attributes": { "category": "global", "type": "border", "item": "radius", "subitem": "action", - "state": "default" + "state": "plain" }, "path": [ "global", "border", "radius", "action", + "plain", "default" ], "references": [ { - "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", "type": "number", - "value": "999px", + "value": "6px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", "type": "number", - "value": "{global.border.radius.500}" + "value": "{global.border.radius.200}" }, - "name": "pf-t--global--border--radius--pill", + "name": "pf-t--global--border--radius--small", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "pill" + "subitem": "small" }, "path": [ "global", "border", "radius", - "pill" + "small" ], "references": [ { "type": "number", - "value": "999px", + "value": "6px", "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 999 + "value": 6 }, - "name": "pf-t--global--border--radius--500", + "name": "pf-t--global--border--radius--200", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "500" + "subitem": "200" }, "path": [ "global", "border", "radius", - "500" + "200" ] } ] @@ -45601,1618 +45597,1618 @@ ] } }, - "pf-t--global--font--line-height--body": { + "pf-t--global--font--family--body": { "default": { - "description": "Use to define the line height for body text", + "description": "Use to define the font family for body text", "type": "number", - "value": 1.5, + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use to define the line height for body text", + "description": "Use to define the font family for body text", "type": "number", - "value": "{global.font.line-height.200}" + "value": "{global.font.family.100}" }, - "name": "pf-t--global--font--line-height--body", + "name": "pf-t--global--font--family--body", "attributes": { "category": "global", "type": "font", - "item": "line-height", + "item": "family", "subitem": "body" }, "path": [ "global", "font", - "line-height", + "family", "body" ], "references": [ { - "type": "number", - "value": 1.5, + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { - "type": "number", - "value": 1.5 + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" }, - "name": "pf-t--global--font--line-height--200", + "name": "pf-t--global--font--family--100", "attributes": { "category": "global", "type": "font", - "item": "line-height", - "subitem": "200" + "item": "family", + "subitem": "100" }, "path": [ "global", "font", - "line-height", - "200" + "family", + "100" ] } ] } }, - "pf-t--global--font--line-height--heading": { + "pf-t--global--font--family--heading": { "default": { - "description": "Use to define the line height for heading text", + "description": "Use to define the font family for heading text", "type": "number", - "value": 1.3, + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use to define the line height for heading text", + "description": "Use to define the font family for heading text", "type": "number", - "value": "{global.font.line-height.100}" + "value": "{global.font.family.200}" }, - "name": "pf-t--global--font--line-height--heading", + "name": "pf-t--global--font--family--heading", "attributes": { "category": "global", "type": "font", - "item": "line-height", + "item": "family", "subitem": "heading" }, "path": [ "global", "font", - "line-height", + "family", "heading" ], "references": [ { - "type": "number", - "value": 1.3, + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { - "type": "number", - "value": 1.2999999523162842 + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" }, - "name": "pf-t--global--font--line-height--100", + "name": "pf-t--global--font--family--200", "attributes": { "category": "global", "type": "font", - "item": "line-height", - "subitem": "100" + "item": "family", + "subitem": "200" }, "path": [ "global", "font", - "line-height", - "100" + "family", + "200" ] } ] } }, - "pf-t--global--font--weight--body--default": { + "pf-t--global--font--family--mono": { "default": { - "description": "Use to define the default weight for body text", + "description": "Use to define the font family for mono text", "type": "number", - "value": 400, + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use to define the default weight for body text", + "description": "Use to define the font family for mono text", "type": "number", - "value": "{global.font.weight.100}" + "value": "{global.font.family.300}" }, - "name": "pf-t--global--font--weight--body--default", + "name": "pf-t--global--font--family--mono", "attributes": { "category": "global", "type": "font", - "item": "weight", - "subitem": "body", - "state": "default" + "item": "family", + "subitem": "mono" }, "path": [ "global", "font", - "weight", - "body", - "default" + "family", + "mono" ], "references": [ { - "type": "number", - "value": 400, + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { - "type": "number", - "value": 400 + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" }, - "name": "pf-t--global--font--weight--100", + "name": "pf-t--global--font--family--300", "attributes": { "category": "global", "type": "font", - "item": "weight", - "subitem": "100" + "item": "family", + "subitem": "300" }, "path": [ "global", "font", - "weight", - "100" + "family", + "300" ] } ] } }, - "pf-t--global--font--weight--body--bold": { + "pf-t--global--font--line-height--body": { "default": { - "description": "Use to define the bold weight for body text, often used to field labels or to add emphasis.", + "description": "Use to define the line height for body text", "type": "number", - "value": 500, + "value": 1.5, "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use to define the bold weight for body text, often used to field labels or to add emphasis.", + "description": "Use to define the line height for body text", "type": "number", - "value": "{global.font.weight.200}" + "value": "{global.font.line-height.200}" }, - "name": "pf-t--global--font--weight--body--bold", + "name": "pf-t--global--font--line-height--body", "attributes": { "category": "global", "type": "font", - "item": "weight", - "subitem": "body", - "state": "bold" + "item": "line-height", + "subitem": "body" }, "path": [ "global", "font", - "weight", - "body", - "bold" + "line-height", + "body" ], "references": [ { "type": "number", - "value": 500, + "value": 1.5, "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 500 + "value": 1.5 }, - "name": "pf-t--global--font--weight--200", + "name": "pf-t--global--font--line-height--200", "attributes": { "category": "global", "type": "font", - "item": "weight", + "item": "line-height", "subitem": "200" }, "path": [ "global", "font", - "weight", + "line-height", "200" ] } ] } }, - "pf-t--global--font--weight--heading--default": { + "pf-t--global--font--line-height--heading": { "default": { - "description": "Use to define the default weight for heading text", + "description": "Use to define the line height for heading text", "type": "number", - "value": 500, + "value": 1.3, "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use to define the default weight for heading text", + "description": "Use to define the line height for heading text", "type": "number", - "value": "{global.font.weight.300}" + "value": "{global.font.line-height.100}" }, - "name": "pf-t--global--font--weight--heading--default", + "name": "pf-t--global--font--line-height--heading", "attributes": { "category": "global", "type": "font", - "item": "weight", - "subitem": "heading", - "state": "default" + "item": "line-height", + "subitem": "heading" }, "path": [ "global", "font", - "weight", - "heading", - "default" + "line-height", + "heading" ], "references": [ { "type": "number", - "value": 500, + "value": 1.3, "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 500 + "value": 1.2999999523162842 }, - "name": "pf-t--global--font--weight--300", + "name": "pf-t--global--font--line-height--100", "attributes": { "category": "global", "type": "font", - "item": "weight", - "subitem": "300" + "item": "line-height", + "subitem": "100" }, "path": [ "global", "font", - "weight", - "300" + "line-height", + "100" ] } ] } }, - "pf-t--global--font--weight--heading--bold": { + "pf-t--global--font--weight--body--default": { "default": { - "description": "Use to define the bold weight for heading text, often used to add emphasis.", + "description": "Use to define the default weight for body text", "type": "number", - "value": 700, + "value": 400, "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use to define the bold weight for heading text, often used to add emphasis.", + "description": "Use to define the default weight for body text", "type": "number", - "value": "{global.font.weight.400}" + "value": "{global.font.weight.100}" }, - "name": "pf-t--global--font--weight--heading--bold", + "name": "pf-t--global--font--weight--body--default", "attributes": { "category": "global", "type": "font", "item": "weight", - "subitem": "heading", - "state": "bold" + "subitem": "body", + "state": "default" }, "path": [ "global", "font", "weight", - "heading", - "bold" + "body", + "default" ], "references": [ { "type": "number", - "value": 700, + "value": 400, "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 700 + "value": 400 }, - "name": "pf-t--global--font--weight--400", + "name": "pf-t--global--font--weight--100", "attributes": { "category": "global", "type": "font", "item": "weight", - "subitem": "400" + "subitem": "100" }, "path": [ "global", "font", "weight", - "400" + "100" ] } ] } }, - "pf-t--global--font--size--body--sm": { + "pf-t--global--font--weight--body--bold": { "default": { - "description": "Use for a smaller font size in body sections.", + "description": "Use to define the bold weight for body text, often used to field labels or to add emphasis.", "type": "number", - "value": "0.75rem", + "value": 500, "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for a smaller font size in body sections.", + "description": "Use to define the bold weight for body text, often used to field labels or to add emphasis.", "type": "number", - "value": "{global.font.size.xs}" + "value": "{global.font.weight.200}" }, - "name": "pf-t--global--font--size--body--sm", + "name": "pf-t--global--font--weight--body--bold", "attributes": { "category": "global", "type": "font", - "item": "size", + "item": "weight", "subitem": "body", - "state": "sm" + "state": "bold" }, "path": [ "global", "font", - "size", + "weight", "body", - "sm" + "bold" ], "references": [ { "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "value": 500, + "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": "{global.font.size.100}" + "value": 500 }, - "name": "pf-t--global--font--size--xs", + "name": "pf-t--global--font--weight--200", "attributes": { "category": "global", "type": "font", - "item": "size", - "subitem": "xs" + "item": "weight", + "subitem": "200" }, "path": [ "global", "font", - "size", - "xs" - ], - "references": [ - { - "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 12 - }, - "name": "pf-t--global--font--size--100", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "100" - }, - "path": [ - "global", - "font", - "size", - "100" - ] - } + "weight", + "200" ] } ] } }, - "pf-t--global--font--size--body--default": { + "pf-t--global--font--weight--heading--default": { "default": { - "description": "Use as the default font size in body sections.", + "description": "Use to define the default weight for heading text", "type": "number", - "value": "0.875rem", + "value": 500, "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the default font size in body sections.", + "description": "Use to define the default weight for heading text", "type": "number", - "value": "{global.font.size.sm}" + "value": "{global.font.weight.300}" }, - "name": "pf-t--global--font--size--body--default", + "name": "pf-t--global--font--weight--heading--default", "attributes": { "category": "global", "type": "font", - "item": "size", - "subitem": "body", + "item": "weight", + "subitem": "heading", "state": "default" }, "path": [ "global", "font", - "size", - "body", + "weight", + "heading", "default" ], "references": [ { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "0.875rem", - "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "value": 500, + "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.200}" + "value": 500 }, - "name": "pf-t--global--font--size--sm", + "name": "pf-t--global--font--weight--300", "attributes": { "category": "global", "type": "font", - "item": "size", - "subitem": "sm" + "item": "weight", + "subitem": "300" }, "path": [ "global", "font", - "size", - "sm" - ], - "references": [ - { - "type": "number", - "value": "0.875rem", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 14 - }, - "name": "pf-t--global--font--size--200", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "200" - }, - "path": [ - "global", - "font", - "size", - "200" - ] - } + "weight", + "300" ] } ] } }, - "pf-t--global--font--size--body--lg": { + "pf-t--global--font--weight--heading--bold": { "default": { - "description": "Use for a larger font size in body sections.", + "description": "Use to define the bold weight for heading text, often used to add emphasis.", "type": "number", - "value": "1rem", + "value": 700, "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use for a larger font size in body sections.", + "description": "Use to define the bold weight for heading text, often used to add emphasis.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.weight.400}" }, - "name": "pf-t--global--font--size--body--lg", + "name": "pf-t--global--font--weight--heading--bold", "attributes": { "category": "global", "type": "font", - "item": "size", - "subitem": "body", - "state": "lg" + "item": "weight", + "subitem": "heading", + "state": "bold" }, "path": [ "global", "font", - "size", - "body", - "lg" + "weight", + "heading", + "bold" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "value": 700, + "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 700 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--weight--400", "attributes": { "category": "global", "type": "font", - "item": "size", - "subitem": "md" + "item": "weight", + "subitem": "400" }, "path": [ "global", "font", - "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "weight", + "400" ] } ] } }, - "pf-t--global--font--size--heading--h1": { + "pf-t--global--font--size--xs": { "default": { - "description": "Use as the font size for first level headings.", "type": "number", - "value": "1.5rem", + "value": "0.75rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for first level headings.", "type": "number", - "value": "{global.font.size.2xl}" + "value": "{global.font.size.100}" }, - "name": "pf-t--global--font--size--heading--h1", + "name": "pf-t--global--font--size--xs", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h1" + "subitem": "xs" }, "path": [ "global", "font", "size", - "heading", - "h1" + "xs" ], "references": [ { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.5rem", - "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "value": "0.75rem", + "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.600}" + "value": 12 }, - "name": "pf-t--global--font--size--2xl", + "name": "pf-t--global--font--size--100", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "2xl" + "subitem": "100" }, "path": [ "global", "font", "size", - "2xl" - ], - "references": [ - { - "type": "number", - "value": "1.5rem", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 24 - }, - "name": "pf-t--global--font--size--600", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "600" - }, - "path": [ - "global", - "font", - "size", - "600" - ] - } + "100" ] } ] } }, - "pf-t--global--font--size--heading--h2": { + "pf-t--global--font--size--sm": { "default": { - "description": "Use as the font size for second level headings.", + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "1.25rem", + "value": "0.875rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for second level headings.", + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.xl}" + "value": "{global.font.size.200}" }, - "name": "pf-t--global--font--size--heading--h2", + "name": "pf-t--global--font--size--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h2" + "subitem": "sm" }, "path": [ "global", "font", "size", - "heading", - "h2" + "sm" ], "references": [ { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.25rem", - "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "value": "0.875rem", + "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.500}" + "value": 14 }, - "name": "pf-t--global--font--size--xl", + "name": "pf-t--global--font--size--200", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xl" + "subitem": "200" }, "path": [ "global", "font", "size", - "xl" - ], - "references": [ - { - "type": "number", - "value": "1.25rem", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 20 - }, - "name": "pf-t--global--font--size--500", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "500" - }, - "path": [ - "global", - "font", - "size", - "500" - ] - } + "200" ] } ] } }, - "pf-t--global--font--size--heading--h3": { + "pf-t--global--font--size--md": { "default": { - "description": "Use as the font size for third level headings.", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1.125rem", + "value": "1rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for third level headings.", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.lg}" + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--heading--h3", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h3" + "subitem": "md" }, "path": [ "global", "font", "size", - "heading", - "h3" + "md" ], "references": [ { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.400}" + "value": 16 }, - "name": "pf-t--global--font--size--lg", + "name": "pf-t--global--font--size--300", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "lg" + "subitem": "300" }, "path": [ "global", "font", "size", - "lg" - ], - "references": [ - { - "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 18 - }, - "name": "pf-t--global--font--size--400", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "400" - }, - "path": [ - "global", - "font", - "size", - "400" - ] - } + "300" ] } ] } }, - "pf-t--global--font--size--heading--h4": { + "pf-t--global--font--size--lg": { "default": { - "description": "Use as the font size for fourth-level headings.", + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.125rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for fourth-level headings.", + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.400}" }, - "name": "pf-t--global--font--size--heading--h4", + "name": "pf-t--global--font--size--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h4" + "subitem": "lg" }, "path": [ "global", "font", "size", - "heading", - "h4" + "lg" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "value": "1.125rem", + "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 18 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--400", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "400" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "400" ] } ] } }, - "pf-t--global--font--size--heading--h5": { + "pf-t--global--font--size--xl": { "default": { - "description": "Use as the font size for fifth level headings.", + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.25rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for fifth level headings.", + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.500}" }, - "name": "pf-t--global--font--size--heading--h5", + "name": "pf-t--global--font--size--xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h5" + "subitem": "xl" }, "path": [ "global", "font", "size", - "heading", - "h5" + "xl" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "value": "1.25rem", + "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 20 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--500", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "500" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "500" ] } ] } }, - "pf-t--global--font--size--heading--h6": { + "pf-t--global--font--size--2xl": { "default": { - "description": "Use as the font size for sixth level headings.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for sixth level headings.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.600}" }, - "name": "pf-t--global--font--size--heading--h6", + "name": "pf-t--global--font--size--2xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h6" + "subitem": "2xl" }, "path": [ "global", "font", "size", - "heading", - "h6" + "2xl" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/glass/semantic.dimension.glass.json", + "value": "1.5rem", + "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 24 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--600", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "600" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/glass/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "600" ] } ] } }, - "pf-t--global--font--size--xs": { + "pf-t--global--font--size--3xl": { "default": { + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "0.75rem", + "value": "1.75rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.100}" + "value": "{global.font.size.700}" }, - "name": "pf-t--global--font--size--xs", + "name": "pf-t--global--font--size--3xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xs" + "subitem": "3xl" }, "path": [ "global", "font", "size", - "xs" + "3xl" ], "references": [ { "type": "number", - "value": "0.75rem", + "value": "1.75rem", "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 12 + "value": 28 }, - "name": "pf-t--global--font--size--100", + "name": "pf-t--global--font--size--700", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "100" + "subitem": "700" }, "path": [ "global", "font", "size", - "100" + "700" ] } ] } }, - "pf-t--global--font--size--sm": { + "pf-t--global--font--size--4xl": { "default": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "0.875rem", + "value": "2.25rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.200}" + "value": "{global.font.size.800}" }, - "name": "pf-t--global--font--size--sm", + "name": "pf-t--global--font--size--4xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "sm" + "subitem": "4xl" }, "path": [ "global", "font", "size", - "sm" + "4xl" ], "references": [ { "type": "number", - "value": "0.875rem", + "value": "2.25rem", "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 14 + "value": 36 }, - "name": "pf-t--global--font--size--200", + "name": "pf-t--global--font--size--800", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "200" + "subitem": "800" }, "path": [ "global", "font", "size", - "200" + "800" ] } ] } }, - "pf-t--global--font--size--md": { + "pf-t--global--font--size--body--sm": { "default": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use for a smaller font size in body sections.", "type": "number", - "value": "1rem", + "value": "0.75rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use for a smaller font size in body sections.", "type": "number", - "value": "{global.font.size.300}" + "value": "{global.font.size.xs}" }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--body--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "body", + "state": "sm" }, "path": [ "global", "font", "size", - "md" + "body", + "sm" ], "references": [ { "type": "number", - "value": "1rem", - "filePath": "tokens/default/glass/base.dimension.json", + "value": "0.75rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { "type": "number", - "value": 16 + "value": "{global.font.size.100}" }, - "name": "pf-t--global--font--size--300", + "name": "pf-t--global--font--size--xs", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "300" + "subitem": "xs" }, "path": [ "global", "font", "size", - "300" + "xs" + ], + "references": [ + { + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 12 + }, + "name": "pf-t--global--font--size--100", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "100" + }, + "path": [ + "global", + "font", + "size", + "100" + ] + } ] } ] } }, - "pf-t--global--font--size--lg": { + "pf-t--global--font--size--body--default": { "default": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "description": "Use as the default font size in body sections.", "type": "number", - "value": "1.125rem", + "value": "0.875rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "description": "Use as the default font size in body sections.", "type": "number", - "value": "{global.font.size.400}" + "value": "{global.font.size.sm}" }, - "name": "pf-t--global--font--size--lg", + "name": "pf-t--global--font--size--body--default", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "lg" + "subitem": "body", + "state": "default" }, "path": [ "global", "font", "size", - "lg" + "body", + "default" ], "references": [ { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/glass/base.dimension.json", + "value": "0.875rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": 18 + "value": "{global.font.size.200}" }, - "name": "pf-t--global--font--size--400", + "name": "pf-t--global--font--size--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "400" + "subitem": "sm" }, "path": [ "global", "font", "size", - "400" + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 14 + }, + "name": "pf-t--global--font--size--200", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "200" + }, + "path": [ + "global", + "font", + "size", + "200" + ] + } ] } ] } }, - "pf-t--global--font--size--xl": { + "pf-t--global--font--size--body--lg": { "default": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "description": "Use for a larger font size in body sections.", "type": "number", - "value": "1.25rem", + "value": "1rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "description": "Use for a larger font size in body sections.", "type": "number", - "value": "{global.font.size.500}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--xl", + "name": "pf-t--global--font--size--body--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xl" + "subitem": "body", + "state": "lg" }, "path": [ "global", "font", "size", - "xl" + "body", + "lg" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1.25rem", - "filePath": "tokens/default/glass/base.dimension.json", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 20 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--500", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "500" + "subitem": "md" }, "path": [ "global", "font", "size", - "500" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] } }, - "pf-t--global--font--size--2xl": { + "pf-t--global--font--size--heading--h1": { "default": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for first level headings.", "type": "number", "value": "1.5rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for first level headings.", "type": "number", - "value": "{global.font.size.600}" + "value": "{global.font.size.2xl}" }, - "name": "pf-t--global--font--size--2xl", + "name": "pf-t--global--font--size--heading--h1", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "2xl" + "subitem": "heading", + "state": "h1" }, "path": [ "global", "font", "size", - "2xl" + "heading", + "h1" ], "references": [ { + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", "value": "1.5rem", - "filePath": "tokens/default/glass/base.dimension.json", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": 24 + "value": "{global.font.size.600}" }, - "name": "pf-t--global--font--size--600", + "name": "pf-t--global--font--size--2xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "600" + "subitem": "2xl" }, "path": [ "global", "font", "size", - "600" + "2xl" + ], + "references": [ + { + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 24 + }, + "name": "pf-t--global--font--size--600", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "600" + }, + "path": [ + "global", + "font", + "size", + "600" + ] + } ] } ] } }, - "pf-t--global--font--size--3xl": { + "pf-t--global--font--size--heading--h2": { "default": { - "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for second level headings.", "type": "number", - "value": "1.75rem", + "value": "1.25rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for second level headings.", "type": "number", - "value": "{global.font.size.700}" + "value": "{global.font.size.xl}" }, - "name": "pf-t--global--font--size--3xl", + "name": "pf-t--global--font--size--heading--h2", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "3xl" + "subitem": "heading", + "state": "h2" }, "path": [ "global", "font", "size", - "3xl" + "heading", + "h2" ], "references": [ { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.75rem", - "filePath": "tokens/default/glass/base.dimension.json", + "value": "1.25rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": 28 + "value": "{global.font.size.500}" }, - "name": "pf-t--global--font--size--700", + "name": "pf-t--global--font--size--xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "700" + "subitem": "xl" }, "path": [ "global", "font", "size", - "700" + "xl" + ], + "references": [ + { + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 20 + }, + "name": "pf-t--global--font--size--500", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "500" + }, + "path": [ + "global", + "font", + "size", + "500" + ] + } ] } ] } }, - "pf-t--global--font--size--4xl": { + "pf-t--global--font--size--heading--h3": { "default": { - "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for third level headings.", "type": "number", - "value": "2.25rem", + "value": "1.125rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for third level headings.", "type": "number", - "value": "{global.font.size.800}" + "value": "{global.font.size.lg}" }, - "name": "pf-t--global--font--size--4xl", + "name": "pf-t--global--font--size--heading--h3", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "4xl" + "subitem": "heading", + "state": "h3" }, "path": [ "global", "font", "size", - "4xl" + "heading", + "h3" ], "references": [ { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "2.25rem", - "filePath": "tokens/default/glass/base.dimension.json", + "value": "1.125rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": 36 + "value": "{global.font.size.400}" }, - "name": "pf-t--global--font--size--800", + "name": "pf-t--global--font--size--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "800" + "subitem": "lg" }, "path": [ "global", "font", "size", - "800" + "lg" + ], + "references": [ + { + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 18 + }, + "name": "pf-t--global--font--size--400", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "400" + }, + "path": [ + "global", + "font", + "size", + "400" + ] + } ] } ] } }, - "pf-t--global--font--family--body": { + "pf-t--global--font--size--heading--h4": { "default": { - "description": "Use to define the font family for body text", + "description": "Use as the font size for fourth-level headings.", "type": "number", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "value": "1rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use to define the font family for body text", + "description": "Use as the font size for fourth-level headings.", "type": "number", - "value": "{global.font.family.100}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--family--body", + "name": "pf-t--global--font--size--heading--h4", "attributes": { "category": "global", "type": "font", - "item": "family", - "subitem": "body" + "item": "size", + "subitem": "heading", + "state": "h4" }, "path": [ "global", "font", - "family", - "body" + "size", + "heading", + "h4" ], "references": [ { - "type": "string", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", - "filePath": "tokens/default/glass/base.dimension.json", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "type": "string", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--family--100", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", - "item": "family", - "subitem": "100" + "item": "size", + "subitem": "md" }, "path": [ "global", "font", - "family", - "100" + "size", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] } }, - "pf-t--global--font--family--heading": { + "pf-t--global--font--size--heading--h5": { "default": { - "description": "Use to define the font family for heading text", + "description": "Use as the font size for fifth level headings.", "type": "number", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "value": "1rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use to define the font family for heading text", + "description": "Use as the font size for fifth level headings.", "type": "number", - "value": "{global.font.family.200}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--family--heading", + "name": "pf-t--global--font--size--heading--h5", "attributes": { "category": "global", "type": "font", - "item": "family", - "subitem": "heading" + "item": "size", + "subitem": "heading", + "state": "h5" }, "path": [ "global", "font", - "family", - "heading" + "size", + "heading", + "h5" ], "references": [ { - "type": "string", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", - "filePath": "tokens/default/glass/base.dimension.json", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "type": "string", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--family--200", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", - "item": "family", - "subitem": "200" + "item": "size", + "subitem": "md" }, "path": [ "global", "font", - "family", - "200" + "size", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] } }, - "pf-t--global--font--family--mono": { + "pf-t--global--font--size--heading--h6": { "default": { - "description": "Use to define the font family for mono text", + "description": "Use as the font size for sixth level headings.", "type": "number", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", + "value": "1rem", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use to define the font family for mono text", + "description": "Use as the font size for sixth level headings.", "type": "number", - "value": "{global.font.family.300}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--family--mono", + "name": "pf-t--global--font--size--heading--h6", "attributes": { "category": "global", "type": "font", - "item": "family", - "subitem": "mono" + "item": "size", + "subitem": "heading", + "state": "h6" }, "path": [ "global", "font", - "family", - "mono" + "size", + "heading", + "h6" ], "references": [ { - "type": "string", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", - "filePath": "tokens/default/glass/base.dimension.json", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "type": "string", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--family--300", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", - "item": "family", - "subitem": "300" + "item": "size", + "subitem": "md" }, "path": [ "global", "font", - "family", - "300" + "size", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/glass/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] @@ -50224,12 +50220,12 @@ "pf-t--global--text-decoration--width--hover": { "default": { "type": "number", - "value": "2px", + "value": "1px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { "type": "number", - "value": "{global.border.width.strong}" + "value": "{global.border.width.regular}" }, "name": "pf-t--global--text-decoration--width--hover", "attributes": { @@ -50246,51 +50242,51 @@ ], "references": [ { - "description": "Use as a stronger/wider border width for elements.", + "description": "Use as the default border width for elements.", "type": "number", - "value": "2px", + "value": "1px", "filePath": "tokens/default/glass/semantic.dimension.glass.json", "isSource": true, "original": { - "description": "Use as a stronger/wider border width for elements.", + "description": "Use as the default border width for elements.", "type": "number", - "value": "{global.border.width.200}" + "value": "{global.border.width.100}" }, - "name": "pf-t--global--border--width--strong", + "name": "pf-t--global--border--width--regular", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "strong" + "subitem": "regular" }, "path": [ "global", "border", "width", - "strong" + "regular" ], "references": [ { "type": "number", - "value": "2px", + "value": "1px", "filePath": "tokens/default/glass/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 2 + "value": 1 }, - "name": "pf-t--global--border--width--200", + "name": "pf-t--global--border--width--100", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "200" + "subitem": "100" }, "path": [ "global", "border", "width", - "200" + "100" ] } ] @@ -51124,6 +51120,27 @@ ] } }, + "pf-t--color--black": { + "default": { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/glass/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#000000" + }, + "name": "pf-t--color--black", + "attributes": { + "category": "color", + "type": "black" + }, + "path": [ + "color", + "black" + ] + } + }, "pf-t--color--gray--10": { "default": { "type": "color", @@ -51377,27 +51394,6 @@ ] } }, - "pf-t--color--black": { - "default": { - "type": "color", - "value": "#000000", - "filePath": "tokens/default/glass/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#000000" - }, - "name": "pf-t--color--black", - "attributes": { - "category": "color", - "type": "black" - }, - "path": [ - "color", - "black" - ] - } - }, "pf-t--color--blue--10": { "default": { "type": "color", diff --git a/packages/module/patternfly-docs/content/token-layers-highcontrast-dark.json b/packages/module/patternfly-docs/content/token-layers-highcontrast-dark.json index 7a40b13..7f4e7db 100644 --- a/packages/module/patternfly-docs/content/token-layers-highcontrast-dark.json +++ b/packages/module/patternfly-docs/content/token-layers-highcontrast-dark.json @@ -7407,78 +7407,76 @@ ] } }, - "pf-t--global--icon--color--brand--default": { + "pf-t--global--icon--color--regular": { "default": { - "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", "type": "color", - "value": "#b9dafc", + "value": "#f2f2f2", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", "type": "color", - "value": "{global.dark.color.brand.200}" + "value": "{global.dark.icon.color.100}" }, - "name": "pf-t--global--icon--color--brand--default", + "name": "pf-t--global--icon--color--regular", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "brand", - "state": "default" + "subitem": "regular" }, "path": [ "global", "icon", "color", - "brand", - "default" + "regular" ], "references": [ { "type": "color", - "value": "#b9dafc", + "value": "#f2f2f2", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.20}" + "value": "{color.gray.10}" }, - "name": "pf-t--global--dark--color--brand--200", + "name": "pf-t--global--dark--icon--color--100", "attributes": { "category": "global", "type": "dark", - "item": "color", - "subitem": "brand", - "state": "200" + "item": "icon", + "subitem": "color", + "state": "100" }, "path": [ "global", "dark", + "icon", "color", - "brand", - "200" + "100" ], "references": [ { "type": "color", - "value": "#b9dafc", + "value": "#f2f2f2", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b9dafc" + "value": "#f2f2f2" }, - "name": "pf-t--color--blue--20", + "name": "pf-t--color--gray--10", "attributes": { "category": "color", - "type": "blue", - "item": "20" + "type": "gray", + "item": "10" }, "path": [ "color", - "blue", - "20" + "gray", + "10" ] } ] @@ -7486,78 +7484,76 @@ ] } }, - "pf-t--global--icon--color--brand--hover": { + "pf-t--global--icon--color--subtle": { "default": { - "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", "type": "color", - "value": "#e0f0ff", + "value": "#a3a3a3", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", "type": "color", - "value": "{global.dark.color.brand.300}" + "value": "{global.dark.icon.color.200}" }, - "name": "pf-t--global--icon--color--brand--hover", + "name": "pf-t--global--icon--color--subtle", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "brand", - "state": "hover" + "subitem": "subtle" }, "path": [ "global", "icon", "color", - "brand", - "hover" + "subtle" ], "references": [ { "type": "color", - "value": "#e0f0ff", + "value": "#a3a3a3", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.10}" + "value": "{color.gray.40}" }, - "name": "pf-t--global--dark--color--brand--300", + "name": "pf-t--global--dark--icon--color--200", "attributes": { "category": "global", "type": "dark", - "item": "color", - "subitem": "brand", - "state": "300" + "item": "icon", + "subitem": "color", + "state": "200" }, "path": [ "global", "dark", + "icon", "color", - "brand", - "300" + "200" ], "references": [ { "type": "color", - "value": "#e0f0ff", + "value": "#a3a3a3", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#e0f0ff" + "value": "#a3a3a3" }, - "name": "pf-t--color--blue--10", + "name": "pf-t--color--gray--40", "attributes": { "category": "color", - "type": "blue", - "item": "10" + "type": "gray", + "item": "40" }, "path": [ "color", - "blue", - "10" + "gray", + "40" ] } ] @@ -7565,78 +7561,76 @@ ] } }, - "pf-t--global--icon--color--brand--clicked": { + "pf-t--global--icon--color--inverse": { "default": { - "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#e0f0ff", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{global.dark.color.brand.300}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--icon--color--brand--clicked", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "brand", - "state": "clicked" + "subitem": "inverse" }, "path": [ "global", "icon", "color", - "brand", - "clicked" + "inverse" ], "references": [ { "type": "color", - "value": "#e0f0ff", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.10}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--color--brand--300", + "name": "pf-t--global--dark--icon--color--300", "attributes": { "category": "global", "type": "dark", - "item": "color", - "subitem": "brand", + "item": "icon", + "subitem": "color", "state": "300" }, "path": [ "global", "dark", + "icon", "color", - "brand", "300" ], "references": [ { "type": "color", - "value": "#e0f0ff", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#e0f0ff" + "value": "#1f1f1f" }, - "name": "pf-t--color--blue--10", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", - "type": "blue", - "item": "10" + "type": "gray", + "item": "90" }, "path": [ "color", - "blue", - "10" + "gray", + "90" ] } ] @@ -7644,135 +7638,76 @@ ] } }, - "pf-t--global--icon--color--brand--accent--default": { + "pf-t--global--icon--color--disabled": { "default": { - "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", "type": "color", - "value": "#92c5f9", + "value": "#707070", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", "type": "color", - "value": "{global.color.brand.accent.default}" + "value": "{global.dark.color.disabled.200}" }, - "name": "pf-t--global--icon--color--brand--accent--default", + "name": "pf-t--global--icon--color--disabled", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "brand", - "state": "accent" + "subitem": "disabled" }, "path": [ "global", "icon", "color", - "brand", - "accent", - "default" + "disabled" ], "references": [ { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "value": "#707070", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.color.brand.default}" + "value": "{color.gray.50}" }, - "name": "pf-t--global--color--brand--accent--default", + "name": "pf-t--global--dark--color--disabled--200", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "default" + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "200" }, "path": [ "global", + "dark", "color", - "brand", - "accent", - "default" + "disabled", + "200" ], "references": [ { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "value": "#707070", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.dark.color.brand.100}" + "value": "#707070" }, - "name": "pf-t--global--color--brand--default", + "name": "pf-t--color--gray--50", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "default" + "category": "color", + "type": "gray", + "item": "50" }, "path": [ - "global", "color", - "brand", - "default" - ], - "references": [ - { - "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.blue.30}" - }, - "name": "pf-t--global--dark--color--brand--100", - "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "100" - }, - "path": [ - "global", - "dark", - "color", - "brand", - "100" - ], - "references": [ - { - "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#92c5f9" - }, - "name": "pf-t--color--blue--30", - "attributes": { - "category": "color", - "type": "blue", - "item": "30" - }, - "path": [ - "color", - "blue", - "30" - ] - } - ] - } + "gray", + "50" ] } ] @@ -7780,135 +7715,76 @@ ] } }, - "pf-t--global--icon--color--brand--accent--hover": { + "pf-t--global--icon--color--on-disabled": { "default": { - "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", "type": "color", - "value": "#b9dafc", + "value": "#383838", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", "type": "color", - "value": "{global.color.brand.accent.hover}" + "value": "{global.dark.color.disabled.300}" }, - "name": "pf-t--global--icon--color--brand--accent--hover", + "name": "pf-t--global--icon--color--on-disabled", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "brand", - "state": "accent" + "subitem": "on-disabled" }, "path": [ "global", "icon", "color", - "brand", - "accent", - "hover" + "on-disabled" ], "references": [ { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.color.brand.hover}" + "value": "{color.gray.70}" }, - "name": "pf-t--global--color--brand--accent--hover", + "name": "pf-t--global--dark--color--disabled--300", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "hover" + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "300" }, "path": [ "global", + "dark", "color", - "brand", - "accent", - "hover" + "disabled", + "300" ], "references": [ { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "value": "#383838", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.dark.color.brand.200}" + "value": "#383838" }, - "name": "pf-t--global--color--brand--hover", + "name": "pf-t--color--gray--70", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "hover" + "category": "color", + "type": "gray", + "item": "70" }, "path": [ - "global", "color", - "brand", - "hover" - ], - "references": [ - { - "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.blue.20}" - }, - "name": "pf-t--global--dark--color--brand--200", - "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "200" - }, - "path": [ - "global", - "dark", - "color", - "brand", - "200" - ], - "references": [ - { - "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#b9dafc" - }, - "name": "pf-t--color--blue--20", - "attributes": { - "category": "color", - "type": "blue", - "item": "20" - }, - "path": [ - "color", - "blue", - "20" - ] - } - ] - } + "gray", + "70" ] } ] @@ -7916,135 +7792,78 @@ ] } }, - "pf-t--global--icon--color--brand--accent--clicked": { + "pf-t--global--icon--color--brand--default": { "default": { - "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", "type": "color", "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "{global.color.brand.accent.clicked}" + "value": "{global.dark.color.brand.200}" }, - "name": "pf-t--global--icon--color--brand--accent--clicked", + "name": "pf-t--global--icon--color--brand--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "brand", - "state": "accent" + "state": "default" }, "path": [ "global", "icon", "color", "brand", - "accent", - "clicked" + "default" ], "references": [ { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.color.brand.clicked}" + "value": "{color.blue.20}" }, - "name": "pf-t--global--color--brand--accent--clicked", + "name": "pf-t--global--dark--color--brand--200", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "clicked" + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" }, "path": [ "global", + "dark", "color", "brand", - "accent", - "clicked" + "200" ], "references": [ { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.dark.color.brand.200}" + "value": "#b9dafc" }, - "name": "pf-t--global--color--brand--clicked", + "name": "pf-t--color--blue--20", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "clicked" + "category": "color", + "type": "blue", + "item": "20" }, "path": [ - "global", "color", - "brand", - "clicked" - ], - "references": [ - { - "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.blue.20}" - }, - "name": "pf-t--global--dark--color--brand--200", - "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "200" - }, - "path": [ - "global", - "dark", - "color", - "brand", - "200" - ], - "references": [ - { - "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#b9dafc" - }, - "name": "pf-t--color--blue--20", - "attributes": { - "category": "color", - "type": "blue", - "item": "20" - }, - "path": [ - "color", - "blue", - "20" - ] - } - ] - } + "blue", + "20" ] } ] @@ -8052,105 +7871,78 @@ ] } }, - "pf-t--global--icon--color--on-brand--default": { + "pf-t--global--icon--color--brand--hover": { "default": { - "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "#1f1f1f", + "value": "#e0f0ff", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.dark.color.brand.300}" }, - "name": "pf-t--global--icon--color--on-brand--default", + "name": "pf-t--global--icon--color--brand--hover", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "on-brand", - "state": "default" + "subitem": "brand", + "state": "hover" }, "path": [ "global", "icon", "color", - "on-brand", - "default" + "brand", + "hover" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{color.blue.10}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--dark--color--brand--300", "attributes": { "category": "global", - "type": "icon", + "type": "dark", "item": "color", - "subitem": "inverse" + "subitem": "brand", + "state": "300" }, "path": [ "global", - "icon", + "dark", "color", - "inverse" + "brand", + "300" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "#e0f0ff" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--color--blue--10", "attributes": { - "category": "global", - "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "category": "color", + "type": "blue", + "item": "10" }, "path": [ - "global", - "dark", - "icon", "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#1f1f1f" - }, - "name": "pf-t--color--gray--90", - "attributes": { - "category": "color", - "type": "gray", - "item": "90" - }, - "path": [ - "color", - "gray", - "90" - ] - } + "blue", + "10" ] } ] @@ -8158,105 +7950,78 @@ ] } }, - "pf-t--global--icon--color--on-brand--hover": { + "pf-t--global--icon--color--brand--clicked": { "default": { - "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "#1f1f1f", + "value": "#e0f0ff", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.dark.color.brand.300}" }, - "name": "pf-t--global--icon--color--on-brand--hover", + "name": "pf-t--global--icon--color--brand--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "on-brand", - "state": "hover" + "subitem": "brand", + "state": "clicked" }, "path": [ "global", "icon", "color", - "on-brand", - "hover" + "brand", + "clicked" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{color.blue.10}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--dark--color--brand--300", "attributes": { "category": "global", - "type": "icon", + "type": "dark", "item": "color", - "subitem": "inverse" + "subitem": "brand", + "state": "300" }, "path": [ "global", - "icon", + "dark", "color", - "inverse" + "brand", + "300" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "#e0f0ff" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--color--blue--10", "attributes": { - "category": "global", - "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "category": "color", + "type": "blue", + "item": "10" }, "path": [ - "global", - "dark", - "icon", "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#1f1f1f" - }, - "name": "pf-t--color--gray--90", - "attributes": { - "category": "color", - "type": "gray", - "item": "90" - }, - "path": [ - "color", - "gray", - "90" - ] - } + "blue", + "10" ] } ] @@ -8264,103 +8029,133 @@ ] } }, - "pf-t--global--icon--color--on-brand--clicked": { + "pf-t--global--icon--color--brand--accent--default": { "default": { - "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "#1f1f1f", + "value": "#92c5f9", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.color.brand.accent.default}" }, - "name": "pf-t--global--icon--color--on-brand--clicked", + "name": "pf-t--global--icon--color--brand--accent--default", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "on-brand", - "state": "clicked" + "subitem": "brand", + "state": "accent" }, "path": [ "global", "icon", "color", - "on-brand", - "clicked" + "brand", + "accent", + "default" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#1f1f1f", + "value": "#92c5f9", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{global.color.brand.default}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--color--brand--accent--default", "attributes": { "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "default" }, "path": [ "global", - "icon", "color", - "inverse" + "brand", + "accent", + "default" ], "references": [ { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{color.gray.90}" + "value": "{global.dark.color.brand.100}" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--global--color--brand--default", "attributes": { "category": "global", - "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "type": "color", + "item": "brand", + "subitem": "default" }, "path": [ "global", - "dark", - "icon", "color", - "300" + "brand", + "default" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "{color.blue.30}" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--global--dark--color--brand--100", "attributes": { - "category": "color", - "type": "gray", - "item": "90" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" }, "path": [ + "global", + "dark", "color", - "gray", - "90" + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } ] } ] @@ -8370,104 +8165,133 @@ ] } }, - "pf-t--global--icon--color--on-brand--accent--default": { + "pf-t--global--icon--color--brand--accent--hover": { "default": { - "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "#1f1f1f", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.color.brand.accent.hover}" }, - "name": "pf-t--global--icon--color--on-brand--accent--default", + "name": "pf-t--global--icon--color--brand--accent--hover", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "on-brand", + "subitem": "brand", "state": "accent" }, "path": [ "global", "icon", "color", - "on-brand", + "brand", "accent", - "default" + "hover" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#1f1f1f", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{global.color.brand.hover}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--color--brand--accent--hover", "attributes": { "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "hover" }, "path": [ "global", - "icon", "color", - "inverse" + "brand", + "accent", + "hover" ], "references": [ { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{color.gray.90}" + "value": "{global.dark.color.brand.200}" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--global--color--brand--hover", "attributes": { "category": "global", - "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "type": "color", + "item": "brand", + "subitem": "hover" }, "path": [ "global", - "dark", - "icon", "color", - "300" + "brand", + "hover" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "{color.blue.20}" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--global--dark--color--brand--200", "attributes": { - "category": "color", - "type": "gray", - "item": "90" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" }, "path": [ + "global", + "dark", "color", - "gray", - "90" + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } ] } ] @@ -8477,104 +8301,133 @@ ] } }, - "pf-t--global--icon--color--on-brand--accent--hover": { + "pf-t--global--icon--color--brand--accent--clicked": { "default": { - "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "#1f1f1f", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.color.brand.accent.clicked}" }, - "name": "pf-t--global--icon--color--on-brand--accent--hover", + "name": "pf-t--global--icon--color--brand--accent--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "on-brand", + "subitem": "brand", "state": "accent" }, "path": [ "global", "icon", "color", - "on-brand", + "brand", "accent", - "hover" + "clicked" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#1f1f1f", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{global.color.brand.clicked}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--color--brand--accent--clicked", "attributes": { "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "clicked" }, "path": [ "global", - "icon", "color", - "inverse" + "brand", + "accent", + "clicked" ], "references": [ { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{color.gray.90}" + "value": "{global.dark.color.brand.200}" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--global--color--brand--clicked", "attributes": { "category": "global", - "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "type": "color", + "item": "brand", + "subitem": "clicked" }, "path": [ "global", - "dark", - "icon", "color", - "300" + "brand", + "clicked" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "{color.blue.20}" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--global--dark--color--brand--200", "attributes": { - "category": "color", - "type": "gray", - "item": "90" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" }, "path": [ + "global", + "dark", "color", - "gray", - "90" + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } ] } ] @@ -8584,33 +8437,32 @@ ] } }, - "pf-t--global--icon--color--on-brand--accent--clicked": { + "pf-t--global--icon--color--on-brand--default": { "default": { - "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--on-brand--accent--clicked", + "name": "pf-t--global--icon--color--on-brand--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "on-brand", - "state": "accent" + "state": "default" }, "path": [ "global", "icon", "color", "on-brand", - "accent", - "clicked" + "default" ], "references": [ { @@ -8691,104 +8543,103 @@ ] } }, - "pf-t--global--icon--color--on-brand--subtle--default": { + "pf-t--global--icon--color--on-brand--hover": { "default": { - "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.icon.color.regular}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--on-brand--subtle--default", + "name": "pf-t--global--icon--color--on-brand--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "on-brand", - "state": "subtle" + "state": "hover" }, "path": [ "global", "icon", "color", "on-brand", - "subtle", - "default" + "hover" ], "references": [ { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{global.dark.icon.color.100}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--icon--color--regular", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "regular" + "subitem": "inverse" }, "path": [ "global", "icon", "color", - "regular" + "inverse" ], "references": [ { "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.10}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--icon--color--100", + "name": "pf-t--global--dark--icon--color--300", "attributes": { "category": "global", "type": "dark", "item": "icon", "subitem": "color", - "state": "100" + "state": "300" }, "path": [ "global", "dark", "icon", "color", - "100" + "300" ], "references": [ { "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f2f2f2" + "value": "#1f1f1f" }, - "name": "pf-t--color--gray--10", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", "type": "gray", - "item": "10" + "item": "90" }, "path": [ "color", "gray", - "10" + "90" ] } ] @@ -8798,104 +8649,103 @@ ] } }, - "pf-t--global--icon--color--on-brand--subtle--hover": { + "pf-t--global--icon--color--on-brand--clicked": { "default": { - "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.icon.color.regular}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--on-brand--subtle--hover", + "name": "pf-t--global--icon--color--on-brand--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "on-brand", - "state": "subtle" + "state": "clicked" }, "path": [ "global", "icon", "color", "on-brand", - "subtle", - "hover" + "clicked" ], "references": [ { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{global.dark.icon.color.100}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--icon--color--regular", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "regular" + "subitem": "inverse" }, "path": [ "global", "icon", "color", - "regular" + "inverse" ], "references": [ { "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.10}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--icon--color--100", + "name": "pf-t--global--dark--icon--color--300", "attributes": { "category": "global", "type": "dark", "item": "icon", "subitem": "color", - "state": "100" + "state": "300" }, "path": [ "global", "dark", "icon", "color", - "100" + "300" ], "references": [ { "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f2f2f2" + "value": "#1f1f1f" }, - "name": "pf-t--color--gray--10", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", "type": "gray", - "item": "10" + "item": "90" }, "path": [ "color", "gray", - "10" + "90" ] } ] @@ -8905,104 +8755,104 @@ ] } }, - "pf-t--global--icon--color--on-brand--subtle--clicked": { + "pf-t--global--icon--color--on-brand--accent--default": { "default": { - "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.icon.color.regular}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--on-brand--subtle--clicked", + "name": "pf-t--global--icon--color--on-brand--accent--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "on-brand", - "state": "subtle" + "state": "accent" }, "path": [ "global", "icon", "color", "on-brand", - "subtle", - "clicked" + "accent", + "default" ], "references": [ { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{global.dark.icon.color.100}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--icon--color--regular", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "regular" + "subitem": "inverse" }, "path": [ "global", "icon", "color", - "regular" + "inverse" ], "references": [ { "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.10}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--icon--color--100", + "name": "pf-t--global--dark--icon--color--300", "attributes": { "category": "global", "type": "dark", "item": "icon", "subitem": "color", - "state": "100" + "state": "300" }, "path": [ "global", "dark", "icon", "color", - "100" + "300" ], "references": [ { "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f2f2f2" + "value": "#1f1f1f" }, - "name": "pf-t--color--gray--10", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", "type": "gray", - "item": "10" + "item": "90" }, "path": [ "color", "gray", - "10" + "90" ] } ] @@ -9012,103 +8862,104 @@ ] } }, - "pf-t--global--icon--color--favorite--default": { + "pf-t--global--icon--color--on-brand--accent--hover": { "default": { - "description": "Use as the icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "#ffcc17", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.color.favorite.default}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--favorite--default", + "name": "pf-t--global--icon--color--on-brand--accent--hover", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "favorite", - "state": "default" + "subitem": "on-brand", + "state": "accent" }, "path": [ "global", "icon", "color", - "favorite", - "default" + "on-brand", + "accent", + "hover" ], "references": [ { - "description": "Use as the default color for elements that have been favorited", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#ffcc17", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for elements that have been favorited", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{global.dark.color.favorite.100}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--color--favorite--default", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", - "type": "color", - "item": "favorite", - "subitem": "default" + "type": "icon", + "item": "color", + "subitem": "inverse" }, "path": [ "global", + "icon", "color", - "favorite", - "default" + "inverse" ], "references": [ { "type": "color", - "value": "#ffcc17", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.30}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--color--favorite--100", + "name": "pf-t--global--dark--icon--color--300", "attributes": { "category": "global", "type": "dark", - "item": "color", - "subitem": "favorite", - "state": "100" + "item": "icon", + "subitem": "color", + "state": "300" }, "path": [ "global", "dark", + "icon", "color", - "favorite", - "100" + "300" ], "references": [ { "type": "color", - "value": "#ffcc17", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffcc17" + "value": "#1f1f1f" }, - "name": "pf-t--color--yellow--30", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", - "type": "yellow", - "item": "30" + "type": "gray", + "item": "90" }, "path": [ "color", - "yellow", - "30" + "gray", + "90" ] } ] @@ -9118,103 +8969,104 @@ ] } }, - "pf-t--global--icon--color--favorite--hover": { + "pf-t--global--icon--color--on-brand--accent--clicked": { "default": { - "description": "Use as the hover state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "#ffe072", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.color.favorite.hover}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--favorite--hover", + "name": "pf-t--global--icon--color--on-brand--accent--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "favorite", - "state": "hover" + "subitem": "on-brand", + "state": "accent" }, "path": [ "global", "icon", "color", - "favorite", - "hover" + "on-brand", + "accent", + "clicked" ], "references": [ { - "description": "Use as the hover state for elements that have been favorited", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#ffe072", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have been favorited", + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{global.dark.color.favorite.200}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--color--favorite--hover", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", - "type": "color", - "item": "favorite", - "subitem": "hover" + "type": "icon", + "item": "color", + "subitem": "inverse" }, "path": [ "global", + "icon", "color", - "favorite", - "hover" + "inverse" ], "references": [ { "type": "color", - "value": "#ffe072", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.20}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--color--favorite--200", + "name": "pf-t--global--dark--icon--color--300", "attributes": { "category": "global", "type": "dark", - "item": "color", - "subitem": "favorite", - "state": "200" + "item": "icon", + "subitem": "color", + "state": "300" }, "path": [ "global", "dark", + "icon", "color", - "favorite", - "200" + "300" ], "references": [ { "type": "color", - "value": "#ffe072", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffe072" + "value": "#1f1f1f" }, - "name": "pf-t--color--yellow--20", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", - "type": "yellow", - "item": "20" + "type": "gray", + "item": "90" }, "path": [ "color", - "yellow", - "20" + "gray", + "90" ] } ] @@ -9224,103 +9076,104 @@ ] } }, - "pf-t--global--icon--color--favorite--clicked": { + "pf-t--global--icon--color--on-brand--subtle--default": { "default": { - "description": "Use as the clicked state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "#ffe072", + "value": "#f2f2f2", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.color.favorite.clicked}" + "value": "{global.icon.color.regular}" }, - "name": "pf-t--global--icon--color--favorite--clicked", + "name": "pf-t--global--icon--color--on-brand--subtle--default", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "favorite", - "state": "clicked" + "subitem": "on-brand", + "state": "subtle" }, "path": [ "global", "icon", "color", - "favorite", - "clicked" + "on-brand", + "subtle", + "default" ], "references": [ { - "description": "Use as the clicked state for elements that have been favorited", + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", "type": "color", - "value": "#ffe072", + "value": "#f2f2f2", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have been favorited", + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", "type": "color", - "value": "{global.dark.color.favorite.200}" + "value": "{global.dark.icon.color.100}" }, - "name": "pf-t--global--color--favorite--clicked", + "name": "pf-t--global--icon--color--regular", "attributes": { "category": "global", - "type": "color", - "item": "favorite", - "subitem": "clicked" + "type": "icon", + "item": "color", + "subitem": "regular" }, "path": [ "global", + "icon", "color", - "favorite", - "clicked" + "regular" ], "references": [ { "type": "color", - "value": "#ffe072", + "value": "#f2f2f2", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.20}" + "value": "{color.gray.10}" }, - "name": "pf-t--global--dark--color--favorite--200", + "name": "pf-t--global--dark--icon--color--100", "attributes": { "category": "global", "type": "dark", - "item": "color", - "subitem": "favorite", - "state": "200" + "item": "icon", + "subitem": "color", + "state": "100" }, "path": [ "global", "dark", + "icon", "color", - "favorite", - "200" + "100" ], "references": [ { "type": "color", - "value": "#ffe072", + "value": "#f2f2f2", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffe072" + "value": "#f2f2f2" }, - "name": "pf-t--color--yellow--20", + "name": "pf-t--color--gray--10", "attributes": { "category": "color", - "type": "yellow", - "item": "20" + "type": "gray", + "item": "10" }, "path": [ "color", - "yellow", - "20" + "gray", + "10" ] } ] @@ -9330,107 +9183,104 @@ ] } }, - "pf-t--global--icon--color--status--success--default": { + "pf-t--global--icon--color--on-brand--subtle--hover": { "default": { - "description": "Use as the default color for text that communicates a success status.", + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "#afdc8f", + "value": "#f2f2f2", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for text that communicates a success status.", + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.color.status.success.default}" + "value": "{global.icon.color.regular}" }, - "name": "pf-t--global--icon--color--status--success--default", + "name": "pf-t--global--icon--color--on-brand--subtle--hover", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "on-brand", + "state": "subtle" }, "path": [ "global", "icon", "color", - "status", - "success", - "default" + "on-brand", + "subtle", + "hover" ], "references": [ { - "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", "type": "color", - "value": "#afdc8f", + "value": "#f2f2f2", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", "type": "color", - "value": "{global.dark.color.status.success.200}" + "value": "{global.dark.icon.color.100}" }, - "name": "pf-t--global--color--status--success--default", + "name": "pf-t--global--icon--color--regular", "attributes": { "category": "global", - "type": "color", - "item": "status", - "subitem": "success", - "state": "default" + "type": "icon", + "item": "color", + "subitem": "regular" }, "path": [ "global", + "icon", "color", - "status", - "success", - "default" + "regular" ], "references": [ { "type": "color", - "value": "#afdc8f", + "value": "#f2f2f2", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.30}" + "value": "{color.gray.10}" }, - "name": "pf-t--global--dark--color--status--success--200", + "name": "pf-t--global--dark--icon--color--100", "attributes": { "category": "global", "type": "dark", - "item": "color", - "subitem": "status", - "state": "success" + "item": "icon", + "subitem": "color", + "state": "100" }, "path": [ "global", "dark", + "icon", "color", - "status", - "success", - "200" + "100" ], "references": [ { "type": "color", - "value": "#afdc8f", + "value": "#f2f2f2", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#afdc8f" + "value": "#f2f2f2" }, - "name": "pf-t--color--green--30", + "name": "pf-t--color--gray--10", "attributes": { "category": "color", - "type": "green", - "item": "30" + "type": "gray", + "item": "10" }, "path": [ "color", - "green", - "30" + "gray", + "10" ] } ] @@ -9440,107 +9290,104 @@ ] } }, - "pf-t--global--icon--color--status--success--hover": { + "pf-t--global--icon--color--on-brand--subtle--clicked": { "default": { - "description": "Use as the hover state color for text that communicates a success status.", + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "#d1f1bb", + "value": "#f2f2f2", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for text that communicates a success status.", + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.color.status.success.hover}" + "value": "{global.icon.color.regular}" }, - "name": "pf-t--global--icon--color--status--success--hover", + "name": "pf-t--global--icon--color--on-brand--subtle--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "on-brand", + "state": "subtle" }, "path": [ "global", "icon", "color", - "status", - "success", - "hover" + "on-brand", + "subtle", + "clicked" ], "references": [ { - "description": "Use as the hover state for any element that conveys a success status.", + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", "type": "color", - "value": "#d1f1bb", + "value": "#f2f2f2", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys a success status.", + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", "type": "color", - "value": "{global.dark.color.status.success.300}" + "value": "{global.dark.icon.color.100}" }, - "name": "pf-t--global--color--status--success--hover", + "name": "pf-t--global--icon--color--regular", "attributes": { "category": "global", - "type": "color", - "item": "status", - "subitem": "success", - "state": "hover" + "type": "icon", + "item": "color", + "subitem": "regular" }, "path": [ "global", + "icon", "color", - "status", - "success", - "hover" + "regular" ], "references": [ { "type": "color", - "value": "#d1f1bb", + "value": "#f2f2f2", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.20}" + "value": "{color.gray.10}" }, - "name": "pf-t--global--dark--color--status--success--300", + "name": "pf-t--global--dark--icon--color--100", "attributes": { "category": "global", "type": "dark", - "item": "color", - "subitem": "status", - "state": "success" + "item": "icon", + "subitem": "color", + "state": "100" }, "path": [ "global", "dark", + "icon", "color", - "status", - "success", - "300" + "100" ], "references": [ { "type": "color", - "value": "#d1f1bb", + "value": "#f2f2f2", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#d1f1bb" + "value": "#f2f2f2" }, - "name": "pf-t--color--green--20", + "name": "pf-t--color--gray--10", "attributes": { "category": "color", - "type": "green", - "item": "20" + "type": "gray", + "item": "10" }, "path": [ "color", - "green", - "20" + "gray", + "10" ] } ] @@ -9550,107 +9397,103 @@ ] } }, - "pf-t--global--icon--color--status--success--clicked": { + "pf-t--global--icon--color--favorite--default": { "default": { - "description": "Use as the clicked state color for text that communicates a success status.", + "description": "Use as the icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", "type": "color", - "value": "#d1f1bb", + "value": "#ffcc17", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for text that communicates a success status.", + "description": "Use as the icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", "type": "color", - "value": "{global.color.status.success.clicked}" + "value": "{global.color.favorite.default}" }, - "name": "pf-t--global--icon--color--status--success--clicked", + "name": "pf-t--global--icon--color--favorite--default", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "favorite", + "state": "default" }, "path": [ "global", "icon", "color", - "status", - "success", - "clicked" + "favorite", + "default" ], "references": [ { - "description": "Use as the clicked state for any element that conveys a success status.", + "description": "Use as the default color for elements that have been favorited", "type": "color", - "value": "#d1f1bb", + "value": "#ffcc17", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys a success status.", + "description": "Use as the default color for elements that have been favorited", "type": "color", - "value": "{global.dark.color.status.success.300}" + "value": "{global.dark.color.favorite.100}" }, - "name": "pf-t--global--color--status--success--clicked", + "name": "pf-t--global--color--favorite--default", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "clicked" + "item": "favorite", + "subitem": "default" }, "path": [ "global", "color", - "status", - "success", - "clicked" + "favorite", + "default" ], "references": [ { "type": "color", - "value": "#d1f1bb", + "value": "#ffcc17", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.20}" + "value": "{color.yellow.30}" }, - "name": "pf-t--global--dark--color--status--success--300", + "name": "pf-t--global--dark--color--favorite--100", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "favorite", + "state": "100" }, "path": [ "global", "dark", "color", - "status", - "success", - "300" + "favorite", + "100" ], "references": [ { "type": "color", - "value": "#d1f1bb", + "value": "#ffcc17", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#d1f1bb" + "value": "#ffcc17" }, - "name": "pf-t--color--green--20", + "name": "pf-t--color--yellow--30", "attributes": { "category": "color", - "type": "green", - "item": "20" + "type": "yellow", + "item": "30" }, "path": [ "color", - "green", - "20" + "yellow", + "30" ] } ] @@ -9660,104 +9503,103 @@ ] } }, - "pf-t--global--icon--color--status--on-success--default": { + "pf-t--global--icon--color--favorite--hover": { "default": { - "description": "Use as the default color for icons that are placed on a success background color and/or are paired with on-success colored text", + "description": "Use as the hover state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", "type": "color", - "value": "#1f1f1f", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that are placed on a success background color and/or are paired with on-success colored text", + "description": "Use as the hover state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.color.favorite.hover}" }, - "name": "pf-t--global--icon--color--status--on-success--default", + "name": "pf-t--global--icon--color--favorite--hover", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "status", - "state": "on-success" + "subitem": "favorite", + "state": "hover" }, "path": [ "global", "icon", "color", - "status", - "on-success", - "default" + "favorite", + "hover" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the hover state for elements that have been favorited", "type": "color", - "value": "#1f1f1f", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the hover state for elements that have been favorited", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{global.dark.color.favorite.200}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--color--favorite--hover", "attributes": { "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" + "type": "color", + "item": "favorite", + "subitem": "hover" }, "path": [ "global", - "icon", "color", - "inverse" + "favorite", + "hover" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "{color.yellow.20}" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--global--dark--color--favorite--200", "attributes": { "category": "global", "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "item": "color", + "subitem": "favorite", + "state": "200" }, "path": [ "global", "dark", - "icon", "color", - "300" + "favorite", + "200" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "#ffe072" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--color--yellow--20", "attributes": { "category": "color", - "type": "gray", - "item": "90" + "type": "yellow", + "item": "20" }, "path": [ "color", - "gray", - "90" + "yellow", + "20" ] } ] @@ -9767,104 +9609,103 @@ ] } }, - "pf-t--global--icon--color--status--on-success--hover": { + "pf-t--global--icon--color--favorite--clicked": { "default": { - "description": "Use as the hover state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "description": "Use as the clicked state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", "type": "color", - "value": "#1f1f1f", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "description": "Use as the clicked state icon color for icons that have been favorited (this color is typically applied to the star or favorite icon)", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.color.favorite.clicked}" }, - "name": "pf-t--global--icon--color--status--on-success--hover", + "name": "pf-t--global--icon--color--favorite--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "status", - "state": "on-success" + "subitem": "favorite", + "state": "clicked" }, "path": [ "global", "icon", "color", - "status", - "on-success", - "hover" + "favorite", + "clicked" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the clicked state for elements that have been favorited", "type": "color", - "value": "#1f1f1f", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the clicked state for elements that have been favorited", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{global.dark.color.favorite.200}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--color--favorite--clicked", "attributes": { "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" + "type": "color", + "item": "favorite", + "subitem": "clicked" }, "path": [ "global", - "icon", "color", - "inverse" + "favorite", + "clicked" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "{color.yellow.20}" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--global--dark--color--favorite--200", "attributes": { "category": "global", "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "item": "color", + "subitem": "favorite", + "state": "200" }, "path": [ "global", "dark", - "icon", "color", - "300" + "favorite", + "200" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "#ffe072" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--color--yellow--20", "attributes": { "category": "color", - "type": "gray", - "item": "90" + "type": "yellow", + "item": "20" }, "path": [ "color", - "gray", - "90" + "yellow", + "20" ] } ] @@ -9874,104 +9715,107 @@ ] } }, - "pf-t--global--icon--color--status--on-success--clicked": { + "pf-t--global--icon--color--status--success--default": { "default": { - "description": "Use as the clicked state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "description": "Use as the default color for text that communicates a success status.", "type": "color", - "value": "#1f1f1f", + "value": "#afdc8f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for icons that are placed on a success background color and/or are paired with on-success colored text", + "description": "Use as the default color for text that communicates a success status.", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.color.status.success.default}" }, - "name": "pf-t--global--icon--color--status--on-success--clicked", + "name": "pf-t--global--icon--color--status--success--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-success" + "state": "success" }, "path": [ "global", "icon", "color", "status", - "on-success", - "clicked" + "success", + "default" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", "type": "color", - "value": "#1f1f1f", + "value": "#afdc8f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{global.dark.color.status.success.200}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--color--status--success--default", "attributes": { "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" + "type": "color", + "item": "status", + "subitem": "success", + "state": "default" }, "path": [ "global", - "icon", "color", - "inverse" + "status", + "success", + "default" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#afdc8f", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "{color.green.30}" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--global--dark--color--status--success--200", "attributes": { "category": "global", "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "item": "color", + "subitem": "status", + "state": "success" }, "path": [ "global", "dark", - "icon", "color", - "300" + "status", + "success", + "200" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#afdc8f", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "#afdc8f" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--color--green--30", "attributes": { "category": "color", - "type": "gray", - "item": "90" + "type": "green", + "item": "30" }, "path": [ "color", - "gray", - "90" + "green", + "30" ] } ] @@ -9981,216 +9825,106 @@ ] } }, - "pf-t--global--icon--color--status--warning--default": { + "pf-t--global--icon--color--status--success--hover": { "default": { - "description": "Use as the default color for text that communicates a warning status.", + "description": "Use as the hover state color for text that communicates a success status.", "type": "color", - "value": "#ffcc17", + "value": "#d1f1bb", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for text that communicates a warning status.", + "description": "Use as the hover state color for text that communicates a success status.", "type": "color", - "value": "{global.color.status.warning.default}" + "value": "{global.color.status.success.hover}" }, - "name": "pf-t--global--icon--color--status--warning--default", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "status", - "state": "warning" - }, - "path": [ - "global", - "icon", - "color", - "status", - "warning", - "default" - ], - "references": [ - { - "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", - "type": "color", - "value": "#ffcc17", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", - "isSource": true, - "original": { - "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", - "type": "color", - "value": "{global.dark.color.status.warning.100}" - }, - "name": "pf-t--global--color--status--warning--default", - "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "warning", - "state": "default" - }, - "path": [ - "global", - "color", - "status", - "warning", - "default" - ], - "references": [ - { - "type": "color", - "value": "#ffcc17", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.yellow.30}" - }, - "name": "pf-t--global--dark--color--status--warning--100", - "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "status", - "state": "warning" - }, - "path": [ - "global", - "dark", - "color", - "status", - "warning", - "100" - ], - "references": [ - { - "type": "color", - "value": "#ffcc17", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#ffcc17" - }, - "name": "pf-t--color--yellow--30", - "attributes": { - "category": "color", - "type": "yellow", - "item": "30" - }, - "path": [ - "color", - "yellow", - "30" - ] - } - ] - } - ] - } - ] - } - }, - "pf-t--global--icon--color--status--warning--hover": { - "default": { - "description": "Use as the hover state color for text that communicates a warning status.", - "type": "color", - "value": "#ffe072", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", - "isSource": true, - "original": { - "description": "Use as the hover state color for text that communicates a warning status.", - "type": "color", - "value": "{global.color.status.warning.hover}" - }, - "name": "pf-t--global--icon--color--status--warning--hover", + "name": "pf-t--global--icon--color--status--success--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "warning" + "state": "success" }, "path": [ "global", "icon", "color", "status", - "warning", + "success", "hover" ], "references": [ { - "description": "Use as the hover state for any element that conveys a warning status.", + "description": "Use as the hover state for any element that conveys a success status.", "type": "color", - "value": "#ffe072", + "value": "#d1f1bb", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys a warning status.", + "description": "Use as the hover state for any element that conveys a success status.", "type": "color", - "value": "{global.dark.color.status.warning.200}" + "value": "{global.dark.color.status.success.300}" }, - "name": "pf-t--global--color--status--warning--hover", + "name": "pf-t--global--color--status--success--hover", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "warning", + "subitem": "success", "state": "hover" }, "path": [ "global", "color", "status", - "warning", + "success", "hover" ], "references": [ { "type": "color", - "value": "#ffe072", + "value": "#d1f1bb", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.20}" + "value": "{color.green.20}" }, - "name": "pf-t--global--dark--color--status--warning--200", + "name": "pf-t--global--dark--color--status--success--300", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "warning" + "state": "success" }, "path": [ "global", "dark", "color", "status", - "warning", - "200" + "success", + "300" ], "references": [ { "type": "color", - "value": "#ffe072", + "value": "#d1f1bb", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffe072" + "value": "#d1f1bb" }, - "name": "pf-t--color--yellow--20", + "name": "pf-t--color--green--20", "attributes": { "category": "color", - "type": "yellow", + "type": "green", "item": "20" }, "path": [ "color", - "yellow", + "green", "20" ] } @@ -10201,106 +9935,106 @@ ] } }, - "pf-t--global--icon--color--status--warning--clicked": { + "pf-t--global--icon--color--status--success--clicked": { "default": { - "description": "Use as the clicked state color for text that communicates a warning status.", + "description": "Use as the clicked state color for text that communicates a success status.", "type": "color", - "value": "#ffe072", + "value": "#d1f1bb", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for text that communicates a warning status.", + "description": "Use as the clicked state color for text that communicates a success status.", "type": "color", - "value": "{global.color.status.warning.clicked}" + "value": "{global.color.status.success.clicked}" }, - "name": "pf-t--global--icon--color--status--warning--clicked", + "name": "pf-t--global--icon--color--status--success--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "warning" + "state": "success" }, "path": [ "global", "icon", "color", "status", - "warning", + "success", "clicked" ], "references": [ { - "description": "Use as the clicked state for any element that conveys a warning status.", + "description": "Use as the clicked state for any element that conveys a success status.", "type": "color", - "value": "#ffe072", + "value": "#d1f1bb", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys a warning status.", + "description": "Use as the clicked state for any element that conveys a success status.", "type": "color", - "value": "{global.dark.color.status.warning.200}" + "value": "{global.dark.color.status.success.300}" }, - "name": "pf-t--global--color--status--warning--clicked", + "name": "pf-t--global--color--status--success--clicked", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "warning", + "subitem": "success", "state": "clicked" }, "path": [ "global", "color", "status", - "warning", + "success", "clicked" ], "references": [ { "type": "color", - "value": "#ffe072", + "value": "#d1f1bb", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.20}" + "value": "{color.green.20}" }, - "name": "pf-t--global--dark--color--status--warning--200", + "name": "pf-t--global--dark--color--status--success--300", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "warning" + "state": "success" }, "path": [ "global", "dark", "color", "status", - "warning", - "200" + "success", + "300" ], "references": [ { "type": "color", - "value": "#ffe072", + "value": "#d1f1bb", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffe072" + "value": "#d1f1bb" }, - "name": "pf-t--color--yellow--20", + "name": "pf-t--color--green--20", "attributes": { "category": "color", - "type": "yellow", + "type": "green", "item": "20" }, "path": [ "color", - "yellow", + "green", "20" ] } @@ -10311,32 +10045,32 @@ ] } }, - "pf-t--global--icon--color--status--on-warning--default": { + "pf-t--global--icon--color--status--on-success--default": { "default": { - "description": "Use as the default color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "description": "Use as the default color for icons that are placed on a success background color and/or are paired with on-success colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "description": "Use as the default color for icons that are placed on a success background color and/or are paired with on-success colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-warning--default", + "name": "pf-t--global--icon--color--status--on-success--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-warning" + "state": "on-success" }, "path": [ "global", "icon", "color", "status", - "on-warning", + "on-success", "default" ], "references": [ @@ -10418,32 +10152,32 @@ ] } }, - "pf-t--global--icon--color--status--on-warning--hover": { + "pf-t--global--icon--color--status--on-success--hover": { "default": { - "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "description": "Use as the hover state color for icons that are placed on a success background color and/or are paired with on-success colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "description": "Use as the hover state color for icons that are placed on a success background color and/or are paired with on-success colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-warning--hover", + "name": "pf-t--global--icon--color--status--on-success--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-warning" + "state": "on-success" }, "path": [ "global", "icon", "color", "status", - "on-warning", + "on-success", "hover" ], "references": [ @@ -10525,32 +10259,32 @@ ] } }, - "pf-t--global--icon--color--status--on-warning--clicked": { + "pf-t--global--icon--color--status--on-success--clicked": { "default": { - "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "description": "Use as the clicked state color for icons that are placed on a success background color and/or are paired with on-success colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", + "description": "Use as the clicked state color for icons that are placed on a success background color and/or are paired with on-success colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-warning--clicked", + "name": "pf-t--global--icon--color--status--on-success--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-warning" + "state": "on-success" }, "path": [ "global", "icon", "color", "status", - "on-warning", + "on-success", "clicked" ], "references": [ @@ -10632,107 +10366,107 @@ ] } }, - "pf-t--global--icon--color--status--danger--default": { + "pf-t--global--icon--color--status--warning--default": { "default": { - "description": "Use as the default color for icons that convey danger, like in alerts or banners.", + "description": "Use as the default color for text that communicates a warning status.", "type": "color", - "value": "#f4784a", + "value": "#ffcc17", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that convey danger, like in alerts or banners.", + "description": "Use as the default color for text that communicates a warning status.", "type": "color", - "value": "{global.color.status.danger.default}" + "value": "{global.color.status.warning.default}" }, - "name": "pf-t--global--icon--color--status--danger--default", + "name": "pf-t--global--icon--color--status--warning--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "danger" + "state": "warning" }, "path": [ "global", "icon", "color", "status", - "danger", + "warning", "default" ], "references": [ { - "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", "type": "color", - "value": "#f4784a", + "value": "#ffcc17", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", "type": "color", - "value": "{global.dark.color.status.danger.200}" + "value": "{global.dark.color.status.warning.100}" }, - "name": "pf-t--global--color--status--danger--default", + "name": "pf-t--global--color--status--warning--default", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "danger", + "subitem": "warning", "state": "default" }, "path": [ "global", "color", "status", - "danger", + "warning", "default" ], "references": [ { "type": "color", - "value": "#f4784a", + "value": "#ffcc17", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.40}" + "value": "{color.yellow.30}" }, - "name": "pf-t--global--dark--color--status--danger--200", + "name": "pf-t--global--dark--color--status--warning--100", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "danger" + "state": "warning" }, "path": [ "global", "dark", "color", "status", - "danger", - "200" + "warning", + "100" ], "references": [ { "type": "color", - "value": "#f4784a", + "value": "#ffcc17", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f4784a" + "value": "#ffcc17" }, - "name": "pf-t--color--red-orange--40", + "name": "pf-t--color--yellow--30", "attributes": { "category": "color", - "type": "red-orange", - "item": "40" + "type": "yellow", + "item": "30" }, "path": [ "color", - "red-orange", - "40" + "yellow", + "30" ] } ] @@ -10742,107 +10476,107 @@ ] } }, - "pf-t--global--icon--color--status--danger--hover": { + "pf-t--global--icon--color--status--warning--hover": { "default": { - "description": "Use as the hover state for icons that indicate danger.", + "description": "Use as the hover state color for text that communicates a warning status.", "type": "color", - "value": "#f89b78", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for icons that indicate danger.", + "description": "Use as the hover state color for text that communicates a warning status.", "type": "color", - "value": "{global.color.status.danger.hover}" + "value": "{global.color.status.warning.hover}" }, - "name": "pf-t--global--icon--color--status--danger--hover", + "name": "pf-t--global--icon--color--status--warning--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "danger" + "state": "warning" }, "path": [ "global", "icon", "color", "status", - "danger", + "warning", "hover" ], "references": [ { - "description": "Use as the hover state for any element that conveys a danger status.", + "description": "Use as the hover state for any element that conveys a warning status.", "type": "color", - "value": "#f89b78", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys a danger status.", + "description": "Use as the hover state for any element that conveys a warning status.", "type": "color", - "value": "{global.dark.color.status.danger.250}" + "value": "{global.dark.color.status.warning.200}" }, - "name": "pf-t--global--color--status--danger--hover", + "name": "pf-t--global--color--status--warning--hover", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "danger", + "subitem": "warning", "state": "hover" }, "path": [ "global", "color", "status", - "danger", + "warning", "hover" ], "references": [ { "type": "color", - "value": "#f89b78", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.30}" + "value": "{color.yellow.20}" }, - "name": "pf-t--global--dark--color--status--danger--250", + "name": "pf-t--global--dark--color--status--warning--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "danger" + "state": "warning" }, "path": [ "global", "dark", "color", "status", - "danger", - "250" + "warning", + "200" ], "references": [ { "type": "color", - "value": "#f89b78", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f89b78" + "value": "#ffe072" }, - "name": "pf-t--color--red-orange--30", + "name": "pf-t--color--yellow--20", "attributes": { "category": "color", - "type": "red-orange", - "item": "30" + "type": "yellow", + "item": "20" }, "path": [ "color", - "red-orange", - "30" + "yellow", + "20" ] } ] @@ -10852,107 +10586,107 @@ ] } }, - "pf-t--global--icon--color--status--danger--clicked": { + "pf-t--global--icon--color--status--warning--clicked": { "default": { - "description": "Use as the clicked state for icons that indicate danger.", + "description": "Use as the clicked state color for text that communicates a warning status.", "type": "color", - "value": "#f89b78", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for icons that indicate danger.", + "description": "Use as the clicked state color for text that communicates a warning status.", "type": "color", - "value": "{global.color.status.danger.clicked}" + "value": "{global.color.status.warning.clicked}" }, - "name": "pf-t--global--icon--color--status--danger--clicked", + "name": "pf-t--global--icon--color--status--warning--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "danger" + "state": "warning" }, "path": [ "global", "icon", "color", "status", - "danger", + "warning", "clicked" ], "references": [ { - "description": "Use as the clicked state for any element that conveys a danger status.", + "description": "Use as the clicked state for any element that conveys a warning status.", "type": "color", - "value": "#f89b78", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys a danger status.", + "description": "Use as the clicked state for any element that conveys a warning status.", "type": "color", - "value": "{global.dark.color.status.danger.250}" + "value": "{global.dark.color.status.warning.200}" }, - "name": "pf-t--global--color--status--danger--clicked", + "name": "pf-t--global--color--status--warning--clicked", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "danger", + "subitem": "warning", "state": "clicked" }, "path": [ "global", "color", "status", - "danger", + "warning", "clicked" ], "references": [ { "type": "color", - "value": "#f89b78", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.30}" + "value": "{color.yellow.20}" }, - "name": "pf-t--global--dark--color--status--danger--250", + "name": "pf-t--global--dark--color--status--warning--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "danger" + "state": "warning" }, "path": [ "global", "dark", "color", "status", - "danger", - "250" + "warning", + "200" ], "references": [ { "type": "color", - "value": "#f89b78", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f89b78" + "value": "#ffe072" }, - "name": "pf-t--color--red-orange--30", + "name": "pf-t--color--yellow--20", "attributes": { "category": "color", - "type": "red-orange", - "item": "30" + "type": "yellow", + "item": "20" }, "path": [ "color", - "red-orange", - "30" + "yellow", + "20" ] } ] @@ -10962,32 +10696,32 @@ ] } }, - "pf-t--global--icon--color--status--on-danger--default": { + "pf-t--global--icon--color--status--on-warning--default": { "default": { - "description": "Use as the default color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "description": "Use as the default color for icons that are placed on a warning background color and/or are paired with on-warning colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "description": "Use as the default color for icons that are placed on a warning background color and/or are paired with on-warning colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-danger--default", + "name": "pf-t--global--icon--color--status--on-warning--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-danger" + "state": "on-warning" }, "path": [ "global", "icon", "color", "status", - "on-danger", + "on-warning", "default" ], "references": [ @@ -11069,32 +10803,32 @@ ] } }, - "pf-t--global--icon--color--status--on-danger--hover": { + "pf-t--global--icon--color--status--on-warning--hover": { "default": { - "description": "Use as the hover state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-danger--hover", + "name": "pf-t--global--icon--color--status--on-warning--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-danger" + "state": "on-warning" }, "path": [ "global", "icon", "color", "status", - "on-danger", + "on-warning", "hover" ], "references": [ @@ -11176,32 +10910,32 @@ ] } }, - "pf-t--global--icon--color--status--on-danger--clicked": { + "pf-t--global--icon--color--status--on-warning--clicked": { "default": { - "description": "Use as the clicked state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", + "description": "Use as the hover state color for icons that are placed on a warning background color and/or are paired with on-warning colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-danger--clicked", + "name": "pf-t--global--icon--color--status--on-warning--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-danger" + "state": "on-warning" }, "path": [ "global", "icon", "color", "status", - "on-danger", + "on-warning", "clicked" ], "references": [ @@ -11283,107 +11017,107 @@ ] } }, - "pf-t--global--icon--color--status--info--default": { + "pf-t--global--icon--color--status--danger--default": { "default": { - "description": "Use as the default color for icons that identify informational messages, like in alerts or banners.", + "description": "Use as the default color for icons that convey danger, like in alerts or banners.", "type": "color", - "value": "#b6a6e9", + "value": "#f4784a", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that identify informational messages, like in alerts or banners.", + "description": "Use as the default color for icons that convey danger, like in alerts or banners.", "type": "color", - "value": "{global.color.status.info.default}" + "value": "{global.color.status.danger.default}" }, - "name": "pf-t--global--icon--color--status--info--default", + "name": "pf-t--global--icon--color--status--danger--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "info" + "state": "danger" }, "path": [ "global", "icon", "color", "status", - "info", + "danger", "default" ], "references": [ { - "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "#b6a6e9", + "value": "#f4784a", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "{global.dark.color.status.info.100}" + "value": "{global.dark.color.status.danger.200}" }, - "name": "pf-t--global--color--status--info--default", + "name": "pf-t--global--color--status--danger--default", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", + "subitem": "danger", "state": "default" }, "path": [ "global", "color", "status", - "info", + "danger", "default" ], "references": [ { "type": "color", - "value": "#b6a6e9", + "value": "#f4784a", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.30}" + "value": "{color.red-orange.40}" }, - "name": "pf-t--global--dark--color--status--info--100", + "name": "pf-t--global--dark--color--status--danger--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "info" + "state": "danger" }, "path": [ "global", "dark", "color", "status", - "info", - "100" + "danger", + "200" ], "references": [ { "type": "color", - "value": "#b6a6e9", + "value": "#f4784a", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b6a6e9" + "value": "#f4784a" }, - "name": "pf-t--color--purple--30", + "name": "pf-t--color--red-orange--40", "attributes": { "category": "color", - "type": "purple", - "item": "30" + "type": "red-orange", + "item": "40" }, "path": [ "color", - "purple", - "30" + "red-orange", + "40" ] } ] @@ -11393,107 +11127,107 @@ ] } }, - "pf-t--global--icon--color--status--info--hover": { + "pf-t--global--icon--color--status--danger--hover": { "default": { - "description": "Use as the hover state for icons that identify informational messages.", + "description": "Use as the hover state for icons that indicate danger.", "type": "color", - "value": "#d0c5f4", + "value": "#f89b78", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for icons that identify informational messages.", + "description": "Use as the hover state for icons that indicate danger.", "type": "color", - "value": "{global.color.status.info.hover}" + "value": "{global.color.status.danger.hover}" }, - "name": "pf-t--global--icon--color--status--info--hover", + "name": "pf-t--global--icon--color--status--danger--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "info" + "state": "danger" }, "path": [ "global", "icon", "color", "status", - "info", + "danger", "hover" ], "references": [ { - "description": "Use as the hover state for any element that conveys an info status.", + "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "#d0c5f4", + "value": "#f89b78", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys an info status.", + "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "{global.dark.color.status.info.200}" + "value": "{global.dark.color.status.danger.250}" }, - "name": "pf-t--global--color--status--info--hover", + "name": "pf-t--global--color--status--danger--hover", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", + "subitem": "danger", "state": "hover" }, "path": [ "global", "color", "status", - "info", + "danger", "hover" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#f89b78", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.20}" + "value": "{color.red-orange.30}" }, - "name": "pf-t--global--dark--color--status--info--200", + "name": "pf-t--global--dark--color--status--danger--250", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "info" + "state": "danger" }, "path": [ "global", "dark", "color", "status", - "info", - "200" + "danger", + "250" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#f89b78", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#d0c5f4" + "value": "#f89b78" }, - "name": "pf-t--color--purple--20", + "name": "pf-t--color--red-orange--30", "attributes": { "category": "color", - "type": "purple", - "item": "20" + "type": "red-orange", + "item": "30" }, "path": [ "color", - "purple", - "20" + "red-orange", + "30" ] } ] @@ -11503,107 +11237,107 @@ ] } }, - "pf-t--global--icon--color--status--info--clicked": { + "pf-t--global--icon--color--status--danger--clicked": { "default": { - "description": "Use as the clicked state for icons that identify informational messages.", + "description": "Use as the clicked state for icons that indicate danger.", "type": "color", - "value": "#d0c5f4", + "value": "#f89b78", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for icons that identify informational messages.", + "description": "Use as the clicked state for icons that indicate danger.", "type": "color", - "value": "{global.color.status.info.clicked}" + "value": "{global.color.status.danger.clicked}" }, - "name": "pf-t--global--icon--color--status--info--clicked", + "name": "pf-t--global--icon--color--status--danger--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "info" + "state": "danger" }, "path": [ "global", "icon", "color", "status", - "info", + "danger", "clicked" ], "references": [ { - "description": "Use as the clicked state for any element that conveys an info status.", + "description": "Use as the clicked state for any element that conveys a danger status.", "type": "color", - "value": "#d0c5f4", + "value": "#f89b78", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys an info status.", + "description": "Use as the clicked state for any element that conveys a danger status.", "type": "color", - "value": "{global.dark.color.status.info.200}" + "value": "{global.dark.color.status.danger.250}" }, - "name": "pf-t--global--color--status--info--clicked", + "name": "pf-t--global--color--status--danger--clicked", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", + "subitem": "danger", "state": "clicked" }, "path": [ "global", "color", "status", - "info", + "danger", "clicked" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#f89b78", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.20}" + "value": "{color.red-orange.30}" }, - "name": "pf-t--global--dark--color--status--info--200", + "name": "pf-t--global--dark--color--status--danger--250", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "info" + "state": "danger" }, "path": [ "global", "dark", "color", "status", - "info", - "200" + "danger", + "250" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#f89b78", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#d0c5f4" + "value": "#f89b78" }, - "name": "pf-t--color--purple--20", + "name": "pf-t--color--red-orange--30", "attributes": { "category": "color", - "type": "purple", - "item": "20" + "type": "red-orange", + "item": "30" }, "path": [ "color", - "purple", - "20" + "red-orange", + "30" ] } ] @@ -11613,32 +11347,32 @@ ] } }, - "pf-t--global--icon--color--status--on-info--default": { + "pf-t--global--icon--color--status--on-danger--default": { "default": { - "description": "Use as the default color for icons that are placed on an info background color and/or are paired with on-info colored text", + "description": "Use as the default color for icons that are placed on a danger background color and/or are paired with on-danger colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that are placed on an info background color and/or are paired with on-info colored text", + "description": "Use as the default color for icons that are placed on a danger background color and/or are paired with on-danger colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-info--default", + "name": "pf-t--global--icon--color--status--on-danger--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-info" + "state": "on-danger" }, "path": [ "global", "icon", "color", "status", - "on-info", + "on-danger", "default" ], "references": [ @@ -11720,32 +11454,32 @@ ] } }, - "pf-t--global--icon--color--status--on-info--hover": { + "pf-t--global--icon--color--status--on-danger--hover": { "default": { - "description": "Use as the hover state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "description": "Use as the hover state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "description": "Use as the hover state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-info--hover", + "name": "pf-t--global--icon--color--status--on-danger--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-info" + "state": "on-danger" }, "path": [ "global", "icon", "color", "status", - "on-info", + "on-danger", "hover" ], "references": [ @@ -11827,32 +11561,32 @@ ] } }, - "pf-t--global--icon--color--status--on-info--clicked": { + "pf-t--global--icon--color--status--on-danger--clicked": { "default": { - "description": "Use as the clicked state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "description": "Use as the clicked state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for icons that are placed on an info background color and/or are paired with on-info colored text", + "description": "Use as the clicked state color for icons that are placed on a danger background color and/or are paired with on-danger colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-info--clicked", + "name": "pf-t--global--icon--color--status--on-danger--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-info" + "state": "on-danger" }, "path": [ "global", "icon", "color", "status", - "on-info", + "on-danger", "clicked" ], "references": [ @@ -11934,106 +11668,106 @@ ] } }, - "pf-t--global--icon--color--status--custom--default": { + "pf-t--global--icon--color--status--info--default": { "default": { - "description": "Use as the default color for icons that convey generic status with no associated severity. This color can be customized.", + "description": "Use as the default color for icons that identify informational messages, like in alerts or banners.", "type": "color", - "value": "#9ad8d8", + "value": "#b6a6e9", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that convey generic status with no associated severity. This color can be customized.", + "description": "Use as the default color for icons that identify informational messages, like in alerts or banners.", "type": "color", - "value": "{global.color.status.custom.default}" + "value": "{global.color.status.info.default}" }, - "name": "pf-t--global--icon--color--status--custom--default", + "name": "pf-t--global--icon--color--status--info--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "custom" + "state": "info" }, "path": [ "global", "icon", "color", "status", - "custom", + "info", "default" ], "references": [ { - "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "#9ad8d8", + "value": "#b6a6e9", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "{global.dark.color.status.custom.200}" + "value": "{global.dark.color.status.info.100}" }, - "name": "pf-t--global--color--status--custom--default", + "name": "pf-t--global--color--status--info--default", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", + "subitem": "info", "state": "default" }, "path": [ "global", "color", "status", - "custom", + "info", "default" ], "references": [ { "type": "color", - "value": "#9ad8d8", + "value": "#b6a6e9", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.30}" + "value": "{color.purple.30}" }, - "name": "pf-t--global--dark--color--status--custom--200", + "name": "pf-t--global--dark--color--status--info--100", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "custom" + "state": "info" }, "path": [ "global", "dark", "color", "status", - "custom", - "200" + "info", + "100" ], "references": [ { "type": "color", - "value": "#9ad8d8", + "value": "#b6a6e9", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#9ad8d8" + "value": "#b6a6e9" }, - "name": "pf-t--color--teal--30", + "name": "pf-t--color--purple--30", "attributes": { "category": "color", - "type": "teal", + "type": "purple", "item": "30" }, "path": [ "color", - "teal", + "purple", "30" ] } @@ -12044,106 +11778,106 @@ ] } }, - "pf-t--global--icon--color--status--custom--hover": { + "pf-t--global--icon--color--status--info--hover": { "default": { - "description": "Use as the hover state for icons that convey generic status with no associated severity.", + "description": "Use as the hover state for icons that identify informational messages.", "type": "color", - "value": "#b9e5e5", + "value": "#d0c5f4", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for icons that convey generic status with no associated severity.", + "description": "Use as the hover state for icons that identify informational messages.", "type": "color", - "value": "{global.color.status.custom.hover}" + "value": "{global.color.status.info.hover}" }, - "name": "pf-t--global--icon--color--status--custom--hover", + "name": "pf-t--global--icon--color--status--info--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "custom" + "state": "info" }, "path": [ "global", "icon", "color", "status", - "custom", + "info", "hover" ], "references": [ { - "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "#b9e5e5", + "value": "#d0c5f4", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "{global.dark.color.status.custom.300}" + "value": "{global.dark.color.status.info.200}" }, - "name": "pf-t--global--color--status--custom--hover", + "name": "pf-t--global--color--status--info--hover", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", + "subitem": "info", "state": "hover" }, "path": [ "global", "color", "status", - "custom", + "info", "hover" ], "references": [ { "type": "color", - "value": "#b9e5e5", + "value": "#d0c5f4", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.20}" + "value": "{color.purple.20}" }, - "name": "pf-t--global--dark--color--status--custom--300", + "name": "pf-t--global--dark--color--status--info--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "custom" + "state": "info" }, "path": [ "global", "dark", "color", "status", - "custom", - "300" + "info", + "200" ], "references": [ { "type": "color", - "value": "#b9e5e5", + "value": "#d0c5f4", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b9e5e5" + "value": "#d0c5f4" }, - "name": "pf-t--color--teal--20", + "name": "pf-t--color--purple--20", "attributes": { "category": "color", - "type": "teal", + "type": "purple", "item": "20" }, "path": [ "color", - "teal", + "purple", "20" ] } @@ -12154,106 +11888,106 @@ ] } }, - "pf-t--global--icon--color--status--custom--clicked": { + "pf-t--global--icon--color--status--info--clicked": { "default": { - "description": "Use as the clicked state for icons that convey generic status with no associated severity.", + "description": "Use as the clicked state for icons that identify informational messages.", "type": "color", - "value": "#b9e5e5", + "value": "#d0c5f4", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for icons that convey generic status with no associated severity.", + "description": "Use as the clicked state for icons that identify informational messages.", "type": "color", - "value": "{global.color.status.custom.clicked}" + "value": "{global.color.status.info.clicked}" }, - "name": "pf-t--global--icon--color--status--custom--clicked", + "name": "pf-t--global--icon--color--status--info--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "custom" + "state": "info" }, "path": [ "global", "icon", "color", "status", - "custom", + "info", "clicked" ], "references": [ { - "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "#b9e5e5", + "value": "#d0c5f4", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "{global.dark.color.status.custom.300}" + "value": "{global.dark.color.status.info.200}" }, - "name": "pf-t--global--color--status--custom--clicked", + "name": "pf-t--global--color--status--info--clicked", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", + "subitem": "info", "state": "clicked" }, "path": [ "global", "color", "status", - "custom", + "info", "clicked" ], "references": [ { "type": "color", - "value": "#b9e5e5", + "value": "#d0c5f4", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.20}" + "value": "{color.purple.20}" }, - "name": "pf-t--global--dark--color--status--custom--300", + "name": "pf-t--global--dark--color--status--info--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "custom" + "state": "info" }, "path": [ "global", "dark", "color", "status", - "custom", - "300" + "info", + "200" ], "references": [ { "type": "color", - "value": "#b9e5e5", + "value": "#d0c5f4", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b9e5e5" + "value": "#d0c5f4" }, - "name": "pf-t--color--teal--20", + "name": "pf-t--color--purple--20", "attributes": { "category": "color", - "type": "teal", + "type": "purple", "item": "20" }, "path": [ "color", - "teal", + "purple", "20" ] } @@ -12264,32 +11998,32 @@ ] } }, - "pf-t--global--icon--color--status--on-custom--default": { + "pf-t--global--icon--color--status--on-info--default": { "default": { - "description": "Use as the default color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status color, make sure that this token meets contrast requirements with your new custom status color.", + "description": "Use as the default color for icons that are placed on an info background color and/or are paired with on-info colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status color, make sure that this token meets contrast requirements with your new custom status color.", + "description": "Use as the default color for icons that are placed on an info background color and/or are paired with on-info colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-custom--default", + "name": "pf-t--global--icon--color--status--on-info--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-custom" + "state": "on-info" }, "path": [ "global", "icon", "color", "status", - "on-custom", + "on-info", "default" ], "references": [ @@ -12371,32 +12105,32 @@ ] } }, - "pf-t--global--icon--color--status--on-custom--hover": { + "pf-t--global--icon--color--status--on-info--hover": { "default": { - "description": "Use as the hover state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status hover color, make sure that this token meets contrast requirements with your new custom status hover color.", + "description": "Use as the hover state color for icons that are placed on an info background color and/or are paired with on-info colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status hover color, make sure that this token meets contrast requirements with your new custom status hover color.", + "description": "Use as the hover state color for icons that are placed on an info background color and/or are paired with on-info colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-custom--hover", + "name": "pf-t--global--icon--color--status--on-info--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-custom" + "state": "on-info" }, "path": [ "global", "icon", "color", "status", - "on-custom", + "on-info", "hover" ], "references": [ @@ -12478,32 +12212,32 @@ ] } }, - "pf-t--global--icon--color--status--on-custom--clicked": { + "pf-t--global--icon--color--status--on-info--clicked": { "default": { - "description": "Use as the clicked state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status clicked color, make sure that this token meets contrast requirements with your new custom status clicked color.", + "description": "Use as the clicked state color for icons that are placed on an info background color and/or are paired with on-info colored text", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status clicked color, make sure that this token meets contrast requirements with your new custom status clicked color.", + "description": "Use as the clicked state color for icons that are placed on an info background color and/or are paired with on-info colored text", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--on-custom--clicked", + "name": "pf-t--global--icon--color--status--on-info--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "on-custom" + "state": "on-info" }, "path": [ "global", "icon", "color", "status", - "on-custom", + "on-info", "clicked" ], "references": [ @@ -12585,105 +12319,107 @@ ] } }, - "pf-t--global--icon--color--status--unread--on-default--default": { + "pf-t--global--icon--color--status--custom--default": { "default": { - "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "description": "Use as the default color for icons that convey generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#1f1f1f", + "value": "#9ad8d8", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "description": "Use as the default color for icons that convey generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.color.status.custom.default}" }, - "name": "pf-t--global--icon--color--status--unread--on-default--default", + "name": "pf-t--global--icon--color--status--custom--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "unread" + "state": "custom" }, "path": [ "global", "icon", "color", "status", - "unread", - "on-default", + "custom", "default" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#1f1f1f", + "value": "#9ad8d8", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{global.dark.color.status.custom.200}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--color--status--custom--default", "attributes": { "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" }, "path": [ "global", - "icon", "color", - "inverse" + "status", + "custom", + "default" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#9ad8d8", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "{color.teal.30}" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--global--dark--color--status--custom--200", "attributes": { "category": "global", "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "item": "color", + "subitem": "status", + "state": "custom" }, "path": [ "global", "dark", - "icon", "color", - "300" + "status", + "custom", + "200" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#9ad8d8", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "#9ad8d8" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--color--teal--30", "attributes": { "category": "color", - "type": "gray", - "item": "90" + "type": "teal", + "item": "30" }, "path": [ "color", - "gray", - "90" + "teal", + "30" ] } ] @@ -12693,105 +12429,107 @@ ] } }, - "pf-t--global--icon--color--status--unread--on-default--hover": { + "pf-t--global--icon--color--status--custom--hover": { "default": { - "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "description": "Use as the hover state for icons that convey generic status with no associated severity.", "type": "color", - "value": "#1f1f1f", + "value": "#b9e5e5", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "description": "Use as the hover state for icons that convey generic status with no associated severity.", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.color.status.custom.hover}" }, - "name": "pf-t--global--icon--color--status--unread--on-default--hover", + "name": "pf-t--global--icon--color--status--custom--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "unread" + "state": "custom" }, "path": [ "global", "icon", "color", "status", - "unread", - "on-default", + "custom", "hover" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#1f1f1f", + "value": "#b9e5e5", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{global.dark.color.status.custom.300}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--color--status--custom--hover", "attributes": { "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" }, "path": [ "global", - "icon", "color", - "inverse" + "status", + "custom", + "hover" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#b9e5e5", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "{color.teal.20}" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--global--dark--color--status--custom--300", "attributes": { "category": "global", "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "item": "color", + "subitem": "status", + "state": "custom" }, "path": [ "global", "dark", - "icon", "color", + "status", + "custom", "300" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#b9e5e5", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "#b9e5e5" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--color--teal--20", "attributes": { "category": "color", - "type": "gray", - "item": "90" + "type": "teal", + "item": "20" }, "path": [ "color", - "gray", - "90" + "teal", + "20" ] } ] @@ -12801,105 +12539,107 @@ ] } }, - "pf-t--global--icon--color--status--unread--on-default--clicked": { + "pf-t--global--icon--color--status--custom--clicked": { "default": { - "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "description": "Use as the clicked state for icons that convey generic status with no associated severity.", "type": "color", - "value": "#1f1f1f", + "value": "#b9e5e5", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", + "description": "Use as the clicked state for icons that convey generic status with no associated severity.", "type": "color", - "value": "{global.icon.color.inverse}" + "value": "{global.color.status.custom.clicked}" }, - "name": "pf-t--global--icon--color--status--unread--on-default--clicked", + "name": "pf-t--global--icon--color--status--custom--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "unread" + "state": "custom" }, "path": [ "global", "icon", "color", "status", - "unread", - "on-default", + "custom", "clicked" ], "references": [ { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#1f1f1f", + "value": "#b9e5e5", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{global.dark.color.status.custom.300}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--color--status--custom--clicked", "attributes": { "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" }, "path": [ "global", - "icon", "color", - "inverse" + "status", + "custom", + "clicked" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#b9e5e5", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "{color.teal.20}" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--global--dark--color--status--custom--300", "attributes": { "category": "global", "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "item": "color", + "subitem": "status", + "state": "custom" }, "path": [ "global", "dark", - "icon", "color", + "status", + "custom", "300" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#b9e5e5", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "#b9e5e5" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--color--teal--20", "attributes": { "category": "color", - "type": "gray", - "item": "90" + "type": "teal", + "item": "20" }, "path": [ "color", - "gray", - "90" + "teal", + "20" ] } ] @@ -12909,33 +12649,32 @@ ] } }, - "pf-t--global--icon--color--status--unread--on-attention--default": { + "pf-t--global--icon--color--status--on-custom--default": { "default": { - "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "description": "Use as the default color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status color, make sure that this token meets contrast requirements with your new custom status color.", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "description": "Use as the default color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status color, make sure that this token meets contrast requirements with your new custom status color.", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--unread--on-attention--default", + "name": "pf-t--global--icon--color--status--on-custom--default", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "unread" + "state": "on-custom" }, "path": [ "global", "icon", "color", "status", - "unread", - "on-attention", + "on-custom", "default" ], "references": [ @@ -13017,33 +12756,32 @@ ] } }, - "pf-t--global--icon--color--status--unread--on-attention--hover": { + "pf-t--global--icon--color--status--on-custom--hover": { "default": { - "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "description": "Use as the hover state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status hover color, make sure that this token meets contrast requirements with your new custom status hover color.", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "description": "Use as the hover state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status hover color, make sure that this token meets contrast requirements with your new custom status hover color.", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--unread--on-attention--hover", + "name": "pf-t--global--icon--color--status--on-custom--hover", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "unread" + "state": "on-custom" }, "path": [ "global", "icon", "color", "status", - "unread", - "on-attention", + "on-custom", "hover" ], "references": [ @@ -13125,33 +12863,32 @@ ] } }, - "pf-t--global--icon--color--status--unread--on-attention--clicked": { + "pf-t--global--icon--color--status--on-custom--clicked": { "default": { - "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "description": "Use as the clicked state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status clicked color, make sure that this token meets contrast requirements with your new custom status clicked color.", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", + "description": "Use as the clicked state color for icons that are placed on a custom background color and/or are paired with on-custom colored text. If you change the custom status clicked color, make sure that this token meets contrast requirements with your new custom status clicked color.", "type": "color", "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--status--unread--on-attention--clicked", + "name": "pf-t--global--icon--color--status--on-custom--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", "subitem": "status", - "state": "unread" + "state": "on-custom" }, "path": [ "global", "icon", "color", "status", - "unread", - "on-attention", + "on-custom", "clicked" ], "references": [ @@ -13233,76 +12970,107 @@ ] } }, - "pf-t--global--icon--color--regular": { + "pf-t--global--icon--color--status--unread--on-default--default": { "default": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", "type": "color", - "value": "#f2f2f2", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", "type": "color", - "value": "{global.dark.icon.color.100}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--regular", + "name": "pf-t--global--icon--color--status--unread--on-default--default", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "regular" + "subitem": "status", + "state": "unread" }, "path": [ "global", "icon", "color", - "regular" + "status", + "unread", + "on-default", + "default" ], "references": [ { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#f2f2f2", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{color.gray.10}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--dark--icon--color--100", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", - "type": "dark", - "item": "icon", - "subitem": "color", - "state": "100" + "type": "icon", + "item": "color", + "subitem": "inverse" }, "path": [ "global", - "dark", "icon", "color", - "100" + "inverse" ], "references": [ { "type": "color", - "value": "#f2f2f2", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#f2f2f2" + "value": "{color.gray.90}" }, - "name": "pf-t--color--gray--10", + "name": "pf-t--global--dark--icon--color--300", "attributes": { - "category": "color", - "type": "gray", - "item": "10" + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" }, "path": [ + "global", + "dark", + "icon", "color", - "gray", - "10" + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } ] } ] @@ -13310,76 +13078,107 @@ ] } }, - "pf-t--global--icon--color--subtle": { + "pf-t--global--icon--color--status--unread--on-default--hover": { "default": { - "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", "type": "color", - "value": "#a3a3a3", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", "type": "color", - "value": "{global.dark.icon.color.200}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--subtle", + "name": "pf-t--global--icon--color--status--unread--on-default--hover", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "subtle" + "subitem": "status", + "state": "unread" }, "path": [ "global", "icon", "color", - "subtle" + "status", + "unread", + "on-default", + "hover" ], "references": [ { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{color.gray.40}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--dark--icon--color--200", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", - "type": "dark", - "item": "icon", - "subitem": "color", - "state": "200" + "type": "icon", + "item": "color", + "subitem": "inverse" }, "path": [ "global", - "dark", "icon", "color", - "200" + "inverse" ], "references": [ { "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#a3a3a3" + "value": "{color.gray.90}" }, - "name": "pf-t--color--gray--40", + "name": "pf-t--global--dark--icon--color--300", "attributes": { - "category": "color", - "type": "gray", - "item": "40" + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" }, "path": [ + "global", + "dark", + "icon", "color", - "gray", - "40" + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } ] } ] @@ -13387,76 +13186,107 @@ ] } }, - "pf-t--global--icon--color--inverse": { + "pf-t--global--icon--color--status--unread--on-default--clicked": { "default": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on an inverse background color", + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status, like badges and stateful buttons.", "type": "color", - "value": "{global.dark.icon.color.300}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--inverse", + "name": "pf-t--global--icon--color--status--unread--on-default--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "inverse" + "subitem": "status", + "state": "unread" }, "path": [ "global", "icon", "color", - "inverse" + "status", + "unread", + "on-default", + "clicked" ], "references": [ { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{color.gray.90}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--dark--icon--color--300", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", - "type": "dark", - "item": "icon", - "subitem": "color", - "state": "300" + "type": "icon", + "item": "color", + "subitem": "inverse" }, "path": [ "global", - "dark", "icon", "color", - "300" + "inverse" ], "references": [ { "type": "color", "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "{color.gray.90}" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--global--dark--icon--color--300", "attributes": { - "category": "color", - "type": "gray", - "item": "90" + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" }, "path": [ + "global", + "dark", + "icon", "color", - "gray", - "90" + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } ] } ] @@ -13464,76 +13294,107 @@ ] } }, - "pf-t--global--icon--color--disabled": { + "pf-t--global--icon--color--status--unread--on-attention--default": { "default": { - "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", "type": "color", - "value": "#707070", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "description": "Use as the default color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", "type": "color", - "value": "{global.dark.color.disabled.200}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--disabled", + "name": "pf-t--global--icon--color--status--unread--on-attention--default", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "disabled" + "subitem": "status", + "state": "unread" }, "path": [ "global", "icon", "color", - "disabled" + "status", + "unread", + "on-attention", + "default" ], "references": [ { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#707070", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{color.gray.50}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--dark--color--disabled--200", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", - "type": "dark", + "type": "icon", "item": "color", - "subitem": "disabled", - "state": "200" + "subitem": "inverse" }, "path": [ "global", - "dark", + "icon", "color", - "disabled", - "200" + "inverse" ], "references": [ { "type": "color", - "value": "#707070", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#707070" + "value": "{color.gray.90}" }, - "name": "pf-t--color--gray--50", + "name": "pf-t--global--dark--icon--color--300", "attributes": { - "category": "color", - "type": "gray", - "item": "50" + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" }, "path": [ + "global", + "dark", + "icon", "color", - "gray", - "50" + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } ] } ] @@ -13541,76 +13402,107 @@ ] } }, - "pf-t--global--icon--color--on-disabled": { + "pf-t--global--icon--color--status--unread--on-attention--hover": { "default": { - "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", "type": "color", - "value": "#383838", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "description": "Use as the hover state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", "type": "color", - "value": "{global.dark.color.disabled.300}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--on-disabled", + "name": "pf-t--global--icon--color--status--unread--on-attention--hover", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "on-disabled" + "subitem": "status", + "state": "unread" }, "path": [ "global", "icon", "color", - "on-disabled" + "status", + "unread", + "on-attention", + "hover" ], "references": [ { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#383838", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{color.gray.70}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--dark--color--disabled--300", + "name": "pf-t--global--icon--color--inverse", "attributes": { "category": "global", - "type": "dark", + "type": "icon", "item": "color", - "subitem": "disabled", - "state": "300" + "subitem": "inverse" }, "path": [ "global", - "dark", + "icon", "color", - "disabled", - "300" + "inverse" ], "references": [ { "type": "color", - "value": "#383838", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#383838" + "value": "{color.gray.90}" }, - "name": "pf-t--color--gray--70", + "name": "pf-t--global--dark--icon--color--300", "attributes": { - "category": "color", - "type": "gray", - "item": "70" + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" }, "path": [ + "global", + "dark", + "icon", "color", - "gray", - "70" + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } ] } ] @@ -13618,45 +13510,153 @@ ] } }, - "pf-t--global--icon--color--severity--undefined--default": { + "pf-t--global--icon--color--status--unread--on-attention--clicked": { "default": { - "description": "Use as the default color for severity icons that don’t communicate a specific severity level for issues.", + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", "type": "color", - "value": "#a3a3a3", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for severity icons that don’t communicate a specific severity level for issues.", + "description": "Use as the clicked state color for icons that are placed in and/or are paired with elements that convey an unread status and require greater attention like badges and stateful buttons.", "type": "color", - "value": "{global.dark.color.severity.undefined.100}" + "value": "{global.icon.color.inverse}" }, - "name": "pf-t--global--icon--color--severity--undefined--default", + "name": "pf-t--global--icon--color--status--unread--on-attention--clicked", "attributes": { "category": "global", "type": "icon", "item": "color", - "subitem": "severity", - "state": "undefined" + "subitem": "status", + "state": "unread" }, "path": [ "global", "icon", "color", - "severity", - "undefined", - "default" + "status", + "unread", + "on-attention", + "clicked" ], "references": [ { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the color for icons that are placed on an inverse background color", "type": "color", - "value": "{color.gray.40}" + "value": "{global.dark.icon.color.300}" }, - "name": "pf-t--global--dark--color--severity--undefined--100", + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--dark--icon--color--300", + "attributes": { + "category": "global", + "type": "dark", + "item": "icon", + "subitem": "color", + "state": "300" + }, + "path": [ + "global", + "dark", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--severity--undefined--default": { + "default": { + "description": "Use as the default color for severity icons that don’t communicate a specific severity level for issues.", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as the default color for severity icons that don’t communicate a specific severity level for issues.", + "type": "color", + "value": "{global.dark.color.severity.undefined.100}" + }, + "name": "pf-t--global--icon--color--severity--undefined--default", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "severity", + "state": "undefined" + }, + "path": [ + "global", + "icon", + "color", + "severity", + "undefined", + "default" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--dark--color--severity--undefined--100", "attributes": { "category": "global", "type": "dark", @@ -16993,78 +16993,103 @@ ] } }, - "pf-t--global--border--color--control--default": { + "pf-t--global--border--color--high-contrast": { "default": { - "description": "Use as the default border for control elements like form inputs, menu toggles, and clickable cards", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", "value": "#c7c7c7", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default border for control elements like form inputs, menu toggles, and clickable cards", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.dark.border.color.300}" + "value": "{global.border.color.default}" }, - "name": "pf-t--global--border--color--control--default", + "name": "pf-t--global--border--color--high-contrast", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "control", - "state": "default" + "subitem": "high-contrast" }, "path": [ "global", "border", "color", - "control", - "default" + "high-contrast" ], "references": [ { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", "value": "#c7c7c7", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{color.gray.30}" + "value": "{global.dark.border.color.300}" }, - "name": "pf-t--global--dark--border--color--300", + "name": "pf-t--global--border--color--default", "attributes": { "category": "global", - "type": "dark", - "item": "border", - "subitem": "color", - "state": "300" + "type": "border", + "item": "color", + "subitem": "default" }, "path": [ "global", - "dark", "border", "color", - "300" + "default" ], "references": [ { "type": "color", "value": "#c7c7c7", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#c7c7c7" + "value": "{color.gray.30}" }, - "name": "pf-t--color--gray--30", + "name": "pf-t--global--dark--border--color--300", "attributes": { - "category": "color", - "type": "gray", - "item": "30" + "category": "global", + "type": "dark", + "item": "border", + "subitem": "color", + "state": "300" }, "path": [ + "global", + "dark", + "border", "color", - "gray", - "30" + "300" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } ] } ] @@ -17072,78 +17097,76 @@ ] } }, - "pf-t--global--border--color--control--read-only": { + "pf-t--global--border--color--default": { "default": { - "description": "Use as the read-only border for control elements like form inputs, menu toggles.", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#383838", + "value": "#c7c7c7", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the read-only border for control elements like form inputs, menu toggles.", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.dark.border.color.50}" + "value": "{global.dark.border.color.300}" }, - "name": "pf-t--global--border--color--control--read-only", + "name": "pf-t--global--border--color--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "control", - "state": "read-only" + "subitem": "default" }, "path": [ "global", "border", "color", - "control", - "read-only" + "default" ], "references": [ { "type": "color", - "value": "#383838", + "value": "#c7c7c7", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.70}" + "value": "{color.gray.30}" }, - "name": "pf-t--global--dark--border--color--50", + "name": "pf-t--global--dark--border--color--300", "attributes": { "category": "global", "type": "dark", "item": "border", "subitem": "color", - "state": "50" + "state": "300" }, "path": [ "global", "dark", "border", "color", - "50" + "300" ], "references": [ { "type": "color", - "value": "#383838", + "value": "#c7c7c7", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#383838" + "value": "#c7c7c7" }, - "name": "pf-t--color--gray--70", + "name": "pf-t--color--gray--30", "attributes": { "category": "color", "type": "gray", - "item": "70" + "item": "30" }, "path": [ "color", "gray", - "70" + "30" ] } ] @@ -17151,105 +17174,76 @@ ] } }, - "pf-t--global--border--color--brand--default": { + "pf-t--global--border--color--hover": { "default": { - "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", "value": "#92c5f9", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.default}" + "value": "{global.dark.color.brand.100}" }, - "name": "pf-t--global--border--color--brand--default", + "name": "pf-t--global--border--color--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "default" + "subitem": "hover" }, "path": [ "global", "border", "color", - "brand", - "default" + "hover" ], "references": [ { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", "value": "#92c5f9", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.dark.color.brand.100}" + "value": "{color.blue.30}" }, - "name": "pf-t--global--color--brand--default", + "name": "pf-t--global--dark--color--brand--100", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "default" + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" }, "path": [ "global", + "dark", "color", "brand", - "default" + "100" ], "references": [ { "type": "color", "value": "#92c5f9", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.30}" + "value": "#92c5f9" }, - "name": "pf-t--global--dark--color--brand--100", + "name": "pf-t--color--blue--30", "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "100" + "category": "color", + "type": "blue", + "item": "30" }, "path": [ - "global", - "dark", "color", - "brand", - "100" - ], - "references": [ - { - "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#92c5f9" - }, - "name": "pf-t--color--blue--30", - "attributes": { - "category": "color", - "type": "blue", - "item": "30" - }, - "path": [ - "color", - "blue", - "30" - ] - } + "blue", + "30" ] } ] @@ -17257,105 +17251,76 @@ ] } }, - "pf-t--global--border--color--brand--hover": { + "pf-t--global--border--color--clicked": { "default": { - "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.hover}" + "value": "{global.dark.color.brand.200}" }, - "name": "pf-t--global--border--color--brand--hover", + "name": "pf-t--global--border--color--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "hover" + "subitem": "clicked" }, "path": [ "global", "border", "color", - "brand", - "hover" + "clicked" ], "references": [ { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.dark.color.brand.200}" + "value": "{color.blue.20}" }, - "name": "pf-t--global--color--brand--hover", + "name": "pf-t--global--dark--color--brand--200", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "hover" + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" }, "path": [ "global", + "dark", "color", "brand", - "hover" + "200" ], "references": [ { "type": "color", "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.20}" + "value": "#b9dafc" }, - "name": "pf-t--global--dark--color--brand--200", + "name": "pf-t--color--blue--20", "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "200" + "category": "color", + "type": "blue", + "item": "20" }, "path": [ - "global", - "dark", "color", - "brand", - "200" - ], - "references": [ - { - "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#b9dafc" - }, - "name": "pf-t--color--blue--20", - "attributes": { - "category": "color", - "type": "blue", - "item": "20" - }, - "path": [ - "color", - "blue", - "20" - ] - } + "blue", + "20" ] } ] @@ -17363,105 +17328,76 @@ ] } }, - "pf-t--global--border--color--brand--clicked": { + "pf-t--global--border--color--subtle": { "default": { - "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#b9dafc", + "value": "#c7c7c7", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.clicked}" + "value": "{global.dark.border.color.300}" }, - "name": "pf-t--global--border--color--brand--clicked", + "name": "pf-t--global--border--color--subtle", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "clicked" + "subitem": "subtle" }, "path": [ "global", "border", "color", - "brand", - "clicked" + "subtle" ], "references": [ { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.dark.color.brand.200}" + "value": "{color.gray.30}" }, - "name": "pf-t--global--color--brand--clicked", + "name": "pf-t--global--dark--border--color--300", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "clicked" + "type": "dark", + "item": "border", + "subitem": "color", + "state": "300" }, "path": [ "global", + "dark", + "border", "color", - "brand", - "clicked" + "300" ], "references": [ { "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.20}" + "value": "#c7c7c7" }, - "name": "pf-t--global--dark--color--brand--200", + "name": "pf-t--color--gray--30", "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "200" + "category": "color", + "type": "gray", + "item": "30" }, "path": [ - "global", - "dark", "color", - "brand", - "200" - ], - "references": [ - { - "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#b9dafc" - }, - "name": "pf-t--color--blue--20", - "attributes": { - "category": "color", - "type": "blue", - "item": "20" - }, - "path": [ - "color", - "blue", - "20" - ] - } + "gray", + "30" ] } ] @@ -17469,135 +17405,76 @@ ] } }, - "pf-t--global--border--color--brand--accent--default": { + "pf-t--global--border--color--disabled": { "default": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#92c5f9", + "value": "#a3a3a3", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.accent.default}" + "value": "{global.dark.color.disabled.100}" }, - "name": "pf-t--global--border--color--brand--accent--default", + "name": "pf-t--global--border--color--disabled", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "accent" + "subitem": "disabled" }, "path": [ "global", "border", "color", - "brand", - "accent", - "default" + "disabled" ], "references": [ { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.color.brand.default}" + "value": "{color.gray.40}" }, - "name": "pf-t--global--color--brand--accent--default", + "name": "pf-t--global--dark--color--disabled--100", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "default" + "type": "dark", + "item": "color", + "subitem": "disabled", + "state": "100" }, "path": [ "global", + "dark", "color", - "brand", - "accent", - "default" + "disabled", + "100" ], "references": [ { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.dark.color.brand.100}" + "value": "#a3a3a3" }, - "name": "pf-t--global--color--brand--default", + "name": "pf-t--color--gray--40", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "default" - }, + "category": "color", + "type": "gray", + "item": "40" + }, "path": [ - "global", "color", - "brand", - "default" - ], - "references": [ - { - "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.blue.30}" - }, - "name": "pf-t--global--dark--color--brand--100", - "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "100" - }, - "path": [ - "global", - "dark", - "color", - "brand", - "100" - ], - "references": [ - { - "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#92c5f9" - }, - "name": "pf-t--color--blue--30", - "attributes": { - "category": "color", - "type": "blue", - "item": "30" - }, - "path": [ - "color", - "blue", - "30" - ] - } - ] - } + "gray", + "40" ] } ] @@ -17605,135 +17482,76 @@ ] } }, - "pf-t--global--border--color--brand--accent--hover": { + "pf-t--global--border--color--alt": { "default": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", "type": "color", - "value": "#b9dafc", + "value": "#000000", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", "type": "color", - "value": "{global.color.brand.accent.hover}" + "value": "{global.background.color.primary.default}" }, - "name": "pf-t--global--border--color--brand--accent--hover", + "name": "pf-t--global--border--color--alt", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "accent" + "subitem": "alt" }, "path": [ "global", "border", "color", - "brand", - "accent", - "hover" + "alt" ], "references": [ { - "description": "Use as the hover state for elements that have a branded background color", + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", "type": "color", - "value": "#b9dafc", + "value": "#000000", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have a branded background color", + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", "type": "color", - "value": "{global.color.brand.hover}" + "value": "{color.black}" }, - "name": "pf-t--global--color--brand--accent--hover", + "name": "pf-t--global--background--color--primary--default", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "hover" + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" }, "path": [ "global", + "background", "color", - "brand", - "accent", - "hover" + "primary", + "default" ], "references": [ { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "value": "#000000", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.dark.color.brand.200}" + "value": "#000000" }, - "name": "pf-t--global--color--brand--hover", + "name": "pf-t--color--black", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "hover" + "category": "color", + "type": "black" }, "path": [ - "global", "color", - "brand", - "hover" - ], - "references": [ - { - "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.blue.20}" - }, - "name": "pf-t--global--dark--color--brand--200", - "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "200" - }, - "path": [ - "global", - "dark", - "color", - "brand", - "200" - ], - "references": [ - { - "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#b9dafc" - }, - "name": "pf-t--color--blue--20", - "attributes": { - "category": "color", - "type": "blue", - "item": "20" - }, - "path": [ - "color", - "blue", - "20" - ] - } - ] - } + "black" ] } ] @@ -17741,135 +17559,76 @@ ] } }, - "pf-t--global--border--color--brand--accent--clicked": { + "pf-t--global--border--color--on-secondary": { "default": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", + "description": "Use on borders/dividers that are placed on a secondary bkg color.", "type": "color", - "value": "#b9dafc", + "value": "#c7c7c7", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", + "description": "Use on borders/dividers that are placed on a secondary bkg color.", "type": "color", - "value": "{global.color.brand.accent.clicked}" + "value": "{global.dark.border.color.300}" }, - "name": "pf-t--global--border--color--brand--accent--clicked", + "name": "pf-t--global--border--color--on-secondary", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "accent" + "subitem": "on-secondary" }, "path": [ "global", "border", "color", - "brand", - "accent", - "clicked" + "on-secondary" ], "references": [ { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.color.brand.clicked}" + "value": "{color.gray.30}" }, - "name": "pf-t--global--color--brand--accent--clicked", + "name": "pf-t--global--dark--border--color--300", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "clicked" + "type": "dark", + "item": "border", + "subitem": "color", + "state": "300" }, "path": [ "global", + "dark", + "border", "color", - "brand", - "accent", - "clicked" + "300" ], "references": [ { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.dark.color.brand.200}" + "value": "#c7c7c7" }, - "name": "pf-t--global--color--brand--clicked", + "name": "pf-t--color--gray--30", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "clicked" + "category": "color", + "type": "gray", + "item": "30" }, "path": [ - "global", "color", - "brand", - "clicked" - ], - "references": [ - { - "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.blue.20}" - }, - "name": "pf-t--global--dark--color--brand--200", - "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "200" - }, - "path": [ - "global", - "dark", - "color", - "brand", - "200" - ], - "references": [ - { - "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#b9dafc" - }, - "name": "pf-t--color--blue--20", - "attributes": { - "category": "color", - "type": "blue", - "item": "20" - }, - "path": [ - "color", - "blue", - "20" - ] - } - ] - } + "gray", + "30" ] } ] @@ -17877,80 +17636,76 @@ ] } }, - "pf-t--global--border--color--brand--subtle--default": { + "pf-t--global--border--color--control--default": { "default": { - "description": "Use as the default border color for any subtle brand element like toggle groups", "type": "color", - "value": "#004d99", + "value": "#c7c7c7", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default border color for any subtle brand element like toggle groups", "type": "color", - "value": "{global.dark.color.brand.subtle.200}" + "value": "{global.dark.border.color.300}" }, - "name": "pf-t--global--border--color--brand--subtle--default", + "name": "pf-t--global--border--color--control--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "subtle" + "subitem": "control", + "state": "default" }, "path": [ "global", "border", "color", - "brand", - "subtle", + "control", "default" ], "references": [ { "type": "color", - "value": "#004d99", + "value": "#c7c7c7", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.60}" + "value": "{color.gray.30}" }, - "name": "pf-t--global--dark--color--brand--subtle--200", + "name": "pf-t--global--dark--border--color--300", "attributes": { "category": "global", "type": "dark", - "item": "color", - "subitem": "brand", - "state": "subtle" + "item": "border", + "subitem": "color", + "state": "300" }, "path": [ "global", "dark", + "border", "color", - "brand", - "subtle", - "200" + "300" ], "references": [ { "type": "color", - "value": "#004d99", + "value": "#c7c7c7", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#004d99" + "value": "#c7c7c7" }, - "name": "pf-t--color--blue--60", + "name": "pf-t--color--gray--30", "attributes": { "category": "color", - "type": "blue", - "item": "60" + "type": "gray", + "item": "30" }, "path": [ "color", - "blue", - "60" + "gray", + "30" ] } ] @@ -17958,80 +17713,76 @@ ] } }, - "pf-t--global--border--color--brand--subtle--hover": { + "pf-t--global--border--color--control--read-only": { "default": { - "description": "Use as the hover border color for any subtle brand element like toggle groups", "type": "color", - "value": "#92c5f9", + "value": "#383838", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover border color for any subtle brand element like toggle groups", "type": "color", - "value": "{global.dark.color.brand.subtle.300}" + "value": "{global.dark.border.color.50}" }, - "name": "pf-t--global--border--color--brand--subtle--hover", + "name": "pf-t--global--border--color--control--read-only", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "subtle" + "subitem": "control", + "state": "read-only" }, "path": [ "global", "border", "color", - "brand", - "subtle", - "hover" + "control", + "read-only" ], "references": [ { "type": "color", - "value": "#92c5f9", + "value": "#383838", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.30}" + "value": "{color.gray.70}" }, - "name": "pf-t--global--dark--color--brand--subtle--300", + "name": "pf-t--global--dark--border--color--50", "attributes": { "category": "global", "type": "dark", - "item": "color", - "subitem": "brand", - "state": "subtle" + "item": "border", + "subitem": "color", + "state": "50" }, "path": [ "global", "dark", + "border", "color", - "brand", - "subtle", - "300" + "50" ], "references": [ { "type": "color", - "value": "#92c5f9", + "value": "#383838", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#92c5f9" + "value": "#383838" }, - "name": "pf-t--color--blue--30", + "name": "pf-t--color--gray--70", "attributes": { "category": "color", - "type": "blue", - "item": "30" + "type": "gray", + "item": "70" }, "path": [ "color", - "blue", - "30" + "gray", + "70" ] } ] @@ -18039,80 +17790,105 @@ ] } }, - "pf-t--global--border--color--brand--subtle--clicked": { + "pf-t--global--border--color--brand--default": { "default": { - "description": "Use as the clicked border color for any subtle brand element like toggle groups", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "#92c5f9", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked border color for any subtle brand element like toggle groups", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.dark.color.brand.subtle.300}" + "value": "{global.color.brand.default}" }, - "name": "pf-t--global--border--color--brand--subtle--clicked", + "name": "pf-t--global--border--color--brand--default", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "brand", - "state": "subtle" + "state": "default" }, "path": [ "global", "border", "color", "brand", - "subtle", - "clicked" + "default" ], "references": [ { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", "value": "#92c5f9", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{color.blue.30}" + "value": "{global.dark.color.brand.100}" }, - "name": "pf-t--global--dark--color--brand--subtle--300", + "name": "pf-t--global--color--brand--default", "attributes": { "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "subtle" + "type": "color", + "item": "brand", + "subitem": "default" }, "path": [ "global", - "dark", "color", "brand", - "subtle", - "300" + "default" ], "references": [ { "type": "color", "value": "#92c5f9", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#92c5f9" + "value": "{color.blue.30}" }, - "name": "pf-t--color--blue--30", + "name": "pf-t--global--dark--color--brand--100", "attributes": { - "category": "color", - "type": "blue", - "item": "30" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" }, "path": [ + "global", + "dark", "color", - "blue", - "30" + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } ] } ] @@ -18120,107 +17896,103 @@ ] } }, - "pf-t--global--border--color--status--success--default": { + "pf-t--global--border--color--brand--hover": { "default": { - "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#afdc8f", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.success.default}" + "value": "{global.color.brand.hover}" }, - "name": "pf-t--global--border--color--status--success--default", + "name": "pf-t--global--border--color--brand--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "brand", + "state": "hover" }, "path": [ "global", "border", "color", - "status", - "success", - "default" + "brand", + "hover" ], "references": [ { - "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#afdc8f", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.dark.color.status.success.200}" + "value": "{global.dark.color.brand.200}" }, - "name": "pf-t--global--color--status--success--default", + "name": "pf-t--global--color--brand--hover", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "default" + "item": "brand", + "subitem": "hover" }, "path": [ "global", "color", - "status", - "success", - "default" + "brand", + "hover" ], "references": [ { "type": "color", - "value": "#afdc8f", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.30}" + "value": "{color.blue.20}" }, - "name": "pf-t--global--dark--color--status--success--200", + "name": "pf-t--global--dark--color--brand--200", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "brand", + "state": "200" }, "path": [ "global", "dark", "color", - "status", - "success", + "brand", "200" ], "references": [ { "type": "color", - "value": "#afdc8f", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#afdc8f" + "value": "#b9dafc" }, - "name": "pf-t--color--green--30", + "name": "pf-t--color--blue--20", "attributes": { "category": "color", - "type": "green", - "item": "30" + "type": "blue", + "item": "20" }, "path": [ "color", - "green", - "30" + "blue", + "20" ] } ] @@ -18230,106 +18002,102 @@ ] } }, - "pf-t--global--border--color--status--success--hover": { + "pf-t--global--border--color--brand--clicked": { "default": { - "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#d1f1bb", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.success.hover}" + "value": "{global.color.brand.clicked}" }, - "name": "pf-t--global--border--color--status--success--hover", + "name": "pf-t--global--border--color--brand--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "brand", + "state": "clicked" }, "path": [ "global", "border", "color", - "status", - "success", - "hover" + "brand", + "clicked" ], "references": [ { - "description": "Use as the hover state for any element that conveys a success status.", + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#d1f1bb", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys a success status.", + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.dark.color.status.success.300}" + "value": "{global.dark.color.brand.200}" }, - "name": "pf-t--global--color--status--success--hover", + "name": "pf-t--global--color--brand--clicked", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "hover" + "item": "brand", + "subitem": "clicked" }, "path": [ "global", "color", - "status", - "success", - "hover" + "brand", + "clicked" ], "references": [ { "type": "color", - "value": "#d1f1bb", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.20}" + "value": "{color.blue.20}" }, - "name": "pf-t--global--dark--color--status--success--300", + "name": "pf-t--global--dark--color--brand--200", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "brand", + "state": "200" }, "path": [ "global", "dark", "color", - "status", - "success", - "300" + "brand", + "200" ], "references": [ { "type": "color", - "value": "#d1f1bb", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#d1f1bb" + "value": "#b9dafc" }, - "name": "pf-t--color--green--20", + "name": "pf-t--color--blue--20", "attributes": { "category": "color", - "type": "green", + "type": "blue", "item": "20" }, "path": [ "color", - "green", + "blue", "20" ] } @@ -18340,107 +18108,133 @@ ] } }, - "pf-t--global--border--color--status--success--clicked": { + "pf-t--global--border--color--brand--accent--default": { "default": { - "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#d1f1bb", + "value": "#92c5f9", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.success.clicked}" + "value": "{global.color.brand.accent.default}" }, - "name": "pf-t--global--border--color--status--success--clicked", + "name": "pf-t--global--border--color--brand--accent--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "brand", + "state": "accent" }, "path": [ "global", "border", "color", - "status", - "success", - "clicked" + "brand", + "accent", + "default" ], "references": [ { - "description": "Use as the clicked state for any element that conveys a success status.", + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#d1f1bb", + "value": "#92c5f9", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys a success status.", + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.dark.color.status.success.300}" + "value": "{global.color.brand.default}" }, - "name": "pf-t--global--color--status--success--clicked", + "name": "pf-t--global--color--brand--accent--default", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "clicked" + "item": "brand", + "subitem": "accent", + "state": "default" }, "path": [ "global", "color", - "status", - "success", - "clicked" + "brand", + "accent", + "default" ], "references": [ { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#d1f1bb", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{color.green.20}" + "value": "{global.dark.color.brand.100}" }, - "name": "pf-t--global--dark--color--status--success--300", + "name": "pf-t--global--color--brand--default", "attributes": { "category": "global", - "type": "dark", - "item": "color", - "subitem": "status", - "state": "success" + "type": "color", + "item": "brand", + "subitem": "default" }, "path": [ "global", - "dark", "color", - "status", - "success", - "300" + "brand", + "default" ], "references": [ { "type": "color", - "value": "#d1f1bb", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#d1f1bb" + "value": "{color.blue.30}" }, - "name": "pf-t--color--green--20", + "name": "pf-t--global--dark--color--brand--100", "attributes": { - "category": "color", - "type": "green", - "item": "20" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "100" }, "path": [ + "global", + "dark", "color", - "green", - "20" + "brand", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } ] } ] @@ -18450,107 +18244,133 @@ ] } }, - "pf-t--global--border--color--status--warning--default": { + "pf-t--global--border--color--brand--accent--hover": { "default": { - "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#ffcc17", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.warning.default}" + "value": "{global.color.brand.accent.hover}" }, - "name": "pf-t--global--border--color--status--warning--default", + "name": "pf-t--global--border--color--brand--accent--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "brand", + "state": "accent" }, "path": [ "global", "border", "color", - "status", - "warning", - "default" + "brand", + "accent", + "hover" ], "references": [ { - "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#ffcc17", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.dark.color.status.warning.100}" + "value": "{global.color.brand.hover}" }, - "name": "pf-t--global--color--status--warning--default", + "name": "pf-t--global--color--brand--accent--hover", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "warning", - "state": "default" + "item": "brand", + "subitem": "accent", + "state": "hover" }, "path": [ "global", "color", - "status", - "warning", - "default" + "brand", + "accent", + "hover" ], "references": [ { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#ffcc17", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{color.yellow.30}" + "value": "{global.dark.color.brand.200}" }, - "name": "pf-t--global--dark--color--status--warning--100", + "name": "pf-t--global--color--brand--hover", "attributes": { "category": "global", - "type": "dark", - "item": "color", - "subitem": "status", - "state": "warning" + "type": "color", + "item": "brand", + "subitem": "hover" }, "path": [ "global", - "dark", "color", - "status", - "warning", - "100" + "brand", + "hover" ], "references": [ { "type": "color", - "value": "#ffcc17", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#ffcc17" + "value": "{color.blue.20}" }, - "name": "pf-t--color--yellow--30", + "name": "pf-t--global--dark--color--brand--200", "attributes": { - "category": "color", - "type": "yellow", - "item": "30" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" }, "path": [ + "global", + "dark", "color", - "yellow", - "30" + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } ] } ] @@ -18560,107 +18380,133 @@ ] } }, - "pf-t--global--border--color--status--warning--hover": { + "pf-t--global--border--color--brand--accent--clicked": { "default": { - "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#ffe072", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.warning.hover}" + "value": "{global.color.brand.accent.clicked}" }, - "name": "pf-t--global--border--color--status--warning--hover", + "name": "pf-t--global--border--color--brand--accent--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "brand", + "state": "accent" }, "path": [ "global", "border", "color", - "status", - "warning", - "hover" + "brand", + "accent", + "clicked" ], "references": [ { - "description": "Use as the hover state for any element that conveys a warning status.", + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#ffe072", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys a warning status.", + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.dark.color.status.warning.200}" + "value": "{global.color.brand.clicked}" }, - "name": "pf-t--global--color--status--warning--hover", + "name": "pf-t--global--color--brand--accent--clicked", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "warning", - "state": "hover" + "item": "brand", + "subitem": "accent", + "state": "clicked" }, "path": [ "global", "color", - "status", - "warning", - "hover" + "brand", + "accent", + "clicked" ], "references": [ { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#ffe072", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{color.yellow.20}" + "value": "{global.dark.color.brand.200}" }, - "name": "pf-t--global--dark--color--status--warning--200", + "name": "pf-t--global--color--brand--clicked", "attributes": { "category": "global", - "type": "dark", - "item": "color", - "subitem": "status", - "state": "warning" + "type": "color", + "item": "brand", + "subitem": "clicked" }, "path": [ "global", - "dark", "color", - "status", - "warning", - "200" + "brand", + "clicked" ], "references": [ { "type": "color", - "value": "#ffe072", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#ffe072" + "value": "{color.blue.20}" }, - "name": "pf-t--color--yellow--20", + "name": "pf-t--global--dark--color--brand--200", "attributes": { - "category": "color", - "type": "yellow", - "item": "20" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "200" }, "path": [ + "global", + "dark", "color", - "yellow", - "20" + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9dafc" + }, + "name": "pf-t--color--blue--20", + "attributes": { + "category": "color", + "type": "blue", + "item": "20" + }, + "path": [ + "color", + "blue", + "20" + ] + } ] } ] @@ -18670,109 +18516,80 @@ ] } }, - "pf-t--global--border--color--status--warning--clicked": { + "pf-t--global--border--color--brand--subtle--default": { "default": { - "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#ffe072", + "value": "#004d99", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.warning.clicked}" + "value": "{global.dark.color.brand.subtle.200}" }, - "name": "pf-t--global--border--color--status--warning--clicked", + "name": "pf-t--global--border--color--brand--subtle--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "brand", + "state": "subtle" }, "path": [ "global", "border", "color", - "status", - "warning", - "clicked" + "brand", + "subtle", + "default" ], "references": [ { - "description": "Use as the clicked state for any element that conveys a warning status.", "type": "color", - "value": "#ffe072", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "value": "#004d99", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys a warning status.", "type": "color", - "value": "{global.dark.color.status.warning.200}" + "value": "{color.blue.60}" }, - "name": "pf-t--global--color--status--warning--clicked", - "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "warning", - "state": "clicked" + "name": "pf-t--global--dark--color--brand--subtle--200", + "attributes": { + "category": "global", + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" }, "path": [ "global", + "dark", "color", - "status", - "warning", - "clicked" + "brand", + "subtle", + "200" ], "references": [ { "type": "color", - "value": "#ffe072", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#004d99", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.20}" + "value": "#004d99" }, - "name": "pf-t--global--dark--color--status--warning--200", + "name": "pf-t--color--blue--60", "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "status", - "state": "warning" + "category": "color", + "type": "blue", + "item": "60" }, "path": [ - "global", - "dark", "color", - "status", - "warning", - "200" - ], - "references": [ - { - "type": "color", - "value": "#ffe072", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#ffe072" - }, - "name": "pf-t--color--yellow--20", - "attributes": { - "category": "color", - "type": "yellow", - "item": "20" - }, - "path": [ - "color", - "yellow", - "20" - ] - } + "blue", + "60" ] } ] @@ -18780,109 +18597,80 @@ ] } }, - "pf-t--global--border--color--status--danger--default": { + "pf-t--global--border--color--brand--subtle--hover": { "default": { - "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#f4784a", + "value": "#92c5f9", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.danger.default}" + "value": "{global.dark.color.brand.subtle.300}" }, - "name": "pf-t--global--border--color--status--danger--default", + "name": "pf-t--global--border--color--brand--subtle--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "danger" + "subitem": "brand", + "state": "subtle" }, "path": [ "global", "border", "color", - "status", - "danger", - "default" + "brand", + "subtle", + "hover" ], "references": [ { - "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "#f4784a", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "{global.dark.color.status.danger.200}" + "value": "{color.blue.30}" }, - "name": "pf-t--global--color--status--danger--default", + "name": "pf-t--global--dark--color--brand--subtle--300", "attributes": { "category": "global", - "type": "color", - "item": "status", - "subitem": "danger", - "state": "default" + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" }, "path": [ "global", + "dark", "color", - "status", - "danger", - "default" + "brand", + "subtle", + "300" ], "references": [ { "type": "color", - "value": "#f4784a", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.40}" + "value": "#92c5f9" }, - "name": "pf-t--global--dark--color--status--danger--200", + "name": "pf-t--color--blue--30", "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "status", - "state": "danger" + "category": "color", + "type": "blue", + "item": "30" }, "path": [ - "global", - "dark", "color", - "status", - "danger", - "200" - ], - "references": [ - { - "type": "color", - "value": "#f4784a", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#f4784a" - }, - "name": "pf-t--color--red-orange--40", - "attributes": { - "category": "color", - "type": "red-orange", - "item": "40" - }, - "path": [ - "color", - "red-orange", - "40" - ] - } + "blue", + "30" ] } ] @@ -18890,109 +18678,80 @@ ] } }, - "pf-t--global--border--color--status--danger--hover": { + "pf-t--global--border--color--brand--subtle--clicked": { "default": { - "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#f89b78", + "value": "#92c5f9", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.danger.hover}" + "value": "{global.dark.color.brand.subtle.300}" }, - "name": "pf-t--global--border--color--status--danger--hover", + "name": "pf-t--global--border--color--brand--subtle--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "danger" + "subitem": "brand", + "state": "subtle" }, "path": [ "global", "border", "color", - "status", - "danger", - "hover" + "brand", + "subtle", + "clicked" ], "references": [ { - "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "#f89b78", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "{global.dark.color.status.danger.250}" + "value": "{color.blue.30}" }, - "name": "pf-t--global--color--status--danger--hover", + "name": "pf-t--global--dark--color--brand--subtle--300", "attributes": { "category": "global", - "type": "color", - "item": "status", - "subitem": "danger", - "state": "hover" + "type": "dark", + "item": "color", + "subitem": "brand", + "state": "subtle" }, "path": [ "global", + "dark", "color", - "status", - "danger", - "hover" + "brand", + "subtle", + "300" ], "references": [ { "type": "color", - "value": "#f89b78", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.30}" + "value": "#92c5f9" }, - "name": "pf-t--global--dark--color--status--danger--250", + "name": "pf-t--color--blue--30", "attributes": { - "category": "global", - "type": "dark", - "item": "color", - "subitem": "status", - "state": "danger" + "category": "color", + "type": "blue", + "item": "30" }, "path": [ - "global", - "dark", "color", - "status", - "danger", - "250" - ], - "references": [ - { - "type": "color", - "value": "#f89b78", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#f89b78" - }, - "name": "pf-t--color--red-orange--30", - "attributes": { - "category": "color", - "type": "red-orange", - "item": "30" - }, - "path": [ - "color", - "red-orange", - "30" - ] - } + "blue", + "30" ] } ] @@ -19000,106 +18759,106 @@ ] } }, - "pf-t--global--border--color--status--danger--clicked": { + "pf-t--global--border--color--status--success--default": { "default": { - "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", "type": "color", - "value": "#f89b78", + "value": "#afdc8f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.danger.clicked}" + "value": "{global.color.status.success.default}" }, - "name": "pf-t--global--border--color--status--danger--clicked", + "name": "pf-t--global--border--color--status--success--default", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "danger" + "state": "success" }, "path": [ "global", "border", "color", "status", - "danger", - "clicked" + "success", + "default" ], "references": [ { - "description": "Use as the clicked state for any element that conveys a danger status.", + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", "type": "color", - "value": "#f89b78", + "value": "#afdc8f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys a danger status.", + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", "type": "color", - "value": "{global.dark.color.status.danger.250}" + "value": "{global.dark.color.status.success.200}" }, - "name": "pf-t--global--color--status--danger--clicked", + "name": "pf-t--global--color--status--success--default", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "danger", - "state": "clicked" + "subitem": "success", + "state": "default" }, "path": [ "global", "color", "status", - "danger", - "clicked" + "success", + "default" ], "references": [ { "type": "color", - "value": "#f89b78", + "value": "#afdc8f", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.30}" + "value": "{color.green.30}" }, - "name": "pf-t--global--dark--color--status--danger--250", + "name": "pf-t--global--dark--color--status--success--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "danger" + "state": "success" }, "path": [ "global", "dark", "color", "status", - "danger", - "250" + "success", + "200" ], "references": [ { "type": "color", - "value": "#f89b78", + "value": "#afdc8f", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f89b78" + "value": "#afdc8f" }, - "name": "pf-t--color--red-orange--30", + "name": "pf-t--color--green--30", "attributes": { "category": "color", - "type": "red-orange", + "type": "green", "item": "30" }, "path": [ "color", - "red-orange", + "green", "30" ] } @@ -19110,107 +18869,107 @@ ] } }, - "pf-t--global--border--color--status--info--default": { + "pf-t--global--border--color--status--success--hover": { "default": { - "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "#b6a6e9", + "value": "#d1f1bb", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "{global.color.status.info.default}" + "value": "{global.color.status.success.hover}" }, - "name": "pf-t--global--border--color--status--info--default", + "name": "pf-t--global--border--color--status--success--hover", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "info" + "state": "success" }, "path": [ "global", "border", "color", "status", - "info", - "default" + "success", + "hover" ], "references": [ { - "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "description": "Use as the hover state for any element that conveys a success status.", "type": "color", - "value": "#b6a6e9", + "value": "#d1f1bb", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "description": "Use as the hover state for any element that conveys a success status.", "type": "color", - "value": "{global.dark.color.status.info.100}" + "value": "{global.dark.color.status.success.300}" }, - "name": "pf-t--global--color--status--info--default", + "name": "pf-t--global--color--status--success--hover", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", - "state": "default" + "subitem": "success", + "state": "hover" }, "path": [ "global", "color", "status", - "info", - "default" + "success", + "hover" ], "references": [ { "type": "color", - "value": "#b6a6e9", + "value": "#d1f1bb", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.30}" + "value": "{color.green.20}" }, - "name": "pf-t--global--dark--color--status--info--100", + "name": "pf-t--global--dark--color--status--success--300", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "info" + "state": "success" }, "path": [ "global", "dark", "color", "status", - "info", - "100" + "success", + "300" ], "references": [ { "type": "color", - "value": "#b6a6e9", + "value": "#d1f1bb", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b6a6e9" + "value": "#d1f1bb" }, - "name": "pf-t--color--purple--30", + "name": "pf-t--color--green--20", "attributes": { "category": "color", - "type": "purple", - "item": "30" + "type": "green", + "item": "20" }, "path": [ "color", - "purple", - "30" + "green", + "20" ] } ] @@ -19220,106 +18979,106 @@ ] } }, - "pf-t--global--border--color--status--info--hover": { + "pf-t--global--border--color--status--success--clicked": { "default": { - "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "#d0c5f4", + "value": "#d1f1bb", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "{global.color.status.info.hover}" + "value": "{global.color.status.success.clicked}" }, - "name": "pf-t--global--border--color--status--info--hover", + "name": "pf-t--global--border--color--status--success--clicked", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "info" + "state": "success" }, "path": [ "global", "border", "color", "status", - "info", - "hover" + "success", + "clicked" ], "references": [ { - "description": "Use as the hover state for any element that conveys an info status.", + "description": "Use as the clicked state for any element that conveys a success status.", "type": "color", - "value": "#d0c5f4", + "value": "#d1f1bb", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys an info status.", + "description": "Use as the clicked state for any element that conveys a success status.", "type": "color", - "value": "{global.dark.color.status.info.200}" + "value": "{global.dark.color.status.success.300}" }, - "name": "pf-t--global--color--status--info--hover", + "name": "pf-t--global--color--status--success--clicked", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", - "state": "hover" + "subitem": "success", + "state": "clicked" }, "path": [ "global", "color", "status", - "info", - "hover" + "success", + "clicked" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#d1f1bb", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.20}" + "value": "{color.green.20}" }, - "name": "pf-t--global--dark--color--status--info--200", + "name": "pf-t--global--dark--color--status--success--300", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "info" + "state": "success" }, "path": [ "global", "dark", "color", "status", - "info", - "200" + "success", + "300" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#d1f1bb", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#d0c5f4" + "value": "#d1f1bb" }, - "name": "pf-t--color--purple--20", + "name": "pf-t--color--green--20", "attributes": { "category": "color", - "type": "purple", + "type": "green", "item": "20" }, "path": [ "color", - "purple", + "green", "20" ] } @@ -19330,107 +19089,107 @@ ] } }, - "pf-t--global--border--color--status--info--clicked": { + "pf-t--global--border--color--status--warning--default": { "default": { - "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "#d0c5f4", + "value": "#ffcc17", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.info.clicked}" + "value": "{global.color.status.warning.default}" }, - "name": "pf-t--global--border--color--status--info--clicked", + "name": "pf-t--global--border--color--status--warning--default", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "info" + "state": "warning" }, "path": [ "global", "border", "color", "status", - "info", - "clicked" + "warning", + "default" ], "references": [ { - "description": "Use as the clicked state for any element that conveys an info status.", + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", "type": "color", - "value": "#d0c5f4", + "value": "#ffcc17", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys an info status.", + "description": "Use as the default color for any element communicating caution, like a warning status for alert, progress, select.", "type": "color", - "value": "{global.dark.color.status.info.200}" + "value": "{global.dark.color.status.warning.100}" }, - "name": "pf-t--global--color--status--info--clicked", + "name": "pf-t--global--color--status--warning--default", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", - "state": "clicked" + "subitem": "warning", + "state": "default" }, "path": [ "global", "color", "status", - "info", - "clicked" + "warning", + "default" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#ffcc17", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.20}" + "value": "{color.yellow.30}" }, - "name": "pf-t--global--dark--color--status--info--200", + "name": "pf-t--global--dark--color--status--warning--100", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "info" + "state": "warning" }, "path": [ "global", "dark", "color", "status", - "info", - "200" + "warning", + "100" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#ffcc17", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#d0c5f4" + "value": "#ffcc17" }, - "name": "pf-t--color--purple--20", + "name": "pf-t--color--yellow--30", "attributes": { "category": "color", - "type": "purple", - "item": "20" + "type": "yellow", + "item": "30" }, "path": [ "color", - "purple", - "20" + "yellow", + "30" ] } ] @@ -19440,107 +19199,107 @@ ] } }, - "pf-t--global--border--color--status--custom--default": { + "pf-t--global--border--color--status--warning--hover": { "default": { - "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "#9ad8d8", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.custom.default}" + "value": "{global.color.status.warning.hover}" }, - "name": "pf-t--global--border--color--status--custom--default", + "name": "pf-t--global--border--color--status--warning--hover", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "custom" + "state": "warning" }, "path": [ "global", "border", "color", "status", - "custom", - "default" + "warning", + "hover" ], "references": [ { - "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the hover state for any element that conveys a warning status.", "type": "color", - "value": "#9ad8d8", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the hover state for any element that conveys a warning status.", "type": "color", - "value": "{global.dark.color.status.custom.200}" + "value": "{global.dark.color.status.warning.200}" }, - "name": "pf-t--global--color--status--custom--default", + "name": "pf-t--global--color--status--warning--hover", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", - "state": "default" + "subitem": "warning", + "state": "hover" }, "path": [ "global", "color", "status", - "custom", - "default" + "warning", + "hover" ], "references": [ { "type": "color", - "value": "#9ad8d8", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.30}" + "value": "{color.yellow.20}" }, - "name": "pf-t--global--dark--color--status--custom--200", + "name": "pf-t--global--dark--color--status--warning--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "custom" + "state": "warning" }, "path": [ "global", "dark", "color", "status", - "custom", + "warning", "200" ], "references": [ { "type": "color", - "value": "#9ad8d8", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#9ad8d8" + "value": "#ffe072" }, - "name": "pf-t--color--teal--30", + "name": "pf-t--color--yellow--20", "attributes": { "category": "color", - "type": "teal", - "item": "30" + "type": "yellow", + "item": "20" }, "path": [ "color", - "teal", - "30" + "yellow", + "20" ] } ] @@ -19550,106 +19309,106 @@ ] } }, - "pf-t--global--border--color--status--custom--hover": { + "pf-t--global--border--color--status--warning--clicked": { "default": { - "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "#b9e5e5", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.custom.hover}" + "value": "{global.color.status.warning.clicked}" }, - "name": "pf-t--global--border--color--status--custom--hover", + "name": "pf-t--global--border--color--status--warning--clicked", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "custom" + "state": "warning" }, "path": [ "global", "border", "color", "status", - "custom", - "hover" + "warning", + "clicked" ], "references": [ { - "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the clicked state for any element that conveys a warning status.", "type": "color", - "value": "#b9e5e5", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the clicked state for any element that conveys a warning status.", "type": "color", - "value": "{global.dark.color.status.custom.300}" + "value": "{global.dark.color.status.warning.200}" }, - "name": "pf-t--global--color--status--custom--hover", + "name": "pf-t--global--color--status--warning--clicked", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", - "state": "hover" + "subitem": "warning", + "state": "clicked" }, "path": [ "global", "color", "status", - "custom", - "hover" + "warning", + "clicked" ], "references": [ { "type": "color", - "value": "#b9e5e5", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.20}" + "value": "{color.yellow.20}" }, - "name": "pf-t--global--dark--color--status--custom--300", + "name": "pf-t--global--dark--color--status--warning--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "custom" + "state": "warning" }, "path": [ "global", "dark", "color", "status", - "custom", - "300" + "warning", + "200" ], "references": [ { "type": "color", - "value": "#b9e5e5", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b9e5e5" + "value": "#ffe072" }, - "name": "pf-t--color--teal--20", + "name": "pf-t--color--yellow--20", "attributes": { "category": "color", - "type": "teal", + "type": "yellow", "item": "20" }, "path": [ "color", - "teal", + "yellow", "20" ] } @@ -19660,107 +19419,107 @@ ] } }, - "pf-t--global--border--color--status--custom--clicked": { + "pf-t--global--border--color--status--danger--default": { "default": { - "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "#b9e5e5", + "value": "#f4784a", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.custom.clicked}" + "value": "{global.color.status.danger.default}" }, - "name": "pf-t--global--border--color--status--custom--clicked", + "name": "pf-t--global--border--color--status--danger--default", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "custom" + "state": "danger" }, "path": [ "global", "border", "color", "status", - "custom", - "clicked" + "danger", + "default" ], "references": [ { - "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "#b9e5e5", + "value": "#f4784a", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "{global.dark.color.status.custom.300}" + "value": "{global.dark.color.status.danger.200}" }, - "name": "pf-t--global--color--status--custom--clicked", + "name": "pf-t--global--color--status--danger--default", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", - "state": "clicked" + "subitem": "danger", + "state": "default" }, "path": [ "global", "color", "status", - "custom", - "clicked" + "danger", + "default" ], "references": [ { "type": "color", - "value": "#b9e5e5", + "value": "#f4784a", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.20}" + "value": "{color.red-orange.40}" }, - "name": "pf-t--global--dark--color--status--custom--300", + "name": "pf-t--global--dark--color--status--danger--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "custom" + "state": "danger" }, "path": [ "global", "dark", "color", "status", - "custom", - "300" + "danger", + "200" ], "references": [ { "type": "color", - "value": "#b9e5e5", + "value": "#f4784a", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b9e5e5" + "value": "#f4784a" }, - "name": "pf-t--color--teal--20", + "name": "pf-t--color--red-orange--40", "attributes": { "category": "color", - "type": "teal", - "item": "20" + "type": "red-orange", + "item": "40" }, "path": [ "color", - "teal", - "20" + "red-orange", + "40" ] } ] @@ -19770,100 +19529,106 @@ ] } }, - "pf-t--global--border--color--high-contrast": { + "pf-t--global--border--color--status--danger--hover": { "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "#c7c7c7", + "value": "#f89b78", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.border.color.default}" + "value": "{global.color.status.danger.hover}" }, - "name": "pf-t--global--border--color--high-contrast", + "name": "pf-t--global--border--color--status--danger--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "high-contrast" + "subitem": "status", + "state": "danger" }, "path": [ "global", "border", "color", - "high-contrast" + "status", + "danger", + "hover" ], "references": [ { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "#c7c7c7", + "value": "#f89b78", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "{global.dark.border.color.300}" + "value": "{global.dark.color.status.danger.250}" }, - "name": "pf-t--global--border--color--default", + "name": "pf-t--global--color--status--danger--hover", "attributes": { "category": "global", - "type": "border", - "item": "color", - "subitem": "default" + "type": "color", + "item": "status", + "subitem": "danger", + "state": "hover" }, "path": [ "global", - "border", "color", - "default" + "status", + "danger", + "hover" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#f89b78", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.30}" + "value": "{color.red-orange.30}" }, - "name": "pf-t--global--dark--border--color--300", + "name": "pf-t--global--dark--color--status--danger--250", "attributes": { "category": "global", "type": "dark", - "item": "border", - "subitem": "color", - "state": "300" + "item": "color", + "subitem": "status", + "state": "danger" }, "path": [ "global", "dark", - "border", "color", - "300" + "status", + "danger", + "250" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#f89b78", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#c7c7c7" + "value": "#f89b78" }, - "name": "pf-t--color--gray--30", + "name": "pf-t--color--red-orange--30", "attributes": { "category": "color", - "type": "gray", + "type": "red-orange", "item": "30" }, "path": [ "color", - "gray", + "red-orange", "30" ] } @@ -19874,76 +19639,109 @@ ] } }, - "pf-t--global--border--color--default": { + "pf-t--global--border--color--status--danger--clicked": { "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "#c7c7c7", + "value": "#f89b78", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.dark.border.color.300}" + "value": "{global.color.status.danger.clicked}" }, - "name": "pf-t--global--border--color--default", + "name": "pf-t--global--border--color--status--danger--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "default" + "subitem": "status", + "state": "danger" }, "path": [ "global", "border", "color", - "default" + "status", + "danger", + "clicked" ], "references": [ { + "description": "Use as the clicked state for any element that conveys a danger status.", "type": "color", - "value": "#c7c7c7", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", "type": "color", - "value": "{color.gray.30}" + "value": "{global.dark.color.status.danger.250}" }, - "name": "pf-t--global--dark--border--color--300", - "attributes": { - "category": "global", - "type": "dark", - "item": "border", - "subitem": "color", - "state": "300" + "name": "pf-t--global--color--status--danger--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "clicked" }, "path": [ "global", - "dark", - "border", "color", - "300" + "status", + "danger", + "clicked" ], "references": [ { "type": "color", - "value": "#c7c7c7", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#c7c7c7" + "value": "{color.red-orange.30}" }, - "name": "pf-t--color--gray--30", + "name": "pf-t--global--dark--color--status--danger--250", "attributes": { - "category": "color", - "type": "gray", - "item": "30" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "danger" }, "path": [ + "global", + "dark", "color", - "gray", - "30" + "status", + "danger", + "250" + ], + "references": [ + { + "type": "color", + "value": "#f89b78", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f89b78" + }, + "name": "pf-t--color--red-orange--30", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "30" + }, + "path": [ + "color", + "red-orange", + "30" + ] + } ] } ] @@ -19951,76 +19749,109 @@ ] } }, - "pf-t--global--border--color--hover": { + "pf-t--global--border--color--status--info--default": { "default": { - "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "#92c5f9", + "value": "#b6a6e9", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.dark.color.brand.100}" + "value": "{global.color.status.info.default}" }, - "name": "pf-t--global--border--color--hover", + "name": "pf-t--global--border--color--status--info--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "hover" + "subitem": "status", + "state": "info" }, "path": [ "global", "border", "color", - "hover" + "status", + "info", + "default" ], "references": [ { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "{color.blue.30}" + "value": "{global.dark.color.status.info.100}" }, - "name": "pf-t--global--dark--color--brand--100", + "name": "pf-t--global--color--status--info--default", "attributes": { "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "100" + "type": "color", + "item": "status", + "subitem": "info", + "state": "default" }, "path": [ "global", - "dark", "color", - "brand", - "100" + "status", + "info", + "default" ], "references": [ { "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#92c5f9" + "value": "{color.purple.30}" }, - "name": "pf-t--color--blue--30", + "name": "pf-t--global--dark--color--status--info--100", "attributes": { - "category": "color", - "type": "blue", - "item": "30" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" }, "path": [ + "global", + "dark", "color", - "blue", - "30" + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b6a6e9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b6a6e9" + }, + "name": "pf-t--color--purple--30", + "attributes": { + "category": "color", + "type": "purple", + "item": "30" + }, + "path": [ + "color", + "purple", + "30" + ] + } ] } ] @@ -20028,76 +19859,109 @@ ] } }, - "pf-t--global--border--color--clicked": { + "pf-t--global--border--color--status--info--hover": { "default": { - "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "#b9dafc", + "value": "#d0c5f4", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.dark.color.brand.200}" + "value": "{global.color.status.info.hover}" }, - "name": "pf-t--global--border--color--clicked", + "name": "pf-t--global--border--color--status--info--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "clicked" + "subitem": "status", + "state": "info" }, "path": [ "global", "border", "color", - "clicked" + "status", + "info", + "hover" ], "references": [ { + "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "{color.blue.20}" + "value": "{global.dark.color.status.info.200}" }, - "name": "pf-t--global--dark--color--brand--200", + "name": "pf-t--global--color--status--info--hover", "attributes": { "category": "global", - "type": "dark", - "item": "color", - "subitem": "brand", - "state": "200" + "type": "color", + "item": "status", + "subitem": "info", + "state": "hover" }, "path": [ "global", - "dark", "color", - "brand", - "200" + "status", + "info", + "hover" ], "references": [ { "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#b9dafc" + "value": "{color.purple.20}" }, - "name": "pf-t--color--blue--20", + "name": "pf-t--global--dark--color--status--info--200", "attributes": { - "category": "color", - "type": "blue", - "item": "20" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" }, "path": [ + "global", + "dark", "color", - "blue", - "20" + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } ] } ] @@ -20105,76 +19969,109 @@ ] } }, - "pf-t--global--border--color--subtle": { + "pf-t--global--border--color--status--info--clicked": { "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "#c7c7c7", + "value": "#d0c5f4", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.dark.border.color.300}" + "value": "{global.color.status.info.clicked}" }, - "name": "pf-t--global--border--color--subtle", + "name": "pf-t--global--border--color--status--info--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "subtle" + "subitem": "status", + "state": "info" }, "path": [ "global", "border", "color", - "subtle" + "status", + "info", + "clicked" ], "references": [ { + "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "#c7c7c7", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "{color.gray.30}" + "value": "{global.dark.color.status.info.200}" }, - "name": "pf-t--global--dark--border--color--300", + "name": "pf-t--global--color--status--info--clicked", "attributes": { "category": "global", - "type": "dark", - "item": "border", - "subitem": "color", - "state": "300" + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" }, "path": [ "global", - "dark", - "border", "color", - "300" + "status", + "info", + "clicked" ], "references": [ { "type": "color", - "value": "#c7c7c7", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#c7c7c7" + "value": "{color.purple.20}" }, - "name": "pf-t--color--gray--30", + "name": "pf-t--global--dark--color--status--info--200", "attributes": { - "category": "color", - "type": "gray", - "item": "30" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "info" }, "path": [ + "global", + "dark", "color", - "gray", - "30" + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#d0c5f4" + }, + "name": "pf-t--color--purple--20", + "attributes": { + "category": "color", + "type": "purple", + "item": "20" + }, + "path": [ + "color", + "purple", + "20" + ] + } ] } ] @@ -20182,76 +20079,109 @@ ] } }, - "pf-t--global--border--color--disabled": { + "pf-t--global--border--color--status--custom--default": { "default": { - "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "#a3a3a3", + "value": "#9ad8d8", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.dark.color.disabled.100}" + "value": "{global.color.status.custom.default}" }, - "name": "pf-t--global--border--color--disabled", + "name": "pf-t--global--border--color--status--custom--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "disabled" + "subitem": "status", + "state": "custom" }, "path": [ "global", "border", "color", - "disabled" + "status", + "custom", + "default" ], "references": [ { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{color.gray.40}" + "value": "{global.dark.color.status.custom.200}" }, - "name": "pf-t--global--dark--color--disabled--100", + "name": "pf-t--global--color--status--custom--default", "attributes": { "category": "global", - "type": "dark", - "item": "color", - "subitem": "disabled", - "state": "100" + "type": "color", + "item": "status", + "subitem": "custom", + "state": "default" }, "path": [ "global", - "dark", "color", - "disabled", - "100" + "status", + "custom", + "default" ], "references": [ { "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#a3a3a3" + "value": "{color.teal.30}" }, - "name": "pf-t--color--gray--40", + "name": "pf-t--global--dark--color--status--custom--200", "attributes": { - "category": "color", - "type": "gray", - "item": "40" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" }, "path": [ + "global", + "dark", "color", - "gray", - "40" + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#9ad8d8", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#9ad8d8" + }, + "name": "pf-t--color--teal--30", + "attributes": { + "category": "color", + "type": "teal", + "item": "30" + }, + "path": [ + "color", + "teal", + "30" + ] + } ] } ] @@ -20259,76 +20189,109 @@ ] } }, - "pf-t--global--border--color--alt": { + "pf-t--global--border--color--status--custom--hover": { "default": { - "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "#000000", + "value": "#b9e5e5", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.background.color.primary.default}" + "value": "{global.color.status.custom.hover}" }, - "name": "pf-t--global--border--color--alt", + "name": "pf-t--global--border--color--status--custom--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "alt" + "subitem": "status", + "state": "custom" }, "path": [ "global", "border", "color", - "alt" + "status", + "custom", + "hover" ], "references": [ { - "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#000000", + "value": "#b9e5e5", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{color.black}" + "value": "{global.dark.color.status.custom.300}" }, - "name": "pf-t--global--background--color--primary--default", + "name": "pf-t--global--color--status--custom--hover", "attributes": { "category": "global", - "type": "background", - "item": "color", - "subitem": "primary", - "state": "default" + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" }, "path": [ "global", - "background", "color", - "primary", - "default" + "status", + "custom", + "hover" ], "references": [ { "type": "color", - "value": "#000000", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#000000" + "value": "{color.teal.20}" }, - "name": "pf-t--color--black", + "name": "pf-t--global--dark--color--status--custom--300", "attributes": { - "category": "color", - "type": "black" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" }, "path": [ + "global", + "dark", "color", - "black" + "status", + "custom", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } ] } ] @@ -20336,76 +20299,109 @@ ] } }, - "pf-t--global--border--color--on-secondary": { + "pf-t--global--border--color--status--custom--clicked": { "default": { - "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "#c7c7c7", + "value": "#b9e5e5", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.dark.border.color.300}" + "value": "{global.color.status.custom.clicked}" }, - "name": "pf-t--global--border--color--on-secondary", + "name": "pf-t--global--border--color--status--custom--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "on-secondary" + "subitem": "status", + "state": "custom" }, "path": [ "global", "border", "color", - "on-secondary" + "status", + "custom", + "clicked" ], "references": [ { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#c7c7c7", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{color.gray.30}" + "value": "{global.dark.color.status.custom.300}" }, - "name": "pf-t--global--dark--border--color--300", + "name": "pf-t--global--color--status--custom--clicked", "attributes": { "category": "global", - "type": "dark", - "item": "border", - "subitem": "color", - "state": "300" + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" }, "path": [ "global", - "dark", - "border", "color", - "300" + "status", + "custom", + "clicked" ], "references": [ { "type": "color", - "value": "#c7c7c7", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#c7c7c7" + "value": "{color.teal.20}" }, - "name": "pf-t--color--gray--30", + "name": "pf-t--global--dark--color--status--custom--300", "attributes": { - "category": "color", - "type": "gray", - "item": "30" + "category": "global", + "type": "dark", + "item": "color", + "subitem": "status", + "state": "custom" }, "path": [ + "global", + "dark", "color", - "gray", - "30" + "status", + "custom", + "300" + ], + "references": [ + { + "type": "color", + "value": "#b9e5e5", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b9e5e5" + }, + "name": "pf-t--color--teal--20", + "attributes": { + "category": "color", + "type": "teal", + "item": "20" + }, + "path": [ + "color", + "teal", + "20" + ] + } ] } ] @@ -22808,79 +22804,74 @@ ] } }, - "pf-t--global--text--color--link--default": { + "pf-t--global--text--color--regular": { "default": { - "description": "Use as the default text color for links.", + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "#b9dafc", + "value": "#ffffff", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default text color for links.", + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "{global.dark.text.color.link.100}" + "value": "{global.dark.text.color.100}" }, - "name": "pf-t--global--text--color--link--default", + "name": "pf-t--global--text--color--regular", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "link", - "state": "default" + "subitem": "regular" }, "path": [ "global", "text", "color", - "link", - "default" + "regular" ], "references": [ { "type": "color", - "value": "#b9dafc", + "value": "#ffffff", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.20}" + "value": "{color.white}" }, - "name": "pf-t--global--dark--text--color--link--100", + "name": "pf-t--global--dark--text--color--100", "attributes": { "category": "global", "type": "dark", "item": "text", "subitem": "color", - "state": "link" + "state": "100" }, "path": [ "global", "dark", "text", "color", - "link", "100" ], "references": [ { "type": "color", - "value": "#b9dafc", + "value": "#ffffff", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b9dafc" + "value": "#ffffff" }, - "name": "pf-t--color--blue--20", + "name": "pf-t--color--white", "attributes": { "category": "color", - "type": "blue", - "item": "20" + "type": "white" }, "path": [ "color", - "blue", - "20" + "white" ] } ] @@ -22888,79 +22879,76 @@ ] } }, - "pf-t--global--text--color--link--hover": { + "pf-t--global--text--color--subtle": { "default": { - "description": "Use as the hover state text color for links.", + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "value": "#e0f0ff", + "value": "#c7c7c7", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state text color for links.", + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "value": "{global.dark.text.color.link.200}" + "value": "{global.dark.text.color.200}" }, - "name": "pf-t--global--text--color--link--hover", + "name": "pf-t--global--text--color--subtle", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "link", - "state": "hover" + "subitem": "subtle" }, "path": [ "global", "text", "color", - "link", - "hover" + "subtle" ], "references": [ { "type": "color", - "value": "#e0f0ff", + "value": "#c7c7c7", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.10}" + "value": "{color.gray.30}" }, - "name": "pf-t--global--dark--text--color--link--200", + "name": "pf-t--global--dark--text--color--200", "attributes": { "category": "global", "type": "dark", "item": "text", "subitem": "color", - "state": "link" + "state": "200" }, "path": [ "global", "dark", "text", "color", - "link", "200" ], "references": [ { "type": "color", - "value": "#e0f0ff", + "value": "#c7c7c7", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#e0f0ff" + "value": "#c7c7c7" }, - "name": "pf-t--color--blue--10", + "name": "pf-t--color--gray--30", "attributes": { "category": "color", - "type": "blue", - "item": "10" + "type": "gray", + "item": "30" }, "path": [ "color", - "blue", - "10" + "gray", + "30" ] } ] @@ -22968,79 +22956,76 @@ ] } }, - "pf-t--global--text--color--link--visited": { + "pf-t--global--text--color--inverse": { "default": { - "description": "Use as the color to indicate that a link has been visited.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#d0c5f4", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color to indicate that a link has been visited.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.dark.text.color.link.400}" + "value": "{global.dark.text.color.300}" }, - "name": "pf-t--global--text--color--link--visited", + "name": "pf-t--global--text--color--inverse", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "link", - "state": "visited" + "subitem": "inverse" }, "path": [ "global", "text", "color", - "link", - "visited" + "inverse" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.20}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--text--color--link--400", + "name": "pf-t--global--dark--text--color--300", "attributes": { "category": "global", "type": "dark", "item": "text", "subitem": "color", - "state": "link" + "state": "300" }, "path": [ "global", "dark", "text", "color", - "link", - "400" + "300" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#d0c5f4" + "value": "#1f1f1f" }, - "name": "pf-t--color--purple--20", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", - "type": "purple", - "item": "20" + "type": "gray", + "item": "90" }, "path": [ "color", - "purple", - "20" + "gray", + "90" ] } ] @@ -23048,78 +23033,103 @@ ] } }, - "pf-t--global--text--color--brand--default": { + "pf-t--global--text--color--placeholder": { "default": { - "description": "Use as the default color for branded text.", + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", "type": "color", - "value": "#b9dafc", + "value": "#c7c7c7", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for branded text.", + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", "type": "color", - "value": "{global.dark.color.brand.200}" + "value": "{global.text.color.subtle}" }, - "name": "pf-t--global--text--color--brand--default", + "name": "pf-t--global--text--color--placeholder", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "brand", - "state": "default" + "subitem": "placeholder" }, "path": [ "global", "text", "color", - "brand", - "default" + "placeholder" ], "references": [ { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "value": "{color.blue.20}" + "value": "{global.dark.text.color.200}" }, - "name": "pf-t--global--dark--color--brand--200", + "name": "pf-t--global--text--color--subtle", "attributes": { "category": "global", - "type": "dark", + "type": "text", "item": "color", - "subitem": "brand", - "state": "200" + "subitem": "subtle" }, "path": [ "global", - "dark", + "text", "color", - "brand", - "200" + "subtle" ], "references": [ { "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#b9dafc" + "value": "{color.gray.30}" }, - "name": "pf-t--color--blue--20", + "name": "pf-t--global--dark--text--color--200", "attributes": { - "category": "color", - "type": "blue", - "item": "20" + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "200" }, "path": [ + "global", + "dark", + "text", "color", - "blue", - "20" + "200" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } ] } ] @@ -23127,78 +23137,76 @@ ] } }, - "pf-t--global--text--color--brand--hover": { + "pf-t--global--text--color--disabled": { "default": { - "description": "Use as the hover state color for branded text.", + "description": "Use as the color of text on disabled elements, like disabled menu items.", "type": "color", - "value": "#e0f0ff", + "value": "#707070", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for branded text.", + "description": "Use as the color of text on disabled elements, like disabled menu items.", "type": "color", - "value": "{global.dark.color.brand.300}" + "value": "{global.dark.color.disabled.200}" }, - "name": "pf-t--global--text--color--brand--hover", + "name": "pf-t--global--text--color--disabled", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "brand", - "state": "hover" + "subitem": "disabled" }, "path": [ "global", "text", "color", - "brand", - "hover" + "disabled" ], "references": [ { "type": "color", - "value": "#e0f0ff", + "value": "#707070", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.10}" + "value": "{color.gray.50}" }, - "name": "pf-t--global--dark--color--brand--300", + "name": "pf-t--global--dark--color--disabled--200", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "brand", - "state": "300" + "subitem": "disabled", + "state": "200" }, "path": [ "global", "dark", "color", - "brand", - "300" + "disabled", + "200" ], "references": [ { "type": "color", - "value": "#e0f0ff", + "value": "#707070", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#e0f0ff" + "value": "#707070" }, - "name": "pf-t--color--blue--10", + "name": "pf-t--color--gray--50", "attributes": { "category": "color", - "type": "blue", - "item": "10" + "type": "gray", + "item": "50" }, "path": [ "color", - "blue", - "10" + "gray", + "50" ] } ] @@ -23206,78 +23214,76 @@ ] } }, - "pf-t--global--text--color--brand--clicked": { + "pf-t--global--text--color--on-disabled": { "default": { - "description": "Use as the clicked state color for branded text.", + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", "type": "color", - "value": "#e0f0ff", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for branded text.", + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", "type": "color", - "value": "{global.dark.color.brand.300}" + "value": "{global.dark.color.disabled.400}" }, - "name": "pf-t--global--text--color--brand--clicked", + "name": "pf-t--global--text--color--on-disabled", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "brand", - "state": "clicked" + "subitem": "on-disabled" }, "path": [ "global", "text", "color", - "brand", - "clicked" + "on-disabled" ], "references": [ { "type": "color", - "value": "#e0f0ff", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.10}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--color--brand--300", + "name": "pf-t--global--dark--color--disabled--400", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "brand", - "state": "300" + "subitem": "disabled", + "state": "400" }, "path": [ "global", "dark", "color", - "brand", - "300" + "disabled", + "400" ], "references": [ { "type": "color", - "value": "#e0f0ff", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#e0f0ff" + "value": "#1f1f1f" }, - "name": "pf-t--color--blue--10", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", - "type": "blue", - "item": "10" + "type": "gray", + "item": "90" }, "path": [ "color", - "blue", - "10" + "gray", + "90" ] } ] @@ -23285,74 +23291,76 @@ ] } }, - "pf-t--global--text--color--regular": { + "pf-t--global--text--color--required": { "default": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", "type": "color", - "value": "#ffffff", + "value": "#f89b78", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", "type": "color", - "value": "{global.dark.text.color.100}" + "value": "{global.dark.text.color.400}" }, - "name": "pf-t--global--text--color--regular", + "name": "pf-t--global--text--color--required", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "regular" + "subitem": "required" }, "path": [ "global", "text", "color", - "regular" + "required" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#f89b78", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.white}" + "value": "{color.red-orange.30}" }, - "name": "pf-t--global--dark--text--color--100", + "name": "pf-t--global--dark--text--color--400", "attributes": { "category": "global", "type": "dark", "item": "text", "subitem": "color", - "state": "100" + "state": "400" }, "path": [ "global", "dark", "text", "color", - "100" + "400" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#f89b78", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffffff" + "value": "#f89b78" }, - "name": "pf-t--color--white", + "name": "pf-t--color--red-orange--30", "attributes": { "category": "color", - "type": "white" + "type": "red-orange", + "item": "30" }, "path": [ "color", - "white" + "red-orange", + "30" ] } ] @@ -23360,76 +23368,76 @@ ] } }, - "pf-t--global--text--color--subtle": { + "pf-t--global--text--color--on-highlight": { "default": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "description": "Use as the color of text that is highlighted.", "type": "color", - "value": "#c7c7c7", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "description": "Use as the color of text that is highlighted.", "type": "color", - "value": "{global.dark.text.color.200}" + "value": "{global.dark.text.color.300}" }, - "name": "pf-t--global--text--color--subtle", + "name": "pf-t--global--text--color--on-highlight", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "subtle" + "subitem": "on-highlight" }, "path": [ "global", "text", "color", - "subtle" + "on-highlight" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.30}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--text--color--200", + "name": "pf-t--global--dark--text--color--300", "attributes": { "category": "global", "type": "dark", "item": "text", "subitem": "color", - "state": "200" + "state": "300" }, "path": [ "global", "dark", "text", "color", - "200" + "300" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#c7c7c7" + "value": "#1f1f1f" }, - "name": "pf-t--color--gray--30", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", "type": "gray", - "item": "30" + "item": "90" }, "path": [ "color", "gray", - "30" + "90" ] } ] @@ -23437,76 +23445,79 @@ ] } }, - "pf-t--global--text--color--inverse": { + "pf-t--global--text--color--link--default": { "default": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "description": "Use as the default text color for links.", "type": "color", - "value": "#1f1f1f", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "description": "Use as the default text color for links.", "type": "color", - "value": "{global.dark.text.color.300}" + "value": "{global.dark.text.color.link.100}" }, - "name": "pf-t--global--text--color--inverse", + "name": "pf-t--global--text--color--link--default", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "inverse" + "subitem": "link", + "state": "default" }, "path": [ "global", "text", "color", - "inverse" + "link", + "default" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "{color.blue.20}" }, - "name": "pf-t--global--dark--text--color--300", + "name": "pf-t--global--dark--text--color--link--100", "attributes": { "category": "global", "type": "dark", "item": "text", "subitem": "color", - "state": "300" + "state": "link" }, "path": [ "global", "dark", "text", "color", - "300" + "link", + "100" ], "references": [ { "type": "color", - "value": "#1f1f1f", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "#b9dafc" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--color--blue--20", "attributes": { "category": "color", - "type": "gray", - "item": "90" + "type": "blue", + "item": "20" }, "path": [ "color", - "gray", - "90" + "blue", + "20" ] } ] @@ -23514,105 +23525,79 @@ ] } }, - "pf-t--global--text--color--on-brand--default": { + "pf-t--global--text--color--link--hover": { "default": { - "description": "Use as the default color for text placed on a brand-colored background.", + "description": "Use as the hover state text color for links.", "type": "color", - "value": "#1f1f1f", + "value": "#e0f0ff", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for text placed on a brand-colored background.", + "description": "Use as the hover state text color for links.", "type": "color", - "value": "{global.text.color.inverse}" + "value": "{global.dark.text.color.link.200}" }, - "name": "pf-t--global--text--color--on-brand--default", + "name": "pf-t--global--text--color--link--hover", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-brand", - "state": "default" + "subitem": "link", + "state": "hover" }, "path": [ "global", "text", - "color", - "on-brand", - "default" + "color", + "link", + "hover" ], "references": [ { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.dark.text.color.300}" + "value": "{color.blue.10}" }, - "name": "pf-t--global--text--color--inverse", + "name": "pf-t--global--dark--text--color--link--200", "attributes": { "category": "global", - "type": "text", - "item": "color", - "subitem": "inverse" + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" }, "path": [ "global", + "dark", "text", "color", - "inverse" + "link", + "200" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "#e0f0ff" }, - "name": "pf-t--global--dark--text--color--300", + "name": "pf-t--color--blue--10", "attributes": { - "category": "global", - "type": "dark", - "item": "text", - "subitem": "color", - "state": "300" + "category": "color", + "type": "blue", + "item": "10" }, "path": [ - "global", - "dark", - "text", "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#1f1f1f" - }, - "name": "pf-t--color--gray--90", - "attributes": { - "category": "color", - "type": "gray", - "item": "90" - }, - "path": [ - "color", - "gray", - "90" - ] - } + "blue", + "10" ] } ] @@ -23620,105 +23605,79 @@ ] } }, - "pf-t--global--text--color--on-brand--hover": { + "pf-t--global--text--color--link--visited": { "default": { - "description": "Use as the hover state color for text placed on a brand-colored background.", + "description": "Use as the color to indicate that a link has been visited.", "type": "color", - "value": "#1f1f1f", + "value": "#d0c5f4", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for text placed on a brand-colored background.", + "description": "Use as the color to indicate that a link has been visited.", "type": "color", - "value": "{global.text.color.inverse}" + "value": "{global.dark.text.color.link.400}" }, - "name": "pf-t--global--text--color--on-brand--hover", + "name": "pf-t--global--text--color--link--visited", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-brand", - "state": "hover" + "subitem": "link", + "state": "visited" }, "path": [ "global", "text", "color", - "on-brand", - "hover" + "link", + "visited" ], "references": [ { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.dark.text.color.300}" + "value": "{color.purple.20}" }, - "name": "pf-t--global--text--color--inverse", + "name": "pf-t--global--dark--text--color--link--400", "attributes": { "category": "global", - "type": "text", - "item": "color", - "subitem": "inverse" + "type": "dark", + "item": "text", + "subitem": "color", + "state": "link" }, "path": [ "global", + "dark", "text", "color", - "inverse" + "link", + "400" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#d0c5f4", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "#d0c5f4" }, - "name": "pf-t--global--dark--text--color--300", + "name": "pf-t--color--purple--20", "attributes": { - "category": "global", - "type": "dark", - "item": "text", - "subitem": "color", - "state": "300" + "category": "color", + "type": "purple", + "item": "20" }, "path": [ - "global", - "dark", - "text", "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#1f1f1f" - }, - "name": "pf-t--color--gray--90", - "attributes": { - "category": "color", - "type": "gray", - "item": "90" - }, - "path": [ - "color", - "gray", - "90" - ] - } + "purple", + "20" ] } ] @@ -23726,105 +23685,78 @@ ] } }, - "pf-t--global--text--color--on-brand--clicked": { + "pf-t--global--text--color--brand--default": { "default": { - "description": "Use as the clicked state color for text placed on a brand-colored background.", + "description": "Use as the default color for branded text.", "type": "color", - "value": "#1f1f1f", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for text placed on a brand-colored background.", + "description": "Use as the default color for branded text.", "type": "color", - "value": "{global.text.color.inverse}" + "value": "{global.dark.color.brand.200}" }, - "name": "pf-t--global--text--color--on-brand--clicked", + "name": "pf-t--global--text--color--brand--default", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-brand", - "state": "clicked" + "subitem": "brand", + "state": "default" }, "path": [ "global", "text", "color", - "on-brand", - "clicked" + "brand", + "default" ], "references": [ { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.dark.text.color.300}" + "value": "{color.blue.20}" }, - "name": "pf-t--global--text--color--inverse", + "name": "pf-t--global--dark--color--brand--200", "attributes": { "category": "global", - "type": "text", + "type": "dark", "item": "color", - "subitem": "inverse" + "subitem": "brand", + "state": "200" }, "path": [ "global", - "text", + "dark", "color", - "inverse" + "brand", + "200" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "#b9dafc" }, - "name": "pf-t--global--dark--text--color--300", + "name": "pf-t--color--blue--20", "attributes": { - "category": "global", - "type": "dark", - "item": "text", - "subitem": "color", - "state": "300" + "category": "color", + "type": "blue", + "item": "20" }, "path": [ - "global", - "dark", - "text", "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#1f1f1f" - }, - "name": "pf-t--color--gray--90", - "attributes": { - "category": "color", - "type": "gray", - "item": "90" - }, - "path": [ - "color", - "gray", - "90" - ] - } + "blue", + "20" ] } ] @@ -23832,106 +23764,78 @@ ] } }, - "pf-t--global--text--color--on-brand--accent--default": { + "pf-t--global--text--color--brand--hover": { "default": { - "description": "Use as the default color for text placed on a brand-colored background.", + "description": "Use as the hover state color for branded text.", "type": "color", - "value": "#1f1f1f", + "value": "#e0f0ff", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for text placed on a brand-colored background.", + "description": "Use as the hover state color for branded text.", "type": "color", - "value": "{global.text.color.inverse}" + "value": "{global.dark.color.brand.300}" }, - "name": "pf-t--global--text--color--on-brand--accent--default", + "name": "pf-t--global--text--color--brand--hover", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-brand", - "state": "accent" + "subitem": "brand", + "state": "hover" }, "path": [ "global", "text", "color", - "on-brand", - "accent", - "default" + "brand", + "hover" ], "references": [ { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.dark.text.color.300}" + "value": "{color.blue.10}" }, - "name": "pf-t--global--text--color--inverse", + "name": "pf-t--global--dark--color--brand--300", "attributes": { "category": "global", - "type": "text", + "type": "dark", "item": "color", - "subitem": "inverse" + "subitem": "brand", + "state": "300" }, "path": [ "global", - "text", + "dark", "color", - "inverse" + "brand", + "300" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "#e0f0ff" }, - "name": "pf-t--global--dark--text--color--300", + "name": "pf-t--color--blue--10", "attributes": { - "category": "global", - "type": "dark", - "item": "text", - "subitem": "color", - "state": "300" + "category": "color", + "type": "blue", + "item": "10" }, "path": [ - "global", - "dark", - "text", "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#1f1f1f" - }, - "name": "pf-t--color--gray--90", - "attributes": { - "category": "color", - "type": "gray", - "item": "90" - }, - "path": [ - "color", - "gray", - "90" - ] - } + "blue", + "10" ] } ] @@ -23939,106 +23843,78 @@ ] } }, - "pf-t--global--text--color--on-brand--accent--hover": { + "pf-t--global--text--color--brand--clicked": { "default": { - "description": "Use as the hover state color for text placed on a brand-colored background.", + "description": "Use as the clicked state color for branded text.", "type": "color", - "value": "#1f1f1f", + "value": "#e0f0ff", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for text placed on a brand-colored background.", + "description": "Use as the clicked state color for branded text.", "type": "color", - "value": "{global.text.color.inverse}" + "value": "{global.dark.color.brand.300}" }, - "name": "pf-t--global--text--color--on-brand--accent--hover", + "name": "pf-t--global--text--color--brand--clicked", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-brand", - "state": "accent" + "subitem": "brand", + "state": "clicked" }, "path": [ "global", "text", "color", - "on-brand", - "accent", - "hover" + "brand", + "clicked" ], "references": [ { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.dark.text.color.300}" + "value": "{color.blue.10}" }, - "name": "pf-t--global--text--color--inverse", + "name": "pf-t--global--dark--color--brand--300", "attributes": { "category": "global", - "type": "text", + "type": "dark", "item": "color", - "subitem": "inverse" + "subitem": "brand", + "state": "300" }, "path": [ "global", - "text", + "dark", "color", - "inverse" + "brand", + "300" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#e0f0ff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.90}" + "value": "#e0f0ff" }, - "name": "pf-t--global--dark--text--color--300", + "name": "pf-t--color--blue--10", "attributes": { - "category": "global", - "type": "dark", - "item": "text", - "subitem": "color", - "state": "300" + "category": "color", + "type": "blue", + "item": "10" }, "path": [ - "global", - "dark", - "text", "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#1f1f1f" - }, - "name": "pf-t--color--gray--90", - "attributes": { - "category": "color", - "type": "gray", - "item": "90" - }, - "path": [ - "color", - "gray", - "90" - ] - } + "blue", + "10" ] } ] @@ -24046,33 +23922,32 @@ ] } }, - "pf-t--global--text--color--on-brand--accent--clicked": { + "pf-t--global--text--color--on-brand--default": { "default": { - "description": "Use as the clicked state color for text placed on a brand-colored background.", + "description": "Use as the default color for text placed on a brand-colored background.", "type": "color", "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for text placed on a brand-colored background.", + "description": "Use as the default color for text placed on a brand-colored background.", "type": "color", "value": "{global.text.color.inverse}" }, - "name": "pf-t--global--text--color--on-brand--accent--clicked", + "name": "pf-t--global--text--color--on-brand--default", "attributes": { "category": "global", "type": "text", "item": "color", "subitem": "on-brand", - "state": "accent" + "state": "default" }, "path": [ "global", "text", "color", "on-brand", - "accent", - "clicked" + "default" ], "references": [ { @@ -24153,102 +24028,103 @@ ] } }, - "pf-t--global--text--color--on-brand--subtle--default": { + "pf-t--global--text--color--on-brand--hover": { "default": { - "description": "Use as the default color for text placed on a brand-colored background.", + "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the default color for text placed on a brand-colored background.", + "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.text.color.regular}" + "value": "{global.text.color.inverse}" }, - "name": "pf-t--global--text--color--on-brand--subtle--default", + "name": "pf-t--global--text--color--on-brand--hover", "attributes": { "category": "global", "type": "text", "item": "color", "subitem": "on-brand", - "state": "subtle" + "state": "hover" }, "path": [ "global", "text", "color", "on-brand", - "subtle", - "default" + "hover" ], "references": [ { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.dark.text.color.100}" + "value": "{global.dark.text.color.300}" }, - "name": "pf-t--global--text--color--regular", + "name": "pf-t--global--text--color--inverse", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "regular" + "subitem": "inverse" }, "path": [ "global", "text", "color", - "regular" + "inverse" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.white}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--text--color--100", + "name": "pf-t--global--dark--text--color--300", "attributes": { "category": "global", "type": "dark", "item": "text", "subitem": "color", - "state": "100" + "state": "300" }, "path": [ "global", "dark", "text", "color", - "100" + "300" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffffff" + "value": "#1f1f1f" }, - "name": "pf-t--color--white", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", - "type": "white" + "type": "gray", + "item": "90" }, "path": [ "color", - "white" + "gray", + "90" ] } ] @@ -24258,102 +24134,103 @@ ] } }, - "pf-t--global--text--color--on-brand--subtle--hover": { + "pf-t--global--text--color--on-brand--clicked": { "default": { - "description": "Use as the hover state color for text placed on a brand-colored background.", + "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the hover state color for text placed on a brand-colored background.", + "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.text.color.regular}" + "value": "{global.text.color.inverse}" }, - "name": "pf-t--global--text--color--on-brand--subtle--hover", + "name": "pf-t--global--text--color--on-brand--clicked", "attributes": { "category": "global", "type": "text", "item": "color", "subitem": "on-brand", - "state": "subtle" + "state": "clicked" }, "path": [ "global", "text", "color", "on-brand", - "subtle", - "hover" + "clicked" ], "references": [ { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.dark.text.color.100}" + "value": "{global.dark.text.color.300}" }, - "name": "pf-t--global--text--color--regular", + "name": "pf-t--global--text--color--inverse", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "regular" + "subitem": "inverse" }, "path": [ "global", "text", "color", - "regular" + "inverse" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.white}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--text--color--100", + "name": "pf-t--global--dark--text--color--300", "attributes": { "category": "global", "type": "dark", "item": "text", "subitem": "color", - "state": "100" + "state": "300" }, "path": [ "global", "dark", "text", "color", - "100" + "300" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffffff" + "value": "#1f1f1f" }, - "name": "pf-t--color--white", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", - "type": "white" + "type": "gray", + "item": "90" }, "path": [ "color", - "white" + "gray", + "90" ] } ] @@ -24363,102 +24240,104 @@ ] } }, - "pf-t--global--text--color--on-brand--subtle--clicked": { + "pf-t--global--text--color--on-brand--accent--default": { "default": { - "description": "Use as the clicked state color for text placed on a brand-colored background.", + "description": "Use as the default color for text placed on a brand-colored background.", "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the clicked state color for text placed on a brand-colored background.", + "description": "Use as the default color for text placed on a brand-colored background.", "type": "color", - "value": "{global.text.color.regular}" + "value": "{global.text.color.inverse}" }, - "name": "pf-t--global--text--color--on-brand--subtle--clicked", + "name": "pf-t--global--text--color--on-brand--accent--default", "attributes": { "category": "global", "type": "text", "item": "color", "subitem": "on-brand", - "state": "subtle" + "state": "accent" }, "path": [ "global", "text", "color", "on-brand", - "subtle", - "clicked" + "accent", + "default" ], "references": [ { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.dark.text.color.100}" + "value": "{global.dark.text.color.300}" }, - "name": "pf-t--global--text--color--regular", + "name": "pf-t--global--text--color--inverse", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "regular" + "subitem": "inverse" }, "path": [ "global", "text", "color", - "regular" + "inverse" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.white}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--text--color--100", + "name": "pf-t--global--dark--text--color--300", "attributes": { "category": "global", "type": "dark", "item": "text", "subitem": "color", - "state": "100" + "state": "300" }, "path": [ "global", "dark", "text", "color", - "100" + "300" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffffff" + "value": "#1f1f1f" }, - "name": "pf-t--color--white", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", - "type": "white" + "type": "gray", + "item": "90" }, "path": [ "color", - "white" + "gray", + "90" ] } ] @@ -24468,101 +24347,104 @@ ] } }, - "pf-t--global--text--color--placeholder": { + "pf-t--global--text--color--on-brand--accent--hover": { "default": { - "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", - "value": "#c7c7c7", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.text.color.subtle}" + "value": "{global.text.color.inverse}" }, - "name": "pf-t--global--text--color--placeholder", + "name": "pf-t--global--text--color--on-brand--accent--hover", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "placeholder" + "subitem": "on-brand", + "state": "accent" }, "path": [ "global", "text", "color", - "placeholder" + "on-brand", + "accent", + "hover" ], "references": [ { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#c7c7c7", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.dark.text.color.200}" + "value": "{global.dark.text.color.300}" }, - "name": "pf-t--global--text--color--subtle", + "name": "pf-t--global--text--color--inverse", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "subtle" + "subitem": "inverse" }, "path": [ "global", "text", "color", - "subtle" + "inverse" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.30}" + "value": "{color.gray.90}" }, - "name": "pf-t--global--dark--text--color--200", + "name": "pf-t--global--dark--text--color--300", "attributes": { "category": "global", "type": "dark", "item": "text", "subitem": "color", - "state": "200" + "state": "300" }, "path": [ "global", "dark", "text", "color", - "200" + "300" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#c7c7c7" + "value": "#1f1f1f" }, - "name": "pf-t--color--gray--30", + "name": "pf-t--color--gray--90", "attributes": { "category": "color", "type": "gray", - "item": "30" + "item": "90" }, "path": [ "color", "gray", - "30" + "90" ] } ] @@ -24572,76 +24454,106 @@ ] } }, - "pf-t--global--text--color--disabled": { + "pf-t--global--text--color--on-brand--accent--clicked": { "default": { - "description": "Use as the color of text on disabled elements, like disabled menu items.", + "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", - "value": "#707070", + "value": "#1f1f1f", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color of text on disabled elements, like disabled menu items.", + "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.dark.color.disabled.200}" + "value": "{global.text.color.inverse}" }, - "name": "pf-t--global--text--color--disabled", + "name": "pf-t--global--text--color--on-brand--accent--clicked", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "disabled" + "subitem": "on-brand", + "state": "accent" }, "path": [ "global", "text", "color", - "disabled" + "on-brand", + "accent", + "clicked" ], "references": [ { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#707070", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{color.gray.50}" + "value": "{global.dark.text.color.300}" }, - "name": "pf-t--global--dark--color--disabled--200", + "name": "pf-t--global--text--color--inverse", "attributes": { "category": "global", - "type": "dark", + "type": "text", "item": "color", - "subitem": "disabled", - "state": "200" + "subitem": "inverse" }, "path": [ "global", - "dark", + "text", "color", - "disabled", - "200" + "inverse" ], "references": [ { "type": "color", - "value": "#707070", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#707070" + "value": "{color.gray.90}" }, - "name": "pf-t--color--gray--50", + "name": "pf-t--global--dark--text--color--300", "attributes": { - "category": "color", - "type": "gray", - "item": "50" + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "300" }, "path": [ + "global", + "dark", + "text", "color", - "gray", - "50" + "300" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } ] } ] @@ -24649,76 +24561,104 @@ ] } }, - "pf-t--global--text--color--on-disabled": { + "pf-t--global--text--color--on-brand--subtle--default": { "default": { - "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", + "description": "Use as the default color for text placed on a brand-colored background.", "type": "color", - "value": "#1f1f1f", + "value": "#ffffff", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", + "description": "Use as the default color for text placed on a brand-colored background.", "type": "color", - "value": "{global.dark.color.disabled.400}" + "value": "{global.text.color.regular}" }, - "name": "pf-t--global--text--color--on-disabled", + "name": "pf-t--global--text--color--on-brand--subtle--default", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-disabled" + "subitem": "on-brand", + "state": "subtle" }, "path": [ "global", "text", "color", - "on-disabled" + "on-brand", + "subtle", + "default" ], "references": [ { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "{color.gray.90}" + "value": "{global.dark.text.color.100}" }, - "name": "pf-t--global--dark--color--disabled--400", + "name": "pf-t--global--text--color--regular", "attributes": { "category": "global", - "type": "dark", + "type": "text", "item": "color", - "subitem": "disabled", - "state": "400" + "subitem": "regular" }, "path": [ "global", - "dark", + "text", "color", - "disabled", - "400" + "regular" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "{color.white}" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--global--dark--text--color--100", "attributes": { - "category": "color", - "type": "gray", - "item": "90" + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" }, "path": [ + "global", + "dark", + "text", "color", - "gray", - "90" + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } ] } ] @@ -24726,76 +24666,104 @@ ] } }, - "pf-t--global--text--color--required": { + "pf-t--global--text--color--on-brand--subtle--hover": { "default": { - "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", + "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", - "value": "#f89b78", + "value": "#ffffff", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", + "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.dark.text.color.400}" + "value": "{global.text.color.regular}" }, - "name": "pf-t--global--text--color--required", + "name": "pf-t--global--text--color--on-brand--subtle--hover", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "required" + "subitem": "on-brand", + "state": "subtle" }, "path": [ "global", "text", "color", - "required" + "on-brand", + "subtle", + "hover" ], "references": [ { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "#f89b78", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "{color.red-orange.30}" + "value": "{global.dark.text.color.100}" }, - "name": "pf-t--global--dark--text--color--400", + "name": "pf-t--global--text--color--regular", "attributes": { "category": "global", - "type": "dark", - "item": "text", - "subitem": "color", - "state": "400" + "type": "text", + "item": "color", + "subitem": "regular" }, "path": [ "global", - "dark", "text", "color", - "400" + "regular" ], "references": [ { "type": "color", - "value": "#f89b78", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#f89b78" + "value": "{color.white}" }, - "name": "pf-t--color--red-orange--30", + "name": "pf-t--global--dark--text--color--100", "attributes": { - "category": "color", - "type": "red-orange", - "item": "30" + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" }, "path": [ + "global", + "dark", + "text", "color", - "red-orange", - "30" + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } ] } ] @@ -24803,76 +24771,104 @@ ] } }, - "pf-t--global--text--color--on-highlight": { + "pf-t--global--text--color--on-brand--subtle--clicked": { "default": { - "description": "Use as the color of text that is highlighted.", + "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", - "value": "#1f1f1f", + "value": "#ffffff", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as the color of text that is highlighted.", + "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.dark.text.color.300}" + "value": "{global.text.color.regular}" }, - "name": "pf-t--global--text--color--on-highlight", + "name": "pf-t--global--text--color--on-brand--subtle--clicked", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-highlight" + "subitem": "on-brand", + "state": "subtle" }, "path": [ "global", "text", "color", - "on-highlight" + "on-brand", + "subtle", + "clicked" ], "references": [ { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "{color.gray.90}" + "value": "{global.dark.text.color.100}" }, - "name": "pf-t--global--dark--text--color--300", + "name": "pf-t--global--text--color--regular", "attributes": { "category": "global", - "type": "dark", - "item": "text", - "subitem": "color", - "state": "300" + "type": "text", + "item": "color", + "subitem": "regular" }, "path": [ "global", - "dark", "text", "color", - "300" + "regular" ], "references": [ { "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "#1f1f1f" + "value": "{color.white}" }, - "name": "pf-t--color--gray--90", + "name": "pf-t--global--dark--text--color--100", "attributes": { - "category": "color", - "type": "gray", - "item": "90" + "category": "global", + "type": "dark", + "item": "text", + "subitem": "color", + "state": "100" }, "path": [ + "global", + "dark", + "text", "color", - "gray", - "90" + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } ] } ] @@ -31834,147 +31830,70 @@ "type": "dark", "item": "box-shadow", "subitem": "color", - "state": "100" - }, - "path": [ - "global", - "dark", - "box-shadow", - "color", - "100" - ] - } - ] - } - }, - "pf-t--global--box-shadow--color--lg--directional": { - "default": { - "description": "Use as the color of large box-shadows.", - "type": "color", - "value": "rgba(0, 0, 0, 0.6000)", - "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", - "isSource": true, - "original": { - "description": "Use as the color of large box-shadows.", - "type": "color", - "value": "{global.dark.box-shadow.color.200}" - }, - "name": "pf-t--global--box-shadow--color--lg--directional", - "attributes": { - "category": "global", - "type": "box-shadow", - "item": "color", - "subitem": "lg", - "state": "directional" - }, - "path": [ - "global", - "box-shadow", - "color", - "lg", - "directional" - ], - "references": [ - { - "type": "color", - "value": "rgba(0, 0, 0, 0.6000)", - "filePath": "tokens/default/highcontrast-dark/base.dark.json", - "isSource": true, - "original": { - "type": "color", - "value": "rgba(0, 0, 0, 0.6000)" - }, - "name": "pf-t--global--dark--box-shadow--color--200", - "attributes": { - "category": "global", - "type": "dark", - "item": "box-shadow", - "subitem": "color", - "state": "200" + "state": "100" }, "path": [ "global", "dark", "box-shadow", "color", - "200" + "100" ] } ] } }, - "pf-t--global--focus-ring--color--default": { + "pf-t--global--box-shadow--color--lg--directional": { "default": { - "description": "Use as color value for custom focus rings", + "description": "Use as the color of large box-shadows.", "type": "color", - "value": "#92c5f9", + "value": "rgba(0, 0, 0, 0.6000)", "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", "isSource": true, "original": { - "description": "Use as color value for custom focus rings", + "description": "Use as the color of large box-shadows.", "type": "color", - "value": "{global.dark.focus-ring.color.100}" + "value": "{global.dark.box-shadow.color.200}" }, - "name": "pf-t--global--focus-ring--color--default", + "name": "pf-t--global--box-shadow--color--lg--directional", "attributes": { "category": "global", - "type": "focus-ring", + "type": "box-shadow", "item": "color", - "subitem": "default" + "subitem": "lg", + "state": "directional" }, "path": [ "global", - "focus-ring", + "box-shadow", "color", - "default" + "lg", + "directional" ], "references": [ { "type": "color", - "value": "#92c5f9", + "value": "rgba(0, 0, 0, 0.6000)", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.30}" + "value": "rgba(0, 0, 0, 0.6000)" }, - "name": "pf-t--global--dark--focus-ring--color--100", + "name": "pf-t--global--dark--box-shadow--color--200", "attributes": { "category": "global", "type": "dark", - "item": "focus-ring", + "item": "box-shadow", "subitem": "color", - "state": "100" + "state": "200" }, "path": [ "global", "dark", - "focus-ring", + "box-shadow", "color", - "100" - ], - "references": [ - { - "type": "color", - "value": "#92c5f9", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#92c5f9" - }, - "name": "pf-t--color--blue--30", - "attributes": { - "category": "color", - "type": "blue", - "item": "30" - }, - "path": [ - "color", - "blue", - "30" - ] - } + "200" ] } ] @@ -32156,6 +32075,83 @@ } ] } + }, + "pf-t--global--focus-ring--color--default": { + "default": { + "description": "Use as color value for custom focus rings", + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/semantic.highcontrast.dark.json", + "isSource": true, + "original": { + "description": "Use as color value for custom focus rings", + "type": "color", + "value": "{global.dark.focus-ring.color.100}" + }, + "name": "pf-t--global--focus-ring--color--default", + "attributes": { + "category": "global", + "type": "focus-ring", + "item": "color", + "subitem": "default" + }, + "path": [ + "global", + "focus-ring", + "color", + "default" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/base.dark.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.30}" + }, + "name": "pf-t--global--dark--focus-ring--color--100", + "attributes": { + "category": "global", + "type": "dark", + "item": "focus-ring", + "subitem": "color", + "state": "100" + }, + "path": [ + "global", + "dark", + "focus-ring", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#92c5f9", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#92c5f9" + }, + "name": "pf-t--color--blue--30", + "attributes": { + "category": "color", + "type": "blue", + "item": "30" + }, + "path": [ + "color", + "blue", + "30" + ] + } + ] + } + ] + } } }, "dimension": {}, @@ -33452,160 +33448,160 @@ ] } }, - "pf-t--global--dark--color--status--success--100": { + "pf-t--global--dark--color--severity--undefined--100": { "default": { "type": "color", - "value": "#87bb62", + "value": "#a3a3a3", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.40}" + "value": "{color.gray.40}" }, - "name": "pf-t--global--dark--color--status--success--100", + "name": "pf-t--global--dark--color--severity--undefined--100", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "severity", + "state": "undefined" }, "path": [ "global", "dark", "color", - "status", - "success", + "severity", + "undefined", "100" ], "references": [ { "type": "color", - "value": "#87bb62", + "value": "#a3a3a3", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#87bb62" + "value": "#a3a3a3" }, - "name": "pf-t--color--green--40", + "name": "pf-t--color--gray--40", "attributes": { "category": "color", - "type": "green", + "type": "gray", "item": "40" }, "path": [ "color", - "green", + "gray", "40" ] } ] } }, - "pf-t--global--dark--color--status--success--200": { + "pf-t--global--dark--color--severity--none--100": { "default": { "type": "color", - "value": "#afdc8f", + "value": "#92c5f9", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.30}" + "value": "{color.blue.30}" }, - "name": "pf-t--global--dark--color--status--success--200", + "name": "pf-t--global--dark--color--severity--none--100", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "severity", + "state": "none" }, "path": [ "global", "dark", "color", - "status", - "success", - "200" + "severity", + "none", + "100" ], "references": [ { "type": "color", - "value": "#afdc8f", + "value": "#92c5f9", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#afdc8f" + "value": "#92c5f9" }, - "name": "pf-t--color--green--30", + "name": "pf-t--color--blue--30", "attributes": { "category": "color", - "type": "green", + "type": "blue", "item": "30" }, "path": [ "color", - "green", + "blue", "30" ] } ] } }, - "pf-t--global--dark--color--status--success--300": { + "pf-t--global--dark--color--severity--minor--100": { "default": { "type": "color", - "value": "#d1f1bb", + "value": "#c7c7c7", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.20}" + "value": "{color.gray.30}" }, - "name": "pf-t--global--dark--color--status--success--300", + "name": "pf-t--global--dark--color--severity--minor--100", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "severity", + "state": "minor" }, "path": [ "global", "dark", "color", - "status", - "success", - "300" + "severity", + "minor", + "100" ], "references": [ { "type": "color", - "value": "#d1f1bb", + "value": "#c7c7c7", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#d1f1bb" + "value": "#c7c7c7" }, - "name": "pf-t--color--green--20", + "name": "pf-t--color--gray--30", "attributes": { "category": "color", - "type": "green", - "item": "20" + "type": "gray", + "item": "30" }, "path": [ "color", - "green", - "20" + "gray", + "30" ] } ] } }, - "pf-t--global--dark--color--status--warning--100": { + "pf-t--global--dark--color--severity--moderate--100": { "default": { "type": "color", "value": "#ffcc17", @@ -33615,20 +33611,20 @@ "type": "color", "value": "{color.yellow.30}" }, - "name": "pf-t--global--dark--color--status--warning--100", + "name": "pf-t--global--dark--color--severity--moderate--100", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "severity", + "state": "moderate" }, "path": [ "global", "dark", "color", - "status", - "warning", + "severity", + "moderate", "100" ], "references": [ @@ -33656,58 +33652,58 @@ ] } }, - "pf-t--global--dark--color--status--warning--200": { + "pf-t--global--dark--color--severity--important--100": { "default": { "type": "color", - "value": "#ffe072", + "value": "#f5921b", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.20}" + "value": "{color.orange.40}" }, - "name": "pf-t--global--dark--color--status--warning--200", + "name": "pf-t--global--dark--color--severity--important--100", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "severity", + "state": "important" }, "path": [ "global", "dark", "color", - "status", - "warning", - "200" + "severity", + "important", + "100" ], "references": [ { "type": "color", - "value": "#ffe072", + "value": "#f5921b", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffe072" + "value": "#f5921b" }, - "name": "pf-t--color--yellow--20", + "name": "pf-t--color--orange--40", "attributes": { "category": "color", - "type": "yellow", - "item": "20" + "type": "orange", + "item": "40" }, "path": [ "color", - "yellow", - "20" + "orange", + "40" ] } ] } }, - "pf-t--global--dark--color--status--danger--100": { + "pf-t--global--dark--color--severity--critical--100": { "default": { "type": "color", "value": "#f0561d", @@ -33717,20 +33713,20 @@ "type": "color", "value": "{color.red-orange.50}" }, - "name": "pf-t--global--dark--color--status--danger--100", + "name": "pf-t--global--dark--color--severity--critical--100", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "status", - "state": "danger" + "subitem": "severity", + "state": "critical" }, "path": [ "global", "dark", "color", - "status", - "danger", + "severity", + "critical", "100" ], "references": [ @@ -33758,7 +33754,7 @@ ] } }, - "pf-t--global--dark--color--status--danger--200": { + "pf-t--global--dark--color--severity--critical--200": { "default": { "type": "color", "value": "#f4784a", @@ -33768,20 +33764,20 @@ "type": "color", "value": "{color.red-orange.40}" }, - "name": "pf-t--global--dark--color--status--danger--200", + "name": "pf-t--global--dark--color--severity--critical--200", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "status", - "state": "danger" + "subitem": "severity", + "state": "critical" }, "path": [ "global", "dark", "color", - "status", - "danger", + "severity", + "critical", "200" ], "references": [ @@ -33809,766 +33805,766 @@ ] } }, - "pf-t--global--dark--color--status--danger--250": { + "pf-t--global--dark--color--status--success--100": { "default": { "type": "color", - "value": "#f89b78", + "value": "#87bb62", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.30}" + "value": "{color.green.40}" }, - "name": "pf-t--global--dark--color--status--danger--250", + "name": "pf-t--global--dark--color--status--success--100", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "danger" + "state": "success" }, "path": [ "global", "dark", "color", "status", - "danger", - "250" + "success", + "100" ], "references": [ { "type": "color", - "value": "#f89b78", + "value": "#87bb62", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f89b78" + "value": "#87bb62" }, - "name": "pf-t--color--red-orange--30", + "name": "pf-t--color--green--40", "attributes": { "category": "color", - "type": "red-orange", - "item": "30" + "type": "green", + "item": "40" }, "path": [ "color", - "red-orange", - "30" + "green", + "40" ] } ] } }, - "pf-t--global--dark--color--status--danger--300": { + "pf-t--global--dark--color--status--success--200": { "default": { "type": "color", - "value": "#fbbea8", + "value": "#afdc8f", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.20}" + "value": "{color.green.30}" }, - "name": "pf-t--global--dark--color--status--danger--300", + "name": "pf-t--global--dark--color--status--success--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "danger" + "state": "success" }, "path": [ "global", "dark", "color", "status", - "danger", - "300" + "success", + "200" ], "references": [ { "type": "color", - "value": "#fbbea8", + "value": "#afdc8f", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#fbbea8" + "value": "#afdc8f" }, - "name": "pf-t--color--red-orange--20", + "name": "pf-t--color--green--30", "attributes": { "category": "color", - "type": "red-orange", - "item": "20" + "type": "green", + "item": "30" }, "path": [ "color", - "red-orange", - "20" + "green", + "30" ] } ] } }, - "pf-t--global--dark--color--status--info--100": { + "pf-t--global--dark--color--status--success--300": { "default": { "type": "color", - "value": "#b6a6e9", + "value": "#d1f1bb", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.30}" + "value": "{color.green.20}" }, - "name": "pf-t--global--dark--color--status--info--100", + "name": "pf-t--global--dark--color--status--success--300", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "info" + "state": "success" }, "path": [ "global", "dark", "color", "status", - "info", - "100" + "success", + "300" ], "references": [ { "type": "color", - "value": "#b6a6e9", + "value": "#d1f1bb", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b6a6e9" + "value": "#d1f1bb" }, - "name": "pf-t--color--purple--30", + "name": "pf-t--color--green--20", "attributes": { "category": "color", - "type": "purple", - "item": "30" + "type": "green", + "item": "20" }, "path": [ "color", - "purple", - "30" + "green", + "20" ] } ] } }, - "pf-t--global--dark--color--status--info--200": { + "pf-t--global--dark--color--status--warning--100": { "default": { "type": "color", - "value": "#d0c5f4", + "value": "#ffcc17", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.20}" + "value": "{color.yellow.30}" }, - "name": "pf-t--global--dark--color--status--info--200", + "name": "pf-t--global--dark--color--status--warning--100", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "info" + "state": "warning" }, "path": [ "global", "dark", "color", "status", - "info", - "200" + "warning", + "100" ], "references": [ { "type": "color", - "value": "#d0c5f4", + "value": "#ffcc17", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#d0c5f4" + "value": "#ffcc17" }, - "name": "pf-t--color--purple--20", + "name": "pf-t--color--yellow--30", "attributes": { "category": "color", - "type": "purple", - "item": "20" + "type": "yellow", + "item": "30" }, "path": [ "color", - "purple", - "20" + "yellow", + "30" ] } ] } }, - "pf-t--global--dark--color--status--info--300": { + "pf-t--global--dark--color--status--warning--200": { "default": { "type": "color", - "value": "#ece6ff", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.10}" + "value": "{color.yellow.20}" }, - "name": "pf-t--global--dark--color--status--info--300", + "name": "pf-t--global--dark--color--status--warning--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "info" + "state": "warning" }, "path": [ "global", "dark", "color", "status", - "info", - "300" + "warning", + "200" ], "references": [ { "type": "color", - "value": "#ece6ff", + "value": "#ffe072", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ece6ff" + "value": "#ffe072" }, - "name": "pf-t--color--purple--10", + "name": "pf-t--color--yellow--20", "attributes": { "category": "color", - "type": "purple", - "item": "10" + "type": "yellow", + "item": "20" }, "path": [ "color", - "purple", - "10" + "yellow", + "20" ] } ] } }, - "pf-t--global--dark--color--status--custom--100": { + "pf-t--global--dark--color--status--danger--100": { "default": { "type": "color", - "value": "#63bdbd", + "value": "#f0561d", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.40}" + "value": "{color.red-orange.50}" }, - "name": "pf-t--global--dark--color--status--custom--100", + "name": "pf-t--global--dark--color--status--danger--100", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "custom" + "state": "danger" }, "path": [ "global", "dark", "color", "status", - "custom", + "danger", "100" ], "references": [ { "type": "color", - "value": "#63bdbd", + "value": "#f0561d", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#63bdbd" + "value": "#f0561d" }, - "name": "pf-t--color--teal--40", + "name": "pf-t--color--red-orange--50", "attributes": { "category": "color", - "type": "teal", - "item": "40" + "type": "red-orange", + "item": "50" }, "path": [ "color", - "teal", - "40" + "red-orange", + "50" ] } ] } }, - "pf-t--global--dark--color--status--custom--200": { + "pf-t--global--dark--color--status--danger--200": { "default": { "type": "color", - "value": "#9ad8d8", + "value": "#f4784a", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.30}" + "value": "{color.red-orange.40}" }, - "name": "pf-t--global--dark--color--status--custom--200", + "name": "pf-t--global--dark--color--status--danger--200", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "custom" + "state": "danger" }, "path": [ "global", "dark", "color", "status", - "custom", + "danger", "200" ], "references": [ { "type": "color", - "value": "#9ad8d8", + "value": "#f4784a", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#9ad8d8" + "value": "#f4784a" }, - "name": "pf-t--color--teal--30", + "name": "pf-t--color--red-orange--40", "attributes": { "category": "color", - "type": "teal", - "item": "30" + "type": "red-orange", + "item": "40" }, "path": [ "color", - "teal", - "30" + "red-orange", + "40" ] } ] } }, - "pf-t--global--dark--color--status--custom--300": { + "pf-t--global--dark--color--status--danger--250": { "default": { "type": "color", - "value": "#b9e5e5", + "value": "#f89b78", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.20}" + "value": "{color.red-orange.30}" }, - "name": "pf-t--global--dark--color--status--custom--300", + "name": "pf-t--global--dark--color--status--danger--250", "attributes": { "category": "global", "type": "dark", "item": "color", "subitem": "status", - "state": "custom" + "state": "danger" }, "path": [ "global", "dark", "color", "status", - "custom", - "300" + "danger", + "250" ], "references": [ { "type": "color", - "value": "#b9e5e5", + "value": "#f89b78", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b9e5e5" + "value": "#f89b78" }, - "name": "pf-t--color--teal--20", + "name": "pf-t--color--red-orange--30", "attributes": { "category": "color", - "type": "teal", - "item": "20" + "type": "red-orange", + "item": "30" }, "path": [ "color", - "teal", - "20" + "red-orange", + "30" ] } ] } }, - "pf-t--global--dark--color--severity--undefined--100": { + "pf-t--global--dark--color--status--danger--300": { "default": { "type": "color", - "value": "#a3a3a3", + "value": "#fbbea8", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.40}" + "value": "{color.red-orange.20}" }, - "name": "pf-t--global--dark--color--severity--undefined--100", + "name": "pf-t--global--dark--color--status--danger--300", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "severity", - "state": "undefined" + "subitem": "status", + "state": "danger" }, "path": [ "global", "dark", "color", - "severity", - "undefined", - "100" + "status", + "danger", + "300" ], "references": [ { "type": "color", - "value": "#a3a3a3", + "value": "#fbbea8", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#a3a3a3" + "value": "#fbbea8" }, - "name": "pf-t--color--gray--40", + "name": "pf-t--color--red-orange--20", "attributes": { "category": "color", - "type": "gray", - "item": "40" + "type": "red-orange", + "item": "20" }, "path": [ "color", - "gray", - "40" + "red-orange", + "20" ] } ] } }, - "pf-t--global--dark--color--severity--none--100": { + "pf-t--global--dark--color--status--info--100": { "default": { "type": "color", - "value": "#92c5f9", + "value": "#b6a6e9", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.30}" + "value": "{color.purple.30}" }, - "name": "pf-t--global--dark--color--severity--none--100", + "name": "pf-t--global--dark--color--status--info--100", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "severity", - "state": "none" + "subitem": "status", + "state": "info" }, "path": [ "global", "dark", "color", - "severity", - "none", + "status", + "info", "100" ], "references": [ { "type": "color", - "value": "#92c5f9", + "value": "#b6a6e9", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#92c5f9" + "value": "#b6a6e9" }, - "name": "pf-t--color--blue--30", + "name": "pf-t--color--purple--30", "attributes": { "category": "color", - "type": "blue", + "type": "purple", "item": "30" }, "path": [ "color", - "blue", + "purple", "30" ] } ] } }, - "pf-t--global--dark--color--severity--minor--100": { + "pf-t--global--dark--color--status--info--200": { "default": { "type": "color", - "value": "#c7c7c7", + "value": "#d0c5f4", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.30}" + "value": "{color.purple.20}" }, - "name": "pf-t--global--dark--color--severity--minor--100", + "name": "pf-t--global--dark--color--status--info--200", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "severity", - "state": "minor" + "subitem": "status", + "state": "info" }, "path": [ "global", "dark", "color", - "severity", - "minor", - "100" + "status", + "info", + "200" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#d0c5f4", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#c7c7c7" + "value": "#d0c5f4" }, - "name": "pf-t--color--gray--30", + "name": "pf-t--color--purple--20", "attributes": { "category": "color", - "type": "gray", - "item": "30" + "type": "purple", + "item": "20" }, "path": [ "color", - "gray", - "30" + "purple", + "20" ] } ] } }, - "pf-t--global--dark--color--severity--moderate--100": { + "pf-t--global--dark--color--status--info--300": { "default": { "type": "color", - "value": "#ffcc17", + "value": "#ece6ff", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.30}" + "value": "{color.purple.10}" }, - "name": "pf-t--global--dark--color--severity--moderate--100", + "name": "pf-t--global--dark--color--status--info--300", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "severity", - "state": "moderate" + "subitem": "status", + "state": "info" }, "path": [ "global", "dark", "color", - "severity", - "moderate", - "100" + "status", + "info", + "300" ], "references": [ { "type": "color", - "value": "#ffcc17", + "value": "#ece6ff", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffcc17" + "value": "#ece6ff" }, - "name": "pf-t--color--yellow--30", + "name": "pf-t--color--purple--10", "attributes": { "category": "color", - "type": "yellow", - "item": "30" + "type": "purple", + "item": "10" }, "path": [ "color", - "yellow", - "30" + "purple", + "10" ] } ] } }, - "pf-t--global--dark--color--severity--important--100": { + "pf-t--global--dark--color--status--custom--100": { "default": { "type": "color", - "value": "#f5921b", + "value": "#63bdbd", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.orange.40}" + "value": "{color.teal.40}" }, - "name": "pf-t--global--dark--color--severity--important--100", + "name": "pf-t--global--dark--color--status--custom--100", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "severity", - "state": "important" + "subitem": "status", + "state": "custom" }, "path": [ "global", "dark", "color", - "severity", - "important", + "status", + "custom", "100" ], "references": [ { "type": "color", - "value": "#f5921b", + "value": "#63bdbd", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f5921b" + "value": "#63bdbd" }, - "name": "pf-t--color--orange--40", + "name": "pf-t--color--teal--40", "attributes": { "category": "color", - "type": "orange", + "type": "teal", "item": "40" }, "path": [ "color", - "orange", + "teal", "40" ] } ] } }, - "pf-t--global--dark--color--severity--critical--100": { + "pf-t--global--dark--color--status--custom--200": { "default": { "type": "color", - "value": "#f0561d", + "value": "#9ad8d8", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.50}" + "value": "{color.teal.30}" }, - "name": "pf-t--global--dark--color--severity--critical--100", + "name": "pf-t--global--dark--color--status--custom--200", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "severity", - "state": "critical" + "subitem": "status", + "state": "custom" }, "path": [ "global", "dark", "color", - "severity", - "critical", - "100" + "status", + "custom", + "200" ], "references": [ { "type": "color", - "value": "#f0561d", + "value": "#9ad8d8", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f0561d" + "value": "#9ad8d8" }, - "name": "pf-t--color--red-orange--50", + "name": "pf-t--color--teal--30", "attributes": { "category": "color", - "type": "red-orange", - "item": "50" + "type": "teal", + "item": "30" }, "path": [ "color", - "red-orange", - "50" + "teal", + "30" ] } ] } }, - "pf-t--global--dark--color--severity--critical--200": { + "pf-t--global--dark--color--status--custom--300": { "default": { "type": "color", - "value": "#f4784a", + "value": "#b9e5e5", "filePath": "tokens/default/highcontrast-dark/base.dark.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.40}" + "value": "{color.teal.20}" }, - "name": "pf-t--global--dark--color--severity--critical--200", + "name": "pf-t--global--dark--color--status--custom--300", "attributes": { "category": "global", "type": "dark", "item": "color", - "subitem": "severity", - "state": "critical" + "subitem": "status", + "state": "custom" }, "path": [ "global", "dark", "color", - "severity", - "critical", - "200" + "status", + "custom", + "300" ], "references": [ { "type": "color", - "value": "#f4784a", + "value": "#b9e5e5", "filePath": "tokens/default/highcontrast-dark/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#f4784a" + "value": "#b9e5e5" }, - "name": "pf-t--color--red-orange--40", + "name": "pf-t--color--teal--20", "attributes": { "category": "color", - "type": "red-orange", - "item": "40" + "type": "teal", + "item": "20" }, "path": [ "color", - "red-orange", - "40" + "teal", + "20" ] } ] @@ -36884,6 +36880,27 @@ ] } }, + "pf-t--color--black": { + "default": { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/highcontrast-dark/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#000000" + }, + "name": "pf-t--color--black", + "attributes": { + "category": "color", + "type": "black" + }, + "path": [ + "color", + "black" + ] + } + }, "pf-t--color--gray--10": { "default": { "type": "color", @@ -37137,27 +37154,6 @@ ] } }, - "pf-t--color--black": { - "default": { - "type": "color", - "value": "#000000", - "filePath": "tokens/default/highcontrast-dark/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#000000" - }, - "name": "pf-t--color--black", - "attributes": { - "category": "color", - "type": "black" - }, - "path": [ - "color", - "black" - ] - } - }, "pf-t--color--blue--10": { "default": { "type": "color", diff --git a/packages/module/patternfly-docs/content/token-layers-highcontrast.json b/packages/module/patternfly-docs/content/token-layers-highcontrast.json index 40e7cd2..425b26e 100644 --- a/packages/module/patternfly-docs/content/token-layers-highcontrast.json +++ b/packages/module/patternfly-docs/content/token-layers-highcontrast.json @@ -1,6 +1,379 @@ { "semantic": { "colors": { + "pf-t--global--icon--color--regular": { + "default": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--subtle": { + "default": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "{global.icon.color.150}" + }, + "name": "pf-t--global--icon--color--subtle", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "icon", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--icon--color--150", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "150" + }, + "path": [ + "global", + "icon", + "color", + "150" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--inverse": { + "default": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--disabled": { + "default": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "{global.color.disabled.200}" + }, + "name": "pf-t--global--icon--color--disabled", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "disabled" + }, + "path": [ + "global", + "icon", + "color", + "disabled" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--color--disabled--200", + "attributes": { + "category": "global", + "type": "color", + "item": "disabled", + "subitem": "200" + }, + "path": [ + "global", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-disabled": { + "default": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "{global.color.disabled.300}" + }, + "name": "pf-t--global--icon--color--on-disabled", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-disabled" + }, + "path": [ + "global", + "icon", + "color", + "on-disabled" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--color--disabled--300", + "attributes": { + "category": "global", + "type": "color", + "item": "disabled", + "subitem": "300" + }, + "path": [ + "global", + "color", + "disabled", + "300" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, "pf-t--global--icon--color--brand--default": { "default": { "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", @@ -5506,379 +5879,6 @@ ] } }, - "pf-t--global--icon--color--regular": { - "default": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", - "type": "color", - "value": "{global.icon.color.100}" - }, - "name": "pf-t--global--icon--color--regular", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "regular" - }, - "path": [ - "global", - "icon", - "color", - "regular" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.90}" - }, - "name": "pf-t--global--icon--color--100", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "100" - }, - "path": [ - "global", - "icon", - "color", - "100" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#1f1f1f" - }, - "name": "pf-t--color--gray--90", - "attributes": { - "category": "color", - "type": "gray", - "item": "90" - }, - "path": [ - "color", - "gray", - "90" - ] - } - ] - } - ] - } - }, - "pf-t--global--icon--color--subtle": { - "default": { - "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", - "type": "color", - "value": "{global.icon.color.150}" - }, - "name": "pf-t--global--icon--color--subtle", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "subtle" - }, - "path": [ - "global", - "icon", - "color", - "subtle" - ], - "references": [ - { - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.60}" - }, - "name": "pf-t--global--icon--color--150", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "150" - }, - "path": [ - "global", - "icon", - "color", - "150" - ], - "references": [ - { - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#4d4d4d" - }, - "name": "pf-t--color--gray--60", - "attributes": { - "category": "color", - "type": "gray", - "item": "60" - }, - "path": [ - "color", - "gray", - "60" - ] - } - ] - } - ] - } - }, - "pf-t--global--icon--color--inverse": { - "default": { - "description": "Use as the color for icons that are placed on an inverse background color", - "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the color for icons that are placed on an inverse background color", - "type": "color", - "value": "{global.icon.color.300}" - }, - "name": "pf-t--global--icon--color--inverse", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" - }, - "path": [ - "global", - "icon", - "color", - "inverse" - ], - "references": [ - { - "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.white}" - }, - "name": "pf-t--global--icon--color--300", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "300" - }, - "path": [ - "global", - "icon", - "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#ffffff" - }, - "name": "pf-t--color--white", - "attributes": { - "category": "color", - "type": "white" - }, - "path": [ - "color", - "white" - ] - } - ] - } - ] - } - }, - "pf-t--global--icon--color--disabled": { - "default": { - "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", - "type": "color", - "value": "{global.color.disabled.200}" - }, - "name": "pf-t--global--icon--color--disabled", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "disabled" - }, - "path": [ - "global", - "icon", - "color", - "disabled" - ], - "references": [ - { - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.40}" - }, - "name": "pf-t--global--color--disabled--200", - "attributes": { - "category": "global", - "type": "color", - "item": "disabled", - "subitem": "200" - }, - "path": [ - "global", - "color", - "disabled", - "200" - ], - "references": [ - { - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#a3a3a3" - }, - "name": "pf-t--color--gray--40", - "attributes": { - "category": "color", - "type": "gray", - "item": "40" - }, - "path": [ - "color", - "gray", - "40" - ] - } - ] - } - ] - } - }, - "pf-t--global--icon--color--on-disabled": { - "default": { - "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", - "type": "color", - "value": "#707070", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", - "type": "color", - "value": "{global.color.disabled.300}" - }, - "name": "pf-t--global--icon--color--on-disabled", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "on-disabled" - }, - "path": [ - "global", - "icon", - "color", - "on-disabled" - ], - "references": [ - { - "type": "color", - "value": "#707070", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.50}" - }, - "name": "pf-t--global--color--disabled--300", - "attributes": { - "category": "global", - "type": "color", - "item": "disabled", - "subitem": "300" - }, - "path": [ - "global", - "color", - "disabled", - "300" - ], - "references": [ - { - "type": "color", - "value": "#707070", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#707070" - }, - "name": "pf-t--color--gray--50", - "attributes": { - "category": "color", - "type": "gray", - "item": "50" - }, - "path": [ - "color", - "gray", - "50" - ] - } - ] - } - ] - } - }, "pf-t--global--icon--color--severity--undefined--default": { "default": { "description": "Use as the default color for severity icons that don’t communicate a specific severity level for issues.", @@ -9194,76 +9194,101 @@ ] } }, - "pf-t--global--border--color--control--default": { + "pf-t--global--border--color--high-contrast": { "default": { - "description": "Use as the default border for control elements like form inputs, menu toggles, and clickable cards", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", "value": "#4d4d4d", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default border for control elements like form inputs, menu toggles, and clickable cards", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.border.color.400}" + "value": "{global.border.color.default}" }, - "name": "pf-t--global--border--color--control--default", + "name": "pf-t--global--border--color--high-contrast", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "control", - "state": "default" + "subitem": "high-contrast" }, "path": [ "global", "border", "color", - "control", - "default" + "high-contrast" ], "references": [ { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/base.json", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{color.gray.60}" + "value": "{global.border.color.400}" }, - "name": "pf-t--global--border--color--400", + "name": "pf-t--global--border--color--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "400" + "subitem": "default" }, "path": [ "global", "border", "color", - "400" + "default" ], "references": [ { "type": "color", "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/palette.color.json", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#4d4d4d" + "value": "{color.gray.60}" }, - "name": "pf-t--color--gray--60", + "name": "pf-t--global--border--color--400", "attributes": { - "category": "color", - "type": "gray", - "item": "60" + "category": "global", + "type": "border", + "item": "color", + "subitem": "400" }, "path": [ + "global", + "border", "color", - "gray", - "60" + "400" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } ] } ] @@ -9271,76 +9296,74 @@ ] } }, - "pf-t--global--border--color--control--read-only": { + "pf-t--global--border--color--default": { "default": { - "description": "Use as the read-only border for control elements like form inputs, menu toggles.", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#c7c7c7", + "value": "#4d4d4d", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the read-only border for control elements like form inputs, menu toggles.", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.border.color.100}" + "value": "{global.border.color.400}" }, - "name": "pf-t--global--border--color--control--read-only", + "name": "pf-t--global--border--color--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "control", - "state": "read-only" + "subitem": "default" }, "path": [ "global", "border", "color", - "control", - "read-only" + "default" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#4d4d4d", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.30}" + "value": "{color.gray.60}" }, - "name": "pf-t--global--border--color--100", + "name": "pf-t--global--border--color--400", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "100" + "subitem": "400" }, "path": [ "global", "border", "color", - "100" + "400" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#4d4d4d", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#c7c7c7" + "value": "#4d4d4d" }, - "name": "pf-t--color--gray--30", + "name": "pf-t--color--gray--60", "attributes": { "category": "color", "type": "gray", - "item": "30" + "item": "60" }, "path": [ "color", "gray", - "30" + "60" ] } ] @@ -9348,103 +9371,74 @@ ] } }, - "pf-t--global--border--color--brand--default": { + "pf-t--global--border--color--hover": { "default": { - "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", "value": "#004d99", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.default}" + "value": "{global.color.brand.300}" }, - "name": "pf-t--global--border--color--brand--default", + "name": "pf-t--global--border--color--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "default" + "subitem": "hover" }, "path": [ "global", "border", "color", - "brand", - "default" + "hover" ], "references": [ { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", "value": "#004d99", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.color.brand.300}" + "value": "{color.blue.60}" }, - "name": "pf-t--global--color--brand--default", + "name": "pf-t--global--color--brand--300", "attributes": { "category": "global", "type": "color", "item": "brand", - "subitem": "default" + "subitem": "300" }, "path": [ "global", "color", "brand", - "default" + "300" ], "references": [ { "type": "color", "value": "#004d99", - "filePath": "tokens/default/highcontrast/base.json", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.60}" + "value": "#004d99" }, - "name": "pf-t--global--color--brand--300", + "name": "pf-t--color--blue--60", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "300" + "category": "color", + "type": "blue", + "item": "60" }, "path": [ - "global", "color", - "brand", - "300" - ], - "references": [ - { - "type": "color", - "value": "#004d99", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#004d99" - }, - "name": "pf-t--color--blue--60", - "attributes": { - "category": "color", - "type": "blue", - "item": "60" - }, - "path": [ - "color", - "blue", - "60" - ] - } + "blue", + "60" ] } ] @@ -9452,103 +9446,74 @@ ] } }, - "pf-t--global--border--color--brand--hover": { + "pf-t--global--border--color--clicked": { "default": { - "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", "value": "#003366", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.hover}" + "value": "{global.color.brand.400}" }, - "name": "pf-t--global--border--color--brand--hover", + "name": "pf-t--global--border--color--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "hover" + "subitem": "clicked" }, "path": [ "global", "border", "color", - "brand", - "hover" + "clicked" ], "references": [ { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", "value": "#003366", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.color.brand.400}" + "value": "{color.blue.70}" }, - "name": "pf-t--global--color--brand--hover", + "name": "pf-t--global--color--brand--400", "attributes": { "category": "global", "type": "color", "item": "brand", - "subitem": "hover" + "subitem": "400" }, "path": [ "global", "color", "brand", - "hover" + "400" ], "references": [ { "type": "color", "value": "#003366", - "filePath": "tokens/default/highcontrast/base.json", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.70}" + "value": "#003366" }, - "name": "pf-t--global--color--brand--400", + "name": "pf-t--color--blue--70", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "400" + "category": "color", + "type": "blue", + "item": "70" }, "path": [ - "global", "color", - "brand", - "400" - ], - "references": [ - { - "type": "color", - "value": "#003366", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#003366" - }, - "name": "pf-t--color--blue--70", - "attributes": { - "category": "color", - "type": "blue", - "item": "70" - }, - "path": [ - "color", - "blue", - "70" - ] - } + "blue", + "70" ] } ] @@ -9556,103 +9521,74 @@ ] } }, - "pf-t--global--border--color--brand--clicked": { + "pf-t--global--border--color--subtle": { "default": { - "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#003366", + "value": "#4d4d4d", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.clicked}" + "value": "{global.border.color.400}" }, - "name": "pf-t--global--border--color--brand--clicked", + "name": "pf-t--global--border--color--subtle", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "clicked" + "subitem": "subtle" }, "path": [ "global", "border", "color", - "brand", - "clicked" + "subtle" ], "references": [ { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#003366", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.color.brand.400}" + "value": "{color.gray.60}" }, - "name": "pf-t--global--color--brand--clicked", + "name": "pf-t--global--border--color--400", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "clicked" + "type": "border", + "item": "color", + "subitem": "400" }, "path": [ "global", + "border", "color", - "brand", - "clicked" + "400" ], "references": [ { "type": "color", - "value": "#003366", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.70}" + "value": "#4d4d4d" }, - "name": "pf-t--global--color--brand--400", + "name": "pf-t--color--gray--60", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "400" + "category": "color", + "type": "gray", + "item": "60" }, "path": [ - "global", "color", - "brand", - "400" - ], - "references": [ - { - "type": "color", - "value": "#003366", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#003366" - }, - "name": "pf-t--color--blue--70", - "attributes": { - "category": "color", - "type": "blue", - "item": "70" - }, - "path": [ - "color", - "blue", - "70" - ] - } + "gray", + "60" ] } ] @@ -9660,133 +9596,74 @@ ] } }, - "pf-t--global--border--color--brand--accent--default": { + "pf-t--global--border--color--disabled": { "default": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#004d99", + "value": "#a3a3a3", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.accent.default}" + "value": "{global.color.disabled.200}" }, - "name": "pf-t--global--border--color--brand--accent--default", + "name": "pf-t--global--border--color--disabled", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "accent" + "subitem": "disabled" }, "path": [ "global", "border", "color", - "brand", - "accent", - "default" + "disabled" ], "references": [ { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#004d99", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.color.brand.default}" + "value": "{color.gray.40}" }, - "name": "pf-t--global--color--brand--accent--default", + "name": "pf-t--global--color--disabled--200", "attributes": { "category": "global", "type": "color", - "item": "brand", - "subitem": "accent", - "state": "default" + "item": "disabled", + "subitem": "200" }, "path": [ "global", "color", - "brand", - "accent", - "default" + "disabled", + "200" ], "references": [ { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#004d99", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.color.brand.300}" + "value": "#a3a3a3" }, - "name": "pf-t--global--color--brand--default", + "name": "pf-t--color--gray--40", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "default" + "category": "color", + "type": "gray", + "item": "40" }, "path": [ - "global", "color", - "brand", - "default" - ], - "references": [ - { - "type": "color", - "value": "#004d99", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.blue.60}" - }, - "name": "pf-t--global--color--brand--300", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "300" - }, - "path": [ - "global", - "color", - "brand", - "300" - ], - "references": [ - { - "type": "color", - "value": "#004d99", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#004d99" - }, - "name": "pf-t--color--blue--60", - "attributes": { - "category": "color", - "type": "blue", - "item": "60" - }, - "path": [ - "color", - "blue", - "60" - ] - } - ] - } + "gray", + "40" ] } ] @@ -9794,131 +9671,99 @@ ] } }, - "pf-t--global--border--color--brand--accent--hover": { + "pf-t--global--border--color--alt": { "default": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", "type": "color", - "value": "#003366", + "value": "#ffffff", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", "type": "color", - "value": "{global.color.brand.accent.hover}" + "value": "{global.background.color.primary.default}" }, - "name": "pf-t--global--border--color--brand--accent--hover", + "name": "pf-t--global--border--color--alt", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "accent" + "subitem": "alt" }, "path": [ "global", "border", "color", - "brand", - "accent", - "hover" + "alt" ], "references": [ { - "description": "Use as the hover state for elements that have a branded background color", + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", "type": "color", - "value": "#003366", + "value": "#ffffff", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have a branded background color", + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", "type": "color", - "value": "{global.color.brand.hover}" + "value": "{global.background.color.100}" }, - "name": "pf-t--global--color--brand--accent--hover", + "name": "pf-t--global--background--color--primary--default", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "hover" + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" }, "path": [ "global", + "background", "color", - "brand", - "accent", - "hover" + "primary", + "default" ], "references": [ { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#003366", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.color.brand.400}" + "value": "{color.white}" }, - "name": "pf-t--global--color--brand--hover", + "name": "pf-t--global--background--color--100", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "hover" + "type": "background", + "item": "color", + "subitem": "100" }, "path": [ "global", + "background", "color", - "brand", - "hover" + "100" ], "references": [ { "type": "color", - "value": "#003366", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.70}" + "value": "#ffffff" }, - "name": "pf-t--global--color--brand--400", + "name": "pf-t--color--white", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "400" + "category": "color", + "type": "white" }, "path": [ - "global", "color", - "brand", - "400" - ], - "references": [ - { - "type": "color", - "value": "#003366", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#003366" - }, - "name": "pf-t--color--blue--70", - "attributes": { - "category": "color", - "type": "blue", - "item": "70" - }, - "path": [ - "color", - "blue", - "70" - ] - } + "white" ] } ] @@ -9928,133 +9773,74 @@ ] } }, - "pf-t--global--border--color--brand--accent--clicked": { + "pf-t--global--border--color--on-secondary": { "default": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", + "description": "Use on borders/dividers that are placed on a secondary bkg color.", "type": "color", - "value": "#003366", + "value": "#4d4d4d", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", + "description": "Use on borders/dividers that are placed on a secondary bkg color.", "type": "color", - "value": "{global.color.brand.accent.clicked}" + "value": "{global.border.color.400}" }, - "name": "pf-t--global--border--color--brand--accent--clicked", + "name": "pf-t--global--border--color--on-secondary", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "accent" + "subitem": "on-secondary" }, "path": [ "global", "border", "color", - "brand", - "accent", - "clicked" + "on-secondary" ], "references": [ { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#003366", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.color.brand.clicked}" + "value": "{color.gray.60}" }, - "name": "pf-t--global--color--brand--accent--clicked", + "name": "pf-t--global--border--color--400", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "clicked" + "type": "border", + "item": "color", + "subitem": "400" }, "path": [ "global", + "border", "color", - "brand", - "accent", - "clicked" + "400" ], "references": [ { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#003366", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.color.brand.400}" + "value": "#4d4d4d" }, - "name": "pf-t--global--color--brand--clicked", + "name": "pf-t--color--gray--60", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "clicked" + "category": "color", + "type": "gray", + "item": "60" }, "path": [ - "global", "color", - "brand", - "clicked" - ], - "references": [ - { - "type": "color", - "value": "#003366", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.blue.70}" - }, - "name": "pf-t--global--color--brand--400", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "400" - }, - "path": [ - "global", - "color", - "brand", - "400" - ], - "references": [ - { - "type": "color", - "value": "#003366", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#003366" - }, - "name": "pf-t--color--blue--70", - "attributes": { - "category": "color", - "type": "blue", - "item": "70" - }, - "path": [ - "color", - "blue", - "70" - ] - } - ] - } + "gray", + "60" ] } ] @@ -10062,79 +9848,74 @@ ] } }, - "pf-t--global--border--color--brand--subtle--default": { + "pf-t--global--border--color--control--default": { "default": { - "description": "Use as the default border color for any subtle brand element like toggle groups", "type": "color", - "value": "#b9dafc", + "value": "#4d4d4d", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default border color for any subtle brand element like toggle groups", "type": "color", - "value": "{global.color.brand.subtle.200}" + "value": "{global.border.color.400}" }, - "name": "pf-t--global--border--color--brand--subtle--default", + "name": "pf-t--global--border--color--control--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "subtle" + "subitem": "control", + "state": "default" }, "path": [ "global", "border", "color", - "brand", - "subtle", + "control", "default" ], "references": [ { "type": "color", - "value": "#b9dafc", + "value": "#4d4d4d", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.20}" + "value": "{color.gray.60}" }, - "name": "pf-t--global--color--brand--subtle--200", + "name": "pf-t--global--border--color--400", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "subtle", - "state": "200" + "type": "border", + "item": "color", + "subitem": "400" }, "path": [ "global", + "border", "color", - "brand", - "subtle", - "200" + "400" ], "references": [ { "type": "color", - "value": "#b9dafc", + "value": "#4d4d4d", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b9dafc" + "value": "#4d4d4d" }, - "name": "pf-t--color--blue--20", + "name": "pf-t--color--gray--60", "attributes": { "category": "color", - "type": "blue", - "item": "20" + "type": "gray", + "item": "60" }, "path": [ "color", - "blue", - "20" + "gray", + "60" ] } ] @@ -10142,79 +9923,74 @@ ] } }, - "pf-t--global--border--color--brand--subtle--hover": { + "pf-t--global--border--color--control--read-only": { "default": { - "description": "Use as the hover border color for any subtle brand element like toggle groups", "type": "color", - "value": "#0066cc", + "value": "#c7c7c7", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover border color for any subtle brand element like toggle groups", "type": "color", - "value": "{global.color.brand.subtle.400}" + "value": "{global.border.color.100}" }, - "name": "pf-t--global--border--color--brand--subtle--hover", + "name": "pf-t--global--border--color--control--read-only", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "subtle" + "subitem": "control", + "state": "read-only" }, "path": [ "global", "border", "color", - "brand", - "subtle", - "hover" + "control", + "read-only" ], "references": [ { "type": "color", - "value": "#0066cc", + "value": "#c7c7c7", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.50}" + "value": "{color.gray.30}" }, - "name": "pf-t--global--color--brand--subtle--400", + "name": "pf-t--global--border--color--100", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "subtle", - "state": "400" + "type": "border", + "item": "color", + "subitem": "100" }, "path": [ "global", + "border", "color", - "brand", - "subtle", - "400" + "100" ], "references": [ { "type": "color", - "value": "#0066cc", + "value": "#c7c7c7", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#0066cc" + "value": "#c7c7c7" }, - "name": "pf-t--color--blue--50", + "name": "pf-t--color--gray--30", "attributes": { "category": "color", - "type": "blue", - "item": "50" + "type": "gray", + "item": "30" }, "path": [ "color", - "blue", - "50" + "gray", + "30" ] } ] @@ -10222,79 +9998,103 @@ ] } }, - "pf-t--global--border--color--brand--subtle--clicked": { + "pf-t--global--border--color--brand--default": { "default": { - "description": "Use as the clicked border color for any subtle brand element like toggle groups", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#0066cc", + "value": "#004d99", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked border color for any subtle brand element like toggle groups", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.brand.subtle.400}" + "value": "{global.color.brand.default}" }, - "name": "pf-t--global--border--color--brand--subtle--clicked", + "name": "pf-t--global--border--color--brand--default", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "brand", - "state": "subtle" + "state": "default" }, "path": [ "global", "border", "color", "brand", - "subtle", - "clicked" + "default" ], "references": [ { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#0066cc", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{color.blue.50}" + "value": "{global.color.brand.300}" }, - "name": "pf-t--global--color--brand--subtle--400", + "name": "pf-t--global--color--brand--default", "attributes": { "category": "global", "type": "color", "item": "brand", - "subitem": "subtle", - "state": "400" + "subitem": "default" }, "path": [ "global", "color", "brand", - "subtle", - "400" + "default" ], "references": [ { "type": "color", - "value": "#0066cc", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#0066cc" + "value": "{color.blue.60}" }, - "name": "pf-t--color--blue--50", + "name": "pf-t--global--color--brand--300", "attributes": { - "category": "color", - "type": "blue", - "item": "50" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" }, "path": [ + "global", "color", - "blue", - "50" + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } ] } ] @@ -10302,136 +10102,207 @@ ] } }, - "pf-t--global--border--color--status--success--default": { + "pf-t--global--border--color--brand--hover": { "default": { - "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#3d7019", + "value": "#003366", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.success.150}" + "value": "{global.color.brand.hover}" }, - "name": "pf-t--global--border--color--status--success--default", + "name": "pf-t--global--border--color--brand--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "brand", + "state": "hover" }, "path": [ "global", "border", "color", - "status", - "success", - "default" + "brand", + "hover" ], "references": [ { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#3d7019", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#3d7019" + "value": "{global.color.brand.400}" }, - "name": "pf-t--global--color--status--success--150", + "name": "pf-t--global--color--brand--hover", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "150" + "item": "brand", + "subitem": "hover" }, "path": [ "global", "color", - "status", - "success", - "150" + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.70}" + }, + "name": "pf-t--global--color--brand--400", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "400" + }, + "path": [ + "global", + "color", + "brand", + "400" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } + ] + } ] } ] } }, - "pf-t--global--border--color--status--success--hover": { + "pf-t--global--border--color--brand--clicked": { "default": { - "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#204d00", + "value": "#003366", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.success.200}" + "value": "{global.color.brand.clicked}" }, - "name": "pf-t--global--border--color--status--success--hover", + "name": "pf-t--global--border--color--brand--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "brand", + "state": "clicked" }, "path": [ "global", "border", "color", - "status", - "success", - "hover" + "brand", + "clicked" ], "references": [ { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#204d00", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{color.green.70}" + "value": "{global.color.brand.400}" }, - "name": "pf-t--global--color--status--success--200", + "name": "pf-t--global--color--brand--clicked", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "200" + "item": "brand", + "subitem": "clicked" }, "path": [ "global", "color", - "status", - "success", - "200" + "brand", + "clicked" ], "references": [ { "type": "color", - "value": "#204d00", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#204d00" + "value": "{color.blue.70}" }, - "name": "pf-t--color--green--70", + "name": "pf-t--global--color--brand--400", "attributes": { - "category": "color", - "type": "green", - "item": "70" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "400" }, "path": [ + "global", "color", - "green", - "70" + "brand", + "400" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } ] } ] @@ -10439,79 +10310,133 @@ ] } }, - "pf-t--global--border--color--status--success--clicked": { + "pf-t--global--border--color--brand--accent--default": { "default": { - "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#204d00", + "value": "#004d99", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.success.200}" + "value": "{global.color.brand.accent.default}" }, - "name": "pf-t--global--border--color--status--success--clicked", + "name": "pf-t--global--border--color--brand--accent--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "brand", + "state": "accent" }, "path": [ "global", "border", "color", - "status", - "success", - "clicked" + "brand", + "accent", + "default" ], "references": [ { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#204d00", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{color.green.70}" + "value": "{global.color.brand.default}" }, - "name": "pf-t--global--color--status--success--200", + "name": "pf-t--global--color--brand--accent--default", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "200" + "item": "brand", + "subitem": "accent", + "state": "default" }, "path": [ "global", "color", - "status", - "success", - "200" + "brand", + "accent", + "default" ], "references": [ { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#204d00", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#204d00" + "value": "{global.color.brand.300}" }, - "name": "pf-t--color--green--70", + "name": "pf-t--global--color--brand--default", "attributes": { - "category": "color", - "type": "green", - "item": "70" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "default" }, "path": [ + "global", "color", - "green", - "70" + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--brand--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" + }, + "path": [ + "global", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } ] } ] @@ -10519,79 +10444,133 @@ ] } }, - "pf-t--global--border--color--status--warning--default": { + "pf-t--global--border--color--brand--accent--hover": { "default": { - "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#73480b", + "value": "#003366", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.warning.500}" + "value": "{global.color.brand.accent.hover}" }, - "name": "pf-t--global--border--color--status--warning--default", + "name": "pf-t--global--border--color--brand--accent--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "brand", + "state": "accent" }, "path": [ "global", "border", "color", - "status", - "warning", - "default" + "brand", + "accent", + "hover" ], "references": [ { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#73480b", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{color.yellow.70}" + "value": "{global.color.brand.hover}" }, - "name": "pf-t--global--color--status--warning--500", + "name": "pf-t--global--color--brand--accent--hover", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "warning", - "state": "500" + "item": "brand", + "subitem": "accent", + "state": "hover" }, "path": [ "global", "color", - "status", - "warning", - "500" + "brand", + "accent", + "hover" ], "references": [ { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#73480b", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#73480b" + "value": "{global.color.brand.400}" }, - "name": "pf-t--color--yellow--70", + "name": "pf-t--global--color--brand--hover", "attributes": { - "category": "color", - "type": "yellow", - "item": "70" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" }, "path": [ + "global", "color", - "yellow", - "70" + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.70}" + }, + "name": "pf-t--global--color--brand--400", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "400" + }, + "path": [ + "global", + "color", + "brand", + "400" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } + ] + } ] } ] @@ -10599,79 +10578,133 @@ ] } }, - "pf-t--global--border--color--status--warning--hover": { + "pf-t--global--border--color--brand--accent--clicked": { "default": { - "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#54330b", + "value": "#003366", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.warning.600}" + "value": "{global.color.brand.accent.clicked}" }, - "name": "pf-t--global--border--color--status--warning--hover", + "name": "pf-t--global--border--color--brand--accent--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "brand", + "state": "accent" }, "path": [ "global", "border", "color", - "status", - "warning", - "hover" + "brand", + "accent", + "clicked" ], "references": [ { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#54330b", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{color.yellow.80}" + "value": "{global.color.brand.clicked}" }, - "name": "pf-t--global--color--status--warning--600", + "name": "pf-t--global--color--brand--accent--clicked", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "warning", - "state": "600" + "item": "brand", + "subitem": "accent", + "state": "clicked" }, "path": [ "global", "color", - "status", - "warning", - "600" + "brand", + "accent", + "clicked" ], "references": [ { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#54330b", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#54330b" + "value": "{global.color.brand.400}" }, - "name": "pf-t--color--yellow--80", + "name": "pf-t--global--color--brand--clicked", "attributes": { - "category": "color", - "type": "yellow", - "item": "80" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "clicked" }, "path": [ + "global", "color", - "yellow", - "80" + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.70}" + }, + "name": "pf-t--global--color--brand--400", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "400" + }, + "path": [ + "global", + "color", + "brand", + "400" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } + ] + } ] } ] @@ -10679,79 +10712,79 @@ ] } }, - "pf-t--global--border--color--status--warning--clicked": { + "pf-t--global--border--color--brand--subtle--default": { "default": { - "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#54330b", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.warning.600}" + "value": "{global.color.brand.subtle.200}" }, - "name": "pf-t--global--border--color--status--warning--clicked", + "name": "pf-t--global--border--color--brand--subtle--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "brand", + "state": "subtle" }, "path": [ "global", "border", "color", - "status", - "warning", - "clicked" + "brand", + "subtle", + "default" ], "references": [ { "type": "color", - "value": "#54330b", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.yellow.80}" + "value": "{color.blue.20}" }, - "name": "pf-t--global--color--status--warning--600", + "name": "pf-t--global--color--brand--subtle--200", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "warning", - "state": "600" + "item": "brand", + "subitem": "subtle", + "state": "200" }, "path": [ "global", "color", - "status", - "warning", - "600" + "brand", + "subtle", + "200" ], "references": [ { "type": "color", - "value": "#54330b", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#54330b" + "value": "#b9dafc" }, - "name": "pf-t--color--yellow--80", + "name": "pf-t--color--blue--20", "attributes": { "category": "color", - "type": "yellow", - "item": "80" + "type": "blue", + "item": "20" }, "path": [ "color", - "yellow", - "80" + "blue", + "20" ] } ] @@ -10759,108 +10792,79 @@ ] } }, - "pf-t--global--border--color--status--danger--default": { + "pf-t--global--border--color--brand--subtle--hover": { "default": { - "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#731f00", + "value": "#0066cc", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.danger.default}" + "value": "{global.color.brand.subtle.400}" }, - "name": "pf-t--global--border--color--status--danger--default", + "name": "pf-t--global--border--color--brand--subtle--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "danger" + "subitem": "brand", + "state": "subtle" }, "path": [ "global", "border", "color", - "status", - "danger", - "default" + "brand", + "subtle", + "hover" ], "references": [ { - "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#0066cc", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "{global.color.status.danger.200}" + "value": "{color.blue.50}" }, - "name": "pf-t--global--color--status--danger--default", + "name": "pf-t--global--color--brand--subtle--400", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "danger", - "state": "default" + "item": "brand", + "subitem": "subtle", + "state": "400" }, "path": [ "global", "color", - "status", - "danger", - "default" + "brand", + "subtle", + "400" ], "references": [ { "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#0066cc", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.70}" + "value": "#0066cc" }, - "name": "pf-t--global--color--status--danger--200", + "name": "pf-t--color--blue--50", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "danger", - "state": "200" + "category": "color", + "type": "blue", + "item": "50" }, "path": [ - "global", "color", - "status", - "danger", - "200" - ], - "references": [ - { - "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#731f00" - }, - "name": "pf-t--color--red-orange--70", - "attributes": { - "category": "color", - "type": "red-orange", - "item": "70" - }, - "path": [ - "color", - "red-orange", - "70" - ] - } + "blue", + "50" ] } ] @@ -10868,108 +10872,79 @@ ] } }, - "pf-t--global--border--color--status--danger--hover": { + "pf-t--global--border--color--brand--subtle--clicked": { "default": { - "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#731f00", + "value": "#0066cc", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.danger.hover}" + "value": "{global.color.brand.subtle.400}" }, - "name": "pf-t--global--border--color--status--danger--hover", + "name": "pf-t--global--border--color--brand--subtle--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "danger" + "subitem": "brand", + "state": "subtle" }, "path": [ "global", "border", "color", - "status", - "danger", - "hover" + "brand", + "subtle", + "clicked" ], "references": [ { - "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#0066cc", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "{global.color.status.danger.300}" + "value": "{color.blue.50}" }, - "name": "pf-t--global--color--status--danger--hover", + "name": "pf-t--global--color--brand--subtle--400", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "danger", - "state": "hover" + "item": "brand", + "subitem": "subtle", + "state": "400" }, "path": [ "global", "color", - "status", - "danger", - "hover" + "brand", + "subtle", + "400" ], "references": [ { "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#0066cc", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.70}" + "value": "#0066cc" }, - "name": "pf-t--global--color--status--danger--300", + "name": "pf-t--color--blue--50", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "danger", - "state": "300" + "category": "color", + "type": "blue", + "item": "50" }, "path": [ - "global", "color", - "status", - "danger", - "300" - ], - "references": [ - { - "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#731f00" - }, - "name": "pf-t--color--red-orange--70", - "attributes": { - "category": "color", - "type": "red-orange", - "item": "70" - }, - "path": [ - "color", - "red-orange", - "70" - ] - } + "blue", + "50" ] } ] @@ -10977,217 +10952,136 @@ ] } }, - "pf-t--global--border--color--status--danger--clicked": { + "pf-t--global--border--color--status--success--default": { "default": { - "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", "type": "color", - "value": "#731f00", + "value": "#3d7019", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.danger.clicked}" + "value": "{global.color.status.success.150}" }, - "name": "pf-t--global--border--color--status--danger--clicked", + "name": "pf-t--global--border--color--status--success--default", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "danger" + "state": "success" }, "path": [ "global", "border", "color", "status", - "danger", - "clicked" + "success", + "default" ], "references": [ { - "description": "Use as the clicked state for any element that conveys a danger status.", "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#3d7019", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys a danger status.", "type": "color", - "value": "{global.color.status.danger.300}" + "value": "#3d7019" }, - "name": "pf-t--global--color--status--danger--clicked", + "name": "pf-t--global--color--status--success--150", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "danger", - "state": "clicked" + "subitem": "success", + "state": "150" }, "path": [ "global", "color", "status", - "danger", - "clicked" - ], - "references": [ - { - "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.red-orange.70}" - }, - "name": "pf-t--global--color--status--danger--300", - "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "danger", - "state": "300" - }, - "path": [ - "global", - "color", - "status", - "danger", - "300" - ], - "references": [ - { - "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#731f00" - }, - "name": "pf-t--color--red-orange--70", - "attributes": { - "category": "color", - "type": "red-orange", - "item": "70" - }, - "path": [ - "color", - "red-orange", - "70" - ] - } - ] - } + "success", + "150" ] } ] } }, - "pf-t--global--border--color--status--info--default": { + "pf-t--global--border--color--status--success--hover": { "default": { - "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "#3d2785", + "value": "#204d00", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "{global.color.status.info.default}" + "value": "{global.color.status.success.200}" }, - "name": "pf-t--global--border--color--status--info--default", + "name": "pf-t--global--border--color--status--success--hover", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "info" + "state": "success" }, "path": [ "global", "border", "color", "status", - "info", - "default" + "success", + "hover" ], "references": [ { - "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "#3d2785", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#204d00", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "{global.color.status.info.200}" + "value": "{color.green.70}" }, - "name": "pf-t--global--color--status--info--default", + "name": "pf-t--global--color--status--success--200", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", - "state": "default" + "subitem": "success", + "state": "200" }, "path": [ "global", "color", "status", - "info", - "default" + "success", + "200" ], "references": [ { "type": "color", - "value": "#3d2785", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#204d00", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.60}" + "value": "#204d00" }, - "name": "pf-t--global--color--status--info--200", + "name": "pf-t--color--green--70", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "info", - "state": "200" + "category": "color", + "type": "green", + "item": "70" }, "path": [ - "global", "color", - "status", - "info", - "200" - ], - "references": [ - { - "type": "color", - "value": "#3d2785", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#3d2785" - }, - "name": "pf-t--color--purple--60", - "attributes": { - "category": "color", - "type": "purple", - "item": "60" - }, - "path": [ - "color", - "purple", - "60" - ] - } + "green", + "70" ] } ] @@ -11195,108 +11089,79 @@ ] } }, - "pf-t--global--border--color--status--info--hover": { + "pf-t--global--border--color--status--success--clicked": { "default": { - "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "#21134d", + "value": "#204d00", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "{global.color.status.info.hover}" + "value": "{global.color.status.success.200}" }, - "name": "pf-t--global--border--color--status--info--hover", + "name": "pf-t--global--border--color--status--success--clicked", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "info" + "state": "success" }, "path": [ "global", "border", "color", "status", - "info", - "hover" + "success", + "clicked" ], "references": [ { - "description": "Use as the hover state for any element that conveys an info status.", - "type": "color", - "value": "#21134d", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "type": "color", + "value": "#204d00", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "{global.color.status.info.300}" + "value": "{color.green.70}" }, - "name": "pf-t--global--color--status--info--hover", + "name": "pf-t--global--color--status--success--200", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", - "state": "hover" + "subitem": "success", + "state": "200" }, "path": [ "global", "color", "status", - "info", - "hover" + "success", + "200" ], "references": [ { "type": "color", - "value": "#21134d", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#204d00", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.70}" + "value": "#204d00" }, - "name": "pf-t--global--color--status--info--300", + "name": "pf-t--color--green--70", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "info", - "state": "300" + "category": "color", + "type": "green", + "item": "70" }, "path": [ - "global", "color", - "status", - "info", - "300" - ], - "references": [ - { - "type": "color", - "value": "#21134d", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#21134d" - }, - "name": "pf-t--color--purple--70", - "attributes": { - "category": "color", - "type": "purple", - "item": "70" - }, - "path": [ - "color", - "purple", - "70" - ] - } + "green", + "70" ] } ] @@ -11304,108 +11169,79 @@ ] } }, - "pf-t--global--border--color--status--info--clicked": { + "pf-t--global--border--color--status--warning--default": { "default": { - "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "#21134d", + "value": "#73480b", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.info.clicked}" + "value": "{global.color.status.warning.500}" }, - "name": "pf-t--global--border--color--status--info--clicked", + "name": "pf-t--global--border--color--status--warning--default", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "info" + "state": "warning" }, "path": [ "global", "border", "color", "status", - "info", - "clicked" + "warning", + "default" ], "references": [ { - "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "#21134d", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#73480b", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "{global.color.status.info.300}" + "value": "{color.yellow.70}" }, - "name": "pf-t--global--color--status--info--clicked", + "name": "pf-t--global--color--status--warning--500", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", - "state": "clicked" + "subitem": "warning", + "state": "500" }, "path": [ "global", "color", "status", - "info", - "clicked" + "warning", + "500" ], "references": [ { "type": "color", - "value": "#21134d", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#73480b", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.70}" + "value": "#73480b" }, - "name": "pf-t--global--color--status--info--300", + "name": "pf-t--color--yellow--70", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "info", - "state": "300" + "category": "color", + "type": "yellow", + "item": "70" }, "path": [ - "global", "color", - "status", - "info", - "300" - ], - "references": [ - { - "type": "color", - "value": "#21134d", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#21134d" - }, - "name": "pf-t--color--purple--70", - "attributes": { - "category": "color", - "type": "purple", - "item": "70" - }, - "path": [ - "color", - "purple", - "70" - ] - } + "yellow", + "70" ] } ] @@ -11413,108 +11249,79 @@ ] } }, - "pf-t--global--border--color--status--custom--default": { + "pf-t--global--border--color--status--warning--hover": { "default": { - "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "#004d4d", + "value": "#54330b", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.custom.default}" + "value": "{global.color.status.warning.600}" }, - "name": "pf-t--global--border--color--status--custom--default", + "name": "pf-t--global--border--color--status--warning--hover", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "custom" + "state": "warning" }, "path": [ "global", "border", "color", "status", - "custom", - "default" + "warning", + "hover" ], "references": [ { - "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#004d4d", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#54330b", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{global.color.status.custom.200}" + "value": "{color.yellow.80}" }, - "name": "pf-t--global--color--status--custom--default", + "name": "pf-t--global--color--status--warning--600", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", - "state": "default" + "subitem": "warning", + "state": "600" }, "path": [ "global", "color", "status", - "custom", - "default" + "warning", + "600" ], "references": [ { "type": "color", - "value": "#004d4d", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#54330b", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.70}" + "value": "#54330b" }, - "name": "pf-t--global--color--status--custom--200", + "name": "pf-t--color--yellow--80", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "custom", - "state": "200" + "category": "color", + "type": "yellow", + "item": "80" }, "path": [ - "global", "color", - "status", - "custom", - "200" - ], - "references": [ - { - "type": "color", - "value": "#004d4d", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#004d4d" - }, - "name": "pf-t--color--teal--70", - "attributes": { - "category": "color", - "type": "teal", - "item": "70" - }, - "path": [ - "color", - "teal", - "70" - ] - } + "yellow", + "80" ] } ] @@ -11522,108 +11329,79 @@ ] } }, - "pf-t--global--border--color--status--custom--hover": { + "pf-t--global--border--color--status--warning--clicked": { "default": { - "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "#003333", + "value": "#54330b", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.custom.hover}" + "value": "{global.color.status.warning.600}" }, - "name": "pf-t--global--border--color--status--custom--hover", + "name": "pf-t--global--border--color--status--warning--clicked", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "custom" + "state": "warning" }, "path": [ "global", "border", "color", "status", - "custom", - "hover" + "warning", + "clicked" ], "references": [ { - "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#003333", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#54330b", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{global.color.status.custom.300}" + "value": "{color.yellow.80}" }, - "name": "pf-t--global--color--status--custom--hover", + "name": "pf-t--global--color--status--warning--600", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", - "state": "hover" + "subitem": "warning", + "state": "600" }, "path": [ "global", "color", "status", - "custom", - "hover" + "warning", + "600" ], "references": [ { "type": "color", - "value": "#003333", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#54330b", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.80}" + "value": "#54330b" }, - "name": "pf-t--global--color--status--custom--300", + "name": "pf-t--color--yellow--80", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "custom", - "state": "300" + "category": "color", + "type": "yellow", + "item": "80" }, "path": [ - "global", "color", - "status", - "custom", - "300" - ], - "references": [ - { - "type": "color", - "value": "#003333", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#003333" - }, - "name": "pf-t--color--teal--80", - "attributes": { - "category": "color", - "type": "teal", - "item": "80" - }, - "path": [ - "color", - "teal", - "80" - ] - } + "yellow", + "80" ] } ] @@ -11631,106 +11409,106 @@ ] } }, - "pf-t--global--border--color--status--custom--clicked": { + "pf-t--global--border--color--status--danger--default": { "default": { - "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "#003333", + "value": "#731f00", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.custom.clicked}" + "value": "{global.color.status.danger.default}" }, - "name": "pf-t--global--border--color--status--custom--clicked", + "name": "pf-t--global--border--color--status--danger--default", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "custom" + "state": "danger" }, "path": [ "global", "border", "color", "status", - "custom", - "clicked" + "danger", + "default" ], "references": [ { - "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "#003333", + "value": "#731f00", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "{global.color.status.custom.300}" + "value": "{global.color.status.danger.200}" }, - "name": "pf-t--global--color--status--custom--clicked", + "name": "pf-t--global--color--status--danger--default", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", - "state": "clicked" + "subitem": "danger", + "state": "default" }, "path": [ "global", "color", "status", - "custom", - "clicked" + "danger", + "default" ], "references": [ { "type": "color", - "value": "#003333", + "value": "#731f00", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.80}" + "value": "{color.red-orange.70}" }, - "name": "pf-t--global--color--status--custom--300", + "name": "pf-t--global--color--status--danger--200", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", - "state": "300" + "subitem": "danger", + "state": "200" }, "path": [ "global", "color", "status", - "custom", - "300" + "danger", + "200" ], "references": [ { "type": "color", - "value": "#003333", + "value": "#731f00", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#003333" + "value": "#731f00" }, - "name": "pf-t--color--teal--80", + "name": "pf-t--color--red-orange--70", "attributes": { "category": "color", - "type": "teal", - "item": "80" + "type": "red-orange", + "item": "70" }, "path": [ "color", - "teal", - "80" + "red-orange", + "70" ] } ] @@ -11740,99 +11518,106 @@ ] } }, - "pf-t--global--border--color--high-contrast": { + "pf-t--global--border--color--status--danger--hover": { "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "#4d4d4d", + "value": "#731f00", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.border.color.default}" + "value": "{global.color.status.danger.hover}" }, - "name": "pf-t--global--border--color--high-contrast", + "name": "pf-t--global--border--color--status--danger--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "high-contrast" + "subitem": "status", + "state": "danger" }, "path": [ "global", "border", "color", - "high-contrast" + "status", + "danger", + "hover" ], "references": [ { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "#4d4d4d", + "value": "#731f00", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "{global.border.color.400}" + "value": "{global.color.status.danger.300}" }, - "name": "pf-t--global--border--color--default", + "name": "pf-t--global--color--status--danger--hover", "attributes": { "category": "global", - "type": "border", - "item": "color", - "subitem": "default" + "type": "color", + "item": "status", + "subitem": "danger", + "state": "hover" }, "path": [ "global", - "border", "color", - "default" + "status", + "danger", + "hover" ], "references": [ { "type": "color", - "value": "#4d4d4d", + "value": "#731f00", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.60}" + "value": "{color.red-orange.70}" }, - "name": "pf-t--global--border--color--400", + "name": "pf-t--global--color--status--danger--300", "attributes": { "category": "global", - "type": "border", - "item": "color", - "subitem": "400" + "type": "color", + "item": "status", + "subitem": "danger", + "state": "300" }, "path": [ "global", - "border", "color", - "400" + "status", + "danger", + "300" ], "references": [ { "type": "color", - "value": "#4d4d4d", + "value": "#731f00", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#4d4d4d" + "value": "#731f00" }, - "name": "pf-t--color--gray--60", + "name": "pf-t--color--red-orange--70", "attributes": { "category": "color", - "type": "gray", - "item": "60" + "type": "red-orange", + "item": "70" }, "path": [ "color", - "gray", - "60" + "red-orange", + "70" ] } ] @@ -11842,74 +11627,108 @@ ] } }, - "pf-t--global--border--color--default": { + "pf-t--global--border--color--status--danger--clicked": { "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "#4d4d4d", + "value": "#731f00", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.border.color.400}" + "value": "{global.color.status.danger.clicked}" }, - "name": "pf-t--global--border--color--default", + "name": "pf-t--global--border--color--status--danger--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "default" + "subitem": "status", + "state": "danger" }, "path": [ "global", "border", "color", - "default" + "status", + "danger", + "clicked" ], "references": [ { + "description": "Use as the clicked state for any element that conveys a danger status.", "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#731f00", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", "type": "color", - "value": "{color.gray.60}" + "value": "{global.color.status.danger.300}" }, - "name": "pf-t--global--border--color--400", + "name": "pf-t--global--color--status--danger--clicked", "attributes": { "category": "global", - "type": "border", - "item": "color", - "subitem": "400" + "type": "color", + "item": "status", + "subitem": "danger", + "state": "clicked" }, "path": [ "global", - "border", "color", - "400" + "status", + "danger", + "clicked" ], "references": [ { "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#731f00", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#4d4d4d" + "value": "{color.red-orange.70}" }, - "name": "pf-t--color--gray--60", + "name": "pf-t--global--color--status--danger--300", "attributes": { - "category": "color", - "type": "gray", - "item": "60" + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "300" }, "path": [ + "global", "color", - "gray", - "60" + "status", + "danger", + "300" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } ] } ] @@ -11917,74 +11736,108 @@ ] } }, - "pf-t--global--border--color--hover": { + "pf-t--global--border--color--status--info--default": { "default": { - "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "#004d99", + "value": "#3d2785", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.brand.300}" + "value": "{global.color.status.info.default}" }, - "name": "pf-t--global--border--color--hover", + "name": "pf-t--global--border--color--status--info--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "hover" + "subitem": "status", + "state": "info" }, "path": [ "global", "border", "color", - "hover" + "status", + "info", + "default" ], "references": [ { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "#004d99", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#3d2785", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "{color.blue.60}" + "value": "{global.color.status.info.200}" }, - "name": "pf-t--global--color--brand--300", + "name": "pf-t--global--color--status--info--default", "attributes": { "category": "global", "type": "color", - "item": "brand", - "subitem": "300" + "item": "status", + "subitem": "info", + "state": "default" }, "path": [ "global", "color", - "brand", - "300" + "status", + "info", + "default" ], "references": [ { "type": "color", - "value": "#004d99", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#3d2785", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#004d99" + "value": "{color.purple.60}" }, - "name": "pf-t--color--blue--60", + "name": "pf-t--global--color--status--info--200", "attributes": { - "category": "color", - "type": "blue", - "item": "60" + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "200" }, "path": [ + "global", "color", - "blue", - "60" + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d2785" + }, + "name": "pf-t--color--purple--60", + "attributes": { + "category": "color", + "type": "purple", + "item": "60" + }, + "path": [ + "color", + "purple", + "60" + ] + } ] } ] @@ -11992,74 +11845,108 @@ ] } }, - "pf-t--global--border--color--clicked": { + "pf-t--global--border--color--status--info--hover": { "default": { - "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "#003366", + "value": "#21134d", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.brand.400}" + "value": "{global.color.status.info.hover}" }, - "name": "pf-t--global--border--color--clicked", + "name": "pf-t--global--border--color--status--info--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "clicked" + "subitem": "status", + "state": "info" }, "path": [ "global", "border", "color", - "clicked" + "status", + "info", + "hover" ], "references": [ { + "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "#003366", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#21134d", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "{color.blue.70}" + "value": "{global.color.status.info.300}" }, - "name": "pf-t--global--color--brand--400", + "name": "pf-t--global--color--status--info--hover", "attributes": { "category": "global", "type": "color", - "item": "brand", - "subitem": "400" + "item": "status", + "subitem": "info", + "state": "hover" }, "path": [ "global", "color", - "brand", - "400" + "status", + "info", + "hover" ], "references": [ { "type": "color", - "value": "#003366", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#21134d", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#003366" + "value": "{color.purple.70}" }, - "name": "pf-t--color--blue--70", + "name": "pf-t--global--color--status--info--300", "attributes": { - "category": "color", - "type": "blue", - "item": "70" + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "300" }, "path": [ + "global", "color", - "blue", - "70" + "status", + "info", + "300" + ], + "references": [ + { + "type": "color", + "value": "#21134d", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#21134d" + }, + "name": "pf-t--color--purple--70", + "attributes": { + "category": "color", + "type": "purple", + "item": "70" + }, + "path": [ + "color", + "purple", + "70" + ] + } ] } ] @@ -12067,74 +11954,108 @@ ] } }, - "pf-t--global--border--color--subtle": { + "pf-t--global--border--color--status--info--clicked": { "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "#4d4d4d", + "value": "#21134d", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.border.color.400}" + "value": "{global.color.status.info.clicked}" }, - "name": "pf-t--global--border--color--subtle", + "name": "pf-t--global--border--color--status--info--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "subtle" + "subitem": "status", + "state": "info" }, "path": [ "global", "border", "color", - "subtle" + "status", + "info", + "clicked" ], "references": [ { + "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#21134d", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "{color.gray.60}" + "value": "{global.color.status.info.300}" }, - "name": "pf-t--global--border--color--400", + "name": "pf-t--global--color--status--info--clicked", "attributes": { "category": "global", - "type": "border", - "item": "color", - "subitem": "400" + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" }, "path": [ "global", - "border", "color", - "400" + "status", + "info", + "clicked" ], "references": [ { "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#21134d", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#4d4d4d" + "value": "{color.purple.70}" }, - "name": "pf-t--color--gray--60", + "name": "pf-t--global--color--status--info--300", "attributes": { - "category": "color", - "type": "gray", - "item": "60" + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "300" }, "path": [ + "global", "color", - "gray", - "60" + "status", + "info", + "300" + ], + "references": [ + { + "type": "color", + "value": "#21134d", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#21134d" + }, + "name": "pf-t--color--purple--70", + "attributes": { + "category": "color", + "type": "purple", + "item": "70" + }, + "path": [ + "color", + "purple", + "70" + ] + } ] } ] @@ -12142,74 +12063,108 @@ ] } }, - "pf-t--global--border--color--disabled": { + "pf-t--global--border--color--status--custom--default": { "default": { - "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "#a3a3a3", + "value": "#004d4d", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.disabled.200}" + "value": "{global.color.status.custom.default}" }, - "name": "pf-t--global--border--color--disabled", + "name": "pf-t--global--border--color--status--custom--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "disabled" + "subitem": "status", + "state": "custom" }, "path": [ "global", "border", "color", - "disabled" + "status", + "custom", + "default" ], "references": [ { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#004d4d", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{color.gray.40}" + "value": "{global.color.status.custom.200}" }, - "name": "pf-t--global--color--disabled--200", + "name": "pf-t--global--color--status--custom--default", "attributes": { "category": "global", "type": "color", - "item": "disabled", - "subitem": "200" + "item": "status", + "subitem": "custom", + "state": "default" }, "path": [ "global", "color", - "disabled", - "200" + "status", + "custom", + "default" ], "references": [ { "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#004d4d", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#a3a3a3" + "value": "{color.teal.70}" }, - "name": "pf-t--color--gray--40", + "name": "pf-t--global--color--status--custom--200", "attributes": { - "category": "color", - "type": "gray", - "item": "40" + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "200" }, "path": [ + "global", "color", - "gray", - "40" + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d4d" + }, + "name": "pf-t--color--teal--70", + "attributes": { + "category": "color", + "type": "teal", + "item": "70" + }, + "path": [ + "color", + "teal", + "70" + ] + } ] } ] @@ -12217,99 +12172,106 @@ ] } }, - "pf-t--global--border--color--alt": { + "pf-t--global--border--color--status--custom--hover": { "default": { - "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "#ffffff", + "value": "#003333", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.background.color.primary.default}" + "value": "{global.color.status.custom.hover}" }, - "name": "pf-t--global--border--color--alt", + "name": "pf-t--global--border--color--status--custom--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "alt" + "subitem": "status", + "state": "custom" }, "path": [ "global", "border", "color", - "alt" + "status", + "custom", + "hover" ], "references": [ { - "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#ffffff", + "value": "#003333", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{global.background.color.100}" + "value": "{global.color.status.custom.300}" }, - "name": "pf-t--global--background--color--primary--default", + "name": "pf-t--global--color--status--custom--hover", "attributes": { "category": "global", - "type": "background", - "item": "color", - "subitem": "primary", - "state": "default" + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" }, "path": [ "global", - "background", "color", - "primary", - "default" + "status", + "custom", + "hover" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#003333", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.white}" + "value": "{color.teal.80}" }, - "name": "pf-t--global--background--color--100", + "name": "pf-t--global--color--status--custom--300", "attributes": { "category": "global", - "type": "background", - "item": "color", - "subitem": "100" + "type": "color", + "item": "status", + "subitem": "custom", + "state": "300" }, "path": [ "global", - "background", "color", - "100" + "status", + "custom", + "300" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#003333", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffffff" + "value": "#003333" }, - "name": "pf-t--color--white", + "name": "pf-t--color--teal--80", "attributes": { "category": "color", - "type": "white" + "type": "teal", + "item": "80" }, "path": [ "color", - "white" + "teal", + "80" ] } ] @@ -12319,74 +12281,108 @@ ] } }, - "pf-t--global--border--color--on-secondary": { + "pf-t--global--border--color--status--custom--clicked": { "default": { - "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "#4d4d4d", + "value": "#003333", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.border.color.400}" + "value": "{global.color.status.custom.clicked}" }, - "name": "pf-t--global--border--color--on-secondary", + "name": "pf-t--global--border--color--status--custom--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "on-secondary" + "subitem": "status", + "state": "custom" }, "path": [ "global", "border", "color", - "on-secondary" + "status", + "custom", + "clicked" ], "references": [ { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#003333", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{color.gray.60}" + "value": "{global.color.status.custom.300}" }, - "name": "pf-t--global--border--color--400", + "name": "pf-t--global--color--status--custom--clicked", "attributes": { "category": "global", - "type": "border", - "item": "color", - "subitem": "400" + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" }, "path": [ "global", - "border", "color", - "400" + "status", + "custom", + "clicked" ], "references": [ { "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#003333", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#4d4d4d" + "value": "{color.teal.80}" }, - "name": "pf-t--color--gray--60", + "name": "pf-t--global--color--status--custom--300", "attributes": { - "category": "color", - "type": "gray", - "item": "60" + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "300" }, "path": [ + "global", "color", - "gray", - "60" + "status", + "custom", + "300" + ], + "references": [ + { + "type": "color", + "value": "#003333", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003333" + }, + "name": "pf-t--color--teal--80", + "attributes": { + "category": "color", + "type": "teal", + "item": "80" + }, + "path": [ + "color", + "teal", + "80" + ] + } ] } ] @@ -22928,75 +22924,148 @@ ] } }, - "pf-t--global--text--color--brand--default": { + "pf-t--global--text--color--regular": { "default": { - "description": "Use as the default color for branded text.", + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "#003366", + "value": "#151515", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default color for branded text.", + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "{global.color.brand.400}" + "value": "{global.text.color.100}" }, - "name": "pf-t--global--text--color--brand--default", + "name": "pf-t--global--text--color--regular", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "brand", - "state": "default" + "subitem": "regular" }, "path": [ "global", "text", "color", - "brand", - "default" + "regular" ], "references": [ { "type": "color", - "value": "#003366", + "value": "#151515", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.70}" + "value": "{color.gray.95}" }, - "name": "pf-t--global--color--brand--400", + "name": "pf-t--global--text--color--100", "attributes": { "category": "global", + "type": "text", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "text", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--subtle": { + "default": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "{global.text.color.250}" + }, + "name": "pf-t--global--text--color--subtle", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "text", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { "type": "color", - "item": "brand", - "subitem": "400" + "value": "{color.gray.70}" + }, + "name": "pf-t--global--text--color--250", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "250" }, "path": [ "global", + "text", "color", - "brand", - "400" + "250" ], "references": [ { "type": "color", - "value": "#003366", + "value": "#383838", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#003366" + "value": "#383838" }, - "name": "pf-t--color--blue--70", + "name": "pf-t--color--gray--70", "attributes": { "category": "color", - "type": "blue", + "type": "gray", "item": "70" }, "path": [ "color", - "blue", + "gray", "70" ] } @@ -23005,76 +23074,249 @@ ] } }, - "pf-t--global--text--color--brand--hover": { + "pf-t--global--text--color--inverse": { "default": { - "description": "Use as the hover state color for branded text.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#032142", + "value": "#ffffff", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state color for branded text.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.color.brand.500}" + "value": "{global.text.color.300}" }, - "name": "pf-t--global--text--color--brand--hover", + "name": "pf-t--global--text--color--inverse", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "brand", - "state": "hover" + "subitem": "inverse" }, "path": [ "global", "text", "color", - "brand", - "hover" + "inverse" ], "references": [ { "type": "color", - "value": "#032142", + "value": "#ffffff", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.80}" + "value": "{color.white}" }, - "name": "pf-t--global--color--brand--500", + "name": "pf-t--global--text--color--300", "attributes": { "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--placeholder": { + "default": { + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "type": "color", + "value": "{global.text.color.subtle}" + }, + "name": "pf-t--global--text--color--placeholder", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "placeholder" + }, + "path": [ + "global", + "text", + "color", + "placeholder" + ], + "references": [ + { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "item": "brand", - "subitem": "500" + "value": "{global.text.color.250}" + }, + "name": "pf-t--global--text--color--subtle", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "subtle" }, "path": [ "global", + "text", "color", - "brand", - "500" + "subtle" ], "references": [ { "type": "color", - "value": "#032142", + "value": "#383838", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.70}" + }, + "name": "pf-t--global--text--color--250", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "250" + }, + "path": [ + "global", + "text", + "color", + "250" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--disabled": { + "default": { + "description": "Use as the color of text on disabled elements, like disabled menu items.", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the color of text on disabled elements, like disabled menu items.", + "type": "color", + "value": "{global.color.disabled.200}" + }, + "name": "pf-t--global--text--color--disabled", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "disabled" + }, + "path": [ + "global", + "text", + "color", + "disabled" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--color--disabled--200", + "attributes": { + "category": "global", + "type": "color", + "item": "disabled", + "subitem": "200" + }, + "path": [ + "global", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#032142" + "value": "#a3a3a3" }, - "name": "pf-t--color--blue--80", + "name": "pf-t--color--gray--40", "attributes": { "category": "color", - "type": "blue", - "item": "80" + "type": "gray", + "item": "40" }, "path": [ "color", - "blue", - "80" + "gray", + "40" ] } ] @@ -23082,76 +23324,149 @@ ] } }, - "pf-t--global--text--color--brand--clicked": { + "pf-t--global--text--color--on-disabled": { "default": { - "description": "Use as the clicked state color for branded text.", + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", "type": "color", - "value": "#032142", + "value": "#707070", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state color for branded text.", + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", "type": "color", - "value": "{global.color.brand.500}" + "value": "{global.color.disabled.300}" }, - "name": "pf-t--global--text--color--brand--clicked", + "name": "pf-t--global--text--color--on-disabled", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "brand", - "state": "clicked" + "subitem": "on-disabled" }, "path": [ "global", "text", "color", - "brand", - "clicked" + "on-disabled" ], "references": [ { "type": "color", - "value": "#032142", + "value": "#707070", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.80}" + "value": "{color.gray.50}" }, - "name": "pf-t--global--color--brand--500", + "name": "pf-t--global--color--disabled--300", "attributes": { "category": "global", "type": "color", - "item": "brand", + "item": "disabled", + "subitem": "300" + }, + "path": [ + "global", + "color", + "disabled", + "300" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--required": { + "default": { + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", + "type": "color", + "value": "{global.text.color.500}" + }, + "name": "pf-t--global--text--color--required", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "required" + }, + "path": [ + "global", + "text", + "color", + "required" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red-orange.70}" + }, + "name": "pf-t--global--text--color--500", + "attributes": { + "category": "global", + "type": "text", + "item": "color", "subitem": "500" }, "path": [ "global", + "text", "color", - "brand", "500" ], "references": [ { "type": "color", - "value": "#032142", + "value": "#731f00", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#032142" + "value": "#731f00" }, - "name": "pf-t--color--blue--80", + "name": "pf-t--color--red-orange--70", "attributes": { "category": "color", - "type": "blue", - "item": "80" + "type": "red-orange", + "item": "70" }, "path": [ "color", - "blue", - "80" + "red-orange", + "70" ] } ] @@ -23159,30 +23474,30 @@ ] } }, - "pf-t--global--text--color--regular": { + "pf-t--global--text--color--on-highlight": { "default": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that is highlighted.", "type": "color", "value": "#151515", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that is highlighted.", "type": "color", "value": "{global.text.color.100}" }, - "name": "pf-t--global--text--color--regular", + "name": "pf-t--global--text--color--on-highlight", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "regular" + "subitem": "on-highlight" }, "path": [ "global", "text", "color", - "regular" + "on-highlight" ], "references": [ { @@ -23234,73 +23549,75 @@ ] } }, - "pf-t--global--text--color--subtle": { + "pf-t--global--text--color--brand--default": { "default": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "description": "Use as the default color for branded text.", "type": "color", - "value": "#383838", + "value": "#003366", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "description": "Use as the default color for branded text.", "type": "color", - "value": "{global.text.color.250}" + "value": "{global.color.brand.400}" }, - "name": "pf-t--global--text--color--subtle", + "name": "pf-t--global--text--color--brand--default", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "subtle" + "subitem": "brand", + "state": "default" }, "path": [ "global", "text", "color", - "subtle" + "brand", + "default" ], "references": [ { "type": "color", - "value": "#383838", + "value": "#003366", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.70}" + "value": "{color.blue.70}" }, - "name": "pf-t--global--text--color--250", + "name": "pf-t--global--color--brand--400", "attributes": { "category": "global", - "type": "text", - "item": "color", - "subitem": "250" + "type": "color", + "item": "brand", + "subitem": "400" }, "path": [ "global", - "text", "color", - "250" + "brand", + "400" ], "references": [ { "type": "color", - "value": "#383838", + "value": "#003366", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#383838" + "value": "#003366" }, - "name": "pf-t--color--gray--70", + "name": "pf-t--color--blue--70", "attributes": { "category": "color", - "type": "gray", + "type": "blue", "item": "70" }, "path": [ "color", - "gray", + "blue", "70" ] } @@ -23309,72 +23626,153 @@ ] } }, - "pf-t--global--text--color--inverse": { + "pf-t--global--text--color--brand--hover": { "default": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "description": "Use as the hover state color for branded text.", "type": "color", - "value": "#ffffff", + "value": "#032142", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "description": "Use as the hover state color for branded text.", "type": "color", - "value": "{global.text.color.300}" + "value": "{global.color.brand.500}" }, - "name": "pf-t--global--text--color--inverse", + "name": "pf-t--global--text--color--brand--hover", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "inverse" + "subitem": "brand", + "state": "hover" }, "path": [ "global", "text", "color", - "inverse" + "brand", + "hover" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#032142", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.white}" + "value": "{color.blue.80}" }, - "name": "pf-t--global--text--color--300", + "name": "pf-t--global--color--brand--500", "attributes": { "category": "global", - "type": "text", - "item": "color", - "subitem": "300" + "type": "color", + "item": "brand", + "subitem": "500" }, "path": [ "global", - "text", "color", - "300" + "brand", + "500" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#032142", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffffff" + "value": "#032142" }, - "name": "pf-t--color--white", + "name": "pf-t--color--blue--80", "attributes": { "category": "color", - "type": "white" + "type": "blue", + "item": "80" }, "path": [ "color", - "white" + "blue", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--brand--clicked": { + "default": { + "description": "Use as the clicked state color for branded text.", + "type": "color", + "value": "#032142", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for branded text.", + "type": "color", + "value": "{global.color.brand.500}" + }, + "name": "pf-t--global--text--color--brand--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "brand", + "state": "clicked" + }, + "path": [ + "global", + "text", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#032142", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.80}" + }, + "name": "pf-t--global--color--brand--500", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "500" + }, + "path": [ + "global", + "color", + "brand", + "500" + ], + "references": [ + { + "type": "color", + "value": "#032142", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#032142" + }, + "name": "pf-t--color--blue--80", + "attributes": { + "category": "color", + "type": "blue", + "item": "80" + }, + "path": [ + "color", + "blue", + "80" ] } ] @@ -24102,309 +24500,102 @@ ] } }, - "pf-t--global--text--color--on-brand--subtle--hover": { - "default": { - "description": "Use as the hover state color for text placed on a brand-colored background.", - "type": "color", - "value": "#151515", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the hover state color for text placed on a brand-colored background.", - "type": "color", - "value": "{global.text.color.regular}" - }, - "name": "pf-t--global--text--color--on-brand--subtle--hover", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "on-brand", - "state": "subtle" - }, - "path": [ - "global", - "text", - "color", - "on-brand", - "subtle", - "hover" - ], - "references": [ - { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", - "type": "color", - "value": "#151515", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", - "type": "color", - "value": "{global.text.color.100}" - }, - "name": "pf-t--global--text--color--regular", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "regular" - }, - "path": [ - "global", - "text", - "color", - "regular" - ], - "references": [ - { - "type": "color", - "value": "#151515", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.95}" - }, - "name": "pf-t--global--text--color--100", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "100" - }, - "path": [ - "global", - "text", - "color", - "100" - ], - "references": [ - { - "type": "color", - "value": "#151515", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#151515" - }, - "name": "pf-t--color--gray--95", - "attributes": { - "category": "color", - "type": "gray", - "item": "95" - }, - "path": [ - "color", - "gray", - "95" - ] - } - ] - } - ] - } - ] - } - }, - "pf-t--global--text--color--on-brand--subtle--clicked": { - "default": { - "description": "Use as the clicked state color for text placed on a brand-colored background.", - "type": "color", - "value": "#151515", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the clicked state color for text placed on a brand-colored background.", - "type": "color", - "value": "{global.text.color.regular}" - }, - "name": "pf-t--global--text--color--on-brand--subtle--clicked", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "on-brand", - "state": "subtle" - }, - "path": [ - "global", - "text", - "color", - "on-brand", - "subtle", - "clicked" - ], - "references": [ - { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", - "type": "color", - "value": "#151515", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", - "type": "color", - "value": "{global.text.color.100}" - }, - "name": "pf-t--global--text--color--regular", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "regular" - }, - "path": [ - "global", - "text", - "color", - "regular" - ], - "references": [ - { - "type": "color", - "value": "#151515", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.95}" - }, - "name": "pf-t--global--text--color--100", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "100" - }, - "path": [ - "global", - "text", - "color", - "100" - ], - "references": [ - { - "type": "color", - "value": "#151515", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#151515" - }, - "name": "pf-t--color--gray--95", - "attributes": { - "category": "color", - "type": "gray", - "item": "95" - }, - "path": [ - "color", - "gray", - "95" - ] - } - ] - } - ] - } - ] - } - }, - "pf-t--global--text--color--placeholder": { + "pf-t--global--text--color--on-brand--subtle--hover": { "default": { - "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", - "value": "#383838", + "value": "#151515", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.text.color.subtle}" + "value": "{global.text.color.regular}" }, - "name": "pf-t--global--text--color--placeholder", + "name": "pf-t--global--text--color--on-brand--subtle--hover", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "placeholder" + "subitem": "on-brand", + "state": "subtle" }, "path": [ "global", "text", "color", - "placeholder" + "on-brand", + "subtle", + "hover" ], "references": [ { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "#383838", + "value": "#151515", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "{global.text.color.250}" + "value": "{global.text.color.100}" }, - "name": "pf-t--global--text--color--subtle", + "name": "pf-t--global--text--color--regular", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "subtle" + "subitem": "regular" }, "path": [ "global", "text", "color", - "subtle" + "regular" ], "references": [ { "type": "color", - "value": "#383838", + "value": "#151515", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.70}" + "value": "{color.gray.95}" }, - "name": "pf-t--global--text--color--250", + "name": "pf-t--global--text--color--100", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "250" + "subitem": "100" }, "path": [ "global", "text", "color", - "250" + "100" ], "references": [ { "type": "color", - "value": "#383838", + "value": "#151515", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#383838" + "value": "#151515" }, - "name": "pf-t--color--gray--70", + "name": "pf-t--color--gray--95", "attributes": { "category": "color", "type": "gray", - "item": "70" + "item": "95" }, "path": [ "color", "gray", - "70" + "95" ] } ] @@ -24414,299 +24605,104 @@ ] } }, - "pf-t--global--text--color--disabled": { - "default": { - "description": "Use as the color of text on disabled elements, like disabled menu items.", - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the color of text on disabled elements, like disabled menu items.", - "type": "color", - "value": "{global.color.disabled.200}" - }, - "name": "pf-t--global--text--color--disabled", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "disabled" - }, - "path": [ - "global", - "text", - "color", - "disabled" - ], - "references": [ - { - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.40}" - }, - "name": "pf-t--global--color--disabled--200", - "attributes": { - "category": "global", - "type": "color", - "item": "disabled", - "subitem": "200" - }, - "path": [ - "global", - "color", - "disabled", - "200" - ], - "references": [ - { - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#a3a3a3" - }, - "name": "pf-t--color--gray--40", - "attributes": { - "category": "color", - "type": "gray", - "item": "40" - }, - "path": [ - "color", - "gray", - "40" - ] - } - ] - } - ] - } - }, - "pf-t--global--text--color--on-disabled": { - "default": { - "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", - "type": "color", - "value": "#707070", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", - "type": "color", - "value": "{global.color.disabled.300}" - }, - "name": "pf-t--global--text--color--on-disabled", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "on-disabled" - }, - "path": [ - "global", - "text", - "color", - "on-disabled" - ], - "references": [ - { - "type": "color", - "value": "#707070", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.50}" - }, - "name": "pf-t--global--color--disabled--300", - "attributes": { - "category": "global", - "type": "color", - "item": "disabled", - "subitem": "300" - }, - "path": [ - "global", - "color", - "disabled", - "300" - ], - "references": [ - { - "type": "color", - "value": "#707070", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#707070" - }, - "name": "pf-t--color--gray--50", - "attributes": { - "category": "color", - "type": "gray", - "item": "50" - }, - "path": [ - "color", - "gray", - "50" - ] - } - ] - } - ] - } - }, - "pf-t--global--text--color--required": { - "default": { - "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", - "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", - "type": "color", - "value": "{global.text.color.500}" - }, - "name": "pf-t--global--text--color--required", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "required" - }, - "path": [ - "global", - "text", - "color", - "required" - ], - "references": [ - { - "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.red-orange.70}" - }, - "name": "pf-t--global--text--color--500", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "500" - }, - "path": [ - "global", - "text", - "color", - "500" - ], - "references": [ - { - "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#731f00" - }, - "name": "pf-t--color--red-orange--70", - "attributes": { - "category": "color", - "type": "red-orange", - "item": "70" - }, - "path": [ - "color", - "red-orange", - "70" - ] - } - ] - } - ] - } - }, - "pf-t--global--text--color--on-highlight": { + "pf-t--global--text--color--on-brand--subtle--clicked": { "default": { - "description": "Use as the color of text that is highlighted.", + "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", "value": "#151515", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the color of text that is highlighted.", + "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.text.color.100}" + "value": "{global.text.color.regular}" }, - "name": "pf-t--global--text--color--on-highlight", + "name": "pf-t--global--text--color--on-brand--subtle--clicked", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-highlight" + "subitem": "on-brand", + "state": "subtle" }, "path": [ "global", "text", "color", - "on-highlight" + "on-brand", + "subtle", + "clicked" ], "references": [ { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", "value": "#151515", - "filePath": "tokens/default/highcontrast/base.json", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "{color.gray.95}" + "value": "{global.text.color.100}" }, - "name": "pf-t--global--text--color--100", + "name": "pf-t--global--text--color--regular", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "100" + "subitem": "regular" }, "path": [ "global", "text", "color", - "100" + "regular" ], "references": [ { "type": "color", "value": "#151515", - "filePath": "tokens/default/highcontrast/palette.color.json", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#151515" + "value": "{color.gray.95}" }, - "name": "pf-t--color--gray--95", + "name": "pf-t--global--text--color--100", "attributes": { - "category": "color", - "type": "gray", - "item": "95" + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" }, "path": [ + "global", + "text", "color", - "gray", - "95" + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } ] } ] @@ -32321,6 +32317,160 @@ ] } }, + "pf-t--global--spacer--action--horizontal--compact": { + "default": { + "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "isSource": true, + "original": { + "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", + "type": "number", + "value": "{global.spacer.md}" + }, + "name": "pf-t--global--spacer--action--horizontal--compact", + "attributes": { + "category": "global", + "type": "spacer", + "item": "action", + "subitem": "horizontal", + "state": "compact" + }, + "path": [ + "global", + "spacer", + "action", + "horizontal", + "compact" + ], + "references": [ + { + "description": "Use for medium-sized spaces between elements.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "isSource": true, + "original": { + "description": "Use for medium-sized spaces between elements.", + "type": "number", + "value": "{global.spacer.300}" + }, + "name": "pf-t--global--spacer--md", + "attributes": { + "category": "global", + "type": "spacer", + "item": "md" + }, + "path": [ + "global", + "spacer", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--spacer--300", + "attributes": { + "category": "global", + "type": "spacer", + "item": "300" + }, + "path": [ + "global", + "spacer", + "300" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--action--horizontal--spacious": { + "default": { + "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", + "type": "number", + "value": "2rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "isSource": true, + "original": { + "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", + "type": "number", + "value": "{global.spacer.xl}" + }, + "name": "pf-t--global--spacer--action--horizontal--spacious", + "attributes": { + "category": "global", + "type": "spacer", + "item": "action", + "subitem": "horizontal", + "state": "spacious" + }, + "path": [ + "global", + "spacer", + "action", + "horizontal", + "spacious" + ], + "references": [ + { + "description": "Use for extra large spaces between elements.", + "type": "number", + "value": "2rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "isSource": true, + "original": { + "description": "Use for extra large spaces between elements.", + "type": "number", + "value": "{global.spacer.500}" + }, + "name": "pf-t--global--spacer--xl", + "attributes": { + "category": "global", + "type": "spacer", + "item": "xl" + }, + "path": [ + "global", + "spacer", + "xl" + ], + "references": [ + { + "type": "number", + "value": "2rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 32 + }, + "name": "pf-t--global--spacer--500", + "attributes": { + "category": "global", + "type": "spacer", + "item": "500" + }, + "path": [ + "global", + "spacer", + "500" + ] + } + ] + } + ] + } + }, "pf-t--global--spacer--action--horizontal--plain--default": { "default": { "description": "Use to set the horizontal padding inside a plain action, like plain buttons.", @@ -32477,160 +32627,6 @@ ] } }, - "pf-t--global--spacer--action--horizontal--compact": { - "default": { - "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", - "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", - "isSource": true, - "original": { - "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", - "type": "number", - "value": "{global.spacer.md}" - }, - "name": "pf-t--global--spacer--action--horizontal--compact", - "attributes": { - "category": "global", - "type": "spacer", - "item": "action", - "subitem": "horizontal", - "state": "compact" - }, - "path": [ - "global", - "spacer", - "action", - "horizontal", - "compact" - ], - "references": [ - { - "description": "Use for medium-sized spaces between elements.", - "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", - "isSource": true, - "original": { - "description": "Use for medium-sized spaces between elements.", - "type": "number", - "value": "{global.spacer.300}" - }, - "name": "pf-t--global--spacer--md", - "attributes": { - "category": "global", - "type": "spacer", - "item": "md" - }, - "path": [ - "global", - "spacer", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--spacer--300", - "attributes": { - "category": "global", - "type": "spacer", - "item": "300" - }, - "path": [ - "global", - "spacer", - "300" - ] - } - ] - } - ] - } - }, - "pf-t--global--spacer--action--horizontal--spacious": { - "default": { - "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", - "type": "number", - "value": "2rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", - "isSource": true, - "original": { - "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", - "type": "number", - "value": "{global.spacer.xl}" - }, - "name": "pf-t--global--spacer--action--horizontal--spacious", - "attributes": { - "category": "global", - "type": "spacer", - "item": "action", - "subitem": "horizontal", - "state": "spacious" - }, - "path": [ - "global", - "spacer", - "action", - "horizontal", - "spacious" - ], - "references": [ - { - "description": "Use for extra large spaces between elements.", - "type": "number", - "value": "2rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", - "isSource": true, - "original": { - "description": "Use for extra large spaces between elements.", - "type": "number", - "value": "{global.spacer.500}" - }, - "name": "pf-t--global--spacer--xl", - "attributes": { - "category": "global", - "type": "spacer", - "item": "xl" - }, - "path": [ - "global", - "spacer", - "xl" - ], - "references": [ - { - "type": "number", - "value": "2rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 32 - }, - "name": "pf-t--global--spacer--500", - "attributes": { - "category": "global", - "type": "spacer", - "item": "500" - }, - "path": [ - "global", - "spacer", - "500" - ] - } - ] - } - ] - } - }, "pf-t--global--spacer--gap--text-to-element--default": { "default": { "description": "Use to space an element, like an icon or badge, inline with text", @@ -33940,110 +33936,78 @@ ] } }, - "pf-t--global--icon--size--font--heading--h1": { + "pf-t--global--icon--size--font--xs": { "default": { - "description": "Use for icons that are placed inline with first level headings", + "description": "Use for icons that are placed inline with font–size–xs text", "type": "number", - "value": "1.5rem", + "value": "0.75rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with first level headings", + "description": "Use for icons that are placed inline with font–size–xs text", "type": "number", - "value": "{global.font.size.heading.h1}" + "value": "{global.font.size.xs}" }, - "name": "pf-t--global--icon--size--font--heading--h1", + "name": "pf-t--global--icon--size--font--xs", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "xs" }, "path": [ "global", "icon", "size", "font", - "heading", - "h1" + "xs" ], "references": [ { - "description": "Use as the font size for first level headings.", "type": "number", - "value": "1.5rem", + "value": "0.75rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for first level headings.", "type": "number", - "value": "{global.font.size.2xl}" + "value": "{global.font.size.100}" }, - "name": "pf-t--global--font--size--heading--h1", + "name": "pf-t--global--font--size--xs", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h1" + "subitem": "xs" }, "path": [ "global", "font", "size", - "heading", - "h1" + "xs" ], "references": [ { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.5rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "0.75rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.600}" + "value": 12 }, - "name": "pf-t--global--font--size--2xl", + "name": "pf-t--global--font--size--100", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "2xl" + "subitem": "100" }, "path": [ "global", "font", "size", - "2xl" - ], - "references": [ - { - "type": "number", - "value": "1.5rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 24 - }, - "name": "pf-t--global--font--size--600", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "600" - }, - "path": [ - "global", - "font", - "size", - "600" - ] - } + "100" ] } ] @@ -34051,110 +34015,80 @@ ] } }, - "pf-t--global--icon--size--font--heading--h2": { + "pf-t--global--icon--size--font--sm": { "default": { - "description": "Use for icons that are placed inline with second level headings", + "description": "Use for icons that are placed inline with font–size–sm text", "type": "number", - "value": "1.25rem", + "value": "0.875rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with second level headings", + "description": "Use for icons that are placed inline with font–size–sm text", "type": "number", - "value": "{global.font.size.heading.h2}" + "value": "{global.font.size.sm}" }, - "name": "pf-t--global--icon--size--font--heading--h2", + "name": "pf-t--global--icon--size--font--sm", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "sm" }, "path": [ "global", "icon", "size", "font", - "heading", - "h2" + "sm" ], "references": [ { - "description": "Use as the font size for second level headings.", + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "1.25rem", + "value": "0.875rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for second level headings.", + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.xl}" + "value": "{global.font.size.200}" }, - "name": "pf-t--global--font--size--heading--h2", + "name": "pf-t--global--font--size--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h2" + "subitem": "sm" }, "path": [ "global", "font", "size", - "heading", - "h2" + "sm" ], "references": [ { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.25rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "0.875rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.500}" + "value": 14 }, - "name": "pf-t--global--font--size--xl", + "name": "pf-t--global--font--size--200", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xl" + "subitem": "200" }, "path": [ "global", "font", "size", - "xl" - ], - "references": [ - { - "type": "number", - "value": "1.25rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 20 - }, - "name": "pf-t--global--font--size--500", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "500" - }, - "path": [ - "global", - "font", - "size", - "500" - ] - } + "200" ] } ] @@ -34162,110 +34096,80 @@ ] } }, - "pf-t--global--icon--size--font--heading--h3": { + "pf-t--global--icon--size--font--md": { "default": { - "description": "Use for icons that are placed inline with third level headings", + "description": "Use for icons that are placed inline with font–size–md text", "type": "number", - "value": "1.125rem", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with third level headings", + "description": "Use for icons that are placed inline with font–size–md text", "type": "number", - "value": "{global.font.size.heading.h3}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--icon--size--font--heading--h3", + "name": "pf-t--global--icon--size--font--md", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "md" }, "path": [ "global", "icon", "size", "font", - "heading", - "h3" + "md" ], "references": [ { - "description": "Use as the font size for third level headings.", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1.125rem", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for third level headings.", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.lg}" + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--heading--h3", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h3" + "subitem": "md" }, "path": [ "global", - "font", - "size", - "heading", - "h3" - ], - "references": [ - { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", - "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.400}" - }, - "name": "pf-t--global--font--size--lg", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "lg" - }, - "path": [ - "global", - "font", - "size", - "lg" - ], - "references": [ - { - "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 18 - }, - "name": "pf-t--global--font--size--400", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "400" - }, - "path": [ - "global", - "font", - "size", - "400" - ] - } + "font", + "size", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" ] } ] @@ -34273,110 +34177,80 @@ ] } }, - "pf-t--global--icon--size--font--heading--h4": { + "pf-t--global--icon--size--font--lg": { "default": { - "description": "Use for icons that are placed inline with fourth level headings", + "description": "Use for icons that are placed inline with font–size–lg text", "type": "number", - "value": "1rem", + "value": "1.125rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with fourth level headings", + "description": "Use for icons that are placed inline with font–size–lg text", "type": "number", - "value": "{global.font.size.heading.h4}" + "value": "{global.font.size.lg}" }, - "name": "pf-t--global--icon--size--font--heading--h4", + "name": "pf-t--global--icon--size--font--lg", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "lg" }, "path": [ "global", "icon", "size", "font", - "heading", - "h4" + "lg" ], "references": [ { - "description": "Use as the font size for fourth-level headings.", + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.125rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for fourth-level headings.", + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.400}" }, - "name": "pf-t--global--font--size--heading--h4", + "name": "pf-t--global--font--size--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h4" + "subitem": "lg" }, "path": [ "global", "font", "size", - "heading", - "h4" + "lg" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "1.125rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 18 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--400", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "400" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "400" ] } ] @@ -34384,110 +34258,80 @@ ] } }, - "pf-t--global--icon--size--font--heading--h5": { + "pf-t--global--icon--size--font--xl": { "default": { - "description": "Use for icons that are placed inline with fifth level headings", + "description": "Use for icons that are placed inline with font–size–xl text", "type": "number", - "value": "1rem", + "value": "1.25rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with fifth level headings", + "description": "Use for icons that are placed inline with font–size–xl text", "type": "number", - "value": "{global.font.size.heading.h5}" + "value": "{global.font.size.xl}" }, - "name": "pf-t--global--icon--size--font--heading--h5", + "name": "pf-t--global--icon--size--font--xl", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "xl" }, "path": [ "global", "icon", "size", "font", - "heading", - "h5" + "xl" ], "references": [ { - "description": "Use as the font size for fifth level headings.", + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.25rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for fifth level headings.", + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.500}" }, - "name": "pf-t--global--font--size--heading--h5", + "name": "pf-t--global--font--size--xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h5" + "subitem": "xl" }, "path": [ "global", "font", "size", - "heading", - "h5" + "xl" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "1.25rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 20 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--500", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "500" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "500" ] } ] @@ -34495,110 +34339,80 @@ ] } }, - "pf-t--global--icon--size--font--heading--h6": { + "pf-t--global--icon--size--font--2xl": { "default": { - "description": "Use for icons that are placed inline with sixth level headings", + "description": "Use for icons that are placed inline with font–size–2xl text", "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with sixth level headings", + "description": "Use for icons that are placed inline with font–size–2xl text", "type": "number", - "value": "{global.font.size.heading.h6}" + "value": "{global.font.size.2xl}" }, - "name": "pf-t--global--icon--size--font--heading--h6", + "name": "pf-t--global--icon--size--font--2xl", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "2xl" }, "path": [ "global", "icon", "size", "font", - "heading", - "h6" + "2xl" ], "references": [ { - "description": "Use as the font size for sixth level headings.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for sixth level headings.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.600}" }, - "name": "pf-t--global--font--size--heading--h6", + "name": "pf-t--global--font--size--2xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h6" + "subitem": "2xl" }, "path": [ "global", "font", "size", - "heading", - "h6" + "2xl" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "1.5rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 24 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--600", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "600" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "600" ] } ] @@ -34606,108 +34420,80 @@ ] } }, - "pf-t--global--icon--size--font--body--sm": { + "pf-t--global--icon--size--font--3xl": { "default": { - "description": "Use for icons that are placed inline with small body text", + "description": "Use for icons that are placed inline with font–size–3xl text", "type": "number", - "value": "0.75rem", + "value": "1.75rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with small body text", + "description": "Use for icons that are placed inline with font–size–3xl text", "type": "number", - "value": "{global.font.size.body.sm}" + "value": "{global.font.size.3xl}" }, - "name": "pf-t--global--icon--size--font--body--sm", + "name": "pf-t--global--icon--size--font--3xl", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "body" + "state": "3xl" }, "path": [ "global", "icon", "size", "font", - "body", - "sm" + "3xl" ], "references": [ { - "description": "Use for a smaller font size in body sections.", + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "0.75rem", + "value": "1.75rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for a smaller font size in body sections.", + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.xs}" + "value": "{global.font.size.700}" }, - "name": "pf-t--global--font--size--body--sm", + "name": "pf-t--global--font--size--3xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "body", - "state": "sm" + "subitem": "3xl" }, "path": [ "global", "font", "size", - "body", - "sm" + "3xl" ], "references": [ { "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "1.75rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": "{global.font.size.100}" + "value": 28 }, - "name": "pf-t--global--font--size--xs", + "name": "pf-t--global--font--size--700", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xs" + "subitem": "700" }, "path": [ "global", "font", "size", - "xs" - ], - "references": [ - { - "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 12 - }, - "name": "pf-t--global--font--size--100", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "100" - }, - "path": [ - "global", - "font", - "size", - "100" - ] - } + "700" ] } ] @@ -34715,110 +34501,80 @@ ] } }, - "pf-t--global--icon--size--font--body--default": { + "pf-t--global--icon--size--font--4xl": { "default": { - "description": "Use for icons that are placed inline with default body text", + "description": "Use for icons that are placed inline with font–size–3xl text", "type": "number", - "value": "0.875rem", + "value": "2.25rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with default body text", + "description": "Use for icons that are placed inline with font–size–3xl text", "type": "number", - "value": "{global.font.size.body.default}" + "value": "{global.font.size.4xl}" }, - "name": "pf-t--global--icon--size--font--body--default", + "name": "pf-t--global--icon--size--font--4xl", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "body" + "state": "4xl" }, "path": [ "global", "icon", "size", "font", - "body", - "default" + "4xl" ], "references": [ { - "description": "Use as the default font size in body sections.", + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "0.875rem", + "value": "2.25rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default font size in body sections.", + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.sm}" + "value": "{global.font.size.800}" }, - "name": "pf-t--global--font--size--body--default", + "name": "pf-t--global--font--size--4xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "body", - "state": "default" + "subitem": "4xl" }, "path": [ "global", "font", "size", - "body", - "default" + "4xl" ], "references": [ { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "0.875rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "2.25rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.200}" + "value": 36 }, - "name": "pf-t--global--font--size--sm", + "name": "pf-t--global--font--size--800", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "sm" + "subitem": "800" }, "path": [ "global", "font", "size", - "sm" - ], - "references": [ - { - "type": "number", - "value": "0.875rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 14 - }, - "name": "pf-t--global--font--size--200", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "200" - }, - "path": [ - "global", - "font", - "size", - "200" - ] - } + "800" ] } ] @@ -34826,108 +34582,108 @@ ] } }, - "pf-t--global--icon--size--font--body--lg": { + "pf-t--global--icon--size--font--heading--h1": { "default": { - "description": "Use for icons that are placed inline with large body text", + "description": "Use for icons that are placed inline with first level headings", "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with large body text", + "description": "Use for icons that are placed inline with first level headings", "type": "number", - "value": "{global.font.size.body.lg}" + "value": "{global.font.size.heading.h1}" }, - "name": "pf-t--global--icon--size--font--body--lg", + "name": "pf-t--global--icon--size--font--heading--h1", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "body" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "body", - "lg" + "heading", + "h1" ], "references": [ { - "description": "Use for a larger font size in body sections.", + "description": "Use as the font size for first level headings.", "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for a larger font size in body sections.", + "description": "Use as the font size for first level headings.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.2xl}" }, - "name": "pf-t--global--font--size--body--lg", + "name": "pf-t--global--font--size--heading--h1", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "body", - "state": "lg" + "subitem": "heading", + "state": "h1" }, "path": [ "global", "font", "size", - "body", - "lg" + "heading", + "h1" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": "{global.font.size.600}" }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--2xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "2xl" }, "path": [ "global", "font", "size", - "md" + "2xl" ], "references": [ { "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 16 + "value": 24 }, - "name": "pf-t--global--font--size--300", + "name": "pf-t--global--font--size--600", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "300" + "subitem": "600" }, "path": [ "global", "font", "size", - "300" + "600" ] } ] @@ -34937,78 +34693,110 @@ ] } }, - "pf-t--global--icon--size--font--xs": { + "pf-t--global--icon--size--font--heading--h2": { "default": { - "description": "Use for icons that are placed inline with font–size–xs text", + "description": "Use for icons that are placed inline with second level headings", "type": "number", - "value": "0.75rem", + "value": "1.25rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–xs text", + "description": "Use for icons that are placed inline with second level headings", "type": "number", - "value": "{global.font.size.xs}" + "value": "{global.font.size.heading.h2}" }, - "name": "pf-t--global--icon--size--font--xs", + "name": "pf-t--global--icon--size--font--heading--h2", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "xs" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "xs" + "heading", + "h2" ], "references": [ { + "description": "Use as the font size for second level headings.", "type": "number", - "value": "0.75rem", + "value": "1.25rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for second level headings.", "type": "number", - "value": "{global.font.size.100}" + "value": "{global.font.size.xl}" }, - "name": "pf-t--global--font--size--xs", + "name": "pf-t--global--font--size--heading--h2", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xs" + "subitem": "heading", + "state": "h2" }, "path": [ "global", "font", "size", - "xs" + "heading", + "h2" ], "references": [ { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "1.25rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": 12 + "value": "{global.font.size.500}" }, - "name": "pf-t--global--font--size--100", + "name": "pf-t--global--font--size--xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "100" + "subitem": "xl" }, "path": [ "global", "font", "size", - "100" + "xl" + ], + "references": [ + { + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 20 + }, + "name": "pf-t--global--font--size--500", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "500" + }, + "path": [ + "global", + "font", + "size", + "500" + ] + } ] } ] @@ -35016,80 +34804,110 @@ ] } }, - "pf-t--global--icon--size--font--sm": { + "pf-t--global--icon--size--font--heading--h3": { "default": { - "description": "Use for icons that are placed inline with font–size–sm text", + "description": "Use for icons that are placed inline with third level headings", "type": "number", - "value": "0.875rem", + "value": "1.125rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–sm text", + "description": "Use for icons that are placed inline with third level headings", "type": "number", - "value": "{global.font.size.sm}" + "value": "{global.font.size.heading.h3}" }, - "name": "pf-t--global--icon--size--font--sm", + "name": "pf-t--global--icon--size--font--heading--h3", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "sm" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "sm" + "heading", + "h3" ], "references": [ { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "description": "Use as the font size for third level headings.", "type": "number", - "value": "0.875rem", + "value": "1.125rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "description": "Use as the font size for third level headings.", "type": "number", - "value": "{global.font.size.200}" + "value": "{global.font.size.lg}" }, - "name": "pf-t--global--font--size--sm", + "name": "pf-t--global--font--size--heading--h3", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "sm" + "subitem": "heading", + "state": "h3" }, "path": [ "global", "font", "size", - "sm" + "heading", + "h3" ], "references": [ { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "0.875rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "1.125rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": 14 + "value": "{global.font.size.400}" }, - "name": "pf-t--global--font--size--200", + "name": "pf-t--global--font--size--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "200" + "subitem": "lg" }, "path": [ "global", "font", "size", - "200" + "lg" + ], + "references": [ + { + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 18 + }, + "name": "pf-t--global--font--size--400", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "400" + }, + "path": [ + "global", + "font", + "size", + "400" + ] + } ] } ] @@ -35097,80 +34915,110 @@ ] } }, - "pf-t--global--icon--size--font--md": { + "pf-t--global--icon--size--font--heading--h4": { "default": { - "description": "Use for icons that are placed inline with font–size–md text", + "description": "Use for icons that are placed inline with fourth level headings", "type": "number", "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–md text", + "description": "Use for icons that are placed inline with fourth level headings", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.heading.h4}" }, - "name": "pf-t--global--icon--size--font--md", + "name": "pf-t--global--icon--size--font--heading--h4", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "md" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "md" + "heading", + "h4" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use as the font size for fourth-level headings.", "type": "number", "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use as the font size for fourth-level headings.", "type": "number", - "value": "{global.font.size.300}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--heading--h4", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "heading", + "state": "h4" }, "path": [ "global", "font", "size", - "md" + "heading", + "h4" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", "value": "1rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 16 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--300", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "300" + "subitem": "md" }, "path": [ "global", "font", "size", - "300" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] @@ -35178,80 +35026,110 @@ ] } }, - "pf-t--global--icon--size--font--lg": { + "pf-t--global--icon--size--font--heading--h5": { "default": { - "description": "Use for icons that are placed inline with font–size–lg text", + "description": "Use for icons that are placed inline with fifth level headings", "type": "number", - "value": "1.125rem", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–lg text", + "description": "Use for icons that are placed inline with fifth level headings", "type": "number", - "value": "{global.font.size.lg}" + "value": "{global.font.size.heading.h5}" }, - "name": "pf-t--global--icon--size--font--lg", + "name": "pf-t--global--icon--size--font--heading--h5", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "lg" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "lg" + "heading", + "h5" ], "references": [ { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "description": "Use as the font size for fifth level headings.", "type": "number", - "value": "1.125rem", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "description": "Use as the font size for fifth level headings.", "type": "number", - "value": "{global.font.size.400}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--lg", + "name": "pf-t--global--font--size--heading--h5", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "lg" + "subitem": "heading", + "state": "h5" }, "path": [ "global", "font", "size", - "lg" + "heading", + "h5" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "1rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 18 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--400", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "400" + "subitem": "md" }, "path": [ "global", "font", "size", - "400" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] @@ -35259,80 +35137,110 @@ ] } }, - "pf-t--global--icon--size--font--xl": { + "pf-t--global--icon--size--font--heading--h6": { "default": { - "description": "Use for icons that are placed inline with font–size–xl text", + "description": "Use for icons that are placed inline with sixth level headings", "type": "number", - "value": "1.25rem", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–xl text", + "description": "Use for icons that are placed inline with sixth level headings", "type": "number", - "value": "{global.font.size.xl}" + "value": "{global.font.size.heading.h6}" }, - "name": "pf-t--global--icon--size--font--xl", + "name": "pf-t--global--icon--size--font--heading--h6", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "xl" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "xl" + "heading", + "h6" ], "references": [ { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for sixth level headings.", "type": "number", - "value": "1.25rem", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for sixth level headings.", "type": "number", - "value": "{global.font.size.500}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--xl", + "name": "pf-t--global--font--size--heading--h6", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xl" + "subitem": "heading", + "state": "h6" }, "path": [ "global", "font", "size", - "xl" + "heading", + "h6" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1.25rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "1rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 20 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--500", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "500" + "subitem": "md" }, "path": [ "global", "font", "size", - "500" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] @@ -35340,80 +35248,108 @@ ] } }, - "pf-t--global--icon--size--font--2xl": { + "pf-t--global--icon--size--font--body--sm": { "default": { - "description": "Use for icons that are placed inline with font–size–2xl text", + "description": "Use for icons that are placed inline with small body text", "type": "number", - "value": "1.5rem", + "value": "0.75rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–2xl text", + "description": "Use for icons that are placed inline with small body text", "type": "number", - "value": "{global.font.size.2xl}" + "value": "{global.font.size.body.sm}" }, - "name": "pf-t--global--icon--size--font--2xl", + "name": "pf-t--global--icon--size--font--body--sm", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "2xl" + "state": "body" }, "path": [ "global", "icon", "size", "font", - "2xl" + "body", + "sm" ], "references": [ { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "description": "Use for a smaller font size in body sections.", "type": "number", - "value": "1.5rem", + "value": "0.75rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "description": "Use for a smaller font size in body sections.", "type": "number", - "value": "{global.font.size.600}" + "value": "{global.font.size.xs}" }, - "name": "pf-t--global--font--size--2xl", + "name": "pf-t--global--font--size--body--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "2xl" + "subitem": "body", + "state": "sm" }, "path": [ "global", "font", "size", - "2xl" + "body", + "sm" ], "references": [ { "type": "number", - "value": "1.5rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "0.75rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { "type": "number", - "value": 24 + "value": "{global.font.size.100}" }, - "name": "pf-t--global--font--size--600", + "name": "pf-t--global--font--size--xs", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "600" + "subitem": "xs" }, "path": [ "global", "font", "size", - "600" + "xs" + ], + "references": [ + { + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 12 + }, + "name": "pf-t--global--font--size--100", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "100" + }, + "path": [ + "global", + "font", + "size", + "100" + ] + } ] } ] @@ -35421,80 +35357,110 @@ ] } }, - "pf-t--global--icon--size--font--3xl": { + "pf-t--global--icon--size--font--body--default": { "default": { - "description": "Use for icons that are placed inline with font–size–3xl text", + "description": "Use for icons that are placed inline with default body text", "type": "number", - "value": "1.75rem", + "value": "0.875rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–3xl text", + "description": "Use for icons that are placed inline with default body text", "type": "number", - "value": "{global.font.size.3xl}" + "value": "{global.font.size.body.default}" }, - "name": "pf-t--global--icon--size--font--3xl", + "name": "pf-t--global--icon--size--font--body--default", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "3xl" + "state": "body" }, "path": [ "global", "icon", "size", "font", - "3xl" + "body", + "default" ], "references": [ { - "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "description": "Use as the default font size in body sections.", "type": "number", - "value": "1.75rem", + "value": "0.875rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "description": "Use as the default font size in body sections.", "type": "number", - "value": "{global.font.size.700}" + "value": "{global.font.size.sm}" }, - "name": "pf-t--global--font--size--3xl", + "name": "pf-t--global--font--size--body--default", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "3xl" + "subitem": "body", + "state": "default" }, "path": [ "global", "font", "size", - "3xl" + "body", + "default" ], "references": [ { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "1.75rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "0.875rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": 28 + "value": "{global.font.size.200}" }, - "name": "pf-t--global--font--size--700", + "name": "pf-t--global--font--size--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "700" + "subitem": "sm" }, "path": [ "global", "font", "size", - "700" + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 14 + }, + "name": "pf-t--global--font--size--200", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "200" + }, + "path": [ + "global", + "font", + "size", + "200" + ] + } ] } ] @@ -35502,80 +35468,110 @@ ] } }, - "pf-t--global--icon--size--font--4xl": { + "pf-t--global--icon--size--font--body--lg": { "default": { - "description": "Use for icons that are placed inline with font–size–3xl text", + "description": "Use for icons that are placed inline with large body text", "type": "number", - "value": "2.25rem", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–3xl text", + "description": "Use for icons that are placed inline with large body text", "type": "number", - "value": "{global.font.size.4xl}" + "value": "{global.font.size.body.lg}" }, - "name": "pf-t--global--icon--size--font--4xl", + "name": "pf-t--global--icon--size--font--body--lg", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "4xl" + "state": "body" }, "path": [ "global", "icon", "size", "font", - "4xl" + "body", + "lg" ], "references": [ { - "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "description": "Use for a larger font size in body sections.", "type": "number", - "value": "2.25rem", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "description": "Use for a larger font size in body sections.", "type": "number", - "value": "{global.font.size.800}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--4xl", + "name": "pf-t--global--font--size--body--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "4xl" + "subitem": "body", + "state": "lg" }, "path": [ "global", "font", "size", - "4xl" + "body", + "lg" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "2.25rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "1rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 36 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--800", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "800" + "subitem": "md" }, "path": [ "global", "font", "size", - "800" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] @@ -35583,32 +35579,30 @@ ] } }, - "pf-t--global--border--width--divider--default": { + "pf-t--global--border--width--regular": { "default": { - "description": "Use as the default border width for dividers.", + "description": "Use as the default border width for elements.", "type": "number", "value": "1px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default border width for dividers.", + "description": "Use as the default border width for elements.", "type": "number", "value": "{global.border.width.100}" }, - "name": "pf-t--global--border--width--divider--default", + "name": "pf-t--global--border--width--regular", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "divider", - "state": "default" + "subitem": "regular" }, "path": [ "global", "border", "width", - "divider", - "default" + "regular" ], "references": [ { @@ -35637,138 +35631,136 @@ ] } }, - "pf-t--global--border--width--divider--hover": { + "pf-t--global--border--width--strong": { "default": { - "description": "Use as the border width hover state for dividers.", + "description": "Use as a stronger/wider border width for elements.", "type": "number", - "value": "1px", + "value": "2px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the border width hover state for dividers.", + "description": "Use as a stronger/wider border width for elements.", "type": "number", - "value": "{global.border.width.100}" + "value": "{global.border.width.200}" }, - "name": "pf-t--global--border--width--divider--hover", + "name": "pf-t--global--border--width--strong", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "divider", - "state": "hover" + "subitem": "strong" }, "path": [ "global", "border", "width", - "divider", - "hover" + "strong" ], "references": [ { "type": "number", - "value": "1px", + "value": "2px", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 1 + "value": 2 }, - "name": "pf-t--global--border--width--100", + "name": "pf-t--global--border--width--200", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "100" + "subitem": "200" }, "path": [ "global", "border", "width", - "100" + "200" ] } ] } }, - "pf-t--global--border--width--divider--clicked": { + "pf-t--global--border--width--extra-strong": { "default": { - "description": "Use as the border width clicked state for dividers.", + "description": "Use as the strongest/widest border width for elements.", "type": "number", - "value": "1px", + "value": "3px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the border width clicked state for dividers.", + "description": "Use as the strongest/widest border width for elements.", "type": "number", - "value": "{global.border.width.100}" + "value": "{global.border.width.300}" }, - "name": "pf-t--global--border--width--divider--clicked", + "name": "pf-t--global--border--width--extra-strong", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "divider", - "state": "clicked" + "subitem": "extra-strong" }, "path": [ "global", "border", "width", - "divider", - "clicked" + "extra-strong" ], "references": [ { "type": "number", - "value": "1px", + "value": "3px", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 1 + "value": 3 }, - "name": "pf-t--global--border--width--100", + "name": "pf-t--global--border--width--300", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "100" + "subitem": "300" }, "path": [ "global", "border", "width", - "100" + "300" ] } ] } }, - "pf-t--global--border--width--regular": { + "pf-t--global--border--width--divider--default": { "default": { - "description": "Use as the default border width for elements.", + "description": "Use as the default border width for dividers.", "type": "number", "value": "1px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default border width for elements.", + "description": "Use as the default border width for dividers.", "type": "number", "value": "{global.border.width.100}" }, - "name": "pf-t--global--border--width--regular", + "name": "pf-t--global--border--width--divider--default", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "regular" + "subitem": "divider", + "state": "default" }, "path": [ "global", "border", "width", - "regular" + "divider", + "default" ], "references": [ { @@ -35797,105 +35789,109 @@ ] } }, - "pf-t--global--border--width--strong": { + "pf-t--global--border--width--divider--hover": { "default": { - "description": "Use as a stronger/wider border width for elements.", + "description": "Use as the border width hover state for dividers.", "type": "number", - "value": "2px", + "value": "1px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as a stronger/wider border width for elements.", + "description": "Use as the border width hover state for dividers.", "type": "number", - "value": "{global.border.width.200}" + "value": "{global.border.width.100}" }, - "name": "pf-t--global--border--width--strong", + "name": "pf-t--global--border--width--divider--hover", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "strong" + "subitem": "divider", + "state": "hover" }, "path": [ "global", "border", "width", - "strong" + "divider", + "hover" ], "references": [ { "type": "number", - "value": "2px", + "value": "1px", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 2 + "value": 1 }, - "name": "pf-t--global--border--width--200", + "name": "pf-t--global--border--width--100", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "200" + "subitem": "100" }, "path": [ "global", "border", "width", - "200" + "100" ] } ] } }, - "pf-t--global--border--width--extra-strong": { + "pf-t--global--border--width--divider--clicked": { "default": { - "description": "Use as the strongest/widest border width for elements.", + "description": "Use as the border width clicked state for dividers.", "type": "number", - "value": "3px", + "value": "1px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the strongest/widest border width for elements.", + "description": "Use as the border width clicked state for dividers.", "type": "number", - "value": "{global.border.width.300}" + "value": "{global.border.width.100}" }, - "name": "pf-t--global--border--width--extra-strong", + "name": "pf-t--global--border--width--divider--clicked", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "extra-strong" + "subitem": "divider", + "state": "clicked" }, "path": [ "global", "border", "width", - "extra-strong" + "divider", + "clicked" ], "references": [ { "type": "number", - "value": "3px", + "value": "1px", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 3 + "value": 1 }, - "name": "pf-t--global--border--width--300", + "name": "pf-t--global--border--width--100", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "300" + "subitem": "100" }, "path": [ "global", "border", "width", - "300" + "100" ] } ] @@ -36595,117 +36591,85 @@ ] } }, - "pf-t--global--border--width--action--plain--default": { - "default": { - "description": "Use as the default border width for plain actions", - "type": "number", - "value": "0px", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the default border width for plain actions", - "type": "number", - "value": 0 - }, - "name": "pf-t--global--border--width--action--plain--default", - "attributes": { - "category": "global", - "type": "border", - "item": "width", - "subitem": "action", - "state": "plain" - }, - "path": [ - "global", - "border", - "width", - "action", - "plain", - "default" - ] - } - }, - "pf-t--global--border--width--action--plain--hover": { + "pf-t--global--border--width--action--hover": { "default": { - "description": "Use as the border width for plain actions in their hover state", + "description": "Use as the hover state border width for actions like secondary and tertiary buttons", "type": "number", - "value": "1px", + "value": "2px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the border width for plain actions in their hover state", + "description": "Use as the hover state border width for actions like secondary and tertiary buttons", "type": "number", - "value": "{global.border.width.100}" + "value": "{global.border.width.200}" }, - "name": "pf-t--global--border--width--action--plain--hover", + "name": "pf-t--global--border--width--action--hover", "attributes": { "category": "global", "type": "border", "item": "width", "subitem": "action", - "state": "plain" + "state": "hover" }, "path": [ "global", "border", "width", "action", - "plain", "hover" ], "references": [ { "type": "number", - "value": "1px", + "value": "2px", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 1 + "value": 2 }, - "name": "pf-t--global--border--width--100", + "name": "pf-t--global--border--width--200", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "100" + "subitem": "200" }, "path": [ "global", "border", "width", - "100" + "200" ] } ] } }, - "pf-t--global--border--width--action--plain--clicked": { + "pf-t--global--border--width--action--clicked": { "default": { - "description": "Use as the border width for plain actions in their clicked state", + "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", "type": "number", "value": "2px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the border width for plain actions in their clicked state", + "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", "type": "number", "value": "{global.border.width.200}" }, - "name": "pf-t--global--border--width--action--plain--clicked", + "name": "pf-t--global--border--width--action--clicked", "attributes": { "category": "global", "type": "border", "item": "width", "subitem": "action", - "state": "plain" + "state": "clicked" }, "path": [ "global", "border", "width", "action", - "plain", "clicked" ], "references": [ @@ -36735,85 +36699,117 @@ ] } }, - "pf-t--global--border--width--action--hover": { + "pf-t--global--border--width--action--plain--default": { "default": { - "description": "Use as the hover state border width for actions like secondary and tertiary buttons", + "description": "Use as the default border width for plain actions", "type": "number", - "value": "2px", + "value": "0px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state border width for actions like secondary and tertiary buttons", + "description": "Use as the default border width for plain actions", "type": "number", - "value": "{global.border.width.200}" + "value": 0 }, - "name": "pf-t--global--border--width--action--hover", + "name": "pf-t--global--border--width--action--plain--default", "attributes": { "category": "global", "type": "border", "item": "width", "subitem": "action", - "state": "hover" + "state": "plain" + }, + "path": [ + "global", + "border", + "width", + "action", + "plain", + "default" + ] + } + }, + "pf-t--global--border--width--action--plain--hover": { + "default": { + "description": "Use as the border width for plain actions in their hover state", + "type": "number", + "value": "1px", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the border width for plain actions in their hover state", + "type": "number", + "value": "{global.border.width.100}" + }, + "name": "pf-t--global--border--width--action--plain--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "action", + "state": "plain" }, "path": [ "global", "border", "width", "action", + "plain", "hover" ], "references": [ { "type": "number", - "value": "2px", + "value": "1px", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 2 + "value": 1 }, - "name": "pf-t--global--border--width--200", + "name": "pf-t--global--border--width--100", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "200" + "subitem": "100" }, "path": [ "global", "border", "width", - "200" + "100" ] } ] } }, - "pf-t--global--border--width--action--clicked": { + "pf-t--global--border--width--action--plain--clicked": { "default": { - "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", + "description": "Use as the border width for plain actions in their clicked state", "type": "number", "value": "2px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", + "description": "Use as the border width for plain actions in their clicked state", "type": "number", "value": "{global.border.width.200}" }, - "name": "pf-t--global--border--width--action--clicked", + "name": "pf-t--global--border--width--action--plain--clicked", "attributes": { "category": "global", "type": "border", "item": "width", "subitem": "action", - "state": "clicked" + "state": "plain" }, "path": [ "global", "border", "width", "action", + "plain", "clicked" ], "references": [ @@ -37317,78 +37313,78 @@ ] } }, - "pf-t--global--border--radius--glass--default": { + "pf-t--global--border--radius--control--default": { "default": { "type": "number", - "value": "16px", + "value": "6px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { "type": "number", - "value": "{global.border.radius.medium}" + "value": "{global.border.radius.small}" }, - "name": "pf-t--global--border--radius--glass--default", + "name": "pf-t--global--border--radius--control--default", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "glass", + "subitem": "control", "state": "default" }, "path": [ "global", "border", "radius", - "glass", + "control", "default" ], "references": [ { - "description": "Use to adjust the curvature of the border corners for an element. Use for moderately rounded corners, like cards.", + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", "type": "number", - "value": "16px", + "value": "6px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use to adjust the curvature of the border corners for an element. Use for moderately rounded corners, like cards.", + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", "type": "number", - "value": "{global.border.radius.300}" + "value": "{global.border.radius.200}" }, - "name": "pf-t--global--border--radius--medium", + "name": "pf-t--global--border--radius--small", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "medium" + "subitem": "small" }, "path": [ "global", "border", "radius", - "medium" + "small" ], "references": [ { "type": "number", - "value": "16px", + "value": "6px", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 16 + "value": 6 }, - "name": "pf-t--global--border--radius--300", + "name": "pf-t--global--border--radius--200", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "300" + "subitem": "200" }, "path": [ "global", "border", "radius", - "300" + "200" ] } ] @@ -37396,7 +37392,7 @@ ] } }, - "pf-t--global--border--radius--control--default": { + "pf-t--global--border--radius--control--form-element": { "default": { "type": "number", "value": "6px", @@ -37406,20 +37402,20 @@ "type": "number", "value": "{global.border.radius.small}" }, - "name": "pf-t--global--border--radius--control--default", + "name": "pf-t--global--border--radius--control--form-element", "attributes": { "category": "global", "type": "border", "item": "radius", "subitem": "control", - "state": "default" + "state": "form-element" }, "path": [ "global", "border", "radius", "control", - "default" + "form-element" ], "references": [ { @@ -37475,78 +37471,78 @@ ] } }, - "pf-t--global--border--radius--control--form-element": { + "pf-t--global--border--radius--glass--default": { "default": { "type": "number", - "value": "6px", + "value": "16px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { "type": "number", - "value": "{global.border.radius.small}" + "value": "{global.border.radius.medium}" }, - "name": "pf-t--global--border--radius--control--form-element", + "name": "pf-t--global--border--radius--glass--default", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "control", - "state": "form-element" + "subitem": "glass", + "state": "default" }, "path": [ "global", "border", "radius", - "control", - "form-element" + "glass", + "default" ], "references": [ { - "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "description": "Use to adjust the curvature of the border corners for an element. Use for moderately rounded corners, like cards.", "type": "number", - "value": "6px", + "value": "16px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "description": "Use to adjust the curvature of the border corners for an element. Use for moderately rounded corners, like cards.", "type": "number", - "value": "{global.border.radius.200}" + "value": "{global.border.radius.300}" }, - "name": "pf-t--global--border--radius--small", + "name": "pf-t--global--border--radius--medium", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "small" + "subitem": "medium" }, "path": [ "global", "border", "radius", - "small" + "medium" ], "references": [ { "type": "number", - "value": "6px", + "value": "16px", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 6 + "value": 16 }, - "name": "pf-t--global--border--radius--200", + "name": "pf-t--global--border--radius--300", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "200" + "subitem": "300" }, "path": [ "global", "border", "radius", - "200" + "300" ] } ] @@ -37554,79 +37550,78 @@ ] } }, - "pf-t--global--border--radius--action--plain--default": { + "pf-t--global--border--radius--action--default": { "default": { "type": "number", - "value": "6px", + "value": "999px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { "type": "number", - "value": "{global.border.radius.small}" + "value": "{global.border.radius.pill}" }, - "name": "pf-t--global--border--radius--action--plain--default", + "name": "pf-t--global--border--radius--action--default", "attributes": { "category": "global", "type": "border", "item": "radius", "subitem": "action", - "state": "plain" + "state": "default" }, "path": [ "global", "border", "radius", "action", - "plain", "default" ], "references": [ { - "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", "type": "number", - "value": "6px", + "value": "999px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", "type": "number", - "value": "{global.border.radius.200}" + "value": "{global.border.radius.500}" }, - "name": "pf-t--global--border--radius--small", + "name": "pf-t--global--border--radius--pill", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "small" + "subitem": "pill" }, "path": [ "global", "border", "radius", - "small" + "pill" ], "references": [ { "type": "number", - "value": "6px", + "value": "999px", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 6 + "value": 999 }, - "name": "pf-t--global--border--radius--200", + "name": "pf-t--global--border--radius--500", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "200" + "subitem": "500" }, "path": [ "global", "border", "radius", - "200" + "500" ] } ] @@ -37634,78 +37629,79 @@ ] } }, - "pf-t--global--border--radius--action--default": { + "pf-t--global--border--radius--action--plain--default": { "default": { "type": "number", - "value": "999px", + "value": "6px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { "type": "number", - "value": "{global.border.radius.pill}" + "value": "{global.border.radius.small}" }, - "name": "pf-t--global--border--radius--action--default", + "name": "pf-t--global--border--radius--action--plain--default", "attributes": { "category": "global", "type": "border", "item": "radius", "subitem": "action", - "state": "default" + "state": "plain" }, "path": [ "global", "border", "radius", "action", + "plain", "default" ], "references": [ { - "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", "type": "number", - "value": "999px", + "value": "6px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", "type": "number", - "value": "{global.border.radius.500}" + "value": "{global.border.radius.200}" }, - "name": "pf-t--global--border--radius--pill", + "name": "pf-t--global--border--radius--small", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "pill" + "subitem": "small" }, "path": [ "global", "border", "radius", - "pill" + "small" ], "references": [ { "type": "number", - "value": "999px", + "value": "6px", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 999 + "value": 6 }, - "name": "pf-t--global--border--radius--500", + "name": "pf-t--global--border--radius--200", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "500" + "subitem": "200" }, "path": [ "global", "border", "radius", - "500" + "200" ] } ] @@ -37713,1618 +37709,1618 @@ ] } }, - "pf-t--global--font--line-height--body": { + "pf-t--global--font--family--body": { "default": { - "description": "Use to define the line height for body text", + "description": "Use to define the font family for body text", "type": "number", - "value": 1.5, + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use to define the line height for body text", + "description": "Use to define the font family for body text", "type": "number", - "value": "{global.font.line-height.200}" + "value": "{global.font.family.100}" }, - "name": "pf-t--global--font--line-height--body", + "name": "pf-t--global--font--family--body", "attributes": { "category": "global", "type": "font", - "item": "line-height", + "item": "family", "subitem": "body" }, "path": [ "global", "font", - "line-height", + "family", "body" ], "references": [ { - "type": "number", - "value": 1.5, + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "type": "number", - "value": 1.5 + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" }, - "name": "pf-t--global--font--line-height--200", + "name": "pf-t--global--font--family--100", "attributes": { "category": "global", "type": "font", - "item": "line-height", - "subitem": "200" + "item": "family", + "subitem": "100" }, "path": [ "global", "font", - "line-height", - "200" + "family", + "100" ] } ] } }, - "pf-t--global--font--line-height--heading": { + "pf-t--global--font--family--heading": { "default": { - "description": "Use to define the line height for heading text", + "description": "Use to define the font family for heading text", "type": "number", - "value": 1.3, + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use to define the line height for heading text", + "description": "Use to define the font family for heading text", "type": "number", - "value": "{global.font.line-height.100}" + "value": "{global.font.family.200}" }, - "name": "pf-t--global--font--line-height--heading", + "name": "pf-t--global--font--family--heading", "attributes": { "category": "global", "type": "font", - "item": "line-height", + "item": "family", "subitem": "heading" }, "path": [ "global", "font", - "line-height", + "family", "heading" ], "references": [ { - "type": "number", - "value": 1.3, + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "type": "number", - "value": 1.2999999523162842 + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" }, - "name": "pf-t--global--font--line-height--100", + "name": "pf-t--global--font--family--200", "attributes": { "category": "global", "type": "font", - "item": "line-height", - "subitem": "100" + "item": "family", + "subitem": "200" }, "path": [ "global", "font", - "line-height", - "100" + "family", + "200" ] } ] } }, - "pf-t--global--font--weight--body--default": { + "pf-t--global--font--family--mono": { "default": { - "description": "Use to define the default weight for body text", + "description": "Use to define the font family for mono text", "type": "number", - "value": 400, + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use to define the default weight for body text", + "description": "Use to define the font family for mono text", "type": "number", - "value": "{global.font.weight.100}" + "value": "{global.font.family.300}" }, - "name": "pf-t--global--font--weight--body--default", + "name": "pf-t--global--font--family--mono", "attributes": { "category": "global", "type": "font", - "item": "weight", - "subitem": "body", - "state": "default" + "item": "family", + "subitem": "mono" }, "path": [ "global", "font", - "weight", - "body", - "default" + "family", + "mono" ], "references": [ { - "type": "number", - "value": 400, + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "type": "number", - "value": 400 + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" }, - "name": "pf-t--global--font--weight--100", + "name": "pf-t--global--font--family--300", "attributes": { "category": "global", "type": "font", - "item": "weight", - "subitem": "100" + "item": "family", + "subitem": "300" }, "path": [ "global", "font", - "weight", - "100" + "family", + "300" ] } ] } }, - "pf-t--global--font--weight--body--bold": { + "pf-t--global--font--line-height--body": { "default": { - "description": "Use to define the bold weight for body text, often used to field labels or to add emphasis.", + "description": "Use to define the line height for body text", "type": "number", - "value": 500, + "value": 1.5, "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use to define the bold weight for body text, often used to field labels or to add emphasis.", + "description": "Use to define the line height for body text", "type": "number", - "value": "{global.font.weight.200}" + "value": "{global.font.line-height.200}" }, - "name": "pf-t--global--font--weight--body--bold", + "name": "pf-t--global--font--line-height--body", "attributes": { "category": "global", "type": "font", - "item": "weight", - "subitem": "body", - "state": "bold" + "item": "line-height", + "subitem": "body" }, "path": [ "global", "font", - "weight", - "body", - "bold" + "line-height", + "body" ], "references": [ { "type": "number", - "value": 500, + "value": 1.5, "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 500 + "value": 1.5 }, - "name": "pf-t--global--font--weight--200", + "name": "pf-t--global--font--line-height--200", "attributes": { "category": "global", "type": "font", - "item": "weight", + "item": "line-height", "subitem": "200" }, "path": [ "global", "font", - "weight", + "line-height", "200" ] } ] } }, - "pf-t--global--font--weight--heading--default": { + "pf-t--global--font--line-height--heading": { "default": { - "description": "Use to define the default weight for heading text", + "description": "Use to define the line height for heading text", "type": "number", - "value": 500, + "value": 1.3, "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use to define the default weight for heading text", + "description": "Use to define the line height for heading text", "type": "number", - "value": "{global.font.weight.300}" + "value": "{global.font.line-height.100}" }, - "name": "pf-t--global--font--weight--heading--default", + "name": "pf-t--global--font--line-height--heading", "attributes": { "category": "global", "type": "font", - "item": "weight", - "subitem": "heading", - "state": "default" + "item": "line-height", + "subitem": "heading" }, "path": [ "global", "font", - "weight", - "heading", - "default" + "line-height", + "heading" ], "references": [ { "type": "number", - "value": 500, + "value": 1.3, "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 500 + "value": 1.2999999523162842 }, - "name": "pf-t--global--font--weight--300", + "name": "pf-t--global--font--line-height--100", "attributes": { "category": "global", "type": "font", - "item": "weight", - "subitem": "300" + "item": "line-height", + "subitem": "100" }, "path": [ "global", "font", - "weight", - "300" + "line-height", + "100" ] } ] } }, - "pf-t--global--font--weight--heading--bold": { + "pf-t--global--font--weight--body--default": { "default": { - "description": "Use to define the bold weight for heading text, often used to add emphasis.", + "description": "Use to define the default weight for body text", "type": "number", - "value": 700, + "value": 400, "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use to define the bold weight for heading text, often used to add emphasis.", + "description": "Use to define the default weight for body text", "type": "number", - "value": "{global.font.weight.400}" + "value": "{global.font.weight.100}" }, - "name": "pf-t--global--font--weight--heading--bold", + "name": "pf-t--global--font--weight--body--default", "attributes": { "category": "global", "type": "font", "item": "weight", - "subitem": "heading", - "state": "bold" + "subitem": "body", + "state": "default" }, "path": [ "global", "font", "weight", - "heading", - "bold" + "body", + "default" ], "references": [ { "type": "number", - "value": 700, + "value": 400, "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 700 + "value": 400 }, - "name": "pf-t--global--font--weight--400", + "name": "pf-t--global--font--weight--100", "attributes": { "category": "global", "type": "font", "item": "weight", - "subitem": "400" + "subitem": "100" }, "path": [ "global", "font", "weight", - "400" + "100" ] } ] } }, - "pf-t--global--font--size--body--sm": { + "pf-t--global--font--weight--body--bold": { "default": { - "description": "Use for a smaller font size in body sections.", + "description": "Use to define the bold weight for body text, often used to field labels or to add emphasis.", "type": "number", - "value": "0.75rem", + "value": 500, "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for a smaller font size in body sections.", + "description": "Use to define the bold weight for body text, often used to field labels or to add emphasis.", "type": "number", - "value": "{global.font.size.xs}" + "value": "{global.font.weight.200}" }, - "name": "pf-t--global--font--size--body--sm", + "name": "pf-t--global--font--weight--body--bold", "attributes": { "category": "global", "type": "font", - "item": "size", + "item": "weight", "subitem": "body", - "state": "sm" + "state": "bold" }, "path": [ "global", "font", - "size", + "weight", "body", - "sm" + "bold" ], "references": [ { "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": 500, + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": "{global.font.size.100}" + "value": 500 }, - "name": "pf-t--global--font--size--xs", + "name": "pf-t--global--font--weight--200", "attributes": { "category": "global", "type": "font", - "item": "size", - "subitem": "xs" + "item": "weight", + "subitem": "200" }, "path": [ "global", "font", - "size", - "xs" - ], - "references": [ - { - "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 12 - }, - "name": "pf-t--global--font--size--100", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "100" - }, - "path": [ - "global", - "font", - "size", - "100" - ] - } + "weight", + "200" ] } ] } }, - "pf-t--global--font--size--body--default": { + "pf-t--global--font--weight--heading--default": { "default": { - "description": "Use as the default font size in body sections.", + "description": "Use to define the default weight for heading text", "type": "number", - "value": "0.875rem", + "value": 500, "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default font size in body sections.", + "description": "Use to define the default weight for heading text", "type": "number", - "value": "{global.font.size.sm}" + "value": "{global.font.weight.300}" }, - "name": "pf-t--global--font--size--body--default", + "name": "pf-t--global--font--weight--heading--default", "attributes": { "category": "global", "type": "font", - "item": "size", - "subitem": "body", + "item": "weight", + "subitem": "heading", "state": "default" }, "path": [ "global", "font", - "size", - "body", - "default" - ], - "references": [ - { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", - "type": "number", - "value": "0.875rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.200}" - }, - "name": "pf-t--global--font--size--sm", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "sm" - }, - "path": [ - "global", - "font", - "size", - "sm" - ], - "references": [ - { - "type": "number", - "value": "0.875rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 14 - }, - "name": "pf-t--global--font--size--200", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "200" - }, - "path": [ - "global", - "font", - "size", - "200" - ] - } + "weight", + "heading", + "default" + ], + "references": [ + { + "type": "number", + "value": 500, + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 500 + }, + "name": "pf-t--global--font--weight--300", + "attributes": { + "category": "global", + "type": "font", + "item": "weight", + "subitem": "300" + }, + "path": [ + "global", + "font", + "weight", + "300" ] } ] } }, - "pf-t--global--font--size--body--lg": { + "pf-t--global--font--weight--heading--bold": { "default": { - "description": "Use for a larger font size in body sections.", + "description": "Use to define the bold weight for heading text, often used to add emphasis.", "type": "number", - "value": "1rem", + "value": 700, "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for a larger font size in body sections.", + "description": "Use to define the bold weight for heading text, often used to add emphasis.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.weight.400}" }, - "name": "pf-t--global--font--size--body--lg", + "name": "pf-t--global--font--weight--heading--bold", "attributes": { "category": "global", "type": "font", - "item": "size", - "subitem": "body", - "state": "lg" + "item": "weight", + "subitem": "heading", + "state": "bold" }, "path": [ "global", "font", - "size", - "body", - "lg" + "weight", + "heading", + "bold" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": 700, + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 700 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--weight--400", "attributes": { "category": "global", "type": "font", - "item": "size", - "subitem": "md" + "item": "weight", + "subitem": "400" }, "path": [ "global", "font", - "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "weight", + "400" ] } ] } }, - "pf-t--global--font--size--heading--h1": { + "pf-t--global--font--size--xs": { "default": { - "description": "Use as the font size for first level headings.", "type": "number", - "value": "1.5rem", + "value": "0.75rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for first level headings.", "type": "number", - "value": "{global.font.size.2xl}" + "value": "{global.font.size.100}" }, - "name": "pf-t--global--font--size--heading--h1", + "name": "pf-t--global--font--size--xs", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h1" + "subitem": "xs" }, "path": [ "global", "font", "size", - "heading", - "h1" + "xs" ], "references": [ { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.5rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "0.75rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.600}" + "value": 12 }, - "name": "pf-t--global--font--size--2xl", + "name": "pf-t--global--font--size--100", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "2xl" + "subitem": "100" }, "path": [ "global", "font", "size", - "2xl" - ], - "references": [ - { - "type": "number", - "value": "1.5rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 24 - }, - "name": "pf-t--global--font--size--600", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "600" - }, - "path": [ - "global", - "font", - "size", - "600" - ] - } + "100" ] } ] } }, - "pf-t--global--font--size--heading--h2": { + "pf-t--global--font--size--sm": { "default": { - "description": "Use as the font size for second level headings.", + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "1.25rem", + "value": "0.875rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for second level headings.", + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.xl}" + "value": "{global.font.size.200}" }, - "name": "pf-t--global--font--size--heading--h2", + "name": "pf-t--global--font--size--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h2" + "subitem": "sm" }, "path": [ "global", "font", "size", - "heading", - "h2" + "sm" ], "references": [ { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.25rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "0.875rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.500}" + "value": 14 }, - "name": "pf-t--global--font--size--xl", + "name": "pf-t--global--font--size--200", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xl" + "subitem": "200" }, "path": [ "global", "font", "size", - "xl" - ], - "references": [ - { - "type": "number", - "value": "1.25rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 20 - }, - "name": "pf-t--global--font--size--500", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "500" - }, - "path": [ - "global", - "font", - "size", - "500" - ] - } + "200" ] } ] } }, - "pf-t--global--font--size--heading--h3": { + "pf-t--global--font--size--md": { "default": { - "description": "Use as the font size for third level headings.", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1.125rem", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for third level headings.", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.lg}" + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--heading--h3", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h3" + "subitem": "md" }, "path": [ "global", "font", "size", - "heading", - "h3" + "md" ], "references": [ { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.400}" + "value": 16 }, - "name": "pf-t--global--font--size--lg", + "name": "pf-t--global--font--size--300", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "lg" + "subitem": "300" }, "path": [ "global", "font", "size", - "lg" - ], - "references": [ - { - "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 18 - }, - "name": "pf-t--global--font--size--400", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "400" - }, - "path": [ - "global", - "font", - "size", - "400" - ] - } + "300" ] } ] } }, - "pf-t--global--font--size--heading--h4": { + "pf-t--global--font--size--lg": { "default": { - "description": "Use as the font size for fourth-level headings.", + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.125rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for fourth-level headings.", + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.400}" }, - "name": "pf-t--global--font--size--heading--h4", + "name": "pf-t--global--font--size--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h4" + "subitem": "lg" }, "path": [ "global", "font", "size", - "heading", - "h4" + "lg" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "1.125rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 18 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--400", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "400" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "400" ] } ] } }, - "pf-t--global--font--size--heading--h5": { + "pf-t--global--font--size--xl": { "default": { - "description": "Use as the font size for fifth level headings.", + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.25rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for fifth level headings.", + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.500}" }, - "name": "pf-t--global--font--size--heading--h5", + "name": "pf-t--global--font--size--xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h5" + "subitem": "xl" }, "path": [ "global", "font", "size", - "heading", - "h5" + "xl" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "1.25rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 20 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--500", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "500" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "500" ] } ] } }, - "pf-t--global--font--size--heading--h6": { + "pf-t--global--font--size--2xl": { "default": { - "description": "Use as the font size for sixth level headings.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for sixth level headings.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.600}" }, - "name": "pf-t--global--font--size--heading--h6", + "name": "pf-t--global--font--size--2xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h6" + "subitem": "2xl" }, "path": [ "global", "font", "size", - "heading", - "h6" + "2xl" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "1.5rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 24 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--600", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "600" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "600" ] } ] } }, - "pf-t--global--font--size--xs": { + "pf-t--global--font--size--3xl": { "default": { + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "0.75rem", + "value": "1.75rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.100}" + "value": "{global.font.size.700}" }, - "name": "pf-t--global--font--size--xs", + "name": "pf-t--global--font--size--3xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xs" + "subitem": "3xl" }, "path": [ "global", "font", "size", - "xs" + "3xl" ], "references": [ { "type": "number", - "value": "0.75rem", + "value": "1.75rem", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 12 + "value": 28 }, - "name": "pf-t--global--font--size--100", + "name": "pf-t--global--font--size--700", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "100" + "subitem": "700" }, "path": [ "global", "font", "size", - "100" + "700" ] } ] } }, - "pf-t--global--font--size--sm": { + "pf-t--global--font--size--4xl": { "default": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "0.875rem", + "value": "2.25rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.200}" + "value": "{global.font.size.800}" }, - "name": "pf-t--global--font--size--sm", + "name": "pf-t--global--font--size--4xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "sm" + "subitem": "4xl" }, "path": [ "global", "font", "size", - "sm" + "4xl" ], "references": [ { "type": "number", - "value": "0.875rem", + "value": "2.25rem", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 14 + "value": 36 }, - "name": "pf-t--global--font--size--200", + "name": "pf-t--global--font--size--800", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "200" + "subitem": "800" }, "path": [ "global", "font", "size", - "200" + "800" ] } ] } }, - "pf-t--global--font--size--md": { + "pf-t--global--font--size--body--sm": { "default": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use for a smaller font size in body sections.", "type": "number", - "value": "1rem", + "value": "0.75rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use for a smaller font size in body sections.", "type": "number", - "value": "{global.font.size.300}" + "value": "{global.font.size.xs}" }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--body--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "body", + "state": "sm" }, "path": [ "global", "font", "size", - "md" + "body", + "sm" ], "references": [ { "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "0.75rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { "type": "number", - "value": 16 + "value": "{global.font.size.100}" }, - "name": "pf-t--global--font--size--300", + "name": "pf-t--global--font--size--xs", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "300" + "subitem": "xs" }, "path": [ "global", "font", "size", - "300" + "xs" + ], + "references": [ + { + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 12 + }, + "name": "pf-t--global--font--size--100", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "100" + }, + "path": [ + "global", + "font", + "size", + "100" + ] + } ] } ] } }, - "pf-t--global--font--size--lg": { + "pf-t--global--font--size--body--default": { "default": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "description": "Use as the default font size in body sections.", "type": "number", - "value": "1.125rem", + "value": "0.875rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "description": "Use as the default font size in body sections.", "type": "number", - "value": "{global.font.size.400}" + "value": "{global.font.size.sm}" }, - "name": "pf-t--global--font--size--lg", + "name": "pf-t--global--font--size--body--default", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "lg" + "subitem": "body", + "state": "default" }, "path": [ "global", "font", "size", - "lg" + "body", + "default" ], "references": [ { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "0.875rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": 18 + "value": "{global.font.size.200}" }, - "name": "pf-t--global--font--size--400", + "name": "pf-t--global--font--size--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "400" + "subitem": "sm" }, "path": [ "global", "font", "size", - "400" + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 14 + }, + "name": "pf-t--global--font--size--200", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "200" + }, + "path": [ + "global", + "font", + "size", + "200" + ] + } ] } ] } }, - "pf-t--global--font--size--xl": { + "pf-t--global--font--size--body--lg": { "default": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "description": "Use for a larger font size in body sections.", "type": "number", - "value": "1.25rem", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "description": "Use for a larger font size in body sections.", "type": "number", - "value": "{global.font.size.500}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--xl", + "name": "pf-t--global--font--size--body--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xl" + "subitem": "body", + "state": "lg" }, "path": [ "global", "font", "size", - "xl" + "body", + "lg" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1.25rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "1rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 20 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--500", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "500" + "subitem": "md" }, "path": [ "global", "font", "size", - "500" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] } }, - "pf-t--global--font--size--2xl": { + "pf-t--global--font--size--heading--h1": { "default": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for first level headings.", "type": "number", "value": "1.5rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for first level headings.", "type": "number", - "value": "{global.font.size.600}" + "value": "{global.font.size.2xl}" }, - "name": "pf-t--global--font--size--2xl", + "name": "pf-t--global--font--size--heading--h1", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "2xl" + "subitem": "heading", + "state": "h1" }, "path": [ "global", "font", "size", - "2xl" + "heading", + "h1" ], "references": [ { + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", "value": "1.5rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": 24 + "value": "{global.font.size.600}" }, - "name": "pf-t--global--font--size--600", + "name": "pf-t--global--font--size--2xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "600" + "subitem": "2xl" }, "path": [ "global", "font", "size", - "600" + "2xl" + ], + "references": [ + { + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 24 + }, + "name": "pf-t--global--font--size--600", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "600" + }, + "path": [ + "global", + "font", + "size", + "600" + ] + } ] } ] } }, - "pf-t--global--font--size--3xl": { + "pf-t--global--font--size--heading--h2": { "default": { - "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for second level headings.", "type": "number", - "value": "1.75rem", + "value": "1.25rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for second level headings.", "type": "number", - "value": "{global.font.size.700}" + "value": "{global.font.size.xl}" }, - "name": "pf-t--global--font--size--3xl", + "name": "pf-t--global--font--size--heading--h2", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "3xl" + "subitem": "heading", + "state": "h2" }, "path": [ "global", "font", "size", - "3xl" + "heading", + "h2" ], "references": [ { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.75rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "1.25rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": 28 + "value": "{global.font.size.500}" }, - "name": "pf-t--global--font--size--700", + "name": "pf-t--global--font--size--xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "700" + "subitem": "xl" }, "path": [ "global", "font", "size", - "700" + "xl" + ], + "references": [ + { + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 20 + }, + "name": "pf-t--global--font--size--500", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "500" + }, + "path": [ + "global", + "font", + "size", + "500" + ] + } ] } ] } }, - "pf-t--global--font--size--4xl": { + "pf-t--global--font--size--heading--h3": { "default": { - "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for third level headings.", "type": "number", - "value": "2.25rem", + "value": "1.125rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for third level headings.", "type": "number", - "value": "{global.font.size.800}" + "value": "{global.font.size.lg}" }, - "name": "pf-t--global--font--size--4xl", + "name": "pf-t--global--font--size--heading--h3", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "4xl" + "subitem": "heading", + "state": "h3" }, "path": [ "global", "font", "size", - "4xl" + "heading", + "h3" ], "references": [ { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "2.25rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "1.125rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": 36 + "value": "{global.font.size.400}" }, - "name": "pf-t--global--font--size--800", + "name": "pf-t--global--font--size--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "800" + "subitem": "lg" }, "path": [ "global", "font", "size", - "800" + "lg" + ], + "references": [ + { + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 18 + }, + "name": "pf-t--global--font--size--400", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "400" + }, + "path": [ + "global", + "font", + "size", + "400" + ] + } ] } ] } }, - "pf-t--global--font--family--body": { + "pf-t--global--font--size--heading--h4": { "default": { - "description": "Use to define the font family for body text", + "description": "Use as the font size for fourth-level headings.", "type": "number", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use to define the font family for body text", + "description": "Use as the font size for fourth-level headings.", "type": "number", - "value": "{global.font.family.100}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--family--body", + "name": "pf-t--global--font--size--heading--h4", "attributes": { "category": "global", "type": "font", - "item": "family", - "subitem": "body" + "item": "size", + "subitem": "heading", + "state": "h4" }, "path": [ "global", "font", - "family", - "body" + "size", + "heading", + "h4" ], "references": [ { - "type": "string", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "type": "string", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--family--100", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", - "item": "family", - "subitem": "100" + "item": "size", + "subitem": "md" }, "path": [ "global", "font", - "family", - "100" + "size", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] } }, - "pf-t--global--font--family--heading": { + "pf-t--global--font--size--heading--h5": { "default": { - "description": "Use to define the font family for heading text", + "description": "Use as the font size for fifth level headings.", "type": "number", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use to define the font family for heading text", + "description": "Use as the font size for fifth level headings.", "type": "number", - "value": "{global.font.family.200}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--family--heading", + "name": "pf-t--global--font--size--heading--h5", "attributes": { "category": "global", "type": "font", - "item": "family", - "subitem": "heading" + "item": "size", + "subitem": "heading", + "state": "h5" }, "path": [ "global", "font", - "family", - "heading" + "size", + "heading", + "h5" ], "references": [ { - "type": "string", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "type": "string", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--family--200", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", - "item": "family", - "subitem": "200" + "item": "size", + "subitem": "md" }, "path": [ "global", "font", - "family", - "200" + "size", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] } }, - "pf-t--global--font--family--mono": { + "pf-t--global--font--size--heading--h6": { "default": { - "description": "Use to define the font family for mono text", + "description": "Use as the font size for sixth level headings.", "type": "number", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use to define the font family for mono text", + "description": "Use as the font size for sixth level headings.", "type": "number", - "value": "{global.font.family.300}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--family--mono", + "name": "pf-t--global--font--size--heading--h6", "attributes": { "category": "global", "type": "font", - "item": "family", - "subitem": "mono" + "item": "size", + "subitem": "heading", + "state": "h6" }, "path": [ "global", "font", - "family", - "mono" + "size", + "heading", + "h6" ], "references": [ { - "type": "string", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "type": "string", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--family--300", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", - "item": "family", - "subitem": "300" + "item": "size", + "subitem": "md" }, "path": [ "global", "font", - "family", - "300" + "size", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] @@ -50059,356 +50055,6 @@ ] } }, - "pf-t--global--font--line-height--100": { - "default": { - "type": "number", - "value": 1.3, - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 1.2999999523162842 - }, - "name": "pf-t--global--font--line-height--100", - "attributes": { - "category": "global", - "type": "font", - "item": "line-height", - "subitem": "100" - }, - "path": [ - "global", - "font", - "line-height", - "100" - ] - } - }, - "pf-t--global--font--line-height--200": { - "default": { - "type": "number", - "value": 1.5, - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 1.5 - }, - "name": "pf-t--global--font--line-height--200", - "attributes": { - "category": "global", - "type": "font", - "item": "line-height", - "subitem": "200" - }, - "path": [ - "global", - "font", - "line-height", - "200" - ] - } - }, - "pf-t--global--font--weight--100": { - "default": { - "type": "number", - "value": 400, - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 400 - }, - "name": "pf-t--global--font--weight--100", - "attributes": { - "category": "global", - "type": "font", - "item": "weight", - "subitem": "100" - }, - "path": [ - "global", - "font", - "weight", - "100" - ] - } - }, - "pf-t--global--font--weight--200": { - "default": { - "type": "number", - "value": 500, - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 500 - }, - "name": "pf-t--global--font--weight--200", - "attributes": { - "category": "global", - "type": "font", - "item": "weight", - "subitem": "200" - }, - "path": [ - "global", - "font", - "weight", - "200" - ] - } - }, - "pf-t--global--font--weight--300": { - "default": { - "type": "number", - "value": 500, - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 500 - }, - "name": "pf-t--global--font--weight--300", - "attributes": { - "category": "global", - "type": "font", - "item": "weight", - "subitem": "300" - }, - "path": [ - "global", - "font", - "weight", - "300" - ] - } - }, - "pf-t--global--font--weight--400": { - "default": { - "type": "number", - "value": 700, - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 700 - }, - "name": "pf-t--global--font--weight--400", - "attributes": { - "category": "global", - "type": "font", - "item": "weight", - "subitem": "400" - }, - "path": [ - "global", - "font", - "weight", - "400" - ] - } - }, - "pf-t--global--font--size--100": { - "default": { - "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 12 - }, - "name": "pf-t--global--font--size--100", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "100" - }, - "path": [ - "global", - "font", - "size", - "100" - ] - } - }, - "pf-t--global--font--size--200": { - "default": { - "type": "number", - "value": "0.875rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 14 - }, - "name": "pf-t--global--font--size--200", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "200" - }, - "path": [ - "global", - "font", - "size", - "200" - ] - } - }, - "pf-t--global--font--size--300": { - "default": { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } - }, - "pf-t--global--font--size--400": { - "default": { - "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 18 - }, - "name": "pf-t--global--font--size--400", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "400" - }, - "path": [ - "global", - "font", - "size", - "400" - ] - } - }, - "pf-t--global--font--size--500": { - "default": { - "type": "number", - "value": "1.25rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 20 - }, - "name": "pf-t--global--font--size--500", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "500" - }, - "path": [ - "global", - "font", - "size", - "500" - ] - } - }, - "pf-t--global--font--size--600": { - "default": { - "type": "number", - "value": "1.5rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 24 - }, - "name": "pf-t--global--font--size--600", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "600" - }, - "path": [ - "global", - "font", - "size", - "600" - ] - } - }, - "pf-t--global--font--size--700": { - "default": { - "type": "number", - "value": "1.75rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 28 - }, - "name": "pf-t--global--font--size--700", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "700" - }, - "path": [ - "global", - "font", - "size", - "700" - ] - } - }, - "pf-t--global--font--size--800": { - "default": { - "type": "number", - "value": "2.25rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 36 - }, - "name": "pf-t--global--font--size--800", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "800" - }, - "path": [ - "global", - "font", - "size", - "800" - ] - } - }, "pf-t--global--font--family--100": { "default": { "type": "string", @@ -50484,6 +50130,356 @@ ] } }, + "pf-t--global--font--line-height--100": { + "default": { + "type": "number", + "value": 1.3, + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1.2999999523162842 + }, + "name": "pf-t--global--font--line-height--100", + "attributes": { + "category": "global", + "type": "font", + "item": "line-height", + "subitem": "100" + }, + "path": [ + "global", + "font", + "line-height", + "100" + ] + } + }, + "pf-t--global--font--line-height--200": { + "default": { + "type": "number", + "value": 1.5, + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1.5 + }, + "name": "pf-t--global--font--line-height--200", + "attributes": { + "category": "global", + "type": "font", + "item": "line-height", + "subitem": "200" + }, + "path": [ + "global", + "font", + "line-height", + "200" + ] + } + }, + "pf-t--global--font--weight--100": { + "default": { + "type": "number", + "value": 400, + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 400 + }, + "name": "pf-t--global--font--weight--100", + "attributes": { + "category": "global", + "type": "font", + "item": "weight", + "subitem": "100" + }, + "path": [ + "global", + "font", + "weight", + "100" + ] + } + }, + "pf-t--global--font--weight--200": { + "default": { + "type": "number", + "value": 500, + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 500 + }, + "name": "pf-t--global--font--weight--200", + "attributes": { + "category": "global", + "type": "font", + "item": "weight", + "subitem": "200" + }, + "path": [ + "global", + "font", + "weight", + "200" + ] + } + }, + "pf-t--global--font--weight--300": { + "default": { + "type": "number", + "value": 500, + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 500 + }, + "name": "pf-t--global--font--weight--300", + "attributes": { + "category": "global", + "type": "font", + "item": "weight", + "subitem": "300" + }, + "path": [ + "global", + "font", + "weight", + "300" + ] + } + }, + "pf-t--global--font--weight--400": { + "default": { + "type": "number", + "value": 700, + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 700 + }, + "name": "pf-t--global--font--weight--400", + "attributes": { + "category": "global", + "type": "font", + "item": "weight", + "subitem": "400" + }, + "path": [ + "global", + "font", + "weight", + "400" + ] + } + }, + "pf-t--global--font--size--100": { + "default": { + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 12 + }, + "name": "pf-t--global--font--size--100", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "100" + }, + "path": [ + "global", + "font", + "size", + "100" + ] + } + }, + "pf-t--global--font--size--200": { + "default": { + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 14 + }, + "name": "pf-t--global--font--size--200", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "200" + }, + "path": [ + "global", + "font", + "size", + "200" + ] + } + }, + "pf-t--global--font--size--300": { + "default": { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } + }, + "pf-t--global--font--size--400": { + "default": { + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 18 + }, + "name": "pf-t--global--font--size--400", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "400" + }, + "path": [ + "global", + "font", + "size", + "400" + ] + } + }, + "pf-t--global--font--size--500": { + "default": { + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 20 + }, + "name": "pf-t--global--font--size--500", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "500" + }, + "path": [ + "global", + "font", + "size", + "500" + ] + } + }, + "pf-t--global--font--size--600": { + "default": { + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 24 + }, + "name": "pf-t--global--font--size--600", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "600" + }, + "path": [ + "global", + "font", + "size", + "600" + ] + } + }, + "pf-t--global--font--size--700": { + "default": { + "type": "number", + "value": "1.75rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 28 + }, + "name": "pf-t--global--font--size--700", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "700" + }, + "path": [ + "global", + "font", + "size", + "700" + ] + } + }, + "pf-t--global--font--size--800": { + "default": { + "type": "number", + "value": "2.25rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 36 + }, + "name": "pf-t--global--font--size--800", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "800" + }, + "path": [ + "global", + "font", + "size", + "800" + ] + } + }, "pf-t--global--z-index--100": { "default": { "type": "number", @@ -51579,6 +51575,27 @@ ] } }, + "pf-t--color--black": { + "default": { + "type": "color", + "value": "#000000", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#000000" + }, + "name": "pf-t--color--black", + "attributes": { + "category": "color", + "type": "black" + }, + "path": [ + "color", + "black" + ] + } + }, "pf-t--color--gray--10": { "default": { "type": "color", @@ -51832,27 +51849,6 @@ ] } }, - "pf-t--color--black": { - "default": { - "type": "color", - "value": "#000000", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#000000" - }, - "name": "pf-t--color--black", - "attributes": { - "category": "color", - "type": "black" - }, - "path": [ - "color", - "black" - ] - } - }, "pf-t--color--blue--10": { "default": { "type": "color", diff --git a/packages/module/patternfly-docs/content/token-layers-redhat-highcontrast.json b/packages/module/patternfly-docs/content/token-layers-redhat-highcontrast.json index 18703b6..425b26e 100644 --- a/packages/module/patternfly-docs/content/token-layers-redhat-highcontrast.json +++ b/packages/module/patternfly-docs/content/token-layers-redhat-highcontrast.json @@ -1,6 +1,379 @@ { "semantic": { "colors": { + "pf-t--global--icon--color--regular": { + "default": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--subtle": { + "default": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "{global.icon.color.150}" + }, + "name": "pf-t--global--icon--color--subtle", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "icon", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--icon--color--150", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "150" + }, + "path": [ + "global", + "icon", + "color", + "150" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--inverse": { + "default": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--disabled": { + "default": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "{global.color.disabled.200}" + }, + "name": "pf-t--global--icon--color--disabled", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "disabled" + }, + "path": [ + "global", + "icon", + "color", + "disabled" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--color--disabled--200", + "attributes": { + "category": "global", + "type": "color", + "item": "disabled", + "subitem": "200" + }, + "path": [ + "global", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-disabled": { + "default": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "{global.color.disabled.300}" + }, + "name": "pf-t--global--icon--color--on-disabled", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-disabled" + }, + "path": [ + "global", + "icon", + "color", + "on-disabled" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--color--disabled--300", + "attributes": { + "category": "global", + "type": "color", + "item": "disabled", + "subitem": "300" + }, + "path": [ + "global", + "color", + "disabled", + "300" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, "pf-t--global--icon--color--brand--default": { "default": { "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", @@ -236,7 +609,7 @@ "default": { "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "#000000", + "value": "#004d99", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { @@ -264,13 +637,13 @@ { "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#000000", - "filePath": "tokens/redhat/highcontrast/redhat.color.highcontrast.json", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.color.brand.accent.400}" + "value": "{global.color.brand.default}" }, "name": "pf-t--global--color--brand--accent--default", "attributes": { @@ -289,47 +662,74 @@ ], "references": [ { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#000000", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{color.black}" + "value": "{global.color.brand.300}" }, - "name": "pf-t--global--color--brand--accent--400", + "name": "pf-t--global--color--brand--default", "attributes": { "category": "global", "type": "color", "item": "brand", - "subitem": "accent", - "state": "400" + "subitem": "default" }, "path": [ "global", "color", "brand", - "accent", - "400" + "default" ], "references": [ { "type": "color", - "value": "#000000", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#000000" + "value": "{color.blue.60}" }, - "name": "pf-t--color--black", + "name": "pf-t--global--color--brand--300", "attributes": { - "category": "color", - "type": "black" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" }, "path": [ + "global", "color", - "black" + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } ] } ] @@ -343,7 +743,7 @@ "default": { "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "#4d4d4d", + "value": "#003366", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { @@ -371,13 +771,13 @@ { "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/redhat/highcontrast/redhat.color.highcontrast.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.color.brand.accent.300}" + "value": "{global.color.brand.hover}" }, "name": "pf-t--global--color--brand--accent--hover", "attributes": { @@ -396,49 +796,74 @@ ], "references": [ { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{color.gray.60}" + "value": "{global.color.brand.400}" }, - "name": "pf-t--global--color--brand--accent--300", + "name": "pf-t--global--color--brand--hover", "attributes": { "category": "global", "type": "color", "item": "brand", - "subitem": "accent", - "state": "300" + "subitem": "hover" }, "path": [ "global", "color", "brand", - "accent", - "300" + "hover" ], "references": [ { "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#4d4d4d" + "value": "{color.blue.70}" }, - "name": "pf-t--color--gray--60", + "name": "pf-t--global--color--brand--400", "attributes": { - "category": "color", - "type": "gray", - "item": "60" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "400" }, "path": [ + "global", "color", - "gray", - "60" + "brand", + "400" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } ] } ] @@ -452,7 +877,7 @@ "default": { "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "#4d4d4d", + "value": "#003366", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { @@ -480,13 +905,13 @@ { "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/redhat/highcontrast/redhat.color.highcontrast.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.color.brand.accent.300}" + "value": "{global.color.brand.clicked}" }, "name": "pf-t--global--color--brand--accent--clicked", "attributes": { @@ -505,49 +930,74 @@ ], "references": [ { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{color.gray.60}" + "value": "{global.color.brand.400}" }, - "name": "pf-t--global--color--brand--accent--300", + "name": "pf-t--global--color--brand--clicked", "attributes": { "category": "global", "type": "color", "item": "brand", - "subitem": "accent", - "state": "300" + "subitem": "clicked" }, "path": [ "global", "color", "brand", - "accent", - "300" + "clicked" ], "references": [ { "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#4d4d4d" + "value": "{color.blue.70}" }, - "name": "pf-t--color--gray--60", + "name": "pf-t--global--color--brand--400", "attributes": { - "category": "color", - "type": "gray", - "item": "60" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "400" }, "path": [ + "global", "color", - "gray", - "60" + "brand", + "400" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } ] } ] @@ -5429,379 +5879,6 @@ ] } }, - "pf-t--global--icon--color--regular": { - "default": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", - "type": "color", - "value": "{global.icon.color.100}" - }, - "name": "pf-t--global--icon--color--regular", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "regular" - }, - "path": [ - "global", - "icon", - "color", - "regular" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.90}" - }, - "name": "pf-t--global--icon--color--100", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "100" - }, - "path": [ - "global", - "icon", - "color", - "100" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#1f1f1f" - }, - "name": "pf-t--color--gray--90", - "attributes": { - "category": "color", - "type": "gray", - "item": "90" - }, - "path": [ - "color", - "gray", - "90" - ] - } - ] - } - ] - } - }, - "pf-t--global--icon--color--subtle": { - "default": { - "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", - "type": "color", - "value": "{global.icon.color.150}" - }, - "name": "pf-t--global--icon--color--subtle", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "subtle" - }, - "path": [ - "global", - "icon", - "color", - "subtle" - ], - "references": [ - { - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.60}" - }, - "name": "pf-t--global--icon--color--150", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "150" - }, - "path": [ - "global", - "icon", - "color", - "150" - ], - "references": [ - { - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#4d4d4d" - }, - "name": "pf-t--color--gray--60", - "attributes": { - "category": "color", - "type": "gray", - "item": "60" - }, - "path": [ - "color", - "gray", - "60" - ] - } - ] - } - ] - } - }, - "pf-t--global--icon--color--inverse": { - "default": { - "description": "Use as the color for icons that are placed on an inverse background color", - "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the color for icons that are placed on an inverse background color", - "type": "color", - "value": "{global.icon.color.300}" - }, - "name": "pf-t--global--icon--color--inverse", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" - }, - "path": [ - "global", - "icon", - "color", - "inverse" - ], - "references": [ - { - "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.white}" - }, - "name": "pf-t--global--icon--color--300", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "300" - }, - "path": [ - "global", - "icon", - "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#ffffff" - }, - "name": "pf-t--color--white", - "attributes": { - "category": "color", - "type": "white" - }, - "path": [ - "color", - "white" - ] - } - ] - } - ] - } - }, - "pf-t--global--icon--color--disabled": { - "default": { - "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", - "type": "color", - "value": "{global.color.disabled.200}" - }, - "name": "pf-t--global--icon--color--disabled", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "disabled" - }, - "path": [ - "global", - "icon", - "color", - "disabled" - ], - "references": [ - { - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.40}" - }, - "name": "pf-t--global--color--disabled--200", - "attributes": { - "category": "global", - "type": "color", - "item": "disabled", - "subitem": "200" - }, - "path": [ - "global", - "color", - "disabled", - "200" - ], - "references": [ - { - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#a3a3a3" - }, - "name": "pf-t--color--gray--40", - "attributes": { - "category": "color", - "type": "gray", - "item": "40" - }, - "path": [ - "color", - "gray", - "40" - ] - } - ] - } - ] - } - }, - "pf-t--global--icon--color--on-disabled": { - "default": { - "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", - "type": "color", - "value": "#707070", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", - "type": "color", - "value": "{global.color.disabled.300}" - }, - "name": "pf-t--global--icon--color--on-disabled", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "on-disabled" - }, - "path": [ - "global", - "icon", - "color", - "on-disabled" - ], - "references": [ - { - "type": "color", - "value": "#707070", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.50}" - }, - "name": "pf-t--global--color--disabled--300", - "attributes": { - "category": "global", - "type": "color", - "item": "disabled", - "subitem": "300" - }, - "path": [ - "global", - "color", - "disabled", - "300" - ], - "references": [ - { - "type": "color", - "value": "#707070", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#707070" - }, - "name": "pf-t--color--gray--50", - "attributes": { - "category": "color", - "type": "gray", - "item": "50" - }, - "path": [ - "color", - "gray", - "50" - ] - } - ] - } - ] - } - }, "pf-t--global--icon--color--severity--undefined--default": { "default": { "description": "Use as the default color for severity icons that don’t communicate a specific severity level for issues.", @@ -9117,76 +9194,101 @@ ] } }, - "pf-t--global--border--color--control--default": { + "pf-t--global--border--color--high-contrast": { "default": { - "description": "Use as the default border for control elements like form inputs, menu toggles, and clickable cards", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", "value": "#4d4d4d", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default border for control elements like form inputs, menu toggles, and clickable cards", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.border.color.400}" + "value": "{global.border.color.default}" }, - "name": "pf-t--global--border--color--control--default", + "name": "pf-t--global--border--color--high-contrast", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "control", - "state": "default" + "subitem": "high-contrast" }, "path": [ "global", "border", "color", - "control", - "default" + "high-contrast" ], "references": [ { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/base.json", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{color.gray.60}" + "value": "{global.border.color.400}" }, - "name": "pf-t--global--border--color--400", + "name": "pf-t--global--border--color--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "400" + "subitem": "default" }, "path": [ "global", "border", "color", - "400" + "default" ], "references": [ { "type": "color", "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/palette.color.json", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#4d4d4d" + "value": "{color.gray.60}" }, - "name": "pf-t--color--gray--60", + "name": "pf-t--global--border--color--400", "attributes": { - "category": "color", - "type": "gray", - "item": "60" + "category": "global", + "type": "border", + "item": "color", + "subitem": "400" }, "path": [ + "global", + "border", "color", - "gray", - "60" + "400" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } ] } ] @@ -9194,76 +9296,74 @@ ] } }, - "pf-t--global--border--color--control--read-only": { + "pf-t--global--border--color--default": { "default": { - "description": "Use as the read-only border for control elements like form inputs, menu toggles.", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#c7c7c7", + "value": "#4d4d4d", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the read-only border for control elements like form inputs, menu toggles.", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.border.color.100}" + "value": "{global.border.color.400}" }, - "name": "pf-t--global--border--color--control--read-only", + "name": "pf-t--global--border--color--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "control", - "state": "read-only" + "subitem": "default" }, "path": [ "global", "border", "color", - "control", - "read-only" + "default" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#4d4d4d", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.30}" + "value": "{color.gray.60}" }, - "name": "pf-t--global--border--color--100", + "name": "pf-t--global--border--color--400", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "100" + "subitem": "400" }, "path": [ "global", "border", "color", - "100" + "400" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#4d4d4d", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#c7c7c7" + "value": "#4d4d4d" }, - "name": "pf-t--color--gray--30", + "name": "pf-t--color--gray--60", "attributes": { "category": "color", "type": "gray", - "item": "30" + "item": "60" }, "path": [ "color", "gray", - "30" + "60" ] } ] @@ -9271,103 +9371,74 @@ ] } }, - "pf-t--global--border--color--brand--default": { + "pf-t--global--border--color--hover": { "default": { - "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", "value": "#004d99", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.default}" + "value": "{global.color.brand.300}" }, - "name": "pf-t--global--border--color--brand--default", + "name": "pf-t--global--border--color--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "default" + "subitem": "hover" }, "path": [ "global", "border", "color", - "brand", - "default" + "hover" ], "references": [ { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", "value": "#004d99", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.color.brand.300}" + "value": "{color.blue.60}" }, - "name": "pf-t--global--color--brand--default", + "name": "pf-t--global--color--brand--300", "attributes": { "category": "global", "type": "color", "item": "brand", - "subitem": "default" + "subitem": "300" }, "path": [ "global", "color", "brand", - "default" + "300" ], "references": [ { "type": "color", "value": "#004d99", - "filePath": "tokens/default/highcontrast/base.json", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.60}" + "value": "#004d99" }, - "name": "pf-t--global--color--brand--300", + "name": "pf-t--color--blue--60", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "300" + "category": "color", + "type": "blue", + "item": "60" }, "path": [ - "global", "color", - "brand", - "300" - ], - "references": [ - { - "type": "color", - "value": "#004d99", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#004d99" - }, - "name": "pf-t--color--blue--60", - "attributes": { - "category": "color", - "type": "blue", - "item": "60" - }, - "path": [ - "color", - "blue", - "60" - ] - } + "blue", + "60" ] } ] @@ -9375,103 +9446,74 @@ ] } }, - "pf-t--global--border--color--brand--hover": { + "pf-t--global--border--color--clicked": { "default": { - "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", "value": "#003366", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.hover}" + "value": "{global.color.brand.400}" }, - "name": "pf-t--global--border--color--brand--hover", + "name": "pf-t--global--border--color--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "hover" + "subitem": "clicked" }, "path": [ "global", "border", "color", - "brand", - "hover" + "clicked" ], "references": [ { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", "value": "#003366", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.color.brand.400}" + "value": "{color.blue.70}" }, - "name": "pf-t--global--color--brand--hover", + "name": "pf-t--global--color--brand--400", "attributes": { "category": "global", "type": "color", "item": "brand", - "subitem": "hover" + "subitem": "400" }, "path": [ "global", "color", "brand", - "hover" + "400" ], "references": [ { "type": "color", "value": "#003366", - "filePath": "tokens/default/highcontrast/base.json", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.70}" + "value": "#003366" }, - "name": "pf-t--global--color--brand--400", + "name": "pf-t--color--blue--70", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "400" + "category": "color", + "type": "blue", + "item": "70" }, "path": [ - "global", "color", - "brand", - "400" - ], - "references": [ - { - "type": "color", - "value": "#003366", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#003366" - }, - "name": "pf-t--color--blue--70", - "attributes": { - "category": "color", - "type": "blue", - "item": "70" - }, - "path": [ - "color", - "blue", - "70" - ] - } + "blue", + "70" ] } ] @@ -9479,103 +9521,74 @@ ] } }, - "pf-t--global--border--color--brand--clicked": { + "pf-t--global--border--color--subtle": { "default": { - "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#003366", + "value": "#4d4d4d", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.clicked}" + "value": "{global.border.color.400}" }, - "name": "pf-t--global--border--color--brand--clicked", + "name": "pf-t--global--border--color--subtle", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "clicked" + "subitem": "subtle" }, "path": [ "global", "border", "color", - "brand", - "clicked" + "subtle" ], "references": [ { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#003366", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.color.brand.400}" + "value": "{color.gray.60}" }, - "name": "pf-t--global--color--brand--clicked", + "name": "pf-t--global--border--color--400", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "clicked" + "type": "border", + "item": "color", + "subitem": "400" }, "path": [ "global", + "border", "color", - "brand", - "clicked" + "400" ], "references": [ { "type": "color", - "value": "#003366", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.70}" + "value": "#4d4d4d" }, - "name": "pf-t--global--color--brand--400", + "name": "pf-t--color--gray--60", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "400" + "category": "color", + "type": "gray", + "item": "60" }, "path": [ - "global", "color", - "brand", - "400" - ], - "references": [ - { - "type": "color", - "value": "#003366", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#003366" - }, - "name": "pf-t--color--blue--70", - "attributes": { - "category": "color", - "type": "blue", - "item": "70" - }, - "path": [ - "color", - "blue", - "70" - ] - } + "gray", + "60" ] } ] @@ -9583,79 +9596,74 @@ ] } }, - "pf-t--global--border--color--brand--subtle--default": { + "pf-t--global--border--color--disabled": { "default": { - "description": "Use as the default border color for any subtle brand element like toggle groups", + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#b9dafc", + "value": "#a3a3a3", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default border color for any subtle brand element like toggle groups", + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.subtle.200}" + "value": "{global.color.disabled.200}" }, - "name": "pf-t--global--border--color--brand--subtle--default", + "name": "pf-t--global--border--color--disabled", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "subtle" + "subitem": "disabled" }, "path": [ "global", "border", "color", - "brand", - "subtle", - "default" + "disabled" ], "references": [ { "type": "color", - "value": "#b9dafc", + "value": "#a3a3a3", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.20}" + "value": "{color.gray.40}" }, - "name": "pf-t--global--color--brand--subtle--200", + "name": "pf-t--global--color--disabled--200", "attributes": { "category": "global", "type": "color", - "item": "brand", - "subitem": "subtle", - "state": "200" + "item": "disabled", + "subitem": "200" }, "path": [ "global", "color", - "brand", - "subtle", + "disabled", "200" ], "references": [ { "type": "color", - "value": "#b9dafc", + "value": "#a3a3a3", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#b9dafc" + "value": "#a3a3a3" }, - "name": "pf-t--color--blue--20", + "name": "pf-t--color--gray--40", "attributes": { "category": "color", - "type": "blue", - "item": "20" + "type": "gray", + "item": "40" }, "path": [ "color", - "blue", - "20" + "gray", + "40" ] } ] @@ -9663,79 +9671,101 @@ ] } }, - "pf-t--global--border--color--brand--subtle--hover": { + "pf-t--global--border--color--alt": { "default": { - "description": "Use as the hover border color for any subtle brand element like toggle groups", + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", "type": "color", - "value": "#0066cc", + "value": "#ffffff", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover border color for any subtle brand element like toggle groups", + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", "type": "color", - "value": "{global.color.brand.subtle.400}" + "value": "{global.background.color.primary.default}" }, - "name": "pf-t--global--border--color--brand--subtle--hover", + "name": "pf-t--global--border--color--alt", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "subtle" + "subitem": "alt" }, "path": [ "global", "border", "color", - "brand", - "subtle", - "hover" + "alt" ], "references": [ { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", "type": "color", - "value": "#0066cc", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", "type": "color", - "value": "{color.blue.50}" + "value": "{global.background.color.100}" }, - "name": "pf-t--global--color--brand--subtle--400", + "name": "pf-t--global--background--color--primary--default", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "subtle", - "state": "400" + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" }, "path": [ "global", + "background", "color", - "brand", - "subtle", - "400" + "primary", + "default" ], "references": [ { "type": "color", - "value": "#0066cc", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#0066cc" + "value": "{color.white}" }, - "name": "pf-t--color--blue--50", + "name": "pf-t--global--background--color--100", "attributes": { - "category": "color", - "type": "blue", - "item": "50" + "category": "global", + "type": "background", + "item": "color", + "subitem": "100" }, "path": [ + "global", + "background", "color", - "blue", - "50" + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } ] } ] @@ -9743,79 +9773,74 @@ ] } }, - "pf-t--global--border--color--brand--subtle--clicked": { + "pf-t--global--border--color--on-secondary": { "default": { - "description": "Use as the clicked border color for any subtle brand element like toggle groups", + "description": "Use on borders/dividers that are placed on a secondary bkg color.", "type": "color", - "value": "#0066cc", + "value": "#4d4d4d", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked border color for any subtle brand element like toggle groups", + "description": "Use on borders/dividers that are placed on a secondary bkg color.", "type": "color", - "value": "{global.color.brand.subtle.400}" + "value": "{global.border.color.400}" }, - "name": "pf-t--global--border--color--brand--subtle--clicked", + "name": "pf-t--global--border--color--on-secondary", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "subtle" + "subitem": "on-secondary" }, "path": [ "global", "border", "color", - "brand", - "subtle", - "clicked" + "on-secondary" ], "references": [ { "type": "color", - "value": "#0066cc", + "value": "#4d4d4d", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.50}" + "value": "{color.gray.60}" }, - "name": "pf-t--global--color--brand--subtle--400", + "name": "pf-t--global--border--color--400", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "subtle", - "state": "400" + "type": "border", + "item": "color", + "subitem": "400" }, "path": [ "global", + "border", "color", - "brand", - "subtle", "400" ], "references": [ { "type": "color", - "value": "#0066cc", + "value": "#4d4d4d", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#0066cc" + "value": "#4d4d4d" }, - "name": "pf-t--color--blue--50", + "name": "pf-t--color--gray--60", "attributes": { "category": "color", - "type": "blue", - "item": "50" + "type": "gray", + "item": "60" }, "path": [ "color", - "blue", - "50" + "gray", + "60" ] } ] @@ -9823,136 +9848,74 @@ ] } }, - "pf-t--global--border--color--status--success--default": { + "pf-t--global--border--color--control--default": { "default": { - "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", "type": "color", - "value": "#3d7019", + "value": "#4d4d4d", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.success.150}" + "value": "{global.border.color.400}" }, - "name": "pf-t--global--border--color--status--success--default", + "name": "pf-t--global--border--color--control--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "control", + "state": "default" }, "path": [ "global", "border", "color", - "status", - "success", + "control", "default" ], "references": [ { "type": "color", - "value": "#3d7019", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "#3d7019" - }, - "name": "pf-t--global--color--status--success--150", - "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "success", - "state": "150" - }, - "path": [ - "global", - "color", - "status", - "success", - "150" - ] - } - ] - } - }, - "pf-t--global--border--color--status--success--hover": { - "default": { - "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", - "type": "color", - "value": "#204d00", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", - "type": "color", - "value": "{global.color.status.success.200}" - }, - "name": "pf-t--global--border--color--status--success--hover", - "attributes": { - "category": "global", - "type": "border", - "item": "color", - "subitem": "status", - "state": "success" - }, - "path": [ - "global", - "border", - "color", - "status", - "success", - "hover" - ], - "references": [ - { - "type": "color", - "value": "#204d00", + "value": "#4d4d4d", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.70}" + "value": "{color.gray.60}" }, - "name": "pf-t--global--color--status--success--200", + "name": "pf-t--global--border--color--400", "attributes": { "category": "global", - "type": "color", - "item": "status", - "subitem": "success", - "state": "200" + "type": "border", + "item": "color", + "subitem": "400" }, "path": [ "global", + "border", "color", - "status", - "success", - "200" + "400" ], "references": [ { "type": "color", - "value": "#204d00", + "value": "#4d4d4d", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#204d00" + "value": "#4d4d4d" }, - "name": "pf-t--color--green--70", + "name": "pf-t--color--gray--60", "attributes": { "category": "color", - "type": "green", - "item": "70" + "type": "gray", + "item": "60" }, "path": [ "color", - "green", - "70" + "gray", + "60" ] } ] @@ -9960,79 +9923,74 @@ ] } }, - "pf-t--global--border--color--status--success--clicked": { + "pf-t--global--border--color--control--read-only": { "default": { - "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "#204d00", + "value": "#c7c7c7", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "{global.color.status.success.200}" + "value": "{global.border.color.100}" }, - "name": "pf-t--global--border--color--status--success--clicked", + "name": "pf-t--global--border--color--control--read-only", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "control", + "state": "read-only" }, "path": [ "global", "border", "color", - "status", - "success", - "clicked" + "control", + "read-only" ], "references": [ { "type": "color", - "value": "#204d00", + "value": "#c7c7c7", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.70}" + "value": "{color.gray.30}" }, - "name": "pf-t--global--color--status--success--200", + "name": "pf-t--global--border--color--100", "attributes": { "category": "global", - "type": "color", - "item": "status", - "subitem": "success", - "state": "200" + "type": "border", + "item": "color", + "subitem": "100" }, "path": [ "global", + "border", "color", - "status", - "success", - "200" + "100" ], "references": [ { "type": "color", - "value": "#204d00", + "value": "#c7c7c7", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#204d00" + "value": "#c7c7c7" }, - "name": "pf-t--color--green--70", + "name": "pf-t--color--gray--30", "attributes": { "category": "color", - "type": "green", - "item": "70" + "type": "gray", + "item": "30" }, "path": [ "color", - "green", - "70" + "gray", + "30" ] } ] @@ -10040,79 +9998,103 @@ ] } }, - "pf-t--global--border--color--status--warning--default": { + "pf-t--global--border--color--brand--default": { "default": { - "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#73480b", + "value": "#004d99", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.warning.500}" + "value": "{global.color.brand.default}" }, - "name": "pf-t--global--border--color--status--warning--default", + "name": "pf-t--global--border--color--brand--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "brand", + "state": "default" }, "path": [ "global", "border", "color", - "status", - "warning", + "brand", "default" ], "references": [ { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#73480b", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{color.yellow.70}" + "value": "{global.color.brand.300}" }, - "name": "pf-t--global--color--status--warning--500", + "name": "pf-t--global--color--brand--default", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "warning", - "state": "500" + "item": "brand", + "subitem": "default" }, "path": [ "global", "color", - "status", - "warning", - "500" + "brand", + "default" ], "references": [ { "type": "color", - "value": "#73480b", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#73480b" + "value": "{color.blue.60}" }, - "name": "pf-t--color--yellow--70", + "name": "pf-t--global--color--brand--300", "attributes": { - "category": "color", - "type": "yellow", - "item": "70" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" }, "path": [ + "global", "color", - "yellow", - "70" + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } ] } ] @@ -10120,79 +10102,103 @@ ] } }, - "pf-t--global--border--color--status--warning--hover": { + "pf-t--global--border--color--brand--hover": { "default": { - "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#54330b", + "value": "#003366", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.warning.600}" + "value": "{global.color.brand.hover}" }, - "name": "pf-t--global--border--color--status--warning--hover", + "name": "pf-t--global--border--color--brand--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "brand", + "state": "hover" }, "path": [ "global", "border", "color", - "status", - "warning", + "brand", "hover" ], "references": [ { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#54330b", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{color.yellow.80}" + "value": "{global.color.brand.400}" }, - "name": "pf-t--global--color--status--warning--600", + "name": "pf-t--global--color--brand--hover", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "warning", - "state": "600" + "item": "brand", + "subitem": "hover" }, "path": [ "global", "color", - "status", - "warning", - "600" + "brand", + "hover" ], "references": [ { "type": "color", - "value": "#54330b", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#54330b" + "value": "{color.blue.70}" }, - "name": "pf-t--color--yellow--80", + "name": "pf-t--global--color--brand--400", "attributes": { - "category": "color", - "type": "yellow", - "item": "80" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "400" }, "path": [ + "global", "color", - "yellow", - "80" + "brand", + "400" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } ] } ] @@ -10200,79 +10206,103 @@ ] } }, - "pf-t--global--border--color--status--warning--clicked": { + "pf-t--global--border--color--brand--clicked": { "default": { - "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#54330b", + "value": "#003366", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.warning.600}" + "value": "{global.color.brand.clicked}" }, - "name": "pf-t--global--border--color--status--warning--clicked", + "name": "pf-t--global--border--color--brand--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "brand", + "state": "clicked" }, "path": [ "global", "border", "color", - "status", - "warning", + "brand", "clicked" ], "references": [ { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#54330b", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{color.yellow.80}" + "value": "{global.color.brand.400}" }, - "name": "pf-t--global--color--status--warning--600", + "name": "pf-t--global--color--brand--clicked", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "warning", - "state": "600" + "item": "brand", + "subitem": "clicked" }, "path": [ "global", "color", - "status", - "warning", - "600" + "brand", + "clicked" ], "references": [ { "type": "color", - "value": "#54330b", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#54330b" + "value": "{color.blue.70}" }, - "name": "pf-t--color--yellow--80", + "name": "pf-t--global--color--brand--400", "attributes": { - "category": "color", - "type": "yellow", - "item": "80" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "400" }, "path": [ + "global", "color", - "yellow", - "80" + "brand", + "400" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } ] } ] @@ -10280,106 +10310,131 @@ ] } }, - "pf-t--global--border--color--status--danger--default": { + "pf-t--global--border--color--brand--accent--default": { "default": { - "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#731f00", + "value": "#004d99", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.danger.default}" + "value": "{global.color.brand.accent.default}" }, - "name": "pf-t--global--border--color--status--danger--default", + "name": "pf-t--global--border--color--brand--accent--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "danger" + "subitem": "brand", + "state": "accent" }, "path": [ "global", "border", "color", - "status", - "danger", + "brand", + "accent", "default" ], "references": [ { - "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#731f00", + "value": "#004d99", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.color.status.danger.200}" + "value": "{global.color.brand.default}" }, - "name": "pf-t--global--color--status--danger--default", + "name": "pf-t--global--color--brand--accent--default", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "danger", + "item": "brand", + "subitem": "accent", "state": "default" }, "path": [ "global", "color", - "status", - "danger", + "brand", + "accent", "default" ], "references": [ { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{color.red-orange.70}" + "value": "{global.color.brand.300}" }, - "name": "pf-t--global--color--status--danger--200", + "name": "pf-t--global--color--brand--default", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "danger", - "state": "200" + "item": "brand", + "subitem": "default" }, "path": [ "global", "color", - "status", - "danger", - "200" + "brand", + "default" ], "references": [ { "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#731f00" + "value": "{color.blue.60}" }, - "name": "pf-t--color--red-orange--70", + "name": "pf-t--global--color--brand--300", "attributes": { - "category": "color", - "type": "red-orange", - "item": "70" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" }, "path": [ + "global", "color", - "red-orange", - "70" + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } ] } ] @@ -10389,106 +10444,131 @@ ] } }, - "pf-t--global--border--color--status--danger--hover": { + "pf-t--global--border--color--brand--accent--hover": { "default": { - "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#731f00", + "value": "#003366", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.danger.hover}" + "value": "{global.color.brand.accent.hover}" }, - "name": "pf-t--global--border--color--status--danger--hover", + "name": "pf-t--global--border--color--brand--accent--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "danger" + "subitem": "brand", + "state": "accent" }, "path": [ "global", "border", "color", - "status", - "danger", + "brand", + "accent", "hover" ], "references": [ { - "description": "Use as the hover state for any element that conveys a danger status.", + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#731f00", + "value": "#003366", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys a danger status.", + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.color.status.danger.300}" + "value": "{global.color.brand.hover}" }, - "name": "pf-t--global--color--status--danger--hover", + "name": "pf-t--global--color--brand--accent--hover", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "danger", + "item": "brand", + "subitem": "accent", "state": "hover" }, "path": [ "global", "color", - "status", - "danger", + "brand", + "accent", "hover" ], "references": [ { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{color.red-orange.70}" + "value": "{global.color.brand.400}" }, - "name": "pf-t--global--color--status--danger--300", + "name": "pf-t--global--color--brand--hover", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "danger", - "state": "300" + "item": "brand", + "subitem": "hover" }, "path": [ "global", "color", - "status", - "danger", - "300" + "brand", + "hover" ], "references": [ { "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#731f00" + "value": "{color.blue.70}" }, - "name": "pf-t--color--red-orange--70", + "name": "pf-t--global--color--brand--400", "attributes": { - "category": "color", - "type": "red-orange", - "item": "70" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "400" }, "path": [ + "global", "color", - "red-orange", - "70" + "brand", + "400" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } ] } ] @@ -10498,106 +10578,131 @@ ] } }, - "pf-t--global--border--color--status--danger--clicked": { + "pf-t--global--border--color--brand--accent--clicked": { "default": { - "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#731f00", + "value": "#003366", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.danger.clicked}" + "value": "{global.color.brand.accent.clicked}" }, - "name": "pf-t--global--border--color--status--danger--clicked", + "name": "pf-t--global--border--color--brand--accent--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "danger" + "subitem": "brand", + "state": "accent" }, "path": [ "global", "border", "color", - "status", - "danger", + "brand", + "accent", "clicked" ], "references": [ { - "description": "Use as the clicked state for any element that conveys a danger status.", + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#731f00", + "value": "#003366", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys a danger status.", + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.color.status.danger.300}" + "value": "{global.color.brand.clicked}" }, - "name": "pf-t--global--color--status--danger--clicked", + "name": "pf-t--global--color--brand--accent--clicked", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "danger", + "item": "brand", + "subitem": "accent", "state": "clicked" }, "path": [ "global", "color", - "status", - "danger", + "brand", + "accent", "clicked" ], "references": [ { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{color.red-orange.70}" + "value": "{global.color.brand.400}" }, - "name": "pf-t--global--color--status--danger--300", + "name": "pf-t--global--color--brand--clicked", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "danger", - "state": "300" + "item": "brand", + "subitem": "clicked" }, "path": [ "global", "color", - "status", - "danger", - "300" + "brand", + "clicked" ], "references": [ { "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#731f00" + "value": "{color.blue.70}" }, - "name": "pf-t--color--red-orange--70", + "name": "pf-t--global--color--brand--400", "attributes": { - "category": "color", - "type": "red-orange", - "item": "70" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "400" }, "path": [ + "global", "color", - "red-orange", - "70" + "brand", + "400" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } ] } ] @@ -10607,108 +10712,79 @@ ] } }, - "pf-t--global--border--color--status--info--default": { + "pf-t--global--border--color--brand--subtle--default": { "default": { - "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#3d2785", + "value": "#b9dafc", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.info.default}" + "value": "{global.color.brand.subtle.200}" }, - "name": "pf-t--global--border--color--status--info--default", + "name": "pf-t--global--border--color--brand--subtle--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "info" + "subitem": "brand", + "state": "subtle" }, "path": [ "global", "border", "color", - "status", - "info", + "brand", + "subtle", "default" ], "references": [ { - "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "#3d2785", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "{global.color.status.info.200}" + "value": "{color.blue.20}" }, - "name": "pf-t--global--color--status--info--default", + "name": "pf-t--global--color--brand--subtle--200", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "info", - "state": "default" + "item": "brand", + "subitem": "subtle", + "state": "200" }, "path": [ "global", "color", - "status", - "info", - "default" + "brand", + "subtle", + "200" ], "references": [ { "type": "color", - "value": "#3d2785", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#b9dafc", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.60}" + "value": "#b9dafc" }, - "name": "pf-t--global--color--status--info--200", + "name": "pf-t--color--blue--20", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "info", - "state": "200" + "category": "color", + "type": "blue", + "item": "20" }, "path": [ - "global", "color", - "status", - "info", - "200" - ], - "references": [ - { - "type": "color", - "value": "#3d2785", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#3d2785" - }, - "name": "pf-t--color--purple--60", - "attributes": { - "category": "color", - "type": "purple", - "item": "60" - }, - "path": [ - "color", - "purple", - "60" - ] - } + "blue", + "20" ] } ] @@ -10716,108 +10792,79 @@ ] } }, - "pf-t--global--border--color--status--info--hover": { + "pf-t--global--border--color--brand--subtle--hover": { "default": { - "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#21134d", + "value": "#0066cc", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.info.hover}" + "value": "{global.color.brand.subtle.400}" }, - "name": "pf-t--global--border--color--status--info--hover", + "name": "pf-t--global--border--color--brand--subtle--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "info" + "subitem": "brand", + "state": "subtle" }, "path": [ "global", "border", "color", - "status", - "info", + "brand", + "subtle", "hover" ], "references": [ { - "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "#21134d", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#0066cc", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "{global.color.status.info.300}" + "value": "{color.blue.50}" }, - "name": "pf-t--global--color--status--info--hover", + "name": "pf-t--global--color--brand--subtle--400", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "info", - "state": "hover" + "item": "brand", + "subitem": "subtle", + "state": "400" }, "path": [ "global", "color", - "status", - "info", - "hover" + "brand", + "subtle", + "400" ], "references": [ { "type": "color", - "value": "#21134d", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#0066cc", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.70}" + "value": "#0066cc" }, - "name": "pf-t--global--color--status--info--300", + "name": "pf-t--color--blue--50", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "info", - "state": "300" + "category": "color", + "type": "blue", + "item": "50" }, "path": [ - "global", "color", - "status", - "info", - "300" - ], - "references": [ - { - "type": "color", - "value": "#21134d", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#21134d" - }, - "name": "pf-t--color--purple--70", - "attributes": { - "category": "color", - "type": "purple", - "item": "70" - }, - "path": [ - "color", - "purple", - "70" - ] - } + "blue", + "50" ] } ] @@ -10825,108 +10872,79 @@ ] } }, - "pf-t--global--border--color--status--info--clicked": { + "pf-t--global--border--color--brand--subtle--clicked": { "default": { - "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#21134d", + "value": "#0066cc", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.info.clicked}" + "value": "{global.color.brand.subtle.400}" }, - "name": "pf-t--global--border--color--status--info--clicked", + "name": "pf-t--global--border--color--brand--subtle--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "info" + "subitem": "brand", + "state": "subtle" }, "path": [ "global", "border", "color", - "status", - "info", + "brand", + "subtle", "clicked" ], "references": [ { - "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "#21134d", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#0066cc", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "{global.color.status.info.300}" + "value": "{color.blue.50}" }, - "name": "pf-t--global--color--status--info--clicked", + "name": "pf-t--global--color--brand--subtle--400", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "info", - "state": "clicked" + "item": "brand", + "subitem": "subtle", + "state": "400" }, "path": [ "global", "color", - "status", - "info", - "clicked" + "brand", + "subtle", + "400" ], "references": [ { "type": "color", - "value": "#21134d", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#0066cc", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.70}" + "value": "#0066cc" }, - "name": "pf-t--global--color--status--info--300", + "name": "pf-t--color--blue--50", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "info", - "state": "300" + "category": "color", + "type": "blue", + "item": "50" }, "path": [ - "global", "color", - "status", - "info", - "300" - ], - "references": [ - { - "type": "color", - "value": "#21134d", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#21134d" - }, - "name": "pf-t--color--purple--70", - "attributes": { - "category": "color", - "type": "purple", - "item": "70" - }, - "path": [ - "color", - "purple", - "70" - ] - } + "blue", + "50" ] } ] @@ -10934,217 +10952,136 @@ ] } }, - "pf-t--global--border--color--status--custom--default": { + "pf-t--global--border--color--status--success--default": { "default": { - "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", "type": "color", - "value": "#004d4d", + "value": "#3d7019", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.custom.default}" + "value": "{global.color.status.success.150}" }, - "name": "pf-t--global--border--color--status--custom--default", + "name": "pf-t--global--border--color--status--success--default", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "custom" + "state": "success" }, "path": [ "global", "border", "color", "status", - "custom", + "success", "default" ], "references": [ { - "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#004d4d", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#3d7019", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{global.color.status.custom.200}" + "value": "#3d7019" }, - "name": "pf-t--global--color--status--custom--default", + "name": "pf-t--global--color--status--success--150", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", - "state": "default" + "subitem": "success", + "state": "150" }, "path": [ "global", "color", "status", - "custom", - "default" - ], - "references": [ - { - "type": "color", - "value": "#004d4d", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.teal.70}" - }, - "name": "pf-t--global--color--status--custom--200", - "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "custom", - "state": "200" - }, - "path": [ - "global", - "color", - "status", - "custom", - "200" - ], - "references": [ - { - "type": "color", - "value": "#004d4d", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#004d4d" - }, - "name": "pf-t--color--teal--70", - "attributes": { - "category": "color", - "type": "teal", - "item": "70" - }, - "path": [ - "color", - "teal", - "70" - ] - } - ] - } + "success", + "150" ] } ] } }, - "pf-t--global--border--color--status--custom--hover": { + "pf-t--global--border--color--status--success--hover": { "default": { - "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "#003333", + "value": "#204d00", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "{global.color.status.custom.hover}" + "value": "{global.color.status.success.200}" }, - "name": "pf-t--global--border--color--status--custom--hover", + "name": "pf-t--global--border--color--status--success--hover", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "custom" + "state": "success" }, "path": [ "global", "border", "color", "status", - "custom", + "success", "hover" ], "references": [ { - "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#003333", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#204d00", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{global.color.status.custom.300}" + "value": "{color.green.70}" }, - "name": "pf-t--global--color--status--custom--hover", + "name": "pf-t--global--color--status--success--200", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", - "state": "hover" + "subitem": "success", + "state": "200" }, "path": [ "global", "color", "status", - "custom", - "hover" + "success", + "200" ], "references": [ { "type": "color", - "value": "#003333", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#204d00", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.80}" + "value": "#204d00" }, - "name": "pf-t--global--color--status--custom--300", + "name": "pf-t--color--green--70", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "custom", - "state": "300" - }, + "category": "color", + "type": "green", + "item": "70" + }, "path": [ - "global", "color", - "status", - "custom", - "300" - ], - "references": [ - { - "type": "color", - "value": "#003333", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#003333" - }, - "name": "pf-t--color--teal--80", - "attributes": { - "category": "color", - "type": "teal", - "item": "80" - }, - "path": [ - "color", - "teal", - "80" - ] - } + "green", + "70" ] } ] @@ -11152,108 +11089,79 @@ ] } }, - "pf-t--global--border--color--status--custom--clicked": { + "pf-t--global--border--color--status--success--clicked": { "default": { - "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "#003333", + "value": "#204d00", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "{global.color.status.custom.clicked}" + "value": "{global.color.status.success.200}" }, - "name": "pf-t--global--border--color--status--custom--clicked", + "name": "pf-t--global--border--color--status--success--clicked", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "custom" + "state": "success" }, "path": [ "global", "border", "color", "status", - "custom", + "success", "clicked" ], "references": [ { - "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#003333", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#204d00", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{global.color.status.custom.300}" + "value": "{color.green.70}" }, - "name": "pf-t--global--color--status--custom--clicked", + "name": "pf-t--global--color--status--success--200", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", - "state": "clicked" + "subitem": "success", + "state": "200" }, "path": [ "global", "color", "status", - "custom", - "clicked" + "success", + "200" ], "references": [ { "type": "color", - "value": "#003333", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#204d00", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.80}" + "value": "#204d00" }, - "name": "pf-t--global--color--status--custom--300", + "name": "pf-t--color--green--70", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "custom", - "state": "300" + "category": "color", + "type": "green", + "item": "70" }, "path": [ - "global", "color", - "status", - "custom", - "300" - ], - "references": [ - { - "type": "color", - "value": "#003333", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#003333" - }, - "name": "pf-t--color--teal--80", - "attributes": { - "category": "color", - "type": "teal", - "item": "80" - }, - "path": [ - "color", - "teal", - "80" - ] - } + "green", + "70" ] } ] @@ -11261,101 +11169,79 @@ ] } }, - "pf-t--global--border--color--high-contrast": { + "pf-t--global--border--color--status--warning--default": { "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "#4d4d4d", + "value": "#73480b", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.border.color.default}" + "value": "{global.color.status.warning.500}" }, - "name": "pf-t--global--border--color--high-contrast", + "name": "pf-t--global--border--color--status--warning--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "high-contrast" + "subitem": "status", + "state": "warning" }, "path": [ "global", "border", "color", - "high-contrast" + "status", + "warning", + "default" ], "references": [ { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#73480b", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.border.color.400}" + "value": "{color.yellow.70}" }, - "name": "pf-t--global--border--color--default", + "name": "pf-t--global--color--status--warning--500", "attributes": { "category": "global", - "type": "border", - "item": "color", - "subitem": "default" + "type": "color", + "item": "status", + "subitem": "warning", + "state": "500" }, "path": [ "global", - "border", "color", - "default" + "status", + "warning", + "500" ], "references": [ { "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#73480b", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.60}" + "value": "#73480b" }, - "name": "pf-t--global--border--color--400", + "name": "pf-t--color--yellow--70", "attributes": { - "category": "global", - "type": "border", - "item": "color", - "subitem": "400" + "category": "color", + "type": "yellow", + "item": "70" }, "path": [ - "global", - "border", "color", - "400" - ], - "references": [ - { - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#4d4d4d" - }, - "name": "pf-t--color--gray--60", - "attributes": { - "category": "color", - "type": "gray", - "item": "60" - }, - "path": [ - "color", - "gray", - "60" - ] - } + "yellow", + "70" ] } ] @@ -11363,74 +11249,79 @@ ] } }, - "pf-t--global--border--color--default": { + "pf-t--global--border--color--status--warning--hover": { "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "#4d4d4d", + "value": "#54330b", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.border.color.400}" + "value": "{global.color.status.warning.600}" }, - "name": "pf-t--global--border--color--default", + "name": "pf-t--global--border--color--status--warning--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "default" + "subitem": "status", + "state": "warning" }, "path": [ "global", "border", "color", - "default" + "status", + "warning", + "hover" ], "references": [ { "type": "color", - "value": "#4d4d4d", + "value": "#54330b", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.60}" + "value": "{color.yellow.80}" }, - "name": "pf-t--global--border--color--400", + "name": "pf-t--global--color--status--warning--600", "attributes": { "category": "global", - "type": "border", - "item": "color", - "subitem": "400" + "type": "color", + "item": "status", + "subitem": "warning", + "state": "600" }, "path": [ "global", - "border", "color", - "400" + "status", + "warning", + "600" ], "references": [ { "type": "color", - "value": "#4d4d4d", + "value": "#54330b", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#4d4d4d" + "value": "#54330b" }, - "name": "pf-t--color--gray--60", + "name": "pf-t--color--yellow--80", "attributes": { "category": "color", - "type": "gray", - "item": "60" + "type": "yellow", + "item": "80" }, "path": [ "color", - "gray", - "60" + "yellow", + "80" ] } ] @@ -11438,74 +11329,79 @@ ] } }, - "pf-t--global--border--color--hover": { + "pf-t--global--border--color--status--warning--clicked": { "default": { - "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "#004d99", + "value": "#54330b", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.brand.300}" + "value": "{global.color.status.warning.600}" }, - "name": "pf-t--global--border--color--hover", + "name": "pf-t--global--border--color--status--warning--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "hover" + "subitem": "status", + "state": "warning" }, "path": [ "global", "border", "color", - "hover" + "status", + "warning", + "clicked" ], "references": [ { "type": "color", - "value": "#004d99", + "value": "#54330b", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.60}" + "value": "{color.yellow.80}" }, - "name": "pf-t--global--color--brand--300", + "name": "pf-t--global--color--status--warning--600", "attributes": { "category": "global", "type": "color", - "item": "brand", - "subitem": "300" + "item": "status", + "subitem": "warning", + "state": "600" }, "path": [ "global", "color", - "brand", - "300" + "status", + "warning", + "600" ], "references": [ { "type": "color", - "value": "#004d99", + "value": "#54330b", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#004d99" + "value": "#54330b" }, - "name": "pf-t--color--blue--60", + "name": "pf-t--color--yellow--80", "attributes": { "category": "color", - "type": "blue", - "item": "60" + "type": "yellow", + "item": "80" }, "path": [ "color", - "blue", - "60" + "yellow", + "80" ] } ] @@ -11513,74 +11409,108 @@ ] } }, - "pf-t--global--border--color--clicked": { + "pf-t--global--border--color--status--danger--default": { "default": { - "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "#003366", + "value": "#731f00", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.brand.400}" + "value": "{global.color.status.danger.default}" }, - "name": "pf-t--global--border--color--clicked", + "name": "pf-t--global--border--color--status--danger--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "clicked" + "subitem": "status", + "state": "danger" }, "path": [ "global", "border", "color", - "clicked" + "status", + "danger", + "default" ], "references": [ { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "#003366", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#731f00", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "{color.blue.70}" + "value": "{global.color.status.danger.200}" }, - "name": "pf-t--global--color--brand--400", + "name": "pf-t--global--color--status--danger--default", "attributes": { "category": "global", "type": "color", - "item": "brand", - "subitem": "400" + "item": "status", + "subitem": "danger", + "state": "default" }, "path": [ "global", "color", - "brand", - "400" + "status", + "danger", + "default" ], "references": [ { "type": "color", - "value": "#003366", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#731f00", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#003366" + "value": "{color.red-orange.70}" }, - "name": "pf-t--color--blue--70", + "name": "pf-t--global--color--status--danger--200", "attributes": { - "category": "color", - "type": "blue", - "item": "70" + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "200" }, "path": [ + "global", "color", - "blue", - "70" + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } ] } ] @@ -11588,74 +11518,108 @@ ] } }, - "pf-t--global--border--color--subtle": { + "pf-t--global--border--color--status--danger--hover": { "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "#4d4d4d", + "value": "#731f00", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.border.color.400}" + "value": "{global.color.status.danger.hover}" }, - "name": "pf-t--global--border--color--subtle", + "name": "pf-t--global--border--color--status--danger--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "subtle" + "subitem": "status", + "state": "danger" }, "path": [ "global", "border", "color", - "subtle" + "status", + "danger", + "hover" ], "references": [ { + "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#731f00", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "{color.gray.60}" + "value": "{global.color.status.danger.300}" }, - "name": "pf-t--global--border--color--400", + "name": "pf-t--global--color--status--danger--hover", "attributes": { "category": "global", - "type": "border", - "item": "color", - "subitem": "400" + "type": "color", + "item": "status", + "subitem": "danger", + "state": "hover" }, "path": [ "global", - "border", "color", - "400" + "status", + "danger", + "hover" ], "references": [ { "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#731f00", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#4d4d4d" + "value": "{color.red-orange.70}" }, - "name": "pf-t--color--gray--60", + "name": "pf-t--global--color--status--danger--300", "attributes": { - "category": "color", - "type": "gray", - "item": "60" + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "300" }, "path": [ + "global", "color", - "gray", - "60" + "status", + "danger", + "300" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } ] } ] @@ -11663,74 +11627,108 @@ ] } }, - "pf-t--global--border--color--disabled": { + "pf-t--global--border--color--status--danger--clicked": { "default": { - "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "#a3a3a3", + "value": "#731f00", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.disabled.200}" + "value": "{global.color.status.danger.clicked}" }, - "name": "pf-t--global--border--color--disabled", + "name": "pf-t--global--border--color--status--danger--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "disabled" + "subitem": "status", + "state": "danger" }, "path": [ "global", "border", "color", - "disabled" + "status", + "danger", + "clicked" ], "references": [ { + "description": "Use as the clicked state for any element that conveys a danger status.", "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#731f00", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", "type": "color", - "value": "{color.gray.40}" + "value": "{global.color.status.danger.300}" }, - "name": "pf-t--global--color--disabled--200", + "name": "pf-t--global--color--status--danger--clicked", "attributes": { "category": "global", "type": "color", - "item": "disabled", - "subitem": "200" + "item": "status", + "subitem": "danger", + "state": "clicked" }, "path": [ "global", "color", - "disabled", - "200" + "status", + "danger", + "clicked" ], "references": [ { "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#731f00", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#a3a3a3" + "value": "{color.red-orange.70}" }, - "name": "pf-t--color--gray--40", + "name": "pf-t--global--color--status--danger--300", "attributes": { - "category": "color", - "type": "gray", - "item": "40" + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "300" }, "path": [ + "global", "color", - "gray", - "40" + "status", + "danger", + "300" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } ] } ] @@ -11738,99 +11736,106 @@ ] } }, - "pf-t--global--border--color--alt": { + "pf-t--global--border--color--status--info--default": { "default": { - "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "#ffffff", + "value": "#3d2785", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.background.color.primary.default}" + "value": "{global.color.status.info.default}" }, - "name": "pf-t--global--border--color--alt", + "name": "pf-t--global--border--color--status--info--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "alt" + "subitem": "status", + "state": "info" }, "path": [ "global", "border", "color", - "alt" + "status", + "info", + "default" ], "references": [ { - "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "#ffffff", + "value": "#3d2785", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "{global.background.color.100}" + "value": "{global.color.status.info.200}" }, - "name": "pf-t--global--background--color--primary--default", + "name": "pf-t--global--color--status--info--default", "attributes": { "category": "global", - "type": "background", - "item": "color", - "subitem": "primary", + "type": "color", + "item": "status", + "subitem": "info", "state": "default" }, "path": [ "global", - "background", "color", - "primary", + "status", + "info", "default" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#3d2785", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.white}" + "value": "{color.purple.60}" }, - "name": "pf-t--global--background--color--100", + "name": "pf-t--global--color--status--info--200", "attributes": { "category": "global", - "type": "background", - "item": "color", - "subitem": "100" + "type": "color", + "item": "status", + "subitem": "info", + "state": "200" }, "path": [ "global", - "background", "color", - "100" + "status", + "info", + "200" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#3d2785", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffffff" + "value": "#3d2785" }, - "name": "pf-t--color--white", + "name": "pf-t--color--purple--60", "attributes": { "category": "color", - "type": "white" + "type": "purple", + "item": "60" }, "path": [ "color", - "white" + "purple", + "60" ] } ] @@ -11840,74 +11845,108 @@ ] } }, - "pf-t--global--border--color--on-secondary": { + "pf-t--global--border--color--status--info--hover": { "default": { - "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "#4d4d4d", + "value": "#21134d", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.border.color.400}" + "value": "{global.color.status.info.hover}" }, - "name": "pf-t--global--border--color--on-secondary", + "name": "pf-t--global--border--color--status--info--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "on-secondary" + "subitem": "status", + "state": "info" }, "path": [ "global", "border", "color", - "on-secondary" + "status", + "info", + "hover" ], "references": [ { + "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#21134d", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "{color.gray.60}" + "value": "{global.color.status.info.300}" }, - "name": "pf-t--global--border--color--400", + "name": "pf-t--global--color--status--info--hover", "attributes": { "category": "global", - "type": "border", - "item": "color", - "subitem": "400" + "type": "color", + "item": "status", + "subitem": "info", + "state": "hover" }, "path": [ "global", - "border", "color", - "400" + "status", + "info", + "hover" ], "references": [ { "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#21134d", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#4d4d4d" + "value": "{color.purple.70}" }, - "name": "pf-t--color--gray--60", + "name": "pf-t--global--color--status--info--300", "attributes": { - "category": "color", - "type": "gray", - "item": "60" + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "300" }, "path": [ + "global", "color", - "gray", - "60" + "status", + "info", + "300" + ], + "references": [ + { + "type": "color", + "value": "#21134d", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#21134d" + }, + "name": "pf-t--color--purple--70", + "attributes": { + "category": "color", + "type": "purple", + "item": "70" + }, + "path": [ + "color", + "purple", + "70" + ] + } ] } ] @@ -11915,99 +11954,106 @@ ] } }, - "pf-t--global--border--color--glass--default": { + "pf-t--global--border--color--status--info--clicked": { "default": { + "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "#4d4d4d", + "value": "#21134d", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.border.color.subtle}" + "value": "{global.color.status.info.clicked}" }, - "name": "pf-t--global--border--color--glass--default", + "name": "pf-t--global--border--color--status--info--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "glass", - "state": "default" + "subitem": "status", + "state": "info" }, "path": [ "global", "border", "color", - "glass", - "default" + "status", + "info", + "clicked" ], "references": [ { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "#4d4d4d", + "value": "#21134d", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "{global.border.color.400}" + "value": "{global.color.status.info.300}" }, - "name": "pf-t--global--border--color--subtle", + "name": "pf-t--global--color--status--info--clicked", "attributes": { "category": "global", - "type": "border", - "item": "color", - "subitem": "subtle" + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" }, "path": [ "global", - "border", "color", - "subtle" + "status", + "info", + "clicked" ], "references": [ { "type": "color", - "value": "#4d4d4d", + "value": "#21134d", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.60}" + "value": "{color.purple.70}" }, - "name": "pf-t--global--border--color--400", + "name": "pf-t--global--color--status--info--300", "attributes": { "category": "global", - "type": "border", - "item": "color", - "subitem": "400" + "type": "color", + "item": "status", + "subitem": "info", + "state": "300" }, "path": [ "global", - "border", "color", - "400" + "status", + "info", + "300" ], "references": [ { "type": "color", - "value": "#4d4d4d", + "value": "#21134d", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#4d4d4d" + "value": "#21134d" }, - "name": "pf-t--color--gray--60", + "name": "pf-t--color--purple--70", "attributes": { "category": "color", - "type": "gray", - "item": "60" + "type": "purple", + "item": "70" }, "path": [ "color", - "gray", - "60" + "purple", + "70" ] } ] @@ -12017,79 +12063,108 @@ ] } }, - "pf-t--global--border--color--nonstatus--red--default": { + "pf-t--global--border--color--status--custom--default": { "default": { - "description": "Use as the default border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels, banners, etc.)", + "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "#a60000", + "value": "#004d4d", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels, banners, etc.)", + "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.nonstatus.red.400}" + "value": "{global.color.status.custom.default}" }, - "name": "pf-t--global--border--color--nonstatus--red--default", + "name": "pf-t--global--border--color--status--custom--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "nonstatus", - "state": "red" + "subitem": "status", + "state": "custom" }, "path": [ "global", "border", "color", - "nonstatus", - "red", + "status", + "custom", "default" ], "references": [ { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#a60000", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#004d4d", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{color.red.60}" + "value": "{global.color.status.custom.200}" }, - "name": "pf-t--global--color--nonstatus--red--400", + "name": "pf-t--global--color--status--custom--default", "attributes": { "category": "global", "type": "color", - "item": "nonstatus", - "subitem": "red", - "state": "400" + "item": "status", + "subitem": "custom", + "state": "default" }, "path": [ "global", "color", - "nonstatus", - "red", - "400" + "status", + "custom", + "default" ], "references": [ { "type": "color", - "value": "#a60000", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#004d4d", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#a60000" + "value": "{color.teal.70}" }, - "name": "pf-t--color--red--60", + "name": "pf-t--global--color--status--custom--200", "attributes": { - "category": "color", - "type": "red", - "item": "60" + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "200" }, "path": [ + "global", "color", - "red", - "60" + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d4d" + }, + "name": "pf-t--color--teal--70", + "attributes": { + "category": "color", + "type": "teal", + "item": "70" + }, + "path": [ + "color", + "teal", + "70" + ] + } ] } ] @@ -12097,79 +12172,108 @@ ] } }, - "pf-t--global--border--color--nonstatus--red--hover": { + "pf-t--global--border--color--status--custom--hover": { "default": { - "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "#5f0000", + "value": "#003333", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.nonstatus.red.500}" + "value": "{global.color.status.custom.hover}" }, - "name": "pf-t--global--border--color--nonstatus--red--hover", + "name": "pf-t--global--border--color--status--custom--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "nonstatus", - "state": "red" + "subitem": "status", + "state": "custom" }, "path": [ "global", "border", "color", - "nonstatus", - "red", + "status", + "custom", "hover" ], "references": [ { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#5f0000", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#003333", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{color.red.70}" + "value": "{global.color.status.custom.300}" }, - "name": "pf-t--global--color--nonstatus--red--500", + "name": "pf-t--global--color--status--custom--hover", "attributes": { "category": "global", "type": "color", - "item": "nonstatus", - "subitem": "red", - "state": "500" + "item": "status", + "subitem": "custom", + "state": "hover" }, "path": [ "global", "color", - "nonstatus", - "red", - "500" + "status", + "custom", + "hover" ], "references": [ { "type": "color", - "value": "#5f0000", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#003333", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#5f0000" + "value": "{color.teal.80}" }, - "name": "pf-t--color--red--70", + "name": "pf-t--global--color--status--custom--300", "attributes": { - "category": "color", - "type": "red", - "item": "70" + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "300" }, "path": [ + "global", "color", - "red", - "70" + "status", + "custom", + "300" + ], + "references": [ + { + "type": "color", + "value": "#003333", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003333" + }, + "name": "pf-t--color--teal--80", + "attributes": { + "category": "color", + "type": "teal", + "item": "80" + }, + "path": [ + "color", + "teal", + "80" + ] + } ] } ] @@ -12177,90 +12281,461 @@ ] } }, - "pf-t--global--border--color--nonstatus--red--clicked": { + "pf-t--global--border--color--status--custom--clicked": { "default": { - "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "#5f0000", + "value": "#003333", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.nonstatus.red.500}" + "value": "{global.color.status.custom.clicked}" }, - "name": "pf-t--global--border--color--nonstatus--red--clicked", + "name": "pf-t--global--border--color--status--custom--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "nonstatus", - "state": "red" + "subitem": "status", + "state": "custom" }, "path": [ "global", "border", "color", - "nonstatus", - "red", + "status", + "custom", "clicked" ], "references": [ { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#5f0000", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#003333", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{color.red.70}" + "value": "{global.color.status.custom.300}" }, - "name": "pf-t--global--color--nonstatus--red--500", + "name": "pf-t--global--color--status--custom--clicked", "attributes": { "category": "global", "type": "color", - "item": "nonstatus", - "subitem": "red", - "state": "500" + "item": "status", + "subitem": "custom", + "state": "clicked" }, "path": [ "global", "color", - "nonstatus", - "red", - "500" + "status", + "custom", + "clicked" ], "references": [ { "type": "color", - "value": "#5f0000", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#003333", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#5f0000" + "value": "{color.teal.80}" }, - "name": "pf-t--color--red--70", + "name": "pf-t--global--color--status--custom--300", "attributes": { - "category": "color", - "type": "red", - "item": "70" + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "300" }, "path": [ + "global", "color", - "red", - "70" - ] - } - ] - } - ] - } - }, - "pf-t--global--border--color--nonstatus--orangered--default": { - "default": { - "description": "Use as the default border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", - "type": "color", + "status", + "custom", + "300" + ], + "references": [ + { + "type": "color", + "value": "#003333", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003333" + }, + "name": "pf-t--color--teal--80", + "attributes": { + "category": "color", + "type": "teal", + "item": "80" + }, + "path": [ + "color", + "teal", + "80" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--glass--default": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "type": "color", + "value": "{global.border.color.subtle}" + }, + "name": "pf-t--global--border--color--glass--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "glass", + "state": "default" + }, + "path": [ + "global", + "border", + "color", + "glass", + "default" + ], + "references": [ + { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.border.color.400}" + }, + "name": "pf-t--global--border--color--subtle", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "border", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.60}" + }, + "name": "pf-t--global--border--color--400", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "400" + }, + "path": [ + "global", + "border", + "color", + "400" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--red--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels, banners, etc.)", + "type": "color", + "value": "{global.color.nonstatus.red.400}" + }, + "name": "pf-t--global--border--color--nonstatus--red--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "red", + "default" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.60}" + }, + "name": "pf-t--global--color--nonstatus--red--400", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "400" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "400" + ], + "references": [ + { + "type": "color", + "value": "#a60000", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a60000" + }, + "name": "pf-t--color--red--60", + "attributes": { + "category": "color", + "type": "red", + "item": "60" + }, + "path": [ + "color", + "red", + "60" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--red--hover": { + "default": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "type": "color", + "value": "#5f0000", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the hover state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.red.500}" + }, + "name": "pf-t--global--border--color--nonstatus--red--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "red", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#5f0000", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.70}" + }, + "name": "pf-t--global--color--nonstatus--red--500", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "500" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "500" + ], + "references": [ + { + "type": "color", + "value": "#5f0000", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5f0000" + }, + "name": "pf-t--color--red--70", + "attributes": { + "category": "color", + "type": "red", + "item": "70" + }, + "path": [ + "color", + "red", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--red--clicked": { + "default": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "type": "color", + "value": "#5f0000", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the clicked state border color for any element that does not convey status and that you always will want to be red (i.e. color-coded labels)", + "type": "color", + "value": "{global.color.nonstatus.red.500}" + }, + "name": "pf-t--global--border--color--nonstatus--red--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "nonstatus", + "state": "red" + }, + "path": [ + "global", + "border", + "color", + "nonstatus", + "red", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#5f0000", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.red.70}" + }, + "name": "pf-t--global--color--nonstatus--red--500", + "attributes": { + "category": "global", + "type": "color", + "item": "nonstatus", + "subitem": "red", + "state": "500" + }, + "path": [ + "global", + "color", + "nonstatus", + "red", + "500" + ], + "references": [ + { + "type": "color", + "value": "#5f0000", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5f0000" + }, + "name": "pf-t--color--red--70", + "attributes": { + "category": "color", + "type": "red", + "item": "70" + }, + "path": [ + "color", + "red", + "70" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--nonstatus--orangered--default": { + "default": { + "description": "Use as the default border color for any element that does not convey status and that you always will want to be orangered (i.e. color-coded labels)", + "type": "color", "value": "#b1380b", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, @@ -17017,6 +17492,318 @@ ] } }, + "pf-t--global--color--brand--accent--default": { + "default": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.color.brand.default}" + }, + "name": "pf-t--global--color--brand--accent--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "default" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "default" + ], + "references": [ + { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.color.brand.300}" + }, + "name": "pf-t--global--color--brand--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "default" + }, + "path": [ + "global", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--brand--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" + }, + "path": [ + "global", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--accent--hover": { + "default": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.color.brand.hover}" + }, + "name": "pf-t--global--color--brand--accent--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "hover" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.color.brand.400}" + }, + "name": "pf-t--global--color--brand--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.70}" + }, + "name": "pf-t--global--color--brand--400", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "400" + }, + "path": [ + "global", + "color", + "brand", + "400" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--accent--clicked": { + "default": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.color.brand.clicked}" + }, + "name": "pf-t--global--color--brand--accent--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.color.brand.400}" + }, + "name": "pf-t--global--color--brand--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.70}" + }, + "name": "pf-t--global--color--brand--400", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "400" + }, + "path": [ + "global", + "color", + "brand", + "400" + ], + "references": [ + { + "type": "color", + "value": "#003366", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#003366" + }, + "name": "pf-t--color--blue--70", + "attributes": { + "category": "color", + "type": "blue", + "item": "70" + }, + "path": [ + "color", + "blue", + "70" + ] + } + ] + } + ] + } + ] + } + }, "pf-t--global--color--brand--subtle--default": { "default": { "description": "Use this color for elements that you want to reinforce your brand", @@ -22137,76 +22924,74 @@ ] } }, - "pf-t--global--text--color--brand--default": { + "pf-t--global--text--color--regular": { "default": { - "description": "Use as the default color for branded text.", + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "#003366", + "value": "#151515", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default color for branded text.", + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "{global.color.brand.400}" + "value": "{global.text.color.100}" }, - "name": "pf-t--global--text--color--brand--default", + "name": "pf-t--global--text--color--regular", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "brand", - "state": "default" + "subitem": "regular" }, "path": [ "global", "text", "color", - "brand", - "default" + "regular" ], "references": [ { "type": "color", - "value": "#003366", + "value": "#151515", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.70}" + "value": "{color.gray.95}" }, - "name": "pf-t--global--color--brand--400", + "name": "pf-t--global--text--color--100", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "400" + "type": "text", + "item": "color", + "subitem": "100" }, "path": [ "global", + "text", "color", - "brand", - "400" + "100" ], "references": [ { "type": "color", - "value": "#003366", + "value": "#151515", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#003366" + "value": "#151515" }, - "name": "pf-t--color--blue--70", + "name": "pf-t--color--gray--95", "attributes": { "category": "color", - "type": "blue", - "item": "70" + "type": "gray", + "item": "95" }, "path": [ "color", - "blue", - "70" + "gray", + "95" ] } ] @@ -22214,76 +22999,74 @@ ] } }, - "pf-t--global--text--color--brand--hover": { + "pf-t--global--text--color--subtle": { "default": { - "description": "Use as the hover state color for branded text.", + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "value": "#032142", + "value": "#383838", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state color for branded text.", + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "value": "{global.color.brand.500}" + "value": "{global.text.color.250}" }, - "name": "pf-t--global--text--color--brand--hover", + "name": "pf-t--global--text--color--subtle", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "brand", - "state": "hover" + "subitem": "subtle" }, "path": [ "global", "text", "color", - "brand", - "hover" + "subtle" ], "references": [ { "type": "color", - "value": "#032142", + "value": "#383838", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.80}" + "value": "{color.gray.70}" }, - "name": "pf-t--global--color--brand--500", + "name": "pf-t--global--text--color--250", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "500" + "type": "text", + "item": "color", + "subitem": "250" }, "path": [ "global", + "text", "color", - "brand", - "500" + "250" ], "references": [ { "type": "color", - "value": "#032142", + "value": "#383838", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#032142" + "value": "#383838" }, - "name": "pf-t--color--blue--80", + "name": "pf-t--color--gray--70", "attributes": { "category": "color", - "type": "blue", - "item": "80" + "type": "gray", + "item": "70" }, "path": [ "color", - "blue", - "80" + "gray", + "70" ] } ] @@ -22291,76 +23074,72 @@ ] } }, - "pf-t--global--text--color--brand--clicked": { + "pf-t--global--text--color--inverse": { "default": { - "description": "Use as the clicked state color for branded text.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#032142", + "value": "#ffffff", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state color for branded text.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.color.brand.500}" + "value": "{global.text.color.300}" }, - "name": "pf-t--global--text--color--brand--clicked", + "name": "pf-t--global--text--color--inverse", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "brand", - "state": "clicked" + "subitem": "inverse" }, "path": [ "global", "text", "color", - "brand", - "clicked" + "inverse" ], "references": [ { "type": "color", - "value": "#032142", + "value": "#ffffff", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.80}" + "value": "{color.white}" }, - "name": "pf-t--global--color--brand--500", + "name": "pf-t--global--text--color--300", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "500" + "type": "text", + "item": "color", + "subitem": "300" }, "path": [ "global", + "text", "color", - "brand", - "500" + "300" ], "references": [ { "type": "color", - "value": "#032142", + "value": "#ffffff", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#032142" + "value": "#ffffff" }, - "name": "pf-t--color--blue--80", + "name": "pf-t--color--white", "attributes": { "category": "color", - "type": "blue", - "item": "80" + "type": "white" }, "path": [ "color", - "blue", - "80" + "white" ] } ] @@ -22368,74 +23147,101 @@ ] } }, - "pf-t--global--text--color--regular": { + "pf-t--global--text--color--placeholder": { "default": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", "type": "color", - "value": "#151515", + "value": "#383838", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", "type": "color", - "value": "{global.text.color.100}" + "value": "{global.text.color.subtle}" }, - "name": "pf-t--global--text--color--regular", + "name": "pf-t--global--text--color--placeholder", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "regular" + "subitem": "placeholder" }, "path": [ "global", "text", "color", - "regular" + "placeholder" ], "references": [ { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "value": "#151515", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#383838", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "value": "{color.gray.95}" + "value": "{global.text.color.250}" }, - "name": "pf-t--global--text--color--100", + "name": "pf-t--global--text--color--subtle", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "100" + "subitem": "subtle" }, "path": [ "global", "text", "color", - "100" + "subtle" ], "references": [ { "type": "color", - "value": "#151515", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#383838", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#151515" + "value": "{color.gray.70}" }, - "name": "pf-t--color--gray--95", + "name": "pf-t--global--text--color--250", "attributes": { - "category": "color", - "type": "gray", - "item": "95" + "category": "global", + "type": "text", + "item": "color", + "subitem": "250" }, "path": [ + "global", + "text", "color", - "gray", - "95" + "250" + ], + "references": [ + { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } ] } ] @@ -22443,74 +23249,74 @@ ] } }, - "pf-t--global--text--color--subtle": { + "pf-t--global--text--color--disabled": { "default": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "description": "Use as the color of text on disabled elements, like disabled menu items.", "type": "color", - "value": "#383838", + "value": "#a3a3a3", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "description": "Use as the color of text on disabled elements, like disabled menu items.", "type": "color", - "value": "{global.text.color.250}" + "value": "{global.color.disabled.200}" }, - "name": "pf-t--global--text--color--subtle", + "name": "pf-t--global--text--color--disabled", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "subtle" + "subitem": "disabled" }, "path": [ "global", "text", "color", - "subtle" + "disabled" ], "references": [ { "type": "color", - "value": "#383838", + "value": "#a3a3a3", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.70}" + "value": "{color.gray.40}" }, - "name": "pf-t--global--text--color--250", + "name": "pf-t--global--color--disabled--200", "attributes": { "category": "global", - "type": "text", - "item": "color", - "subitem": "250" + "type": "color", + "item": "disabled", + "subitem": "200" }, "path": [ "global", - "text", "color", - "250" + "disabled", + "200" ], "references": [ { "type": "color", - "value": "#383838", + "value": "#a3a3a3", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#383838" + "value": "#a3a3a3" }, - "name": "pf-t--color--gray--70", + "name": "pf-t--color--gray--40", "attributes": { "category": "color", "type": "gray", - "item": "70" + "item": "40" }, "path": [ "color", "gray", - "70" + "40" ] } ] @@ -22518,72 +23324,74 @@ ] } }, - "pf-t--global--text--color--inverse": { + "pf-t--global--text--color--on-disabled": { "default": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", "type": "color", - "value": "#ffffff", + "value": "#707070", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", "type": "color", - "value": "{global.text.color.300}" + "value": "{global.color.disabled.300}" }, - "name": "pf-t--global--text--color--inverse", + "name": "pf-t--global--text--color--on-disabled", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "inverse" + "subitem": "on-disabled" }, "path": [ "global", "text", "color", - "inverse" + "on-disabled" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#707070", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.white}" + "value": "{color.gray.50}" }, - "name": "pf-t--global--text--color--300", + "name": "pf-t--global--color--disabled--300", "attributes": { "category": "global", - "type": "text", - "item": "color", + "type": "color", + "item": "disabled", "subitem": "300" }, "path": [ "global", - "text", "color", + "disabled", "300" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#707070", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffffff" + "value": "#707070" }, - "name": "pf-t--color--white", + "name": "pf-t--color--gray--50", "attributes": { "category": "color", - "type": "white" + "type": "gray", + "item": "50" }, "path": [ "color", - "white" + "gray", + "50" ] } ] @@ -22591,101 +23399,74 @@ ] } }, - "pf-t--global--text--color--on-brand--default": { + "pf-t--global--text--color--required": { "default": { - "description": "Use as the default color for text placed on a brand-colored background.", + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", "type": "color", - "value": "#ffffff", + "value": "#731f00", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default color for text placed on a brand-colored background.", + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", "type": "color", - "value": "{global.text.color.inverse}" + "value": "{global.text.color.500}" }, - "name": "pf-t--global--text--color--on-brand--default", + "name": "pf-t--global--text--color--required", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-brand", - "state": "default" + "subitem": "required" }, "path": [ "global", "text", "color", - "on-brand", - "default" + "required" ], "references": [ { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#731f00", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.text.color.300}" + "value": "{color.red-orange.70}" }, - "name": "pf-t--global--text--color--inverse", + "name": "pf-t--global--text--color--500", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "inverse" + "subitem": "500" }, "path": [ "global", "text", "color", - "inverse" + "500" ], "references": [ { "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#731f00", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.white}" + "value": "#731f00" }, - "name": "pf-t--global--text--color--300", + "name": "pf-t--color--red-orange--70", "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "300" + "category": "color", + "type": "red-orange", + "item": "70" }, "path": [ - "global", - "text", "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#ffffff" - }, - "name": "pf-t--color--white", - "attributes": { - "category": "color", - "type": "white" - }, - "path": [ - "color", - "white" - ] - } + "red-orange", + "70" ] } ] @@ -22693,101 +23474,74 @@ ] } }, - "pf-t--global--text--color--on-brand--hover": { + "pf-t--global--text--color--on-highlight": { "default": { - "description": "Use as the hover state color for text placed on a brand-colored background.", + "description": "Use as the color of text that is highlighted.", "type": "color", - "value": "#ffffff", + "value": "#151515", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state color for text placed on a brand-colored background.", + "description": "Use as the color of text that is highlighted.", "type": "color", - "value": "{global.text.color.inverse}" + "value": "{global.text.color.100}" }, - "name": "pf-t--global--text--color--on-brand--hover", + "name": "pf-t--global--text--color--on-highlight", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-brand", - "state": "hover" + "subitem": "on-highlight" }, "path": [ "global", "text", "color", - "on-brand", - "hover" + "on-highlight" ], "references": [ { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#151515", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.text.color.300}" + "value": "{color.gray.95}" }, - "name": "pf-t--global--text--color--inverse", + "name": "pf-t--global--text--color--100", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "inverse" + "subitem": "100" }, "path": [ "global", "text", "color", - "inverse" + "100" ], "references": [ { "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#151515", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.white}" + "value": "#151515" }, - "name": "pf-t--global--text--color--300", + "name": "pf-t--color--gray--95", "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "300" + "category": "color", + "type": "gray", + "item": "95" }, "path": [ - "global", - "text", "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#ffffff" - }, - "name": "pf-t--color--white", - "attributes": { - "category": "color", - "type": "white" - }, - "path": [ - "color", - "white" - ] - } + "gray", + "95" ] } ] @@ -22795,101 +23549,76 @@ ] } }, - "pf-t--global--text--color--on-brand--clicked": { + "pf-t--global--text--color--brand--default": { "default": { - "description": "Use as the clicked state color for text placed on a brand-colored background.", + "description": "Use as the default color for branded text.", "type": "color", - "value": "#ffffff", + "value": "#003366", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state color for text placed on a brand-colored background.", + "description": "Use as the default color for branded text.", "type": "color", - "value": "{global.text.color.inverse}" + "value": "{global.color.brand.400}" }, - "name": "pf-t--global--text--color--on-brand--clicked", + "name": "pf-t--global--text--color--brand--default", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-brand", - "state": "clicked" + "subitem": "brand", + "state": "default" }, "path": [ "global", "text", "color", - "on-brand", - "clicked" + "brand", + "default" ], "references": [ { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.text.color.300}" + "value": "{color.blue.70}" }, - "name": "pf-t--global--text--color--inverse", + "name": "pf-t--global--color--brand--400", "attributes": { "category": "global", - "type": "text", - "item": "color", - "subitem": "inverse" + "type": "color", + "item": "brand", + "subitem": "400" }, "path": [ "global", - "text", "color", - "inverse" + "brand", + "400" ], "references": [ { "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#003366", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.white}" + "value": "#003366" }, - "name": "pf-t--global--text--color--300", + "name": "pf-t--color--blue--70", "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "300" + "category": "color", + "type": "blue", + "item": "70" }, "path": [ - "global", - "text", "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#ffffff" - }, - "name": "pf-t--color--white", - "attributes": { - "category": "color", - "type": "white" - }, - "path": [ - "color", - "white" - ] - } + "blue", + "70" ] } ] @@ -22897,7 +23626,161 @@ ] } }, - "pf-t--global--text--color--on-brand--accent--default": { + "pf-t--global--text--color--brand--hover": { + "default": { + "description": "Use as the hover state color for branded text.", + "type": "color", + "value": "#032142", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for branded text.", + "type": "color", + "value": "{global.color.brand.500}" + }, + "name": "pf-t--global--text--color--brand--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "brand", + "state": "hover" + }, + "path": [ + "global", + "text", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#032142", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.80}" + }, + "name": "pf-t--global--color--brand--500", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "500" + }, + "path": [ + "global", + "color", + "brand", + "500" + ], + "references": [ + { + "type": "color", + "value": "#032142", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#032142" + }, + "name": "pf-t--color--blue--80", + "attributes": { + "category": "color", + "type": "blue", + "item": "80" + }, + "path": [ + "color", + "blue", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--brand--clicked": { + "default": { + "description": "Use as the clicked state color for branded text.", + "type": "color", + "value": "#032142", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for branded text.", + "type": "color", + "value": "{global.color.brand.500}" + }, + "name": "pf-t--global--text--color--brand--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "brand", + "state": "clicked" + }, + "path": [ + "global", + "text", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#032142", + "filePath": "tokens/default/highcontrast/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.80}" + }, + "name": "pf-t--global--color--brand--500", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "500" + }, + "path": [ + "global", + "color", + "brand", + "500" + ], + "references": [ + { + "type": "color", + "value": "#032142", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#032142" + }, + "name": "pf-t--color--blue--80", + "attributes": { + "category": "color", + "type": "blue", + "item": "80" + }, + "path": [ + "color", + "blue", + "80" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--default": { "default": { "description": "Use as the default color for text placed on a brand-colored background.", "type": "color", @@ -22909,20 +23792,19 @@ "type": "color", "value": "{global.text.color.inverse}" }, - "name": "pf-t--global--text--color--on-brand--accent--default", + "name": "pf-t--global--text--color--on-brand--default", "attributes": { "category": "global", "type": "text", "item": "color", "subitem": "on-brand", - "state": "accent" + "state": "default" }, "path": [ "global", "text", "color", "on-brand", - "accent", "default" ], "references": [ @@ -23000,7 +23882,7 @@ ] } }, - "pf-t--global--text--color--on-brand--accent--hover": { + "pf-t--global--text--color--on-brand--hover": { "default": { "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", @@ -23012,20 +23894,19 @@ "type": "color", "value": "{global.text.color.inverse}" }, - "name": "pf-t--global--text--color--on-brand--accent--hover", + "name": "pf-t--global--text--color--on-brand--hover", "attributes": { "category": "global", "type": "text", "item": "color", "subitem": "on-brand", - "state": "accent" + "state": "hover" }, "path": [ "global", "text", "color", "on-brand", - "accent", "hover" ], "references": [ @@ -23103,7 +23984,7 @@ ] } }, - "pf-t--global--text--color--on-brand--accent--clicked": { + "pf-t--global--text--color--on-brand--clicked": { "default": { "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", @@ -23115,20 +23996,19 @@ "type": "color", "value": "{global.text.color.inverse}" }, - "name": "pf-t--global--text--color--on-brand--accent--clicked", + "name": "pf-t--global--text--color--on-brand--clicked", "attributes": { "category": "global", "type": "text", "item": "color", "subitem": "on-brand", - "state": "accent" + "state": "clicked" }, "path": [ "global", "text", "color", "on-brand", - "accent", "clicked" ], "references": [ @@ -23206,102 +24086,100 @@ ] } }, - "pf-t--global--text--color--on-brand--subtle--default": { + "pf-t--global--text--color--on-brand--accent--default": { "default": { "description": "Use as the default color for text placed on a brand-colored background.", "type": "color", - "value": "#151515", + "value": "#ffffff", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { "description": "Use as the default color for text placed on a brand-colored background.", "type": "color", - "value": "{global.text.color.regular}" + "value": "{global.text.color.inverse}" }, - "name": "pf-t--global--text--color--on-brand--subtle--default", + "name": "pf-t--global--text--color--on-brand--accent--default", "attributes": { "category": "global", "type": "text", "item": "color", "subitem": "on-brand", - "state": "subtle" + "state": "accent" }, "path": [ "global", "text", "color", "on-brand", - "subtle", + "accent", "default" ], "references": [ { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#151515", + "value": "#ffffff", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.text.color.100}" + "value": "{global.text.color.300}" }, - "name": "pf-t--global--text--color--regular", + "name": "pf-t--global--text--color--inverse", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "regular" + "subitem": "inverse" }, "path": [ "global", "text", "color", - "regular" + "inverse" ], "references": [ { "type": "color", - "value": "#151515", + "value": "#ffffff", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.95}" + "value": "{color.white}" }, - "name": "pf-t--global--text--color--100", + "name": "pf-t--global--text--color--300", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "100" + "subitem": "300" }, "path": [ "global", "text", "color", - "100" + "300" ], "references": [ { "type": "color", - "value": "#151515", + "value": "#ffffff", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#151515" + "value": "#ffffff" }, - "name": "pf-t--color--gray--95", + "name": "pf-t--color--white", "attributes": { "category": "color", - "type": "gray", - "item": "95" + "type": "white" }, "path": [ "color", - "gray", - "95" + "white" ] } ] @@ -23311,102 +24189,100 @@ ] } }, - "pf-t--global--text--color--on-brand--subtle--hover": { + "pf-t--global--text--color--on-brand--accent--hover": { "default": { "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", - "value": "#151515", + "value": "#ffffff", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.text.color.regular}" + "value": "{global.text.color.inverse}" }, - "name": "pf-t--global--text--color--on-brand--subtle--hover", + "name": "pf-t--global--text--color--on-brand--accent--hover", "attributes": { "category": "global", "type": "text", "item": "color", "subitem": "on-brand", - "state": "subtle" + "state": "accent" }, "path": [ "global", "text", "color", "on-brand", - "subtle", + "accent", "hover" ], "references": [ { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#151515", + "value": "#ffffff", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.text.color.100}" + "value": "{global.text.color.300}" }, - "name": "pf-t--global--text--color--regular", + "name": "pf-t--global--text--color--inverse", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "regular" + "subitem": "inverse" }, "path": [ "global", "text", "color", - "regular" + "inverse" ], "references": [ { "type": "color", - "value": "#151515", + "value": "#ffffff", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.95}" + "value": "{color.white}" }, - "name": "pf-t--global--text--color--100", + "name": "pf-t--global--text--color--300", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "100" + "subitem": "300" }, "path": [ "global", "text", "color", - "100" + "300" ], "references": [ { "type": "color", - "value": "#151515", + "value": "#ffffff", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#151515" + "value": "#ffffff" }, - "name": "pf-t--color--gray--95", + "name": "pf-t--color--white", "attributes": { "category": "color", - "type": "gray", - "item": "95" + "type": "white" }, "path": [ "color", - "gray", - "95" + "white" ] } ] @@ -23416,102 +24292,100 @@ ] } }, - "pf-t--global--text--color--on-brand--subtle--clicked": { + "pf-t--global--text--color--on-brand--accent--clicked": { "default": { "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", - "value": "#151515", + "value": "#ffffff", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.text.color.regular}" + "value": "{global.text.color.inverse}" }, - "name": "pf-t--global--text--color--on-brand--subtle--clicked", + "name": "pf-t--global--text--color--on-brand--accent--clicked", "attributes": { "category": "global", "type": "text", "item": "color", "subitem": "on-brand", - "state": "subtle" + "state": "accent" }, "path": [ "global", "text", "color", "on-brand", - "subtle", + "accent", "clicked" ], "references": [ { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#151515", + "value": "#ffffff", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.text.color.100}" + "value": "{global.text.color.300}" }, - "name": "pf-t--global--text--color--regular", + "name": "pf-t--global--text--color--inverse", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "regular" + "subitem": "inverse" }, "path": [ "global", "text", "color", - "regular" + "inverse" ], "references": [ { "type": "color", - "value": "#151515", + "value": "#ffffff", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.95}" + "value": "{color.white}" }, - "name": "pf-t--global--text--color--100", + "name": "pf-t--global--text--color--300", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "100" + "subitem": "300" }, "path": [ "global", "text", "color", - "100" + "300" ], "references": [ { "type": "color", - "value": "#151515", + "value": "#ffffff", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#151515" + "value": "#ffffff" }, - "name": "pf-t--color--gray--95", + "name": "pf-t--color--white", "attributes": { "category": "color", - "type": "gray", - "item": "95" + "type": "white" }, "path": [ "color", - "gray", - "95" + "white" ] } ] @@ -23521,99 +24395,102 @@ ] } }, - "pf-t--global--text--color--placeholder": { + "pf-t--global--text--color--on-brand--subtle--default": { "default": { - "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "description": "Use as the default color for text placed on a brand-colored background.", "type": "color", - "value": "#383838", + "value": "#151515", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "description": "Use as the default color for text placed on a brand-colored background.", "type": "color", - "value": "{global.text.color.subtle}" + "value": "{global.text.color.regular}" }, - "name": "pf-t--global--text--color--placeholder", + "name": "pf-t--global--text--color--on-brand--subtle--default", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "placeholder" + "subitem": "on-brand", + "state": "subtle" }, "path": [ "global", "text", "color", - "placeholder" + "on-brand", + "subtle", + "default" ], "references": [ { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "#383838", + "value": "#151515", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "{global.text.color.250}" + "value": "{global.text.color.100}" }, - "name": "pf-t--global--text--color--subtle", + "name": "pf-t--global--text--color--regular", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "subtle" + "subitem": "regular" }, "path": [ "global", "text", "color", - "subtle" + "regular" ], "references": [ { "type": "color", - "value": "#383838", + "value": "#151515", "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.70}" + "value": "{color.gray.95}" }, - "name": "pf-t--global--text--color--250", + "name": "pf-t--global--text--color--100", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "250" + "subitem": "100" }, "path": [ "global", "text", "color", - "250" + "100" ], "references": [ { "type": "color", - "value": "#383838", + "value": "#151515", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#383838" + "value": "#151515" }, - "name": "pf-t--color--gray--70", + "name": "pf-t--color--gray--95", "attributes": { "category": "color", "type": "gray", - "item": "70" + "item": "95" }, "path": [ "color", "gray", - "70" + "95" ] } ] @@ -23623,74 +24500,104 @@ ] } }, - "pf-t--global--text--color--disabled": { + "pf-t--global--text--color--on-brand--subtle--hover": { "default": { - "description": "Use as the color of text on disabled elements, like disabled menu items.", + "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", - "value": "#a3a3a3", + "value": "#151515", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the color of text on disabled elements, like disabled menu items.", + "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.color.disabled.200}" + "value": "{global.text.color.regular}" }, - "name": "pf-t--global--text--color--disabled", + "name": "pf-t--global--text--color--on-brand--subtle--hover", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "disabled" + "subitem": "on-brand", + "state": "subtle" }, "path": [ "global", "text", "color", - "disabled" + "on-brand", + "subtle", + "hover" ], "references": [ { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#151515", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "{color.gray.40}" + "value": "{global.text.color.100}" }, - "name": "pf-t--global--color--disabled--200", + "name": "pf-t--global--text--color--regular", "attributes": { "category": "global", - "type": "color", - "item": "disabled", - "subitem": "200" + "type": "text", + "item": "color", + "subitem": "regular" }, "path": [ "global", + "text", "color", - "disabled", - "200" + "regular" ], "references": [ { "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#151515", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#a3a3a3" + "value": "{color.gray.95}" }, - "name": "pf-t--color--gray--40", + "name": "pf-t--global--text--color--100", "attributes": { - "category": "color", - "type": "gray", - "item": "40" + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" }, "path": [ + "global", + "text", "color", - "gray", - "40" + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } ] } ] @@ -23698,224 +24605,104 @@ ] } }, - "pf-t--global--text--color--on-disabled": { + "pf-t--global--text--color--on-brand--subtle--clicked": { "default": { - "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", + "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", - "value": "#707070", + "value": "#151515", "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", + "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.color.disabled.300}" + "value": "{global.text.color.regular}" }, - "name": "pf-t--global--text--color--on-disabled", + "name": "pf-t--global--text--color--on-brand--subtle--clicked", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-disabled" + "subitem": "on-brand", + "state": "subtle" }, "path": [ "global", "text", "color", - "on-disabled" + "on-brand", + "subtle", + "clicked" ], "references": [ { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "#707070", - "filePath": "tokens/default/highcontrast/base.json", + "value": "#151515", + "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", "isSource": true, "original": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "{color.gray.50}" + "value": "{global.text.color.100}" }, - "name": "pf-t--global--color--disabled--300", + "name": "pf-t--global--text--color--regular", "attributes": { "category": "global", - "type": "color", - "item": "disabled", - "subitem": "300" + "type": "text", + "item": "color", + "subitem": "regular" }, "path": [ "global", + "text", "color", - "disabled", - "300" + "regular" ], "references": [ { "type": "color", - "value": "#707070", - "filePath": "tokens/default/highcontrast/palette.color.json", + "value": "#151515", + "filePath": "tokens/default/highcontrast/base.json", "isSource": true, "original": { "type": "color", - "value": "#707070" + "value": "{color.gray.95}" }, - "name": "pf-t--color--gray--50", - "attributes": { - "category": "color", - "type": "gray", - "item": "50" - }, - "path": [ - "color", - "gray", - "50" - ] - } - ] - } - ] - } - }, - "pf-t--global--text--color--required": { - "default": { - "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", - "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", - "type": "color", - "value": "{global.text.color.500}" - }, - "name": "pf-t--global--text--color--required", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "required" - }, - "path": [ - "global", - "text", - "color", - "required" - ], - "references": [ - { - "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.red-orange.70}" - }, - "name": "pf-t--global--text--color--500", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "500" - }, - "path": [ - "global", - "text", - "color", - "500" - ], - "references": [ - { - "type": "color", - "value": "#731f00", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#731f00" - }, - "name": "pf-t--color--red-orange--70", - "attributes": { - "category": "color", - "type": "red-orange", - "item": "70" - }, - "path": [ - "color", - "red-orange", - "70" - ] - } - ] - } - ] - } - }, - "pf-t--global--text--color--on-highlight": { - "default": { - "description": "Use as the color of text that is highlighted.", - "type": "color", - "value": "#151515", - "filePath": "tokens/default/highcontrast/semantic.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the color of text that is highlighted.", - "type": "color", - "value": "{global.text.color.100}" - }, - "name": "pf-t--global--text--color--on-highlight", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "on-highlight" - }, - "path": [ - "global", - "text", - "color", - "on-highlight" - ], - "references": [ - { - "type": "color", - "value": "#151515", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.95}" - }, - "name": "pf-t--global--text--color--100", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "100" - }, - "path": [ - "global", - "text", - "color", - "100" - ], - "references": [ - { - "type": "color", - "value": "#151515", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#151515" - }, - "name": "pf-t--color--gray--95", + "name": "pf-t--global--text--color--100", "attributes": { - "category": "color", - "type": "gray", - "item": "95" + "category": "global", + "type": "text", + "item": "color", + "subitem": "100" }, "path": [ + "global", + "text", "color", - "gray", - "95" + "100" + ], + "references": [ + { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/highcontrast/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } ] } ] @@ -31530,6 +32317,160 @@ ] } }, + "pf-t--global--spacer--action--horizontal--compact": { + "default": { + "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "isSource": true, + "original": { + "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", + "type": "number", + "value": "{global.spacer.md}" + }, + "name": "pf-t--global--spacer--action--horizontal--compact", + "attributes": { + "category": "global", + "type": "spacer", + "item": "action", + "subitem": "horizontal", + "state": "compact" + }, + "path": [ + "global", + "spacer", + "action", + "horizontal", + "compact" + ], + "references": [ + { + "description": "Use for medium-sized spaces between elements.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "isSource": true, + "original": { + "description": "Use for medium-sized spaces between elements.", + "type": "number", + "value": "{global.spacer.300}" + }, + "name": "pf-t--global--spacer--md", + "attributes": { + "category": "global", + "type": "spacer", + "item": "md" + }, + "path": [ + "global", + "spacer", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--spacer--300", + "attributes": { + "category": "global", + "type": "spacer", + "item": "300" + }, + "path": [ + "global", + "spacer", + "300" + ] + } + ] + } + ] + } + }, + "pf-t--global--spacer--action--horizontal--spacious": { + "default": { + "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", + "type": "number", + "value": "2rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "isSource": true, + "original": { + "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", + "type": "number", + "value": "{global.spacer.xl}" + }, + "name": "pf-t--global--spacer--action--horizontal--spacious", + "attributes": { + "category": "global", + "type": "spacer", + "item": "action", + "subitem": "horizontal", + "state": "spacious" + }, + "path": [ + "global", + "spacer", + "action", + "horizontal", + "spacious" + ], + "references": [ + { + "description": "Use for extra large spaces between elements.", + "type": "number", + "value": "2rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "isSource": true, + "original": { + "description": "Use for extra large spaces between elements.", + "type": "number", + "value": "{global.spacer.500}" + }, + "name": "pf-t--global--spacer--xl", + "attributes": { + "category": "global", + "type": "spacer", + "item": "xl" + }, + "path": [ + "global", + "spacer", + "xl" + ], + "references": [ + { + "type": "number", + "value": "2rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 32 + }, + "name": "pf-t--global--spacer--500", + "attributes": { + "category": "global", + "type": "spacer", + "item": "500" + }, + "path": [ + "global", + "spacer", + "500" + ] + } + ] + } + ] + } + }, "pf-t--global--spacer--action--horizontal--plain--default": { "default": { "description": "Use to set the horizontal padding inside a plain action, like plain buttons.", @@ -31686,160 +32627,6 @@ ] } }, - "pf-t--global--spacer--action--horizontal--compact": { - "default": { - "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", - "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", - "isSource": true, - "original": { - "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", - "type": "number", - "value": "{global.spacer.md}" - }, - "name": "pf-t--global--spacer--action--horizontal--compact", - "attributes": { - "category": "global", - "type": "spacer", - "item": "action", - "subitem": "horizontal", - "state": "compact" - }, - "path": [ - "global", - "spacer", - "action", - "horizontal", - "compact" - ], - "references": [ - { - "description": "Use for medium-sized spaces between elements.", - "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", - "isSource": true, - "original": { - "description": "Use for medium-sized spaces between elements.", - "type": "number", - "value": "{global.spacer.300}" - }, - "name": "pf-t--global--spacer--md", - "attributes": { - "category": "global", - "type": "spacer", - "item": "md" - }, - "path": [ - "global", - "spacer", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--spacer--300", - "attributes": { - "category": "global", - "type": "spacer", - "item": "300" - }, - "path": [ - "global", - "spacer", - "300" - ] - } - ] - } - ] - } - }, - "pf-t--global--spacer--action--horizontal--spacious": { - "default": { - "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", - "type": "number", - "value": "2rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", - "isSource": true, - "original": { - "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", - "type": "number", - "value": "{global.spacer.xl}" - }, - "name": "pf-t--global--spacer--action--horizontal--spacious", - "attributes": { - "category": "global", - "type": "spacer", - "item": "action", - "subitem": "horizontal", - "state": "spacious" - }, - "path": [ - "global", - "spacer", - "action", - "horizontal", - "spacious" - ], - "references": [ - { - "description": "Use for extra large spaces between elements.", - "type": "number", - "value": "2rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", - "isSource": true, - "original": { - "description": "Use for extra large spaces between elements.", - "type": "number", - "value": "{global.spacer.500}" - }, - "name": "pf-t--global--spacer--xl", - "attributes": { - "category": "global", - "type": "spacer", - "item": "xl" - }, - "path": [ - "global", - "spacer", - "xl" - ], - "references": [ - { - "type": "number", - "value": "2rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 32 - }, - "name": "pf-t--global--spacer--500", - "attributes": { - "category": "global", - "type": "spacer", - "item": "500" - }, - "path": [ - "global", - "spacer", - "500" - ] - } - ] - } - ] - } - }, "pf-t--global--spacer--gap--text-to-element--default": { "default": { "description": "Use to space an element, like an icon or badge, inline with text", @@ -33149,110 +33936,78 @@ ] } }, - "pf-t--global--icon--size--font--heading--h1": { + "pf-t--global--icon--size--font--xs": { "default": { - "description": "Use for icons that are placed inline with first level headings", + "description": "Use for icons that are placed inline with font–size–xs text", "type": "number", - "value": "1.5rem", + "value": "0.75rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with first level headings", + "description": "Use for icons that are placed inline with font–size–xs text", "type": "number", - "value": "{global.font.size.heading.h1}" + "value": "{global.font.size.xs}" }, - "name": "pf-t--global--icon--size--font--heading--h1", + "name": "pf-t--global--icon--size--font--xs", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "xs" }, "path": [ "global", "icon", "size", "font", - "heading", - "h1" + "xs" ], "references": [ { - "description": "Use as the font size for first level headings.", "type": "number", - "value": "1.5rem", + "value": "0.75rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for first level headings.", "type": "number", - "value": "{global.font.size.2xl}" + "value": "{global.font.size.100}" }, - "name": "pf-t--global--font--size--heading--h1", + "name": "pf-t--global--font--size--xs", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h1" + "subitem": "xs" }, "path": [ "global", "font", "size", - "heading", - "h1" + "xs" ], "references": [ { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.5rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "0.75rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.600}" + "value": 12 }, - "name": "pf-t--global--font--size--2xl", + "name": "pf-t--global--font--size--100", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "2xl" + "subitem": "100" }, "path": [ "global", "font", "size", - "2xl" - ], - "references": [ - { - "type": "number", - "value": "1.5rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 24 - }, - "name": "pf-t--global--font--size--600", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "600" - }, - "path": [ - "global", - "font", - "size", - "600" - ] - } + "100" ] } ] @@ -33260,110 +34015,80 @@ ] } }, - "pf-t--global--icon--size--font--heading--h2": { + "pf-t--global--icon--size--font--sm": { "default": { - "description": "Use for icons that are placed inline with second level headings", + "description": "Use for icons that are placed inline with font–size–sm text", "type": "number", - "value": "1.25rem", + "value": "0.875rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with second level headings", + "description": "Use for icons that are placed inline with font–size–sm text", "type": "number", - "value": "{global.font.size.heading.h2}" + "value": "{global.font.size.sm}" }, - "name": "pf-t--global--icon--size--font--heading--h2", + "name": "pf-t--global--icon--size--font--sm", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "sm" }, "path": [ "global", "icon", "size", "font", - "heading", - "h2" + "sm" ], "references": [ { - "description": "Use as the font size for second level headings.", + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "1.25rem", + "value": "0.875rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for second level headings.", + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.xl}" + "value": "{global.font.size.200}" }, - "name": "pf-t--global--font--size--heading--h2", + "name": "pf-t--global--font--size--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h2" + "subitem": "sm" }, "path": [ "global", "font", "size", - "heading", - "h2" + "sm" ], "references": [ { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.25rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "0.875rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.500}" + "value": 14 }, - "name": "pf-t--global--font--size--xl", + "name": "pf-t--global--font--size--200", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xl" + "subitem": "200" }, "path": [ "global", "font", "size", - "xl" - ], - "references": [ - { - "type": "number", - "value": "1.25rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 20 - }, - "name": "pf-t--global--font--size--500", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "500" - }, - "path": [ - "global", - "font", - "size", - "500" - ] - } + "200" ] } ] @@ -33371,110 +34096,80 @@ ] } }, - "pf-t--global--icon--size--font--heading--h3": { + "pf-t--global--icon--size--font--md": { "default": { - "description": "Use for icons that are placed inline with third level headings", + "description": "Use for icons that are placed inline with font–size–md text", "type": "number", - "value": "1.125rem", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with third level headings", + "description": "Use for icons that are placed inline with font–size–md text", "type": "number", - "value": "{global.font.size.heading.h3}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--icon--size--font--heading--h3", + "name": "pf-t--global--icon--size--font--md", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "md" }, "path": [ "global", "icon", "size", "font", - "heading", - "h3" + "md" ], "references": [ { - "description": "Use as the font size for third level headings.", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1.125rem", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for third level headings.", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.lg}" + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--heading--h3", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h3" + "subitem": "md" }, "path": [ "global", "font", "size", - "heading", - "h3" + "md" ], "references": [ { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.400}" + "value": 16 }, - "name": "pf-t--global--font--size--lg", + "name": "pf-t--global--font--size--300", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "lg" + "subitem": "300" }, "path": [ "global", "font", "size", - "lg" - ], - "references": [ - { - "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 18 - }, - "name": "pf-t--global--font--size--400", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "400" - }, - "path": [ - "global", - "font", - "size", - "400" - ] - } + "300" ] } ] @@ -33482,110 +34177,80 @@ ] } }, - "pf-t--global--icon--size--font--heading--h4": { + "pf-t--global--icon--size--font--lg": { "default": { - "description": "Use for icons that are placed inline with fourth level headings", + "description": "Use for icons that are placed inline with font–size–lg text", "type": "number", - "value": "1rem", + "value": "1.125rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with fourth level headings", + "description": "Use for icons that are placed inline with font–size–lg text", "type": "number", - "value": "{global.font.size.heading.h4}" + "value": "{global.font.size.lg}" }, - "name": "pf-t--global--icon--size--font--heading--h4", + "name": "pf-t--global--icon--size--font--lg", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "lg" }, "path": [ "global", "icon", "size", "font", - "heading", - "h4" + "lg" ], "references": [ { - "description": "Use as the font size for fourth-level headings.", + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.125rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for fourth-level headings.", + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.400}" }, - "name": "pf-t--global--font--size--heading--h4", + "name": "pf-t--global--font--size--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h4" + "subitem": "lg" }, "path": [ "global", "font", "size", - "heading", - "h4" + "lg" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "1.125rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 18 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--400", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "400" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "400" ] } ] @@ -33593,110 +34258,80 @@ ] } }, - "pf-t--global--icon--size--font--heading--h5": { + "pf-t--global--icon--size--font--xl": { "default": { - "description": "Use for icons that are placed inline with fifth level headings", + "description": "Use for icons that are placed inline with font–size–xl text", "type": "number", - "value": "1rem", + "value": "1.25rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with fifth level headings", + "description": "Use for icons that are placed inline with font–size–xl text", "type": "number", - "value": "{global.font.size.heading.h5}" + "value": "{global.font.size.xl}" }, - "name": "pf-t--global--icon--size--font--heading--h5", + "name": "pf-t--global--icon--size--font--xl", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "xl" }, "path": [ "global", "icon", "size", "font", - "heading", - "h5" + "xl" ], "references": [ { - "description": "Use as the font size for fifth level headings.", + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.25rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for fifth level headings.", + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.500}" }, - "name": "pf-t--global--font--size--heading--h5", + "name": "pf-t--global--font--size--xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h5" + "subitem": "xl" }, "path": [ "global", "font", "size", - "heading", - "h5" + "xl" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "1.25rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 20 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--500", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "500" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "500" ] } ] @@ -33704,110 +34339,80 @@ ] } }, - "pf-t--global--icon--size--font--heading--h6": { + "pf-t--global--icon--size--font--2xl": { "default": { - "description": "Use for icons that are placed inline with sixth level headings", + "description": "Use for icons that are placed inline with font–size–2xl text", "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with sixth level headings", + "description": "Use for icons that are placed inline with font–size–2xl text", "type": "number", - "value": "{global.font.size.heading.h6}" + "value": "{global.font.size.2xl}" }, - "name": "pf-t--global--icon--size--font--heading--h6", + "name": "pf-t--global--icon--size--font--2xl", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "2xl" }, "path": [ "global", "icon", "size", "font", - "heading", - "h6" + "2xl" ], "references": [ { - "description": "Use as the font size for sixth level headings.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for sixth level headings.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.600}" }, - "name": "pf-t--global--font--size--heading--h6", + "name": "pf-t--global--font--size--2xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h6" + "subitem": "2xl" }, "path": [ "global", "font", "size", - "heading", - "h6" + "2xl" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "1.5rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 24 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--600", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "600" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "600" ] } ] @@ -33815,108 +34420,80 @@ ] } }, - "pf-t--global--icon--size--font--body--sm": { + "pf-t--global--icon--size--font--3xl": { "default": { - "description": "Use for icons that are placed inline with small body text", + "description": "Use for icons that are placed inline with font–size–3xl text", "type": "number", - "value": "0.75rem", + "value": "1.75rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with small body text", + "description": "Use for icons that are placed inline with font–size–3xl text", "type": "number", - "value": "{global.font.size.body.sm}" + "value": "{global.font.size.3xl}" }, - "name": "pf-t--global--icon--size--font--body--sm", + "name": "pf-t--global--icon--size--font--3xl", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "body" + "state": "3xl" }, "path": [ "global", "icon", "size", "font", - "body", - "sm" + "3xl" ], "references": [ { - "description": "Use for a smaller font size in body sections.", + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "0.75rem", + "value": "1.75rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for a smaller font size in body sections.", + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.xs}" + "value": "{global.font.size.700}" }, - "name": "pf-t--global--font--size--body--sm", + "name": "pf-t--global--font--size--3xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "body", - "state": "sm" + "subitem": "3xl" }, "path": [ "global", "font", "size", - "body", - "sm" + "3xl" ], "references": [ { "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "1.75rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": "{global.font.size.100}" + "value": 28 }, - "name": "pf-t--global--font--size--xs", + "name": "pf-t--global--font--size--700", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xs" + "subitem": "700" }, "path": [ "global", "font", "size", - "xs" - ], - "references": [ - { - "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 12 - }, - "name": "pf-t--global--font--size--100", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "100" - }, - "path": [ - "global", - "font", - "size", - "100" - ] - } + "700" ] } ] @@ -33924,110 +34501,80 @@ ] } }, - "pf-t--global--icon--size--font--body--default": { + "pf-t--global--icon--size--font--4xl": { "default": { - "description": "Use for icons that are placed inline with default body text", + "description": "Use for icons that are placed inline with font–size–3xl text", "type": "number", - "value": "0.875rem", + "value": "2.25rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with default body text", + "description": "Use for icons that are placed inline with font–size–3xl text", "type": "number", - "value": "{global.font.size.body.default}" + "value": "{global.font.size.4xl}" }, - "name": "pf-t--global--icon--size--font--body--default", + "name": "pf-t--global--icon--size--font--4xl", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "body" + "state": "4xl" }, "path": [ "global", "icon", "size", "font", - "body", - "default" + "4xl" ], "references": [ { - "description": "Use as the default font size in body sections.", + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "0.875rem", + "value": "2.25rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default font size in body sections.", + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.sm}" + "value": "{global.font.size.800}" }, - "name": "pf-t--global--font--size--body--default", + "name": "pf-t--global--font--size--4xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "body", - "state": "default" + "subitem": "4xl" }, "path": [ "global", "font", "size", - "body", - "default" + "4xl" ], "references": [ { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "0.875rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "2.25rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.200}" + "value": 36 }, - "name": "pf-t--global--font--size--sm", + "name": "pf-t--global--font--size--800", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "sm" + "subitem": "800" }, "path": [ "global", "font", "size", - "sm" - ], - "references": [ - { - "type": "number", - "value": "0.875rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 14 - }, - "name": "pf-t--global--font--size--200", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "200" - }, - "path": [ - "global", - "font", - "size", - "200" - ] - } + "800" ] } ] @@ -34035,108 +34582,108 @@ ] } }, - "pf-t--global--icon--size--font--body--lg": { + "pf-t--global--icon--size--font--heading--h1": { "default": { - "description": "Use for icons that are placed inline with large body text", + "description": "Use for icons that are placed inline with first level headings", "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with large body text", + "description": "Use for icons that are placed inline with first level headings", "type": "number", - "value": "{global.font.size.body.lg}" + "value": "{global.font.size.heading.h1}" }, - "name": "pf-t--global--icon--size--font--body--lg", + "name": "pf-t--global--icon--size--font--heading--h1", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "body" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "body", - "lg" + "heading", + "h1" ], "references": [ { - "description": "Use for a larger font size in body sections.", + "description": "Use as the font size for first level headings.", "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for a larger font size in body sections.", + "description": "Use as the font size for first level headings.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.2xl}" }, - "name": "pf-t--global--font--size--body--lg", + "name": "pf-t--global--font--size--heading--h1", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "body", - "state": "lg" + "subitem": "heading", + "state": "h1" }, "path": [ "global", "font", "size", - "body", - "lg" + "heading", + "h1" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": "{global.font.size.600}" }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--2xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "2xl" }, "path": [ "global", "font", "size", - "md" + "2xl" ], "references": [ { "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 16 + "value": 24 }, - "name": "pf-t--global--font--size--300", + "name": "pf-t--global--font--size--600", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "300" + "subitem": "600" }, "path": [ "global", "font", "size", - "300" + "600" ] } ] @@ -34146,78 +34693,110 @@ ] } }, - "pf-t--global--icon--size--font--xs": { + "pf-t--global--icon--size--font--heading--h2": { "default": { - "description": "Use for icons that are placed inline with font–size–xs text", + "description": "Use for icons that are placed inline with second level headings", "type": "number", - "value": "0.75rem", + "value": "1.25rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–xs text", + "description": "Use for icons that are placed inline with second level headings", "type": "number", - "value": "{global.font.size.xs}" + "value": "{global.font.size.heading.h2}" }, - "name": "pf-t--global--icon--size--font--xs", + "name": "pf-t--global--icon--size--font--heading--h2", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "xs" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "xs" + "heading", + "h2" ], "references": [ { + "description": "Use as the font size for second level headings.", "type": "number", - "value": "0.75rem", + "value": "1.25rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for second level headings.", "type": "number", - "value": "{global.font.size.100}" + "value": "{global.font.size.xl}" }, - "name": "pf-t--global--font--size--xs", + "name": "pf-t--global--font--size--heading--h2", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xs" + "subitem": "heading", + "state": "h2" }, "path": [ "global", "font", "size", - "xs" + "heading", + "h2" ], "references": [ { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "1.25rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": 12 + "value": "{global.font.size.500}" }, - "name": "pf-t--global--font--size--100", + "name": "pf-t--global--font--size--xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "100" + "subitem": "xl" }, "path": [ "global", "font", "size", - "100" + "xl" + ], + "references": [ + { + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 20 + }, + "name": "pf-t--global--font--size--500", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "500" + }, + "path": [ + "global", + "font", + "size", + "500" + ] + } ] } ] @@ -34225,80 +34804,110 @@ ] } }, - "pf-t--global--icon--size--font--sm": { + "pf-t--global--icon--size--font--heading--h3": { "default": { - "description": "Use for icons that are placed inline with font–size–sm text", + "description": "Use for icons that are placed inline with third level headings", "type": "number", - "value": "0.875rem", + "value": "1.125rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–sm text", + "description": "Use for icons that are placed inline with third level headings", "type": "number", - "value": "{global.font.size.sm}" + "value": "{global.font.size.heading.h3}" }, - "name": "pf-t--global--icon--size--font--sm", + "name": "pf-t--global--icon--size--font--heading--h3", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "sm" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "sm" + "heading", + "h3" ], "references": [ { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "description": "Use as the font size for third level headings.", "type": "number", - "value": "0.875rem", + "value": "1.125rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "description": "Use as the font size for third level headings.", "type": "number", - "value": "{global.font.size.200}" + "value": "{global.font.size.lg}" }, - "name": "pf-t--global--font--size--sm", + "name": "pf-t--global--font--size--heading--h3", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "sm" + "subitem": "heading", + "state": "h3" }, "path": [ "global", "font", "size", - "sm" + "heading", + "h3" ], "references": [ { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "0.875rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "1.125rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": 14 + "value": "{global.font.size.400}" }, - "name": "pf-t--global--font--size--200", + "name": "pf-t--global--font--size--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "200" + "subitem": "lg" }, "path": [ "global", "font", "size", - "200" + "lg" + ], + "references": [ + { + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 18 + }, + "name": "pf-t--global--font--size--400", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "400" + }, + "path": [ + "global", + "font", + "size", + "400" + ] + } ] } ] @@ -34306,80 +34915,110 @@ ] } }, - "pf-t--global--icon--size--font--md": { + "pf-t--global--icon--size--font--heading--h4": { "default": { - "description": "Use for icons that are placed inline with font–size–md text", + "description": "Use for icons that are placed inline with fourth level headings", "type": "number", "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–md text", + "description": "Use for icons that are placed inline with fourth level headings", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.heading.h4}" }, - "name": "pf-t--global--icon--size--font--md", + "name": "pf-t--global--icon--size--font--heading--h4", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "md" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "md" + "heading", + "h4" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use as the font size for fourth-level headings.", "type": "number", "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use as the font size for fourth-level headings.", "type": "number", - "value": "{global.font.size.300}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--heading--h4", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "heading", + "state": "h4" }, "path": [ "global", "font", "size", - "md" + "heading", + "h4" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", "value": "1rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 16 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--300", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "300" + "subitem": "md" }, "path": [ "global", "font", "size", - "300" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] @@ -34387,80 +35026,110 @@ ] } }, - "pf-t--global--icon--size--font--lg": { + "pf-t--global--icon--size--font--heading--h5": { "default": { - "description": "Use for icons that are placed inline with font–size–lg text", + "description": "Use for icons that are placed inline with fifth level headings", "type": "number", - "value": "1.125rem", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–lg text", + "description": "Use for icons that are placed inline with fifth level headings", "type": "number", - "value": "{global.font.size.lg}" + "value": "{global.font.size.heading.h5}" }, - "name": "pf-t--global--icon--size--font--lg", + "name": "pf-t--global--icon--size--font--heading--h5", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "lg" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "lg" + "heading", + "h5" ], "references": [ { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "description": "Use as the font size for fifth level headings.", "type": "number", - "value": "1.125rem", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "description": "Use as the font size for fifth level headings.", "type": "number", - "value": "{global.font.size.400}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--lg", + "name": "pf-t--global--font--size--heading--h5", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "lg" + "subitem": "heading", + "state": "h5" }, "path": [ "global", "font", "size", - "lg" + "heading", + "h5" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "1rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 18 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--400", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "400" + "subitem": "md" }, "path": [ "global", "font", "size", - "400" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] @@ -34468,80 +35137,110 @@ ] } }, - "pf-t--global--icon--size--font--xl": { + "pf-t--global--icon--size--font--heading--h6": { "default": { - "description": "Use for icons that are placed inline with font–size–xl text", + "description": "Use for icons that are placed inline with sixth level headings", "type": "number", - "value": "1.25rem", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–xl text", + "description": "Use for icons that are placed inline with sixth level headings", "type": "number", - "value": "{global.font.size.xl}" + "value": "{global.font.size.heading.h6}" }, - "name": "pf-t--global--icon--size--font--xl", + "name": "pf-t--global--icon--size--font--heading--h6", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "xl" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "xl" + "heading", + "h6" ], "references": [ { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for sixth level headings.", "type": "number", - "value": "1.25rem", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for sixth level headings.", "type": "number", - "value": "{global.font.size.500}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--xl", + "name": "pf-t--global--font--size--heading--h6", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xl" + "subitem": "heading", + "state": "h6" }, "path": [ "global", "font", "size", - "xl" + "heading", + "h6" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1.25rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "1rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 20 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--500", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "500" + "subitem": "md" }, "path": [ "global", "font", "size", - "500" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] @@ -34549,80 +35248,108 @@ ] } }, - "pf-t--global--icon--size--font--2xl": { + "pf-t--global--icon--size--font--body--sm": { "default": { - "description": "Use for icons that are placed inline with font–size–2xl text", + "description": "Use for icons that are placed inline with small body text", "type": "number", - "value": "1.5rem", + "value": "0.75rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–2xl text", + "description": "Use for icons that are placed inline with small body text", "type": "number", - "value": "{global.font.size.2xl}" + "value": "{global.font.size.body.sm}" }, - "name": "pf-t--global--icon--size--font--2xl", + "name": "pf-t--global--icon--size--font--body--sm", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "2xl" + "state": "body" }, "path": [ "global", "icon", "size", "font", - "2xl" + "body", + "sm" ], "references": [ { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "description": "Use for a smaller font size in body sections.", "type": "number", - "value": "1.5rem", + "value": "0.75rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "description": "Use for a smaller font size in body sections.", "type": "number", - "value": "{global.font.size.600}" + "value": "{global.font.size.xs}" }, - "name": "pf-t--global--font--size--2xl", + "name": "pf-t--global--font--size--body--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "2xl" + "subitem": "body", + "state": "sm" }, "path": [ "global", "font", "size", - "2xl" + "body", + "sm" ], "references": [ { "type": "number", - "value": "1.5rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "0.75rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { "type": "number", - "value": 24 + "value": "{global.font.size.100}" }, - "name": "pf-t--global--font--size--600", + "name": "pf-t--global--font--size--xs", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "600" + "subitem": "xs" }, "path": [ "global", "font", "size", - "600" + "xs" + ], + "references": [ + { + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 12 + }, + "name": "pf-t--global--font--size--100", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "100" + }, + "path": [ + "global", + "font", + "size", + "100" + ] + } ] } ] @@ -34630,80 +35357,110 @@ ] } }, - "pf-t--global--icon--size--font--3xl": { + "pf-t--global--icon--size--font--body--default": { "default": { - "description": "Use for icons that are placed inline with font–size–3xl text", + "description": "Use for icons that are placed inline with default body text", "type": "number", - "value": "1.75rem", + "value": "0.875rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–3xl text", + "description": "Use for icons that are placed inline with default body text", "type": "number", - "value": "{global.font.size.3xl}" + "value": "{global.font.size.body.default}" }, - "name": "pf-t--global--icon--size--font--3xl", + "name": "pf-t--global--icon--size--font--body--default", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "3xl" + "state": "body" }, "path": [ "global", "icon", "size", "font", - "3xl" + "body", + "default" ], "references": [ { - "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "description": "Use as the default font size in body sections.", "type": "number", - "value": "1.75rem", + "value": "0.875rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "description": "Use as the default font size in body sections.", "type": "number", - "value": "{global.font.size.700}" + "value": "{global.font.size.sm}" }, - "name": "pf-t--global--font--size--3xl", + "name": "pf-t--global--font--size--body--default", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "3xl" + "subitem": "body", + "state": "default" }, "path": [ "global", "font", "size", - "3xl" + "body", + "default" ], "references": [ { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "1.75rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "0.875rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": 28 + "value": "{global.font.size.200}" }, - "name": "pf-t--global--font--size--700", + "name": "pf-t--global--font--size--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "700" + "subitem": "sm" }, "path": [ "global", "font", "size", - "700" + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 14 + }, + "name": "pf-t--global--font--size--200", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "200" + }, + "path": [ + "global", + "font", + "size", + "200" + ] + } ] } ] @@ -34711,80 +35468,110 @@ ] } }, - "pf-t--global--icon--size--font--4xl": { + "pf-t--global--icon--size--font--body--lg": { "default": { - "description": "Use for icons that are placed inline with font–size–3xl text", + "description": "Use for icons that are placed inline with large body text", "type": "number", - "value": "2.25rem", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–3xl text", + "description": "Use for icons that are placed inline with large body text", "type": "number", - "value": "{global.font.size.4xl}" + "value": "{global.font.size.body.lg}" }, - "name": "pf-t--global--icon--size--font--4xl", + "name": "pf-t--global--icon--size--font--body--lg", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "4xl" + "state": "body" }, "path": [ "global", "icon", "size", "font", - "4xl" + "body", + "lg" ], "references": [ { - "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "description": "Use for a larger font size in body sections.", "type": "number", - "value": "2.25rem", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "description": "Use for a larger font size in body sections.", "type": "number", - "value": "{global.font.size.800}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--4xl", + "name": "pf-t--global--font--size--body--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "4xl" + "subitem": "body", + "state": "lg" }, "path": [ "global", "font", "size", - "4xl" + "body", + "lg" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "2.25rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "1rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 36 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--800", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "800" + "subitem": "md" }, "path": [ "global", "font", "size", - "800" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] @@ -34792,32 +35579,30 @@ ] } }, - "pf-t--global--border--width--divider--default": { + "pf-t--global--border--width--regular": { "default": { - "description": "Use as the default border width for dividers.", + "description": "Use as the default border width for elements.", "type": "number", "value": "1px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default border width for dividers.", + "description": "Use as the default border width for elements.", "type": "number", "value": "{global.border.width.100}" }, - "name": "pf-t--global--border--width--divider--default", + "name": "pf-t--global--border--width--regular", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "divider", - "state": "default" + "subitem": "regular" }, "path": [ "global", "border", "width", - "divider", - "default" + "regular" ], "references": [ { @@ -34846,138 +35631,136 @@ ] } }, - "pf-t--global--border--width--divider--hover": { + "pf-t--global--border--width--strong": { "default": { - "description": "Use as the border width hover state for dividers.", + "description": "Use as a stronger/wider border width for elements.", "type": "number", - "value": "1px", + "value": "2px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the border width hover state for dividers.", + "description": "Use as a stronger/wider border width for elements.", "type": "number", - "value": "{global.border.width.100}" + "value": "{global.border.width.200}" }, - "name": "pf-t--global--border--width--divider--hover", + "name": "pf-t--global--border--width--strong", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "divider", - "state": "hover" + "subitem": "strong" }, "path": [ "global", "border", "width", - "divider", - "hover" + "strong" ], "references": [ { "type": "number", - "value": "1px", + "value": "2px", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 1 + "value": 2 }, - "name": "pf-t--global--border--width--100", + "name": "pf-t--global--border--width--200", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "100" + "subitem": "200" }, "path": [ "global", "border", "width", - "100" + "200" ] } ] } }, - "pf-t--global--border--width--divider--clicked": { + "pf-t--global--border--width--extra-strong": { "default": { - "description": "Use as the border width clicked state for dividers.", + "description": "Use as the strongest/widest border width for elements.", "type": "number", - "value": "1px", + "value": "3px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the border width clicked state for dividers.", + "description": "Use as the strongest/widest border width for elements.", "type": "number", - "value": "{global.border.width.100}" + "value": "{global.border.width.300}" }, - "name": "pf-t--global--border--width--divider--clicked", + "name": "pf-t--global--border--width--extra-strong", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "divider", - "state": "clicked" + "subitem": "extra-strong" }, "path": [ "global", "border", "width", - "divider", - "clicked" + "extra-strong" ], "references": [ { "type": "number", - "value": "1px", + "value": "3px", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 1 + "value": 3 }, - "name": "pf-t--global--border--width--100", + "name": "pf-t--global--border--width--300", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "100" + "subitem": "300" }, "path": [ "global", "border", "width", - "100" + "300" ] } ] } }, - "pf-t--global--border--width--regular": { + "pf-t--global--border--width--divider--default": { "default": { - "description": "Use as the default border width for elements.", + "description": "Use as the default border width for dividers.", "type": "number", "value": "1px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default border width for elements.", + "description": "Use as the default border width for dividers.", "type": "number", "value": "{global.border.width.100}" }, - "name": "pf-t--global--border--width--regular", + "name": "pf-t--global--border--width--divider--default", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "regular" + "subitem": "divider", + "state": "default" }, "path": [ "global", "border", "width", - "regular" + "divider", + "default" ], "references": [ { @@ -35006,105 +35789,109 @@ ] } }, - "pf-t--global--border--width--strong": { + "pf-t--global--border--width--divider--hover": { "default": { - "description": "Use as a stronger/wider border width for elements.", + "description": "Use as the border width hover state for dividers.", "type": "number", - "value": "2px", + "value": "1px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as a stronger/wider border width for elements.", + "description": "Use as the border width hover state for dividers.", "type": "number", - "value": "{global.border.width.200}" + "value": "{global.border.width.100}" }, - "name": "pf-t--global--border--width--strong", + "name": "pf-t--global--border--width--divider--hover", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "strong" + "subitem": "divider", + "state": "hover" }, "path": [ "global", "border", "width", - "strong" + "divider", + "hover" ], "references": [ { "type": "number", - "value": "2px", + "value": "1px", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 2 + "value": 1 }, - "name": "pf-t--global--border--width--200", + "name": "pf-t--global--border--width--100", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "200" + "subitem": "100" }, "path": [ "global", "border", "width", - "200" + "100" ] } ] } }, - "pf-t--global--border--width--extra-strong": { + "pf-t--global--border--width--divider--clicked": { "default": { - "description": "Use as the strongest/widest border width for elements.", + "description": "Use as the border width clicked state for dividers.", "type": "number", - "value": "3px", + "value": "1px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the strongest/widest border width for elements.", + "description": "Use as the border width clicked state for dividers.", "type": "number", - "value": "{global.border.width.300}" + "value": "{global.border.width.100}" }, - "name": "pf-t--global--border--width--extra-strong", + "name": "pf-t--global--border--width--divider--clicked", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "extra-strong" + "subitem": "divider", + "state": "clicked" }, "path": [ "global", "border", "width", - "extra-strong" + "divider", + "clicked" ], "references": [ { "type": "number", - "value": "3px", + "value": "1px", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 3 + "value": 1 }, - "name": "pf-t--global--border--width--300", + "name": "pf-t--global--border--width--100", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "300" + "subitem": "100" }, "path": [ "global", "border", "width", - "300" + "100" ] } ] @@ -35804,117 +36591,85 @@ ] } }, - "pf-t--global--border--width--action--plain--default": { - "default": { - "description": "Use as the default border width for plain actions", - "type": "number", - "value": "0px", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the default border width for plain actions", - "type": "number", - "value": 0 - }, - "name": "pf-t--global--border--width--action--plain--default", - "attributes": { - "category": "global", - "type": "border", - "item": "width", - "subitem": "action", - "state": "plain" - }, - "path": [ - "global", - "border", - "width", - "action", - "plain", - "default" - ] - } - }, - "pf-t--global--border--width--action--plain--hover": { + "pf-t--global--border--width--action--hover": { "default": { - "description": "Use as the border width for plain actions in their hover state", + "description": "Use as the hover state border width for actions like secondary and tertiary buttons", "type": "number", - "value": "1px", + "value": "2px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the border width for plain actions in their hover state", + "description": "Use as the hover state border width for actions like secondary and tertiary buttons", "type": "number", - "value": "{global.border.width.100}" + "value": "{global.border.width.200}" }, - "name": "pf-t--global--border--width--action--plain--hover", + "name": "pf-t--global--border--width--action--hover", "attributes": { "category": "global", "type": "border", "item": "width", "subitem": "action", - "state": "plain" + "state": "hover" }, "path": [ "global", "border", "width", "action", - "plain", "hover" ], "references": [ { "type": "number", - "value": "1px", + "value": "2px", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 1 + "value": 2 }, - "name": "pf-t--global--border--width--100", + "name": "pf-t--global--border--width--200", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "100" + "subitem": "200" }, "path": [ "global", "border", "width", - "100" + "200" ] } ] } }, - "pf-t--global--border--width--action--plain--clicked": { + "pf-t--global--border--width--action--clicked": { "default": { - "description": "Use as the border width for plain actions in their clicked state", + "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", "type": "number", "value": "2px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the border width for plain actions in their clicked state", + "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", "type": "number", "value": "{global.border.width.200}" }, - "name": "pf-t--global--border--width--action--plain--clicked", + "name": "pf-t--global--border--width--action--clicked", "attributes": { "category": "global", "type": "border", "item": "width", "subitem": "action", - "state": "plain" + "state": "clicked" }, "path": [ "global", "border", "width", "action", - "plain", "clicked" ], "references": [ @@ -35944,85 +36699,117 @@ ] } }, - "pf-t--global--border--width--action--hover": { + "pf-t--global--border--width--action--plain--default": { "default": { - "description": "Use as the hover state border width for actions like secondary and tertiary buttons", + "description": "Use as the default border width for plain actions", "type": "number", - "value": "2px", + "value": "0px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the hover state border width for actions like secondary and tertiary buttons", + "description": "Use as the default border width for plain actions", "type": "number", - "value": "{global.border.width.200}" + "value": 0 }, - "name": "pf-t--global--border--width--action--hover", + "name": "pf-t--global--border--width--action--plain--default", "attributes": { "category": "global", "type": "border", "item": "width", "subitem": "action", - "state": "hover" + "state": "plain" + }, + "path": [ + "global", + "border", + "width", + "action", + "plain", + "default" + ] + } + }, + "pf-t--global--border--width--action--plain--hover": { + "default": { + "description": "Use as the border width for plain actions in their hover state", + "type": "number", + "value": "1px", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "isSource": true, + "original": { + "description": "Use as the border width for plain actions in their hover state", + "type": "number", + "value": "{global.border.width.100}" + }, + "name": "pf-t--global--border--width--action--plain--hover", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "action", + "state": "plain" }, "path": [ "global", "border", "width", "action", + "plain", "hover" ], "references": [ { "type": "number", - "value": "2px", + "value": "1px", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 2 + "value": 1 }, - "name": "pf-t--global--border--width--200", + "name": "pf-t--global--border--width--100", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "200" + "subitem": "100" }, "path": [ "global", "border", "width", - "200" + "100" ] } ] } }, - "pf-t--global--border--width--action--clicked": { + "pf-t--global--border--width--action--plain--clicked": { "default": { - "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", + "description": "Use as the border width for plain actions in their clicked state", "type": "number", "value": "2px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", + "description": "Use as the border width for plain actions in their clicked state", "type": "number", "value": "{global.border.width.200}" }, - "name": "pf-t--global--border--width--action--clicked", + "name": "pf-t--global--border--width--action--plain--clicked", "attributes": { "category": "global", "type": "border", "item": "width", "subitem": "action", - "state": "clicked" + "state": "plain" }, "path": [ "global", "border", "width", "action", + "plain", "clicked" ], "references": [ @@ -36526,6 +37313,164 @@ ] } }, + "pf-t--global--border--radius--control--default": { + "default": { + "type": "number", + "value": "6px", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.border.radius.small}" + }, + "name": "pf-t--global--border--radius--control--default", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "control", + "state": "default" + }, + "path": [ + "global", + "border", + "radius", + "control", + "default" + ], + "references": [ + { + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "type": "number", + "value": "6px", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "isSource": true, + "original": { + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "type": "number", + "value": "{global.border.radius.200}" + }, + "name": "pf-t--global--border--radius--small", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "small" + }, + "path": [ + "global", + "border", + "radius", + "small" + ], + "references": [ + { + "type": "number", + "value": "6px", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 6 + }, + "name": "pf-t--global--border--radius--200", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "200" + }, + "path": [ + "global", + "border", + "radius", + "200" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--radius--control--form-element": { + "default": { + "type": "number", + "value": "6px", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.border.radius.small}" + }, + "name": "pf-t--global--border--radius--control--form-element", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "control", + "state": "form-element" + }, + "path": [ + "global", + "border", + "radius", + "control", + "form-element" + ], + "references": [ + { + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "type": "number", + "value": "6px", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "isSource": true, + "original": { + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "type": "number", + "value": "{global.border.radius.200}" + }, + "name": "pf-t--global--border--radius--small", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "small" + }, + "path": [ + "global", + "border", + "radius", + "small" + ], + "references": [ + { + "type": "number", + "value": "6px", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 6 + }, + "name": "pf-t--global--border--radius--200", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "200" + }, + "path": [ + "global", + "border", + "radius", + "200" + ] + } + ] + } + ] + } + }, "pf-t--global--border--radius--glass--default": { "default": { "type": "number", @@ -36605,78 +37550,78 @@ ] } }, - "pf-t--global--border--radius--control--form-element": { + "pf-t--global--border--radius--action--default": { "default": { "type": "number", - "value": "6px", + "value": "999px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { "type": "number", - "value": "{global.border.radius.small}" + "value": "{global.border.radius.pill}" }, - "name": "pf-t--global--border--radius--control--form-element", + "name": "pf-t--global--border--radius--action--default", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "control", - "state": "form-element" + "subitem": "action", + "state": "default" }, "path": [ "global", "border", "radius", - "control", - "form-element" + "action", + "default" ], "references": [ { - "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", "type": "number", - "value": "6px", + "value": "999px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", "type": "number", - "value": "{global.border.radius.200}" + "value": "{global.border.radius.500}" }, - "name": "pf-t--global--border--radius--small", + "name": "pf-t--global--border--radius--pill", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "small" + "subitem": "pill" }, "path": [ "global", "border", "radius", - "small" + "pill" ], "references": [ { "type": "number", - "value": "6px", + "value": "999px", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 6 + "value": 999 }, - "name": "pf-t--global--border--radius--200", + "name": "pf-t--global--border--radius--500", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "200" + "subitem": "500" }, "path": [ "global", "border", "radius", - "200" + "500" ] } ] @@ -36684,78 +37629,79 @@ ] } }, - "pf-t--global--border--radius--action--default": { + "pf-t--global--border--radius--action--plain--default": { "default": { "type": "number", - "value": "999px", + "value": "6px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { "type": "number", - "value": "{global.border.radius.pill}" + "value": "{global.border.radius.small}" }, - "name": "pf-t--global--border--radius--action--default", + "name": "pf-t--global--border--radius--action--plain--default", "attributes": { "category": "global", "type": "border", "item": "radius", "subitem": "action", - "state": "default" + "state": "plain" }, "path": [ "global", "border", "radius", "action", + "plain", "default" ], "references": [ { - "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", "type": "number", - "value": "999px", + "value": "6px", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", "type": "number", - "value": "{global.border.radius.500}" + "value": "{global.border.radius.200}" }, - "name": "pf-t--global--border--radius--pill", + "name": "pf-t--global--border--radius--small", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "pill" + "subitem": "small" }, "path": [ "global", "border", "radius", - "pill" + "small" ], "references": [ { "type": "number", - "value": "999px", + "value": "6px", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 999 + "value": 6 }, - "name": "pf-t--global--border--radius--500", + "name": "pf-t--global--border--radius--200", "attributes": { "category": "global", "type": "border", "item": "radius", - "subitem": "500" + "subitem": "200" }, "path": [ "global", "border", "radius", - "500" + "200" ] } ] @@ -36763,6 +37709,162 @@ ] } }, + "pf-t--global--font--family--body": { + "default": { + "description": "Use to define the font family for body text", + "type": "number", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "isSource": true, + "original": { + "description": "Use to define the font family for body text", + "type": "number", + "value": "{global.font.family.100}" + }, + "name": "pf-t--global--font--family--body", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "body" + }, + "path": [ + "global", + "font", + "family", + "body" + ], + "references": [ + { + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + }, + "name": "pf-t--global--font--family--100", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "100" + }, + "path": [ + "global", + "font", + "family", + "100" + ] + } + ] + } + }, + "pf-t--global--font--family--heading": { + "default": { + "description": "Use to define the font family for heading text", + "type": "number", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "isSource": true, + "original": { + "description": "Use to define the font family for heading text", + "type": "number", + "value": "{global.font.family.200}" + }, + "name": "pf-t--global--font--family--heading", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "heading" + }, + "path": [ + "global", + "font", + "family", + "heading" + ], + "references": [ + { + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + }, + "name": "pf-t--global--font--family--200", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "200" + }, + "path": [ + "global", + "font", + "family", + "200" + ] + } + ] + } + }, + "pf-t--global--font--family--mono": { + "default": { + "description": "Use to define the font family for mono text", + "type": "number", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "isSource": true, + "original": { + "description": "Use to define the font family for mono text", + "type": "number", + "value": "{global.font.family.300}" + }, + "name": "pf-t--global--font--family--mono", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "mono" + }, + "path": [ + "global", + "font", + "family", + "mono" + ], + "references": [ + { + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" + }, + "name": "pf-t--global--font--family--300", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "300" + }, + "path": [ + "global", + "font", + "family", + "300" + ] + } + ] + } + }, "pf-t--global--font--line-height--body": { "default": { "description": "Use to define the line height for body text", @@ -37083,726 +38185,492 @@ ] } }, - "pf-t--global--font--size--body--sm": { + "pf-t--global--font--size--xs": { "default": { - "description": "Use for a smaller font size in body sections.", "type": "number", "value": "0.75rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for a smaller font size in body sections.", "type": "number", - "value": "{global.font.size.xs}" + "value": "{global.font.size.100}" }, - "name": "pf-t--global--font--size--body--sm", + "name": "pf-t--global--font--size--xs", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "body", - "state": "sm" + "subitem": "xs" }, "path": [ "global", "font", "size", - "body", - "sm" + "xs" ], "references": [ { "type": "number", "value": "0.75rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": "{global.font.size.100}" + "value": 12 }, - "name": "pf-t--global--font--size--xs", + "name": "pf-t--global--font--size--100", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xs" + "subitem": "100" }, "path": [ "global", "font", "size", - "xs" - ], - "references": [ - { - "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 12 - }, - "name": "pf-t--global--font--size--100", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "100" - }, - "path": [ - "global", - "font", - "size", - "100" - ] - } + "100" ] } ] } }, - "pf-t--global--font--size--body--default": { + "pf-t--global--font--size--sm": { "default": { - "description": "Use as the default font size in body sections.", + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", "value": "0.875rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the default font size in body sections.", + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.sm}" + "value": "{global.font.size.200}" }, - "name": "pf-t--global--font--size--body--default", + "name": "pf-t--global--font--size--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "body", - "state": "default" + "subitem": "sm" }, "path": [ "global", "font", "size", - "body", - "default" + "sm" ], "references": [ { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", "value": "0.875rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.200}" + "value": 14 }, - "name": "pf-t--global--font--size--sm", + "name": "pf-t--global--font--size--200", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "sm" + "subitem": "200" }, "path": [ "global", "font", "size", - "sm" - ], - "references": [ - { - "type": "number", - "value": "0.875rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 14 - }, - "name": "pf-t--global--font--size--200", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "200" - }, - "path": [ - "global", - "font", - "size", - "200" - ] - } + "200" ] } ] } }, - "pf-t--global--font--size--body--lg": { + "pf-t--global--font--size--md": { "default": { - "description": "Use for a larger font size in body sections.", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use for a larger font size in body sections.", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--body--lg", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "body", - "state": "lg" + "subitem": "md" }, "path": [ "global", "font", "size", - "body", - "lg" + "md" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", "value": "1rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 16 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--300", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "300" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "300" ] } ] } }, - "pf-t--global--font--size--heading--h1": { + "pf-t--global--font--size--lg": { "default": { - "description": "Use as the font size for first level headings.", + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.5rem", + "value": "1.125rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for first level headings.", + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.2xl}" + "value": "{global.font.size.400}" }, - "name": "pf-t--global--font--size--heading--h1", + "name": "pf-t--global--font--size--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h1" + "subitem": "lg" }, "path": [ "global", "font", "size", - "heading", - "h1" + "lg" ], "references": [ { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.5rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "1.125rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.600}" + "value": 18 }, - "name": "pf-t--global--font--size--2xl", + "name": "pf-t--global--font--size--400", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "2xl" + "subitem": "400" }, "path": [ "global", "font", "size", - "2xl" - ], - "references": [ - { - "type": "number", - "value": "1.5rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 24 - }, - "name": "pf-t--global--font--size--600", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "600" - }, - "path": [ - "global", - "font", - "size", - "600" - ] - } + "400" ] } ] } }, - "pf-t--global--font--size--heading--h2": { + "pf-t--global--font--size--xl": { "default": { - "description": "Use as the font size for second level headings.", + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", "value": "1.25rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for second level headings.", + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.xl}" + "value": "{global.font.size.500}" }, - "name": "pf-t--global--font--size--heading--h2", + "name": "pf-t--global--font--size--xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h2" + "subitem": "xl" }, "path": [ "global", "font", "size", - "heading", - "h2" + "xl" ], "references": [ { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", "value": "1.25rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.500}" + "value": 20 }, - "name": "pf-t--global--font--size--xl", + "name": "pf-t--global--font--size--500", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xl" + "subitem": "500" }, "path": [ "global", "font", "size", - "xl" - ], - "references": [ - { - "type": "number", - "value": "1.25rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 20 - }, - "name": "pf-t--global--font--size--500", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "500" - }, - "path": [ - "global", - "font", - "size", - "500" - ] - } + "500" ] } ] } }, - "pf-t--global--font--size--heading--h3": { + "pf-t--global--font--size--2xl": { "default": { - "description": "Use as the font size for third level headings.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.125rem", + "value": "1.5rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for third level headings.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.lg}" + "value": "{global.font.size.600}" }, - "name": "pf-t--global--font--size--heading--h3", + "name": "pf-t--global--font--size--2xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h3" + "subitem": "2xl" }, "path": [ "global", "font", "size", - "heading", - "h3" + "2xl" ], "references": [ { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "1.5rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.400}" + "value": 24 }, - "name": "pf-t--global--font--size--lg", + "name": "pf-t--global--font--size--600", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "lg" + "subitem": "600" }, "path": [ "global", "font", "size", - "lg" - ], - "references": [ - { - "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 18 - }, - "name": "pf-t--global--font--size--400", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "400" - }, - "path": [ - "global", - "font", - "size", - "400" - ] - } + "600" ] } ] } }, - "pf-t--global--font--size--heading--h4": { + "pf-t--global--font--size--3xl": { "default": { - "description": "Use as the font size for fourth-level headings.", + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.75rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for fourth-level headings.", + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.700}" }, - "name": "pf-t--global--font--size--heading--h4", + "name": "pf-t--global--font--size--3xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h4" + "subitem": "3xl" }, "path": [ "global", "font", "size", - "heading", - "h4" + "3xl" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "1.75rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 28 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--700", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "700" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "700" ] } ] } }, - "pf-t--global--font--size--heading--h5": { + "pf-t--global--font--size--4xl": { "default": { - "description": "Use as the font size for fifth level headings.", + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "2.25rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for fifth level headings.", + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.800}" }, - "name": "pf-t--global--font--size--heading--h5", + "name": "pf-t--global--font--size--4xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h5" + "subitem": "4xl" }, "path": [ "global", "font", "size", - "heading", - "h5" + "4xl" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", + "value": "2.25rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 36 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--800", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "800" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "800" ] } ] } }, - "pf-t--global--font--size--heading--h6": { + "pf-t--global--font--size--body--sm": { "default": { - "description": "Use as the font size for sixth level headings.", + "description": "Use for a smaller font size in body sections.", "type": "number", - "value": "1rem", + "value": "0.75rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for sixth level headings.", + "description": "Use for a smaller font size in body sections.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.xs}" }, - "name": "pf-t--global--font--size--heading--h6", + "name": "pf-t--global--font--size--body--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h6" + "subitem": "body", + "state": "sm" }, "path": [ "global", "font", "size", - "heading", - "h6" + "body", + "sm" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "0.75rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": "{global.font.size.100}" }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--xs", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "xs" }, "path": [ "global", "font", "size", - "md" + "xs" ], "references": [ { "type": "number", - "value": "1rem", + "value": "0.75rem", "filePath": "tokens/default/highcontrast/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 16 + "value": 12 }, - "name": "pf-t--global--font--size--300", + "name": "pf-t--global--font--size--100", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "300" + "subitem": "100" }, "path": [ "global", "font", "size", - "300" + "100" ] } ] @@ -37810,571 +38678,649 @@ ] } }, - "pf-t--global--font--size--xs": { - "default": { - "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", - "isSource": true, - "original": { - "type": "number", - "value": "{global.font.size.100}" - }, - "name": "pf-t--global--font--size--xs", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "xs" - }, - "path": [ - "global", - "font", - "size", - "xs" - ], - "references": [ - { - "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 12 - }, - "name": "pf-t--global--font--size--100", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "100" - }, - "path": [ - "global", - "font", - "size", - "100" - ] - } - ] - } - }, - "pf-t--global--font--size--sm": { + "pf-t--global--font--size--body--default": { "default": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "description": "Use as the default font size in body sections.", "type": "number", "value": "0.875rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "description": "Use as the default font size in body sections.", "type": "number", - "value": "{global.font.size.200}" + "value": "{global.font.size.sm}" }, - "name": "pf-t--global--font--size--sm", + "name": "pf-t--global--font--size--body--default", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "sm" + "subitem": "body", + "state": "default" }, "path": [ "global", "font", "size", - "sm" + "body", + "default" ], "references": [ { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", "value": "0.875rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": 14 + "value": "{global.font.size.200}" }, - "name": "pf-t--global--font--size--200", + "name": "pf-t--global--font--size--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "200" + "subitem": "sm" }, "path": [ "global", "font", "size", - "200" + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 14 + }, + "name": "pf-t--global--font--size--200", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "200" + }, + "path": [ + "global", + "font", + "size", + "200" + ] + } ] } ] } }, - "pf-t--global--font--size--md": { + "pf-t--global--font--size--body--lg": { "default": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use for a larger font size in body sections.", "type": "number", "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use for a larger font size in body sections.", "type": "number", - "value": "{global.font.size.300}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--body--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "body", + "state": "lg" }, "path": [ "global", "font", "size", - "md" + "body", + "lg" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", "value": "1rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 16 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--300", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "300" + "subitem": "md" }, "path": [ "global", "font", "size", - "300" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] } }, - "pf-t--global--font--size--lg": { + "pf-t--global--font--size--heading--h1": { "default": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "description": "Use as the font size for first level headings.", "type": "number", - "value": "1.125rem", + "value": "1.5rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "description": "Use as the font size for first level headings.", "type": "number", - "value": "{global.font.size.400}" + "value": "{global.font.size.2xl}" }, - "name": "pf-t--global--font--size--lg", + "name": "pf-t--global--font--size--heading--h1", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "lg" + "subitem": "heading", + "state": "h1" }, "path": [ "global", "font", "size", - "lg" + "heading", + "h1" ], "references": [ { + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "1.5rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": 18 + "value": "{global.font.size.600}" }, - "name": "pf-t--global--font--size--400", + "name": "pf-t--global--font--size--2xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "400" + "subitem": "2xl" }, "path": [ "global", "font", "size", - "400" + "2xl" + ], + "references": [ + { + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 24 + }, + "name": "pf-t--global--font--size--600", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "600" + }, + "path": [ + "global", + "font", + "size", + "600" + ] + } ] } ] } }, - "pf-t--global--font--size--xl": { + "pf-t--global--font--size--heading--h2": { "default": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for second level headings.", "type": "number", "value": "1.25rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for second level headings.", "type": "number", - "value": "{global.font.size.500}" + "value": "{global.font.size.xl}" }, - "name": "pf-t--global--font--size--xl", + "name": "pf-t--global--font--size--heading--h2", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xl" + "subitem": "heading", + "state": "h2" }, "path": [ "global", "font", "size", - "xl" + "heading", + "h2" ], "references": [ { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", "value": "1.25rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": 20 + "value": "{global.font.size.500}" }, - "name": "pf-t--global--font--size--500", + "name": "pf-t--global--font--size--xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "500" + "subitem": "xl" }, "path": [ "global", "font", "size", - "500" + "xl" + ], + "references": [ + { + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 20 + }, + "name": "pf-t--global--font--size--500", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "500" + }, + "path": [ + "global", + "font", + "size", + "500" + ] + } ] } ] } }, - "pf-t--global--font--size--2xl": { + "pf-t--global--font--size--heading--h3": { "default": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for third level headings.", "type": "number", - "value": "1.5rem", + "value": "1.125rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for third level headings.", "type": "number", - "value": "{global.font.size.600}" + "value": "{global.font.size.lg}" }, - "name": "pf-t--global--font--size--2xl", + "name": "pf-t--global--font--size--heading--h3", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "2xl" + "subitem": "heading", + "state": "h3" }, "path": [ "global", "font", "size", - "2xl" + "heading", + "h3" ], "references": [ { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.5rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "1.125rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": 24 + "value": "{global.font.size.400}" }, - "name": "pf-t--global--font--size--600", + "name": "pf-t--global--font--size--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "600" + "subitem": "lg" }, "path": [ "global", "font", "size", - "600" + "lg" + ], + "references": [ + { + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 18 + }, + "name": "pf-t--global--font--size--400", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "400" + }, + "path": [ + "global", + "font", + "size", + "400" + ] + } ] } ] } }, - "pf-t--global--font--size--3xl": { + "pf-t--global--font--size--heading--h4": { "default": { - "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for fourth-level headings.", "type": "number", - "value": "1.75rem", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for fourth-level headings.", "type": "number", - "value": "{global.font.size.700}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--3xl", + "name": "pf-t--global--font--size--heading--h4", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "3xl" + "subitem": "heading", + "state": "h4" }, "path": [ "global", "font", "size", - "3xl" + "heading", + "h4" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1.75rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "1rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 28 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--700", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "700" + "subitem": "md" }, "path": [ "global", "font", "size", - "700" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] } }, - "pf-t--global--font--size--4xl": { + "pf-t--global--font--size--heading--h5": { "default": { - "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for fifth level headings.", "type": "number", - "value": "2.25rem", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for fifth level headings.", "type": "number", - "value": "{global.font.size.800}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--4xl", + "name": "pf-t--global--font--size--heading--h5", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "4xl" + "subitem": "heading", + "state": "h5" }, "path": [ "global", "font", "size", - "4xl" + "heading", + "h5" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "2.25rem", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "value": "1rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 36 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--800", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "800" + "subitem": "md" }, "path": [ "global", "font", "size", - "800" - ] - } - ] - } - }, - "pf-t--global--font--family--body": { - "default": { - "description": "Use to define the font family for body text", - "type": "number", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", - "isSource": true, - "original": { - "description": "Use to define the font family for body text", - "type": "number", - "value": "{global.font.family.100}" - }, - "name": "pf-t--global--font--family--body", - "attributes": { - "category": "global", - "type": "font", - "item": "family", - "subitem": "body" - }, - "path": [ - "global", - "font", - "family", - "body" - ], - "references": [ - { - "type": "string", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "string", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" - }, - "name": "pf-t--global--font--family--100", - "attributes": { - "category": "global", - "type": "font", - "item": "family", - "subitem": "100" - }, - "path": [ - "global", - "font", - "family", - "100" - ] - } - ] - } - }, - "pf-t--global--font--family--heading": { - "default": { - "description": "Use to define the font family for heading text", - "type": "number", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", - "isSource": true, - "original": { - "description": "Use to define the font family for heading text", - "type": "number", - "value": "{global.font.family.200}" - }, - "name": "pf-t--global--font--family--heading", - "attributes": { - "category": "global", - "type": "font", - "item": "family", - "subitem": "heading" - }, - "path": [ - "global", - "font", - "family", - "heading" - ], - "references": [ - { - "type": "string", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "string", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" - }, - "name": "pf-t--global--font--family--200", - "attributes": { - "category": "global", - "type": "font", - "item": "family", - "subitem": "200" - }, - "path": [ - "global", - "font", - "family", - "200" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] } }, - "pf-t--global--font--family--mono": { + "pf-t--global--font--size--heading--h6": { "default": { - "description": "Use to define the font family for mono text", + "description": "Use as the font size for sixth level headings.", "type": "number", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", + "value": "1rem", "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "description": "Use to define the font family for mono text", + "description": "Use as the font size for sixth level headings.", "type": "number", - "value": "{global.font.family.300}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--family--mono", + "name": "pf-t--global--font--size--heading--h6", "attributes": { "category": "global", "type": "font", - "item": "family", - "subitem": "mono" + "item": "size", + "subitem": "heading", + "state": "h6" }, "path": [ "global", "font", - "family", - "mono" + "size", + "heading", + "h6" ], "references": [ { - "type": "string", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", - "filePath": "tokens/default/highcontrast/base.dimension.json", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", "isSource": true, "original": { - "type": "string", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--family--300", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", - "item": "family", - "subitem": "300" + "item": "size", + "subitem": "md" }, "path": [ "global", "font", - "family", - "300" + "size", + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] @@ -49109,6 +50055,81 @@ ] } }, + "pf-t--global--font--family--100": { + "default": { + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + }, + "name": "pf-t--global--font--family--100", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "100" + }, + "path": [ + "global", + "font", + "family", + "100" + ] + } + }, + "pf-t--global--font--family--200": { + "default": { + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + }, + "name": "pf-t--global--font--family--200", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "200" + }, + "path": [ + "global", + "font", + "family", + "200" + ] + } + }, + "pf-t--global--font--family--300": { + "default": { + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", + "filePath": "tokens/default/highcontrast/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" + }, + "name": "pf-t--global--font--family--300", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "300" + }, + "path": [ + "global", + "font", + "family", + "300" + ] + } + }, "pf-t--global--font--line-height--100": { "default": { "type": "number", @@ -49459,81 +50480,6 @@ ] } }, - "pf-t--global--font--family--100": { - "default": { - "type": "string", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "string", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" - }, - "name": "pf-t--global--font--family--100", - "attributes": { - "category": "global", - "type": "font", - "item": "family", - "subitem": "100" - }, - "path": [ - "global", - "font", - "family", - "100" - ] - } - }, - "pf-t--global--font--family--200": { - "default": { - "type": "string", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "string", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" - }, - "name": "pf-t--global--font--family--200", - "attributes": { - "category": "global", - "type": "font", - "item": "family", - "subitem": "200" - }, - "path": [ - "global", - "font", - "family", - "200" - ] - } - }, - "pf-t--global--font--family--300": { - "default": { - "type": "string", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "string", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" - }, - "name": "pf-t--global--font--family--300", - "attributes": { - "category": "global", - "type": "font", - "item": "family", - "subitem": "300" - }, - "path": [ - "global", - "font", - "family", - "300" - ] - } - }, "pf-t--global--z-index--100": { "default": { "type": "number", @@ -50608,652 +51554,45 @@ "motion": {} }, "palette": { - "pf-t--global--border--radius--control--default": { - "redhat": { - "type": "number", - "value": "999px", - "filePath": "tokens/redhat/highcontrast/redhat.dimension.highcontrast.json", - "isSource": true, - "original": { - "type": "number", - "value": "{global.border.radius.pill}" - }, - "name": "pf-t--global--border--radius--control--default", - "attributes": { - "category": "global", - "type": "border", - "item": "radius", - "subitem": "control", - "state": "default" - }, - "path": [ - "global", - "border", - "radius", - "control", - "default" - ], - "references": [ - { - "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", - "type": "number", - "value": "999px", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", - "isSource": true, - "original": { - "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", - "type": "number", - "value": "{global.border.radius.500}" - }, - "name": "pf-t--global--border--radius--pill", - "attributes": { - "category": "global", - "type": "border", - "item": "radius", - "subitem": "pill" - }, - "path": [ - "global", - "border", - "radius", - "pill" - ], - "references": [ - { - "type": "number", - "value": "999px", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 999 - }, - "name": "pf-t--global--border--radius--500", - "attributes": { - "category": "global", - "type": "border", - "item": "radius", - "subitem": "500" - }, - "path": [ - "global", - "border", - "radius", - "500" - ] - } - ] - } - ] - } - }, - "pf-t--global--border--radius--action--plain--default": { - "redhat": { - "type": "number", - "value": "999px", - "filePath": "tokens/redhat/highcontrast/redhat.dimension.highcontrast.json", - "isSource": true, - "original": { - "type": "number", - "value": "{global.border.radius.pill}" - }, - "name": "pf-t--global--border--radius--action--plain--default", - "attributes": { - "category": "global", - "type": "border", - "item": "radius", - "subitem": "action", - "state": "plain" - }, - "path": [ - "global", - "border", - "radius", - "action", - "plain", - "default" - ], - "references": [ - { - "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", - "type": "number", - "value": "999px", - "filePath": "tokens/default/highcontrast/semantic.dimension.highcontrast.json", - "isSource": true, - "original": { - "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", - "type": "number", - "value": "{global.border.radius.500}" - }, - "name": "pf-t--global--border--radius--pill", - "attributes": { - "category": "global", - "type": "border", - "item": "radius", - "subitem": "pill" - }, - "path": [ - "global", - "border", - "radius", - "pill" - ], - "references": [ - { - "type": "number", - "value": "999px", - "filePath": "tokens/default/highcontrast/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 999 - }, - "name": "pf-t--global--border--radius--500", - "attributes": { - "category": "global", - "type": "border", - "item": "radius", - "subitem": "500" - }, - "path": [ - "global", - "border", - "radius", - "500" - ] - } - ] - } - ] - } - }, - "pf-t--global--border--color--brand--accent--default": { - "redhat": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", - "type": "color", - "value": "#000000", - "filePath": "tokens/redhat/highcontrast/redhat.color.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", - "type": "color", - "value": "{global.color.brand.accent.400}" - }, - "name": "pf-t--global--border--color--brand--accent--default", - "attributes": { - "category": "global", - "type": "border", - "item": "color", - "subitem": "brand", - "state": "accent" - }, - "path": [ - "global", - "border", - "color", - "brand", - "accent", - "default" - ], - "references": [ - { - "type": "color", - "value": "#000000", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.black}" - }, - "name": "pf-t--global--color--brand--accent--400", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "400" - }, - "path": [ - "global", - "color", - "brand", - "accent", - "400" - ], - "references": [ - { - "type": "color", - "value": "#000000", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#000000" - }, - "name": "pf-t--color--black", - "attributes": { - "category": "color", - "type": "black" - }, - "path": [ - "color", - "black" - ] - } - ] - } - ] - } - }, - "pf-t--global--border--color--brand--accent--hover": { - "redhat": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", - "type": "color", - "value": "#000000", - "filePath": "tokens/redhat/highcontrast/redhat.color.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", - "type": "color", - "value": "{global.color.brand.accent.400}" - }, - "name": "pf-t--global--border--color--brand--accent--hover", - "attributes": { - "category": "global", - "type": "border", - "item": "color", - "subitem": "brand", - "state": "accent" - }, - "path": [ - "global", - "border", - "color", - "brand", - "accent", - "hover" - ], - "references": [ - { - "type": "color", - "value": "#000000", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.black}" - }, - "name": "pf-t--global--color--brand--accent--400", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "400" - }, - "path": [ - "global", - "color", - "brand", - "accent", - "400" - ], - "references": [ - { - "type": "color", - "value": "#000000", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#000000" - }, - "name": "pf-t--color--black", - "attributes": { - "category": "color", - "type": "black" - }, - "path": [ - "color", - "black" - ] - } - ] - } - ] - } - }, - "pf-t--global--border--color--brand--accent--clicked": { - "redhat": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", - "type": "color", - "value": "#000000", - "filePath": "tokens/redhat/highcontrast/redhat.color.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", - "type": "color", - "value": "{global.color.brand.accent.400}" - }, - "name": "pf-t--global--border--color--brand--accent--clicked", - "attributes": { - "category": "global", - "type": "border", - "item": "color", - "subitem": "brand", - "state": "accent" - }, - "path": [ - "global", - "border", - "color", - "brand", - "accent", - "clicked" - ], - "references": [ - { - "type": "color", - "value": "#000000", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.black}" - }, - "name": "pf-t--global--color--brand--accent--400", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "400" - }, - "path": [ - "global", - "color", - "brand", - "accent", - "400" - ], - "references": [ - { - "type": "color", - "value": "#000000", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#000000" - }, - "name": "pf-t--color--black", - "attributes": { - "category": "color", - "type": "black" - }, - "path": [ - "color", - "black" - ] - } - ] - } - ] - } - }, - "pf-t--global--color--brand--accent--default": { - "redhat": { - "description": "Use this color for elements that you want to reinforce your brand", - "type": "color", - "value": "#000000", - "filePath": "tokens/redhat/highcontrast/redhat.color.highcontrast.json", - "isSource": true, - "original": { - "description": "Use this color for elements that you want to reinforce your brand", - "type": "color", - "value": "{global.color.brand.accent.400}" - }, - "name": "pf-t--global--color--brand--accent--default", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "default" - }, - "path": [ - "global", - "color", - "brand", - "accent", - "default" - ], - "references": [ - { - "type": "color", - "value": "#000000", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.black}" - }, - "name": "pf-t--global--color--brand--accent--400", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "400" - }, - "path": [ - "global", - "color", - "brand", - "accent", - "400" - ], - "references": [ - { - "type": "color", - "value": "#000000", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#000000" - }, - "name": "pf-t--color--black", - "attributes": { - "category": "color", - "type": "black" - }, - "path": [ - "color", - "black" - ] - } - ] - } - ] - } - }, - "pf-t--global--color--brand--accent--hover": { - "redhat": { - "description": "Use as the hover state for elements that have a branded background color", - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/redhat/highcontrast/redhat.color.highcontrast.json", - "isSource": true, - "original": { - "description": "Use as the hover state for elements that have a branded background color", - "type": "color", - "value": "{global.color.brand.accent.300}" - }, - "name": "pf-t--global--color--brand--accent--hover", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "hover" - }, - "path": [ - "global", - "color", - "brand", - "accent", - "hover" - ], - "references": [ - { - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.60}" - }, - "name": "pf-t--global--color--brand--accent--300", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "300" - }, - "path": [ - "global", - "color", - "brand", - "accent", - "300" - ], - "references": [ - { - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#4d4d4d" - }, - "name": "pf-t--color--gray--60", - "attributes": { - "category": "color", - "type": "gray", - "item": "60" - }, - "path": [ - "color", - "gray", - "60" - ] - } - ] - } - ] - } - }, - "pf-t--global--color--brand--accent--clicked": { - "redhat": { - "description": "Use as the clicked state for elements that have a brand background color", + "pf-t--color--white": { + "default": { "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/redhat/highcontrast/redhat.color.highcontrast.json", + "value": "#ffffff", + "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.color.brand.accent.300}" + "value": "#ffffff" }, - "name": "pf-t--global--color--brand--accent--clicked", + "name": "pf-t--color--white", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "clicked" + "category": "color", + "type": "white" }, "path": [ - "global", "color", - "brand", - "accent", - "clicked" - ], - "references": [ - { - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.60}" - }, - "name": "pf-t--global--color--brand--accent--300", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "300" - }, - "path": [ - "global", - "color", - "brand", - "accent", - "300" - ], - "references": [ - { - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#4d4d4d" - }, - "name": "pf-t--color--gray--60", - "attributes": { - "category": "color", - "type": "gray", - "item": "60" - }, - "path": [ - "color", - "gray", - "60" - ] - } - ] - } + "white" ] } }, - "pf-t--color--white": { + "pf-t--color--black": { "default": { "type": "color", - "value": "#ffffff", + "value": "#000000", "filePath": "tokens/default/highcontrast/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffffff" + "value": "#000000" }, - "name": "pf-t--color--white", + "name": "pf-t--color--black", "attributes": { "category": "color", - "type": "white" + "type": "black" }, "path": [ "color", - "white" + "black" ] } }, @@ -51510,27 +51849,6 @@ ] } }, - "pf-t--color--black": { - "default": { - "type": "color", - "value": "#000000", - "filePath": "tokens/default/highcontrast/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#000000" - }, - "name": "pf-t--color--black", - "attributes": { - "category": "color", - "type": "black" - }, - "path": [ - "color", - "black" - ] - } - }, "pf-t--color--blue--10": { "default": { "type": "color", diff --git a/packages/module/patternfly-docs/content/token-layers-redhat.json b/packages/module/patternfly-docs/content/token-layers-redhat.json index cc66144..691d319 100644 --- a/packages/module/patternfly-docs/content/token-layers-redhat.json +++ b/packages/module/patternfly-docs/content/token-layers-redhat.json @@ -1,6 +1,379 @@ { "semantic": { "colors": { + "pf-t--global--icon--color--regular": { + "default": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "name": "pf-t--global--icon--color--regular", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "regular" + }, + "path": [ + "global", + "icon", + "color", + "regular" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/light/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.90}" + }, + "name": "pf-t--global--icon--color--100", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "icon", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--subtle": { + "default": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "{global.icon.color.200}" + }, + "name": "pf-t--global--icon--color--subtle", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "subtle" + }, + "path": [ + "global", + "icon", + "color", + "subtle" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/light/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--icon--color--200", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "200" + }, + "path": [ + "global", + "icon", + "color", + "200" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--inverse": { + "default": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "name": "pf-t--global--icon--color--inverse", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "icon", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/light/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--icon--color--300", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "icon", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--disabled": { + "default": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "{global.color.disabled.200}" + }, + "name": "pf-t--global--icon--color--disabled", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "disabled" + }, + "path": [ + "global", + "icon", + "color", + "disabled" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/light/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.40}" + }, + "name": "pf-t--global--color--disabled--200", + "attributes": { + "category": "global", + "type": "color", + "item": "disabled", + "subitem": "200" + }, + "path": [ + "global", + "color", + "disabled", + "200" + ], + "references": [ + { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + ] + } + ] + } + }, + "pf-t--global--icon--color--on-disabled": { + "default": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "#707070", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "{global.color.disabled.300}" + }, + "name": "pf-t--global--icon--color--on-disabled", + "attributes": { + "category": "global", + "type": "icon", + "item": "color", + "subitem": "on-disabled" + }, + "path": [ + "global", + "icon", + "color", + "on-disabled" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/light/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.50}" + }, + "name": "pf-t--global--color--disabled--300", + "attributes": { + "category": "global", + "type": "color", + "item": "disabled", + "subitem": "300" + }, + "path": [ + "global", + "color", + "disabled", + "300" + ], + "references": [ + { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + ] + } + ] + } + }, "pf-t--global--icon--color--brand--default": { "default": { "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", @@ -317,7 +690,7 @@ "default": { "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "#ee0000", + "value": "#0066cc", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { @@ -345,13 +718,13 @@ { "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#ee0000", - "filePath": "tokens/redhat/light/redhat.color.json", + "value": "#0066cc", + "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.color.brand.accent.100}" + "value": "{global.color.brand.default}" }, "name": "pf-t--global--color--brand--accent--default", "attributes": { @@ -370,49 +743,74 @@ ], "references": [ { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#ee0000", - "filePath": "tokens/default/light/base.json", + "value": "#0066cc", + "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{color.red.50}" + "value": "{global.color.brand.200}" }, - "name": "pf-t--global--color--brand--accent--100", + "name": "pf-t--global--color--brand--default", "attributes": { "category": "global", "type": "color", "item": "brand", - "subitem": "accent", - "state": "100" + "subitem": "default" }, "path": [ "global", "color", "brand", - "accent", - "100" + "default" ], "references": [ { "type": "color", - "value": "#ee0000", - "filePath": "tokens/default/light/palette.color.json", + "value": "#0066cc", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "#ee0000" + "value": "{color.blue.50}" }, - "name": "pf-t--color--red--50", + "name": "pf-t--global--color--brand--200", "attributes": { - "category": "color", - "type": "red", - "item": "50" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "200" }, "path": [ + "global", "color", - "red", - "50" + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } ] } ] @@ -426,7 +824,7 @@ "default": { "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "#a60000", + "value": "#004d99", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { @@ -454,13 +852,13 @@ { "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#a60000", - "filePath": "tokens/redhat/light/redhat.color.json", + "value": "#004d99", + "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.color.brand.accent.200}" + "value": "{global.color.brand.hover}" }, "name": "pf-t--global--color--brand--accent--hover", "attributes": { @@ -479,49 +877,74 @@ ], "references": [ { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#a60000", - "filePath": "tokens/default/light/base.json", + "value": "#004d99", + "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{color.red.60}" + "value": "{global.color.brand.300}" }, - "name": "pf-t--global--color--brand--accent--200", + "name": "pf-t--global--color--brand--hover", "attributes": { "category": "global", "type": "color", "item": "brand", - "subitem": "accent", - "state": "200" + "subitem": "hover" }, "path": [ "global", "color", "brand", - "accent", - "200" + "hover" ], "references": [ { "type": "color", - "value": "#a60000", - "filePath": "tokens/default/light/palette.color.json", + "value": "#004d99", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "#a60000" + "value": "{color.blue.60}" }, - "name": "pf-t--color--red--60", + "name": "pf-t--global--color--brand--300", "attributes": { - "category": "color", - "type": "red", - "item": "60" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" }, "path": [ + "global", "color", - "red", - "60" + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } ] } ] @@ -535,7 +958,7 @@ "default": { "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", "type": "color", - "value": "#a60000", + "value": "#004d99", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { @@ -563,13 +986,13 @@ { "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#a60000", - "filePath": "tokens/redhat/light/redhat.color.json", + "value": "#004d99", + "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.color.brand.accent.200}" + "value": "{global.color.brand.clicked}" }, "name": "pf-t--global--color--brand--accent--clicked", "attributes": { @@ -588,49 +1011,74 @@ ], "references": [ { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#a60000", - "filePath": "tokens/default/light/base.json", + "value": "#004d99", + "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{color.red.60}" + "value": "{global.color.brand.300}" }, - "name": "pf-t--global--color--brand--accent--200", + "name": "pf-t--global--color--brand--clicked", "attributes": { "category": "global", "type": "color", "item": "brand", - "subitem": "accent", - "state": "200" + "subitem": "clicked" }, "path": [ "global", "color", "brand", - "accent", - "200" + "clicked" ], "references": [ { "type": "color", - "value": "#a60000", - "filePath": "tokens/default/light/palette.color.json", + "value": "#004d99", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "#a60000" + "value": "{color.blue.60}" }, - "name": "pf-t--color--red--60", + "name": "pf-t--global--color--brand--300", "attributes": { - "category": "color", - "type": "red", - "item": "60" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" }, "path": [ + "global", "color", - "red", - "60" + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } ] } ] @@ -5605,379 +6053,6 @@ ] } }, - "pf-t--global--icon--color--regular": { - "default": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/light/semantic.json", - "isSource": true, - "original": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", - "type": "color", - "value": "{global.icon.color.100}" - }, - "name": "pf-t--global--icon--color--regular", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "regular" - }, - "path": [ - "global", - "icon", - "color", - "regular" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/light/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.90}" - }, - "name": "pf-t--global--icon--color--100", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "100" - }, - "path": [ - "global", - "icon", - "color", - "100" - ], - "references": [ - { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#1f1f1f" - }, - "name": "pf-t--color--gray--90", - "attributes": { - "category": "color", - "type": "gray", - "item": "90" - }, - "path": [ - "color", - "gray", - "90" - ] - } - ] - } - ] - } - }, - "pf-t--global--icon--color--subtle": { - "default": { - "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", - "type": "color", - "value": "#707070", - "filePath": "tokens/default/light/semantic.json", - "isSource": true, - "original": { - "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", - "type": "color", - "value": "{global.icon.color.200}" - }, - "name": "pf-t--global--icon--color--subtle", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "subtle" - }, - "path": [ - "global", - "icon", - "color", - "subtle" - ], - "references": [ - { - "type": "color", - "value": "#707070", - "filePath": "tokens/default/light/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.50}" - }, - "name": "pf-t--global--icon--color--200", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "200" - }, - "path": [ - "global", - "icon", - "color", - "200" - ], - "references": [ - { - "type": "color", - "value": "#707070", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#707070" - }, - "name": "pf-t--color--gray--50", - "attributes": { - "category": "color", - "type": "gray", - "item": "50" - }, - "path": [ - "color", - "gray", - "50" - ] - } - ] - } - ] - } - }, - "pf-t--global--icon--color--inverse": { - "default": { - "description": "Use as the color for icons that are placed on an inverse background color", - "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/light/semantic.json", - "isSource": true, - "original": { - "description": "Use as the color for icons that are placed on an inverse background color", - "type": "color", - "value": "{global.icon.color.300}" - }, - "name": "pf-t--global--icon--color--inverse", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "inverse" - }, - "path": [ - "global", - "icon", - "color", - "inverse" - ], - "references": [ - { - "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/light/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.white}" - }, - "name": "pf-t--global--icon--color--300", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "300" - }, - "path": [ - "global", - "icon", - "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#ffffff" - }, - "name": "pf-t--color--white", - "attributes": { - "category": "color", - "type": "white" - }, - "path": [ - "color", - "white" - ] - } - ] - } - ] - } - }, - "pf-t--global--icon--color--disabled": { - "default": { - "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/light/semantic.json", - "isSource": true, - "original": { - "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", - "type": "color", - "value": "{global.color.disabled.200}" - }, - "name": "pf-t--global--icon--color--disabled", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "disabled" - }, - "path": [ - "global", - "icon", - "color", - "disabled" - ], - "references": [ - { - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/light/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.40}" - }, - "name": "pf-t--global--color--disabled--200", - "attributes": { - "category": "global", - "type": "color", - "item": "disabled", - "subitem": "200" - }, - "path": [ - "global", - "color", - "disabled", - "200" - ], - "references": [ - { - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#a3a3a3" - }, - "name": "pf-t--color--gray--40", - "attributes": { - "category": "color", - "type": "gray", - "item": "40" - }, - "path": [ - "color", - "gray", - "40" - ] - } - ] - } - ] - } - }, - "pf-t--global--icon--color--on-disabled": { - "default": { - "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", - "type": "color", - "value": "#707070", - "filePath": "tokens/default/light/semantic.json", - "isSource": true, - "original": { - "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", - "type": "color", - "value": "{global.color.disabled.300}" - }, - "name": "pf-t--global--icon--color--on-disabled", - "attributes": { - "category": "global", - "type": "icon", - "item": "color", - "subitem": "on-disabled" - }, - "path": [ - "global", - "icon", - "color", - "on-disabled" - ], - "references": [ - { - "type": "color", - "value": "#707070", - "filePath": "tokens/default/light/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.50}" - }, - "name": "pf-t--global--color--disabled--300", - "attributes": { - "category": "global", - "type": "color", - "item": "disabled", - "subitem": "300" - }, - "path": [ - "global", - "color", - "disabled", - "300" - ], - "references": [ - { - "type": "color", - "value": "#707070", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#707070" - }, - "name": "pf-t--color--gray--50", - "attributes": { - "category": "color", - "type": "gray", - "item": "50" - }, - "path": [ - "color", - "gray", - "50" - ] - } - ] - } - ] - } - }, "pf-t--global--icon--color--severity--undefined--default": { "default": { "description": "Use as the default color for severity icons that don’t communicate a specific severity level for issues.", @@ -9293,76 +9368,101 @@ ] } }, - "pf-t--global--border--color--control--default": { + "pf-t--global--border--color--high-contrast": { "default": { - "description": "Use as the default border for control elements like form inputs, menu toggles, and clickable cards", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#8c8c8c", + "value": "rgba(255, 255, 255, 0.0000)", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the default border for control elements like form inputs, menu toggles, and clickable cards", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.border.color.300}" + "value": "rgba(255, 255, 255, 0.0000)" }, - "name": "pf-t--global--border--color--control--default", + "name": "pf-t--global--border--color--high-contrast", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "control", - "state": "default" + "subitem": "high-contrast" + }, + "path": [ + "global", + "border", + "color", + "high-contrast" + ] + } + }, + "pf-t--global--border--color--default": { + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.border.color.50}" + }, + "name": "pf-t--global--border--color--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "default" }, "path": [ "global", "border", "color", - "control", "default" ], "references": [ { "type": "color", - "value": "#8c8c8c", + "value": "#e0e0e0", "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.45}" + "value": "{color.gray.20}" }, - "name": "pf-t--global--border--color--300", + "name": "pf-t--global--border--color--50", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "300" + "subitem": "50" }, "path": [ "global", "border", "color", - "300" + "50" ], "references": [ { "type": "color", - "value": "#8c8c8c", + "value": "#e0e0e0", "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#8c8c8c" + "value": "#e0e0e0" }, - "name": "pf-t--color--gray--45", + "name": "pf-t--color--gray--20", "attributes": { "category": "color", "type": "gray", - "item": "45" + "item": "20" }, "path": [ "color", "gray", - "45" + "20" ] } ] @@ -9370,76 +9470,74 @@ ] } }, - "pf-t--global--border--color--control--read-only": { + "pf-t--global--border--color--hover": { "default": { - "description": "Use as the read-only border for control elements like form inputs, menu toggles.", + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#c7c7c7", + "value": "#4394e5", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the read-only border for control elements like form inputs, menu toggles.", + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.border.color.100}" + "value": "{global.color.brand.100}" }, - "name": "pf-t--global--border--color--control--read-only", + "name": "pf-t--global--border--color--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "control", - "state": "read-only" + "subitem": "hover" }, "path": [ "global", "border", "color", - "control", - "read-only" + "hover" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#4394e5", "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.30}" + "value": "{color.blue.40}" }, - "name": "pf-t--global--border--color--100", + "name": "pf-t--global--color--brand--100", "attributes": { "category": "global", - "type": "border", - "item": "color", + "type": "color", + "item": "brand", "subitem": "100" }, "path": [ "global", - "border", "color", + "brand", "100" ], "references": [ { "type": "color", - "value": "#c7c7c7", + "value": "#4394e5", "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#c7c7c7" + "value": "#4394e5" }, - "name": "pf-t--color--gray--30", + "name": "pf-t--color--blue--40", "attributes": { "category": "color", - "type": "gray", - "item": "30" + "type": "blue", + "item": "40" }, "path": [ "color", - "gray", - "30" + "blue", + "40" ] } ] @@ -9447,103 +9545,74 @@ ] } }, - "pf-t--global--border--color--brand--default": { + "pf-t--global--border--color--clicked": { "default": { - "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", "value": "#0066cc", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.default}" + "value": "{global.color.brand.200}" }, - "name": "pf-t--global--border--color--brand--default", + "name": "pf-t--global--border--color--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "default" + "subitem": "clicked" }, "path": [ "global", "border", "color", - "brand", - "default" + "clicked" ], "references": [ { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", "value": "#0066cc", - "filePath": "tokens/default/light/semantic.json", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.color.brand.200}" + "value": "{color.blue.50}" }, - "name": "pf-t--global--color--brand--default", + "name": "pf-t--global--color--brand--200", "attributes": { "category": "global", "type": "color", "item": "brand", - "subitem": "default" + "subitem": "200" }, "path": [ "global", "color", "brand", - "default" + "200" ], "references": [ { "type": "color", "value": "#0066cc", - "filePath": "tokens/default/light/base.json", + "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.50}" + "value": "#0066cc" }, - "name": "pf-t--global--color--brand--200", + "name": "pf-t--color--blue--50", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "200" + "category": "color", + "type": "blue", + "item": "50" }, "path": [ - "global", "color", - "brand", - "200" - ], - "references": [ - { - "type": "color", - "value": "#0066cc", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#0066cc" - }, - "name": "pf-t--color--blue--50", - "attributes": { - "category": "color", - "type": "blue", - "item": "50" - }, - "path": [ - "color", - "blue", - "50" - ] - } + "blue", + "50" ] } ] @@ -9551,103 +9620,74 @@ ] } }, - "pf-t--global--border--color--brand--hover": { + "pf-t--global--border--color--subtle": { "default": { - "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#004d99", + "value": "#e0e0e0", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.hover}" + "value": "{global.border.color.50}" }, - "name": "pf-t--global--border--color--brand--hover", + "name": "pf-t--global--border--color--subtle", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "hover" + "subitem": "subtle" }, "path": [ "global", "border", "color", - "brand", - "hover" + "subtle" ], "references": [ { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#004d99", - "filePath": "tokens/default/light/semantic.json", + "value": "#e0e0e0", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.color.brand.300}" + "value": "{color.gray.20}" }, - "name": "pf-t--global--color--brand--hover", + "name": "pf-t--global--border--color--50", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "hover" + "type": "border", + "item": "color", + "subitem": "50" }, "path": [ "global", + "border", "color", - "brand", - "hover" + "50" ], "references": [ { "type": "color", - "value": "#004d99", - "filePath": "tokens/default/light/base.json", + "value": "#e0e0e0", + "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.60}" + "value": "#e0e0e0" }, - "name": "pf-t--global--color--brand--300", + "name": "pf-t--color--gray--20", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "300" + "category": "color", + "type": "gray", + "item": "20" }, "path": [ - "global", "color", - "brand", - "300" - ], - "references": [ - { - "type": "color", - "value": "#004d99", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#004d99" - }, - "name": "pf-t--color--blue--60", - "attributes": { - "category": "color", - "type": "blue", - "item": "60" - }, - "path": [ - "color", - "blue", - "60" - ] - } + "gray", + "20" ] } ] @@ -9655,103 +9695,74 @@ ] } }, - "pf-t--global--border--color--brand--clicked": { + "pf-t--global--border--color--disabled": { "default": { - "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "#004d99", + "value": "#a3a3a3", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", "type": "color", - "value": "{global.color.brand.clicked}" + "value": "{global.color.disabled.200}" }, - "name": "pf-t--global--border--color--brand--clicked", + "name": "pf-t--global--border--color--disabled", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "clicked" + "subitem": "disabled" }, "path": [ "global", "border", "color", - "brand", - "clicked" + "disabled" ], "references": [ { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#004d99", - "filePath": "tokens/default/light/semantic.json", + "value": "#a3a3a3", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.color.brand.300}" + "value": "{color.gray.40}" }, - "name": "pf-t--global--color--brand--clicked", + "name": "pf-t--global--color--disabled--200", "attributes": { "category": "global", "type": "color", - "item": "brand", - "subitem": "clicked" + "item": "disabled", + "subitem": "200" }, "path": [ "global", "color", - "brand", - "clicked" + "disabled", + "200" ], "references": [ { "type": "color", - "value": "#004d99", - "filePath": "tokens/default/light/base.json", + "value": "#a3a3a3", + "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.60}" + "value": "#a3a3a3" }, - "name": "pf-t--global--color--brand--300", + "name": "pf-t--color--gray--40", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "300" + "category": "color", + "type": "gray", + "item": "40" }, "path": [ - "global", "color", - "brand", - "300" - ], - "references": [ - { - "type": "color", - "value": "#004d99", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#004d99" - }, - "name": "pf-t--color--blue--60", - "attributes": { - "category": "color", - "type": "blue", - "item": "60" - }, - "path": [ - "color", - "blue", - "60" - ] - } + "gray", + "40" ] } ] @@ -9759,79 +9770,101 @@ ] } }, - "pf-t--global--border--color--brand--subtle--default": { + "pf-t--global--border--color--alt": { "default": { - "description": "Use as the default border color for any subtle brand element like toggle groups", + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", "type": "color", - "value": "#b9dafc", + "value": "#ffffff", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the default border color for any subtle brand element like toggle groups", + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", "type": "color", - "value": "{global.color.brand.subtle.200}" + "value": "{global.background.color.primary.default}" }, - "name": "pf-t--global--border--color--brand--subtle--default", + "name": "pf-t--global--border--color--alt", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "subtle" + "subitem": "alt" }, "path": [ "global", "border", "color", - "brand", - "subtle", - "default" + "alt" ], "references": [ { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/light/base.json", + "value": "#ffffff", + "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { + "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", "type": "color", - "value": "{color.blue.20}" + "value": "{global.background.color.100}" }, - "name": "pf-t--global--color--brand--subtle--200", + "name": "pf-t--global--background--color--primary--default", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "subtle", - "state": "200" + "type": "background", + "item": "color", + "subitem": "primary", + "state": "default" }, "path": [ "global", + "background", "color", - "brand", - "subtle", - "200" + "primary", + "default" ], "references": [ { "type": "color", - "value": "#b9dafc", - "filePath": "tokens/default/light/palette.color.json", + "value": "#ffffff", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "#b9dafc" + "value": "{color.white}" }, - "name": "pf-t--color--blue--20", + "name": "pf-t--global--background--color--100", "attributes": { - "category": "color", - "type": "blue", - "item": "20" + "category": "global", + "type": "background", + "item": "color", + "subitem": "100" }, "path": [ + "global", + "background", "color", - "blue", - "20" + "100" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } ] } ] @@ -9839,79 +9872,74 @@ ] } }, - "pf-t--global--border--color--brand--subtle--hover": { + "pf-t--global--border--color--on-secondary": { "default": { - "description": "Use as the hover border color for any subtle brand element like toggle groups", + "description": "Use on borders/dividers that are placed on a secondary bkg color.", "type": "color", - "value": "#4394e5", + "value": "#8c8c8c", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the hover border color for any subtle brand element like toggle groups", + "description": "Use on borders/dividers that are placed on a secondary bkg color.", "type": "color", - "value": "{global.color.brand.subtle.300}" + "value": "{global.border.color.300}" }, - "name": "pf-t--global--border--color--brand--subtle--hover", + "name": "pf-t--global--border--color--on-secondary", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "subtle" + "subitem": "on-secondary" }, "path": [ "global", "border", "color", - "brand", - "subtle", - "hover" + "on-secondary" ], "references": [ { "type": "color", - "value": "#4394e5", + "value": "#8c8c8c", "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.40}" + "value": "{color.gray.45}" }, - "name": "pf-t--global--color--brand--subtle--300", + "name": "pf-t--global--border--color--300", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "subtle", - "state": "300" + "type": "border", + "item": "color", + "subitem": "300" }, "path": [ "global", + "border", "color", - "brand", - "subtle", "300" ], "references": [ { "type": "color", - "value": "#4394e5", + "value": "#8c8c8c", "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#4394e5" + "value": "#8c8c8c" }, - "name": "pf-t--color--blue--40", + "name": "pf-t--color--gray--45", "attributes": { "category": "color", - "type": "blue", - "item": "40" + "type": "gray", + "item": "45" }, "path": [ "color", - "blue", - "40" + "gray", + "45" ] } ] @@ -9919,79 +9947,74 @@ ] } }, - "pf-t--global--border--color--brand--subtle--clicked": { + "pf-t--global--border--color--control--default": { "default": { - "description": "Use as the clicked border color for any subtle brand element like toggle groups", "type": "color", - "value": "#4394e5", + "value": "#8c8c8c", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the clicked border color for any subtle brand element like toggle groups", "type": "color", - "value": "{global.color.brand.subtle.300}" + "value": "{global.border.color.300}" }, - "name": "pf-t--global--border--color--brand--subtle--clicked", + "name": "pf-t--global--border--color--control--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "brand", - "state": "subtle" + "subitem": "control", + "state": "default" }, "path": [ "global", "border", "color", - "brand", - "subtle", - "clicked" + "control", + "default" ], "references": [ { "type": "color", - "value": "#4394e5", + "value": "#8c8c8c", "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.40}" + "value": "{color.gray.45}" }, - "name": "pf-t--global--color--brand--subtle--300", + "name": "pf-t--global--border--color--300", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "subtle", - "state": "300" + "type": "border", + "item": "color", + "subitem": "300" }, "path": [ "global", + "border", "color", - "brand", - "subtle", "300" ], "references": [ { "type": "color", - "value": "#4394e5", + "value": "#8c8c8c", "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#4394e5" + "value": "#8c8c8c" }, - "name": "pf-t--color--blue--40", + "name": "pf-t--color--gray--45", "attributes": { "category": "color", - "type": "blue", - "item": "40" + "type": "gray", + "item": "45" }, "path": [ "color", - "blue", - "40" + "gray", + "45" ] } ] @@ -9999,106 +10022,176 @@ ] } }, - "pf-t--global--border--color--status--success--default": { + "pf-t--global--border--color--control--read-only": { "default": { - "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", "type": "color", - "value": "#3d7317", + "value": "#c7c7c7", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.success.default}" + "value": "{global.border.color.100}" }, - "name": "pf-t--global--border--color--status--success--default", + "name": "pf-t--global--border--color--control--read-only", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "control", + "state": "read-only" }, "path": [ "global", "border", "color", - "status", - "success", + "control", + "read-only" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/light/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.gray.30}" + }, + "name": "pf-t--global--border--color--100", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "100" + }, + "path": [ + "global", + "border", + "color", + "100" + ], + "references": [ + { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--brand--default": { + "default": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", + "type": "color", + "value": "{global.color.brand.default}" + }, + "name": "pf-t--global--border--color--brand--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "brand", + "state": "default" + }, + "path": [ + "global", + "border", + "color", + "brand", "default" ], "references": [ { - "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#3d7317", + "value": "#0066cc", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.color.status.success.100}" + "value": "{global.color.brand.200}" }, - "name": "pf-t--global--color--status--success--default", + "name": "pf-t--global--color--brand--default", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "default" + "item": "brand", + "subitem": "default" }, "path": [ "global", "color", - "status", - "success", + "brand", "default" ], "references": [ { "type": "color", - "value": "#3d7317", + "value": "#0066cc", "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.60}" + "value": "{color.blue.50}" }, - "name": "pf-t--global--color--status--success--100", + "name": "pf-t--global--color--brand--200", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "100" + "item": "brand", + "subitem": "200" }, "path": [ "global", "color", - "status", - "success", - "100" + "brand", + "200" ], "references": [ { "type": "color", - "value": "#3d7317", + "value": "#0066cc", "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#3d7317" + "value": "#0066cc" }, - "name": "pf-t--color--green--60", + "name": "pf-t--color--blue--50", "attributes": { "category": "color", - "type": "green", - "item": "60" + "type": "blue", + "item": "50" }, "path": [ "color", - "green", - "60" + "blue", + "50" ] } ] @@ -10108,106 +10201,101 @@ ] } }, - "pf-t--global--border--color--status--success--hover": { + "pf-t--global--border--color--brand--hover": { "default": { - "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#204d00", + "value": "#004d99", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.success.hover}" + "value": "{global.color.brand.hover}" }, - "name": "pf-t--global--border--color--status--success--hover", + "name": "pf-t--global--border--color--brand--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "brand", + "state": "hover" }, "path": [ "global", "border", "color", - "status", - "success", + "brand", "hover" ], "references": [ { - "description": "Use as the hover state for any element that conveys a success status.", + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#204d00", + "value": "#004d99", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys a success status.", + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.color.status.success.200}" + "value": "{global.color.brand.300}" }, - "name": "pf-t--global--color--status--success--hover", + "name": "pf-t--global--color--brand--hover", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "hover" + "item": "brand", + "subitem": "hover" }, "path": [ "global", "color", - "status", - "success", + "brand", "hover" ], "references": [ { "type": "color", - "value": "#204d00", + "value": "#004d99", "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.70}" + "value": "{color.blue.60}" }, - "name": "pf-t--global--color--status--success--200", + "name": "pf-t--global--color--brand--300", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "200" + "item": "brand", + "subitem": "300" }, "path": [ "global", "color", - "status", - "success", - "200" + "brand", + "300" ], "references": [ { "type": "color", - "value": "#204d00", + "value": "#004d99", "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#204d00" + "value": "#004d99" }, - "name": "pf-t--color--green--70", + "name": "pf-t--color--blue--60", "attributes": { "category": "color", - "type": "green", - "item": "70" + "type": "blue", + "item": "60" }, "path": [ "color", - "green", - "70" + "blue", + "60" ] } ] @@ -10217,106 +10305,101 @@ ] } }, - "pf-t--global--border--color--status--success--clicked": { + "pf-t--global--border--color--brand--clicked": { "default": { - "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#204d00", + "value": "#004d99", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.success.clicked}" + "value": "{global.color.brand.clicked}" }, - "name": "pf-t--global--border--color--status--success--clicked", + "name": "pf-t--global--border--color--brand--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "success" + "subitem": "brand", + "state": "clicked" }, "path": [ "global", "border", "color", - "status", - "success", + "brand", "clicked" ], "references": [ { - "description": "Use as the clicked state for any element that conveys a success status.", + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#204d00", + "value": "#004d99", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys a success status.", + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.color.status.success.200}" + "value": "{global.color.brand.300}" }, - "name": "pf-t--global--color--status--success--clicked", + "name": "pf-t--global--color--brand--clicked", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "clicked" + "item": "brand", + "subitem": "clicked" }, "path": [ "global", "color", - "status", - "success", + "brand", "clicked" ], "references": [ { "type": "color", - "value": "#204d00", + "value": "#004d99", "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.green.70}" + "value": "{color.blue.60}" }, - "name": "pf-t--global--color--status--success--200", + "name": "pf-t--global--color--brand--300", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "success", - "state": "200" + "item": "brand", + "subitem": "300" }, "path": [ "global", "color", - "status", - "success", - "200" + "brand", + "300" ], "references": [ { "type": "color", - "value": "#204d00", + "value": "#004d99", "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#204d00" + "value": "#004d99" }, - "name": "pf-t--color--green--70", + "name": "pf-t--color--blue--60", "attributes": { "category": "color", - "type": "green", - "item": "70" + "type": "blue", + "item": "60" }, "path": [ "color", - "green", - "70" + "blue", + "60" ] } ] @@ -10326,79 +10409,133 @@ ] } }, - "pf-t--global--border--color--status--warning--default": { + "pf-t--global--border--color--brand--accent--default": { "default": { - "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#dca614", + "value": "#0066cc", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.warning.200}" + "value": "{global.color.brand.accent.default}" }, - "name": "pf-t--global--border--color--status--warning--default", + "name": "pf-t--global--border--color--brand--accent--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "brand", + "state": "accent" }, "path": [ "global", "border", "color", - "status", - "warning", + "brand", + "accent", "default" ], "references": [ { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#dca614", - "filePath": "tokens/default/light/base.json", + "value": "#0066cc", + "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{color.yellow.40}" + "value": "{global.color.brand.default}" }, - "name": "pf-t--global--color--status--warning--200", + "name": "pf-t--global--color--brand--accent--default", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "warning", - "state": "200" + "item": "brand", + "subitem": "accent", + "state": "default" }, "path": [ "global", "color", - "status", - "warning", - "200" + "brand", + "accent", + "default" ], "references": [ { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#dca614", - "filePath": "tokens/default/light/palette.color.json", + "value": "#0066cc", + "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { + "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#dca614" + "value": "{global.color.brand.200}" }, - "name": "pf-t--color--yellow--40", + "name": "pf-t--global--color--brand--default", "attributes": { - "category": "color", - "type": "yellow", - "item": "40" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "default" }, "path": [ + "global", "color", - "yellow", - "40" + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/light/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.50}" + }, + "name": "pf-t--global--color--brand--200", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "200" + }, + "path": [ + "global", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + ] + } ] } ] @@ -10406,79 +10543,133 @@ ] } }, - "pf-t--global--border--color--status--warning--hover": { + "pf-t--global--border--color--brand--accent--hover": { "default": { - "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#b98412", + "value": "#004d99", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.warning.300}" + "value": "{global.color.brand.accent.hover}" }, - "name": "pf-t--global--border--color--status--warning--hover", + "name": "pf-t--global--border--color--brand--accent--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "brand", + "state": "accent" }, "path": [ "global", "border", "color", - "status", - "warning", + "brand", + "accent", "hover" ], "references": [ { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#b98412", - "filePath": "tokens/default/light/base.json", + "value": "#004d99", + "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{color.yellow.50}" + "value": "{global.color.brand.hover}" }, - "name": "pf-t--global--color--status--warning--300", + "name": "pf-t--global--color--brand--accent--hover", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "warning", - "state": "300" + "item": "brand", + "subitem": "accent", + "state": "hover" }, "path": [ "global", "color", - "status", - "warning", - "300" + "brand", + "accent", + "hover" ], "references": [ { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#b98412", - "filePath": "tokens/default/light/palette.color.json", + "value": "#004d99", + "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { + "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#b98412" + "value": "{global.color.brand.300}" }, - "name": "pf-t--color--yellow--50", + "name": "pf-t--global--color--brand--hover", "attributes": { - "category": "color", - "type": "yellow", - "item": "50" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" }, "path": [ + "global", "color", - "yellow", - "50" + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--brand--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" + }, + "path": [ + "global", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } ] } ] @@ -10486,188 +10677,213 @@ ] } }, - "pf-t--global--border--color--status--warning--clicked": { + "pf-t--global--border--color--brand--accent--clicked": { "default": { - "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#b98412", + "value": "#004d99", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.warning.300}" + "value": "{global.color.brand.accent.clicked}" }, - "name": "pf-t--global--border--color--status--warning--clicked", + "name": "pf-t--global--border--color--brand--accent--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "warning" + "subitem": "brand", + "state": "accent" }, "path": [ "global", "border", "color", - "status", - "warning", + "brand", + "accent", "clicked" ], "references": [ { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#b98412", - "filePath": "tokens/default/light/base.json", + "value": "#004d99", + "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{color.yellow.50}" + "value": "{global.color.brand.clicked}" }, - "name": "pf-t--global--color--status--warning--300", + "name": "pf-t--global--color--brand--accent--clicked", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "warning", - "state": "300" + "item": "brand", + "subitem": "accent", + "state": "clicked" }, "path": [ "global", "color", - "status", - "warning", - "300" + "brand", + "accent", + "clicked" ], "references": [ { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#b98412", - "filePath": "tokens/default/light/palette.color.json", + "value": "#004d99", + "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { + "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#b98412" + "value": "{global.color.brand.300}" }, - "name": "pf-t--color--yellow--50", + "name": "pf-t--global--color--brand--clicked", "attributes": { - "category": "color", - "type": "yellow", - "item": "50" + "category": "global", + "type": "color", + "item": "brand", + "subitem": "clicked" }, "path": [ + "global", "color", - "yellow", - "50" - ] + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--brand--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" + }, + "path": [ + "global", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] } ] } ] } }, - "pf-t--global--border--color--status--danger--default": { + "pf-t--global--border--color--brand--subtle--default": { "default": { - "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#b1380b", + "value": "#b9dafc", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.danger.default}" + "value": "{global.color.brand.subtle.200}" }, - "name": "pf-t--global--border--color--status--danger--default", + "name": "pf-t--global--border--color--brand--subtle--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "danger" + "subitem": "brand", + "state": "subtle" }, "path": [ "global", "border", "color", - "status", - "danger", + "brand", + "subtle", "default" ], "references": [ { - "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "#b1380b", - "filePath": "tokens/default/light/semantic.json", + "value": "#b9dafc", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "{global.color.status.danger.100}" + "value": "{color.blue.20}" }, - "name": "pf-t--global--color--status--danger--default", + "name": "pf-t--global--color--brand--subtle--200", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "danger", - "state": "default" + "item": "brand", + "subitem": "subtle", + "state": "200" }, "path": [ "global", "color", - "status", - "danger", - "default" + "brand", + "subtle", + "200" ], "references": [ { "type": "color", - "value": "#b1380b", - "filePath": "tokens/default/light/base.json", + "value": "#b9dafc", + "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.60}" + "value": "#b9dafc" }, - "name": "pf-t--global--color--status--danger--100", + "name": "pf-t--color--blue--20", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "danger", - "state": "100" + "category": "color", + "type": "blue", + "item": "20" }, "path": [ - "global", "color", - "status", - "danger", - "100" - ], - "references": [ - { - "type": "color", - "value": "#b1380b", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#b1380b" - }, - "name": "pf-t--color--red-orange--60", - "attributes": { - "category": "color", - "type": "red-orange", - "item": "60" - }, - "path": [ - "color", - "red-orange", - "60" - ] - } + "blue", + "20" ] } ] @@ -10675,108 +10891,79 @@ ] } }, - "pf-t--global--border--color--status--danger--hover": { + "pf-t--global--border--color--brand--subtle--hover": { "default": { - "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#731f00", + "value": "#4394e5", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.danger.hover}" + "value": "{global.color.brand.subtle.300}" }, - "name": "pf-t--global--border--color--status--danger--hover", + "name": "pf-t--global--border--color--brand--subtle--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "danger" + "subitem": "brand", + "state": "subtle" }, "path": [ "global", "border", "color", - "status", - "danger", + "brand", + "subtle", "hover" ], "references": [ { - "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "#731f00", - "filePath": "tokens/default/light/semantic.json", + "value": "#4394e5", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "{global.color.status.danger.200}" + "value": "{color.blue.40}" }, - "name": "pf-t--global--color--status--danger--hover", + "name": "pf-t--global--color--brand--subtle--300", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "danger", - "state": "hover" + "item": "brand", + "subitem": "subtle", + "state": "300" }, "path": [ "global", "color", - "status", - "danger", - "hover" + "brand", + "subtle", + "300" ], "references": [ { "type": "color", - "value": "#731f00", - "filePath": "tokens/default/light/base.json", + "value": "#4394e5", + "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.70}" + "value": "#4394e5" }, - "name": "pf-t--global--color--status--danger--200", + "name": "pf-t--color--blue--40", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "danger", - "state": "200" + "category": "color", + "type": "blue", + "item": "40" }, "path": [ - "global", "color", - "status", - "danger", - "200" - ], - "references": [ - { - "type": "color", - "value": "#731f00", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#731f00" - }, - "name": "pf-t--color--red-orange--70", - "attributes": { - "category": "color", - "type": "red-orange", - "item": "70" - }, - "path": [ - "color", - "red-orange", - "70" - ] - } + "blue", + "40" ] } ] @@ -10784,108 +10971,79 @@ ] } }, - "pf-t--global--border--color--status--danger--clicked": { + "pf-t--global--border--color--brand--subtle--clicked": { "default": { - "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "#731f00", + "value": "#4394e5", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", - "value": "{global.color.status.danger.clicked}" + "value": "{global.color.brand.subtle.300}" }, - "name": "pf-t--global--border--color--status--danger--clicked", + "name": "pf-t--global--border--color--brand--subtle--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "status", - "state": "danger" + "subitem": "brand", + "state": "subtle" }, "path": [ "global", "border", "color", - "status", - "danger", + "brand", + "subtle", "clicked" ], "references": [ { - "description": "Use as the clicked state for any element that conveys a danger status.", "type": "color", - "value": "#731f00", - "filePath": "tokens/default/light/semantic.json", + "value": "#4394e5", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys a danger status.", "type": "color", - "value": "{global.color.status.danger.200}" + "value": "{color.blue.40}" }, - "name": "pf-t--global--color--status--danger--clicked", + "name": "pf-t--global--color--brand--subtle--300", "attributes": { "category": "global", "type": "color", - "item": "status", - "subitem": "danger", - "state": "clicked" + "item": "brand", + "subitem": "subtle", + "state": "300" }, "path": [ "global", "color", - "status", - "danger", - "clicked" + "brand", + "subtle", + "300" ], "references": [ { "type": "color", - "value": "#731f00", - "filePath": "tokens/default/light/base.json", + "value": "#4394e5", + "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.red-orange.70}" + "value": "#4394e5" }, - "name": "pf-t--global--color--status--danger--200", + "name": "pf-t--color--blue--40", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "danger", - "state": "200" + "category": "color", + "type": "blue", + "item": "40" }, "path": [ - "global", "color", - "status", - "danger", - "200" - ], - "references": [ - { - "type": "color", - "value": "#731f00", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#731f00" - }, - "name": "pf-t--color--red-orange--70", - "attributes": { - "category": "color", - "type": "red-orange", - "item": "70" - }, - "path": [ - "color", - "red-orange", - "70" - ] - } + "blue", + "40" ] } ] @@ -10893,106 +11051,106 @@ ] } }, - "pf-t--global--border--color--status--info--default": { + "pf-t--global--border--color--status--success--default": { "default": { - "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", "type": "color", - "value": "#5e40be", + "value": "#3d7317", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a success status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.info.default}" + "value": "{global.color.status.success.default}" }, - "name": "pf-t--global--border--color--status--info--default", + "name": "pf-t--global--border--color--status--success--default", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "info" + "state": "success" }, "path": [ "global", "border", "color", "status", - "info", + "success", "default" ], "references": [ { - "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", "type": "color", - "value": "#5e40be", + "value": "#3d7317", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", + "description": "Use as the default color for any element communicating a favorable outcome, like a success status for alert, progress, select.", "type": "color", - "value": "{global.color.status.info.100}" + "value": "{global.color.status.success.100}" }, - "name": "pf-t--global--color--status--info--default", + "name": "pf-t--global--color--status--success--default", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", + "subitem": "success", "state": "default" }, "path": [ "global", "color", "status", - "info", + "success", "default" ], "references": [ { "type": "color", - "value": "#5e40be", + "value": "#3d7317", "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.50}" + "value": "{color.green.60}" }, - "name": "pf-t--global--color--status--info--100", + "name": "pf-t--global--color--status--success--100", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", + "subitem": "success", "state": "100" }, "path": [ "global", "color", "status", - "info", + "success", "100" ], "references": [ { "type": "color", - "value": "#5e40be", + "value": "#3d7317", "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#5e40be" + "value": "#3d7317" }, - "name": "pf-t--color--purple--50", + "name": "pf-t--color--green--60", "attributes": { "category": "color", - "type": "purple", - "item": "50" + "type": "green", + "item": "60" }, "path": [ "color", - "purple", - "50" + "green", + "60" ] } ] @@ -11002,106 +11160,106 @@ ] } }, - "pf-t--global--border--color--status--info--hover": { + "pf-t--global--border--color--status--success--hover": { "default": { - "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "#3d2785", + "value": "#204d00", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "{global.color.status.info.hover}" + "value": "{global.color.status.success.hover}" }, - "name": "pf-t--global--border--color--status--info--hover", + "name": "pf-t--global--border--color--status--success--hover", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "info" + "state": "success" }, "path": [ "global", "border", "color", "status", - "info", + "success", "hover" ], "references": [ { - "description": "Use as the hover state for any element that conveys an info status.", + "description": "Use as the hover state for any element that conveys a success status.", "type": "color", - "value": "#3d2785", + "value": "#204d00", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the hover state for any element that conveys an info status.", + "description": "Use as the hover state for any element that conveys a success status.", "type": "color", - "value": "{global.color.status.info.200}" + "value": "{global.color.status.success.200}" }, - "name": "pf-t--global--color--status--info--hover", + "name": "pf-t--global--color--status--success--hover", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", + "subitem": "success", "state": "hover" }, "path": [ "global", "color", "status", - "info", + "success", "hover" ], "references": [ { "type": "color", - "value": "#3d2785", + "value": "#204d00", "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.60}" + "value": "{color.green.70}" }, - "name": "pf-t--global--color--status--info--200", + "name": "pf-t--global--color--status--success--200", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", + "subitem": "success", "state": "200" }, "path": [ "global", "color", "status", - "info", + "success", "200" ], "references": [ { "type": "color", - "value": "#3d2785", + "value": "#204d00", "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#3d2785" + "value": "#204d00" }, - "name": "pf-t--color--purple--60", + "name": "pf-t--color--green--70", "attributes": { "category": "color", - "type": "purple", - "item": "60" + "type": "green", + "item": "70" }, "path": [ "color", - "purple", - "60" + "green", + "70" ] } ] @@ -11111,106 +11269,106 @@ ] } }, - "pf-t--global--border--color--status--info--clicked": { + "pf-t--global--border--color--status--success--clicked": { "default": { - "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "#3d2785", + "value": "#204d00", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a success status, like in alerts, notifications, or status labels.", "type": "color", - "value": "{global.color.status.info.clicked}" + "value": "{global.color.status.success.clicked}" }, - "name": "pf-t--global--border--color--status--info--clicked", + "name": "pf-t--global--border--color--status--success--clicked", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "info" + "state": "success" }, "path": [ "global", "border", "color", "status", - "info", + "success", "clicked" ], "references": [ { - "description": "Use as the clicked state for any element that conveys an info status.", + "description": "Use as the clicked state for any element that conveys a success status.", "type": "color", - "value": "#3d2785", + "value": "#204d00", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the clicked state for any element that conveys an info status.", + "description": "Use as the clicked state for any element that conveys a success status.", "type": "color", - "value": "{global.color.status.info.200}" + "value": "{global.color.status.success.200}" }, - "name": "pf-t--global--color--status--info--clicked", + "name": "pf-t--global--color--status--success--clicked", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", + "subitem": "success", "state": "clicked" }, "path": [ "global", "color", "status", - "info", + "success", "clicked" ], "references": [ { "type": "color", - "value": "#3d2785", + "value": "#204d00", "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.purple.60}" + "value": "{color.green.70}" }, - "name": "pf-t--global--color--status--info--200", + "name": "pf-t--global--color--status--success--200", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "info", + "subitem": "success", "state": "200" }, "path": [ "global", "color", "status", - "info", + "success", "200" ], "references": [ { "type": "color", - "value": "#3d2785", + "value": "#204d00", "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#3d2785" + "value": "#204d00" }, - "name": "pf-t--color--purple--60", + "name": "pf-t--color--green--70", "attributes": { "category": "color", - "type": "purple", - "item": "60" + "type": "green", + "item": "70" }, "path": [ "color", - "purple", - "60" + "green", + "70" ] } ] @@ -11220,108 +11378,79 @@ ] } }, - "pf-t--global--border--color--status--custom--default": { + "pf-t--global--border--color--status--warning--default": { "default": { - "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "#147878", + "value": "#dca614", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the default color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.custom.default}" + "value": "{global.color.status.warning.200}" }, - "name": "pf-t--global--border--color--status--custom--default", + "name": "pf-t--global--border--color--status--warning--default", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "custom" + "state": "warning" }, "path": [ "global", "border", "color", "status", - "custom", + "warning", "default" ], "references": [ { - "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#147878", - "filePath": "tokens/default/light/semantic.json", + "value": "#dca614", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { - "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{global.color.status.custom.100}" + "value": "{color.yellow.40}" }, - "name": "pf-t--global--color--status--custom--default", + "name": "pf-t--global--color--status--warning--200", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", - "state": "default" + "subitem": "warning", + "state": "200" }, "path": [ "global", "color", "status", - "custom", - "default" + "warning", + "200" ], "references": [ { "type": "color", - "value": "#147878", - "filePath": "tokens/default/light/base.json", + "value": "#dca614", + "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.60}" + "value": "#dca614" }, - "name": "pf-t--global--color--status--custom--100", + "name": "pf-t--color--yellow--40", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "custom", - "state": "100" + "category": "color", + "type": "yellow", + "item": "40" }, "path": [ - "global", "color", - "status", - "custom", - "100" - ], - "references": [ - { - "type": "color", - "value": "#147878", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#147878" - }, - "name": "pf-t--color--teal--60", - "attributes": { - "category": "color", - "type": "teal", - "item": "60" - }, - "path": [ - "color", - "teal", - "60" - ] - } + "yellow", + "40" ] } ] @@ -11329,108 +11458,79 @@ ] } }, - "pf-t--global--border--color--status--custom--hover": { + "pf-t--global--border--color--status--warning--hover": { "default": { - "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "#004d4d", + "value": "#b98412", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the hover state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.custom.hover}" + "value": "{global.color.status.warning.300}" }, - "name": "pf-t--global--border--color--status--custom--hover", + "name": "pf-t--global--border--color--status--warning--hover", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "custom" + "state": "warning" }, "path": [ "global", "border", "color", "status", - "custom", + "warning", "hover" ], "references": [ { - "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#004d4d", - "filePath": "tokens/default/light/semantic.json", + "value": "#b98412", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { - "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{global.color.status.custom.200}" + "value": "{color.yellow.50}" }, - "name": "pf-t--global--color--status--custom--hover", + "name": "pf-t--global--color--status--warning--300", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", - "state": "hover" + "subitem": "warning", + "state": "300" }, "path": [ "global", "color", "status", - "custom", - "hover" + "warning", + "300" ], "references": [ { "type": "color", - "value": "#004d4d", - "filePath": "tokens/default/light/base.json", + "value": "#b98412", + "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.70}" + "value": "#b98412" }, - "name": "pf-t--global--color--status--custom--200", + "name": "pf-t--color--yellow--50", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "custom", - "state": "200" + "category": "color", + "type": "yellow", + "item": "50" }, "path": [ - "global", "color", - "status", - "custom", - "200" - ], - "references": [ - { - "type": "color", - "value": "#004d4d", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#004d4d" - }, - "name": "pf-t--color--teal--70", - "attributes": { - "category": "color", - "type": "teal", - "item": "70" - }, - "path": [ - "color", - "teal", - "70" - ] - } + "yellow", + "50" ] } ] @@ -11438,108 +11538,79 @@ ] } }, - "pf-t--global--border--color--status--custom--clicked": { + "pf-t--global--border--color--status--warning--clicked": { "default": { - "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "#004d4d", + "value": "#b98412", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "description": "Use as the clicked state color for borders that convey a warning status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.status.custom.clicked}" + "value": "{global.color.status.warning.300}" }, - "name": "pf-t--global--border--color--status--custom--clicked", + "name": "pf-t--global--border--color--status--warning--clicked", "attributes": { "category": "global", "type": "border", "item": "color", "subitem": "status", - "state": "custom" + "state": "warning" }, "path": [ "global", "border", "color", "status", - "custom", + "warning", "clicked" ], "references": [ { - "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#004d4d", - "filePath": "tokens/default/light/semantic.json", + "value": "#b98412", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { - "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{global.color.status.custom.200}" + "value": "{color.yellow.50}" }, - "name": "pf-t--global--color--status--custom--clicked", + "name": "pf-t--global--color--status--warning--300", "attributes": { "category": "global", "type": "color", "item": "status", - "subitem": "custom", - "state": "clicked" + "subitem": "warning", + "state": "300" }, "path": [ "global", "color", "status", - "custom", - "clicked" + "warning", + "300" ], "references": [ { "type": "color", - "value": "#004d4d", - "filePath": "tokens/default/light/base.json", + "value": "#b98412", + "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.teal.70}" + "value": "#b98412" }, - "name": "pf-t--global--color--status--custom--200", + "name": "pf-t--color--yellow--50", "attributes": { - "category": "global", - "type": "color", - "item": "status", - "subitem": "custom", - "state": "200" + "category": "color", + "type": "yellow", + "item": "50" }, "path": [ - "global", "color", - "status", - "custom", - "200" - ], - "references": [ - { - "type": "color", - "value": "#004d4d", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#004d4d" - }, - "name": "pf-t--color--teal--70", - "attributes": { - "category": "color", - "type": "teal", - "item": "70" - }, - "path": [ - "color", - "teal", - "70" - ] - } + "yellow", + "50" ] } ] @@ -11547,101 +11618,108 @@ ] } }, - "pf-t--global--border--color--high-contrast": { - "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "rgba(255, 255, 255, 0.0000)", - "filePath": "tokens/default/light/semantic.json", - "isSource": true, - "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "rgba(255, 255, 255, 0.0000)" - }, - "name": "pf-t--global--border--color--high-contrast", - "attributes": { - "category": "global", - "type": "border", - "item": "color", - "subitem": "high-contrast" - }, - "path": [ - "global", - "border", - "color", - "high-contrast" - ] - } - }, - "pf-t--global--border--color--default": { + "pf-t--global--border--color--status--danger--default": { "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "#c7c7c7", + "value": "#b1380b", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.border.color.100}" + "value": "{global.color.status.danger.default}" }, - "name": "pf-t--global--border--color--default", + "name": "pf-t--global--border--color--status--danger--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "default" + "subitem": "status", + "state": "danger" }, "path": [ "global", "border", "color", + "status", + "danger", "default" ], "references": [ { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "#c7c7c7", - "filePath": "tokens/default/light/base.json", + "value": "#b1380b", + "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { + "description": "Use as the default color for any element communicating a critical warning or error, like a danger status for alert, progress, select.", "type": "color", - "value": "{color.gray.30}" + "value": "{global.color.status.danger.100}" }, - "name": "pf-t--global--border--color--100", + "name": "pf-t--global--color--status--danger--default", "attributes": { "category": "global", - "type": "border", - "item": "color", - "subitem": "100" + "type": "color", + "item": "status", + "subitem": "danger", + "state": "default" }, "path": [ "global", - "border", "color", - "100" + "status", + "danger", + "default" ], "references": [ { "type": "color", - "value": "#c7c7c7", - "filePath": "tokens/default/light/palette.color.json", + "value": "#b1380b", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "#c7c7c7" + "value": "{color.red-orange.60}" }, - "name": "pf-t--color--gray--30", + "name": "pf-t--global--color--status--danger--100", "attributes": { - "category": "color", - "type": "gray", - "item": "30" + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "100" }, "path": [ + "global", "color", - "gray", - "30" + "status", + "danger", + "100" + ], + "references": [ + { + "type": "color", + "value": "#b1380b", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#b1380b" + }, + "name": "pf-t--color--red-orange--60", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "60" + }, + "path": [ + "color", + "red-orange", + "60" + ] + } ] } ] @@ -11649,74 +11727,108 @@ ] } }, - "pf-t--global--border--color--hover": { + "pf-t--global--border--color--status--danger--hover": { "default": { - "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "#4394e5", + "value": "#731f00", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.brand.100}" + "value": "{global.color.status.danger.hover}" }, - "name": "pf-t--global--border--color--hover", + "name": "pf-t--global--border--color--status--danger--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "hover" + "subitem": "status", + "state": "danger" }, "path": [ "global", "border", "color", + "status", + "danger", "hover" ], "references": [ { + "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "#4394e5", - "filePath": "tokens/default/light/base.json", + "value": "#731f00", + "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { + "description": "Use as the hover state for any element that conveys a danger status.", "type": "color", - "value": "{color.blue.40}" + "value": "{global.color.status.danger.200}" }, - "name": "pf-t--global--color--brand--100", + "name": "pf-t--global--color--status--danger--hover", "attributes": { "category": "global", "type": "color", - "item": "brand", - "subitem": "100" + "item": "status", + "subitem": "danger", + "state": "hover" }, "path": [ "global", "color", - "brand", - "100" + "status", + "danger", + "hover" ], "references": [ { "type": "color", - "value": "#4394e5", - "filePath": "tokens/default/light/palette.color.json", + "value": "#731f00", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "#4394e5" + "value": "{color.red-orange.70}" }, - "name": "pf-t--color--blue--40", + "name": "pf-t--global--color--status--danger--200", "attributes": { - "category": "color", - "type": "blue", - "item": "40" + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "200" }, "path": [ + "global", "color", - "blue", - "40" + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } ] } ] @@ -11724,74 +11836,108 @@ ] } }, - "pf-t--global--border--color--clicked": { + "pf-t--global--border--color--status--danger--clicked": { "default": { - "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "#0066cc", + "value": "#731f00", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the clicked state color for borders that convey a danger status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.brand.200}" + "value": "{global.color.status.danger.clicked}" }, - "name": "pf-t--global--border--color--clicked", + "name": "pf-t--global--border--color--status--danger--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "clicked" + "subitem": "status", + "state": "danger" }, "path": [ "global", "border", "color", + "status", + "danger", "clicked" ], "references": [ { + "description": "Use as the clicked state for any element that conveys a danger status.", "type": "color", - "value": "#0066cc", - "filePath": "tokens/default/light/base.json", + "value": "#731f00", + "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { + "description": "Use as the clicked state for any element that conveys a danger status.", "type": "color", - "value": "{color.blue.50}" + "value": "{global.color.status.danger.200}" }, - "name": "pf-t--global--color--brand--200", + "name": "pf-t--global--color--status--danger--clicked", "attributes": { "category": "global", "type": "color", - "item": "brand", - "subitem": "200" + "item": "status", + "subitem": "danger", + "state": "clicked" }, "path": [ "global", "color", - "brand", - "200" + "status", + "danger", + "clicked" ], "references": [ { "type": "color", - "value": "#0066cc", - "filePath": "tokens/default/light/palette.color.json", + "value": "#731f00", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "#0066cc" + "value": "{color.red-orange.70}" }, - "name": "pf-t--color--blue--50", + "name": "pf-t--global--color--status--danger--200", "attributes": { - "category": "color", - "type": "blue", - "item": "50" + "category": "global", + "type": "color", + "item": "status", + "subitem": "danger", + "state": "200" }, "path": [ + "global", "color", - "blue", - "50" + "status", + "danger", + "200" + ], + "references": [ + { + "type": "color", + "value": "#731f00", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#731f00" + }, + "name": "pf-t--color--red-orange--70", + "attributes": { + "category": "color", + "type": "red-orange", + "item": "70" + }, + "path": [ + "color", + "red-orange", + "70" + ] + } ] } ] @@ -11799,74 +11945,108 @@ ] } }, - "pf-t--global--border--color--subtle": { + "pf-t--global--border--color--status--info--default": { "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "#e0e0e0", + "value": "#5e40be", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the default color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.border.color.50}" + "value": "{global.color.status.info.default}" }, - "name": "pf-t--global--border--color--subtle", + "name": "pf-t--global--border--color--status--info--default", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "subtle" + "subitem": "status", + "state": "info" }, "path": [ "global", "border", "color", - "subtle" + "status", + "info", + "default" ], "references": [ { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "#e0e0e0", - "filePath": "tokens/default/light/base.json", + "value": "#5e40be", + "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { + "description": "Use as the default color for any element communicating information, like an info status for alert, progress, select.", "type": "color", - "value": "{color.gray.20}" + "value": "{global.color.status.info.100}" }, - "name": "pf-t--global--border--color--50", + "name": "pf-t--global--color--status--info--default", "attributes": { "category": "global", - "type": "border", - "item": "color", - "subitem": "50" + "type": "color", + "item": "status", + "subitem": "info", + "state": "default" }, "path": [ "global", - "border", "color", - "50" + "status", + "info", + "default" ], "references": [ { "type": "color", - "value": "#e0e0e0", - "filePath": "tokens/default/light/palette.color.json", + "value": "#5e40be", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "#e0e0e0" + "value": "{color.purple.50}" }, - "name": "pf-t--color--gray--20", + "name": "pf-t--global--color--status--info--100", "attributes": { - "category": "color", - "type": "gray", - "item": "20" + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "100" }, "path": [ + "global", "color", - "gray", - "20" + "status", + "info", + "100" + ], + "references": [ + { + "type": "color", + "value": "#5e40be", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#5e40be" + }, + "name": "pf-t--color--purple--50", + "attributes": { + "category": "color", + "type": "purple", + "item": "50" + }, + "path": [ + "color", + "purple", + "50" + ] + } ] } ] @@ -11874,74 +12054,108 @@ ] } }, - "pf-t--global--border--color--disabled": { + "pf-t--global--border--color--status--info--hover": { "default": { - "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "#a3a3a3", + "value": "#3d2785", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "description": "Use as the hover state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.color.disabled.200}" + "value": "{global.color.status.info.hover}" }, - "name": "pf-t--global--border--color--disabled", + "name": "pf-t--global--border--color--status--info--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "disabled" + "subitem": "status", + "state": "info" }, "path": [ "global", "border", "color", - "disabled" + "status", + "info", + "hover" ], "references": [ { + "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/light/base.json", + "value": "#3d2785", + "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { + "description": "Use as the hover state for any element that conveys an info status.", "type": "color", - "value": "{color.gray.40}" + "value": "{global.color.status.info.200}" }, - "name": "pf-t--global--color--disabled--200", + "name": "pf-t--global--color--status--info--hover", "attributes": { "category": "global", "type": "color", - "item": "disabled", - "subitem": "200" + "item": "status", + "subitem": "info", + "state": "hover" }, "path": [ "global", "color", - "disabled", - "200" + "status", + "info", + "hover" ], "references": [ { "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/light/palette.color.json", + "value": "#3d2785", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "#a3a3a3" + "value": "{color.purple.60}" }, - "name": "pf-t--color--gray--40", + "name": "pf-t--global--color--status--info--200", "attributes": { - "category": "color", - "type": "gray", - "item": "40" + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "200" }, "path": [ + "global", "color", - "gray", - "40" + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d2785" + }, + "name": "pf-t--color--purple--60", + "attributes": { + "category": "color", + "type": "purple", + "item": "60" + }, + "path": [ + "color", + "purple", + "60" + ] + } ] } ] @@ -11949,99 +12163,215 @@ ] } }, - "pf-t--global--border--color--alt": { + "pf-t--global--border--color--status--info--clicked": { "default": { - "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "#ffffff", + "value": "#3d2785", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "description": "Use as the clicked state color for borders that convey an info status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.background.color.primary.default}" + "value": "{global.color.status.info.clicked}" }, - "name": "pf-t--global--border--color--alt", + "name": "pf-t--global--border--color--status--info--clicked", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "alt" + "subitem": "status", + "state": "info" }, "path": [ "global", "border", "color", - "alt" + "status", + "info", + "clicked" ], "references": [ { - "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "#ffffff", + "value": "#3d2785", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the primary background color for UI content such as cards, page sections, and other content areas.", + "description": "Use as the clicked state for any element that conveys an info status.", "type": "color", - "value": "{global.background.color.100}" + "value": "{global.color.status.info.200}" }, - "name": "pf-t--global--background--color--primary--default", + "name": "pf-t--global--color--status--info--clicked", "attributes": { "category": "global", - "type": "background", - "item": "color", - "subitem": "primary", + "type": "color", + "item": "status", + "subitem": "info", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "info", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/light/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.purple.60}" + }, + "name": "pf-t--global--color--status--info--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "info", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "info", + "200" + ], + "references": [ + { + "type": "color", + "value": "#3d2785", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#3d2785" + }, + "name": "pf-t--color--purple--60", + "attributes": { + "category": "color", + "type": "purple", + "item": "60" + }, + "path": [ + "color", + "purple", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--custom--default": { + "default": { + "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#147878", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the default color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.custom.default}" + }, + "name": "pf-t--global--border--color--status--custom--default", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "border", + "color", + "status", + "custom", + "default" + ], + "references": [ + { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#147878", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the default color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.color.status.custom.100}" + }, + "name": "pf-t--global--color--status--custom--default", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", "state": "default" }, "path": [ "global", - "background", "color", - "primary", + "status", + "custom", "default" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#147878", "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.white}" + "value": "{color.teal.60}" }, - "name": "pf-t--global--background--color--100", + "name": "pf-t--global--color--status--custom--100", "attributes": { "category": "global", - "type": "background", - "item": "color", - "subitem": "100" + "type": "color", + "item": "status", + "subitem": "custom", + "state": "100" }, "path": [ "global", - "background", "color", + "status", + "custom", "100" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#147878", "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffffff" + "value": "#147878" }, - "name": "pf-t--color--white", + "name": "pf-t--color--teal--60", "attributes": { "category": "color", - "type": "white" + "type": "teal", + "item": "60" }, "path": [ "color", - "white" + "teal", + "60" ] } ] @@ -12051,74 +12381,217 @@ ] } }, - "pf-t--global--border--color--on-secondary": { + "pf-t--global--border--color--status--custom--hover": { "default": { - "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "#8c8c8c", + "value": "#004d4d", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "description": "Use as the hover state color for borders that convey a custom status, like in alerts, notifications or status labels.", "type": "color", - "value": "{global.border.color.300}" + "value": "{global.color.status.custom.hover}" }, - "name": "pf-t--global--border--color--on-secondary", + "name": "pf-t--global--border--color--status--custom--hover", "attributes": { "category": "global", "type": "border", "item": "color", - "subitem": "on-secondary" + "subitem": "status", + "state": "custom" }, "path": [ "global", "border", "color", - "on-secondary" + "status", + "custom", + "hover" ], "references": [ { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "#8c8c8c", - "filePath": "tokens/default/light/base.json", + "value": "#004d4d", + "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { + "description": "Use this color as the hover state color for any element that conveys a generic status with no associated severity. This color can be customized.", "type": "color", - "value": "{color.gray.45}" + "value": "{global.color.status.custom.200}" }, - "name": "pf-t--global--border--color--300", + "name": "pf-t--global--color--status--custom--hover", "attributes": { "category": "global", - "type": "border", - "item": "color", - "subitem": "300" + "type": "color", + "item": "status", + "subitem": "custom", + "state": "hover" }, "path": [ "global", - "border", "color", - "300" + "status", + "custom", + "hover" ], "references": [ { "type": "color", - "value": "#8c8c8c", - "filePath": "tokens/default/light/palette.color.json", + "value": "#004d4d", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "#8c8c8c" + "value": "{color.teal.70}" }, - "name": "pf-t--color--gray--45", + "name": "pf-t--global--color--status--custom--200", "attributes": { - "category": "color", - "type": "gray", - "item": "45" + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "200" }, "path": [ + "global", "color", - "gray", - "45" + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d4d" + }, + "name": "pf-t--color--teal--70", + "attributes": { + "category": "color", + "type": "teal", + "item": "70" + }, + "path": [ + "color", + "teal", + "70" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--border--color--status--custom--clicked": { + "default": { + "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for borders that convey a custom status, like in alerts, notifications or status labels.", + "type": "color", + "value": "{global.color.status.custom.clicked}" + }, + "name": "pf-t--global--border--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "border", + "item": "color", + "subitem": "status", + "state": "custom" + }, + "path": [ + "global", + "border", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for any element that conveys a generic status with no associated severity. This color can be customized.", + "type": "color", + "value": "{global.color.status.custom.200}" + }, + "name": "pf-t--global--color--status--custom--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "clicked" + }, + "path": [ + "global", + "color", + "status", + "custom", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/light/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.teal.70}" + }, + "name": "pf-t--global--color--status--custom--200", + "attributes": { + "category": "global", + "type": "color", + "item": "status", + "subitem": "custom", + "state": "200" + }, + "path": [ + "global", + "color", + "status", + "custom", + "200" + ], + "references": [ + { + "type": "color", + "value": "#004d4d", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d4d" + }, + "name": "pf-t--color--teal--70", + "attributes": { + "category": "color", + "type": "teal", + "item": "70" + }, + "path": [ + "color", + "teal", + "70" + ] + } ] } ] @@ -17193,6 +17666,318 @@ ] } }, + "pf-t--global--color--brand--accent--default": { + "default": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.color.brand.default}" + }, + "name": "pf-t--global--color--brand--accent--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "default" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "default" + ], + "references": [ + { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.color.brand.200}" + }, + "name": "pf-t--global--color--brand--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "default" + }, + "path": [ + "global", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/light/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.50}" + }, + "name": "pf-t--global--color--brand--200", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "200" + }, + "path": [ + "global", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--accent--hover": { + "default": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.color.brand.hover}" + }, + "name": "pf-t--global--color--brand--accent--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "hover" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.color.brand.300}" + }, + "name": "pf-t--global--color--brand--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--brand--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" + }, + "path": [ + "global", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--color--brand--accent--clicked": { + "default": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.color.brand.clicked}" + }, + "name": "pf-t--global--color--brand--accent--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "accent", + "state": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "accent", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.color.brand.300}" + }, + "name": "pf-t--global--color--brand--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--brand--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" + }, + "path": [ + "global", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + ] + } + }, "pf-t--global--color--brand--subtle--default": { "default": { "description": "Use this color for elements that you want to reinforce your brand", @@ -22313,103 +23098,74 @@ ] } }, - "pf-t--global--text--color--brand--default": { + "pf-t--global--text--color--regular": { "default": { - "description": "Use as the default color for branded text.", + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "#0066cc", + "value": "#151515", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the default color for branded text.", + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", "type": "color", - "value": "{global.color.brand.default}" + "value": "{global.text.color.100}" }, - "name": "pf-t--global--text--color--brand--default", + "name": "pf-t--global--text--color--regular", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "brand", - "state": "default" + "subitem": "regular" }, "path": [ "global", "text", "color", - "brand", - "default" + "regular" ], "references": [ { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "#0066cc", - "filePath": "tokens/default/light/semantic.json", + "value": "#151515", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { - "description": "Use this color for elements that you want to reinforce your brand", "type": "color", - "value": "{global.color.brand.200}" + "value": "{color.gray.95}" }, - "name": "pf-t--global--color--brand--default", + "name": "pf-t--global--text--color--100", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "default" + "type": "text", + "item": "color", + "subitem": "100" }, "path": [ "global", + "text", "color", - "brand", - "default" + "100" ], "references": [ { "type": "color", - "value": "#0066cc", - "filePath": "tokens/default/light/base.json", + "value": "#151515", + "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.50}" + "value": "#151515" }, - "name": "pf-t--global--color--brand--200", + "name": "pf-t--color--gray--95", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "200" + "category": "color", + "type": "gray", + "item": "95" }, "path": [ - "global", "color", - "brand", - "200" - ], - "references": [ - { - "type": "color", - "value": "#0066cc", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#0066cc" - }, - "name": "pf-t--color--blue--50", - "attributes": { - "category": "color", - "type": "blue", - "item": "50" - }, - "path": [ - "color", - "blue", - "50" - ] - } + "gray", + "95" ] } ] @@ -22417,103 +23173,74 @@ ] } }, - "pf-t--global--text--color--brand--hover": { + "pf-t--global--text--color--subtle": { "default": { - "description": "Use as the hover state color for branded text.", + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "value": "#004d99", + "value": "#4d4d4d", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the hover state color for branded text.", + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "value": "{global.color.brand.hover}" + "value": "{global.text.color.200}" }, - "name": "pf-t--global--text--color--brand--hover", + "name": "pf-t--global--text--color--subtle", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "brand", - "state": "hover" + "subitem": "subtle" }, "path": [ "global", "text", "color", - "brand", - "hover" + "subtle" ], "references": [ { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "#004d99", - "filePath": "tokens/default/light/semantic.json", + "value": "#4d4d4d", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { - "description": "Use as the hover state for elements that have a branded background color", "type": "color", - "value": "{global.color.brand.300}" + "value": "{color.gray.60}" }, - "name": "pf-t--global--color--brand--hover", + "name": "pf-t--global--text--color--200", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "hover" + "type": "text", + "item": "color", + "subitem": "200" }, "path": [ "global", + "text", "color", - "brand", - "hover" + "200" ], "references": [ { "type": "color", - "value": "#004d99", - "filePath": "tokens/default/light/base.json", + "value": "#4d4d4d", + "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.60}" + "value": "#4d4d4d" }, - "name": "pf-t--global--color--brand--300", + "name": "pf-t--color--gray--60", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "300" + "category": "color", + "type": "gray", + "item": "60" }, "path": [ - "global", "color", - "brand", - "300" - ], - "references": [ - { - "type": "color", - "value": "#004d99", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#004d99" - }, - "name": "pf-t--color--blue--60", - "attributes": { - "category": "color", - "type": "blue", - "item": "60" - }, - "path": [ - "color", - "blue", - "60" - ] - } + "gray", + "60" ] } ] @@ -22521,103 +23248,72 @@ ] } }, - "pf-t--global--text--color--brand--clicked": { + "pf-t--global--text--color--inverse": { "default": { - "description": "Use as the clicked state color for branded text.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#004d99", + "value": "#ffffff", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the clicked state color for branded text.", + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.color.brand.clicked}" + "value": "{global.text.color.300}" }, - "name": "pf-t--global--text--color--brand--clicked", + "name": "pf-t--global--text--color--inverse", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "brand", - "state": "clicked" + "subitem": "inverse" }, "path": [ "global", "text", "color", - "brand", - "clicked" + "inverse" ], "references": [ { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "#004d99", - "filePath": "tokens/default/light/semantic.json", + "value": "#ffffff", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { - "description": "Use as the clicked state for elements that have a brand background color", "type": "color", - "value": "{global.color.brand.300}" + "value": "{color.white}" }, - "name": "pf-t--global--color--brand--clicked", + "name": "pf-t--global--text--color--300", "attributes": { "category": "global", - "type": "color", - "item": "brand", - "subitem": "clicked" + "type": "text", + "item": "color", + "subitem": "300" }, "path": [ "global", + "text", "color", - "brand", - "clicked" + "300" ], "references": [ { "type": "color", - "value": "#004d99", - "filePath": "tokens/default/light/base.json", + "value": "#ffffff", + "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.blue.60}" + "value": "#ffffff" }, - "name": "pf-t--global--color--brand--300", + "name": "pf-t--color--white", "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "300" + "category": "color", + "type": "white" }, "path": [ - "global", "color", - "brand", - "300" - ], - "references": [ - { - "type": "color", - "value": "#004d99", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#004d99" - }, - "name": "pf-t--color--blue--60", - "attributes": { - "category": "color", - "type": "blue", - "item": "60" - }, - "path": [ - "color", - "blue", - "60" - ] - } + "white" ] } ] @@ -22625,74 +23321,101 @@ ] } }, - "pf-t--global--text--color--regular": { + "pf-t--global--text--color--placeholder": { "default": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", "type": "color", - "value": "#151515", + "value": "#4d4d4d", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", "type": "color", - "value": "{global.text.color.100}" + "value": "{global.text.color.subtle}" }, - "name": "pf-t--global--text--color--regular", + "name": "pf-t--global--text--color--placeholder", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "regular" + "subitem": "placeholder" }, "path": [ "global", "text", "color", - "regular" + "placeholder" ], "references": [ { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "value": "#151515", - "filePath": "tokens/default/light/base.json", + "value": "#4d4d4d", + "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", "type": "color", - "value": "{color.gray.95}" + "value": "{global.text.color.200}" }, - "name": "pf-t--global--text--color--100", + "name": "pf-t--global--text--color--subtle", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "100" + "subitem": "subtle" }, "path": [ "global", "text", "color", - "100" + "subtle" ], "references": [ { "type": "color", - "value": "#151515", - "filePath": "tokens/default/light/palette.color.json", + "value": "#4d4d4d", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "#151515" + "value": "{color.gray.60}" }, - "name": "pf-t--color--gray--95", + "name": "pf-t--global--text--color--200", "attributes": { - "category": "color", - "type": "gray", - "item": "95" + "category": "global", + "type": "text", + "item": "color", + "subitem": "200" }, "path": [ + "global", + "text", "color", - "gray", - "95" + "200" + ], + "references": [ + { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } ] } ] @@ -22700,74 +23423,74 @@ ] } }, - "pf-t--global--text--color--subtle": { + "pf-t--global--text--color--disabled": { "default": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "description": "Use as the color of text on disabled elements, like disabled menu items.", "type": "color", - "value": "#4d4d4d", + "value": "#a3a3a3", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "description": "Use as the color of text on disabled elements, like disabled menu items.", "type": "color", - "value": "{global.text.color.200}" + "value": "{global.color.disabled.200}" }, - "name": "pf-t--global--text--color--subtle", + "name": "pf-t--global--text--color--disabled", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "subtle" + "subitem": "disabled" }, "path": [ "global", "text", "color", - "subtle" + "disabled" ], "references": [ { "type": "color", - "value": "#4d4d4d", + "value": "#a3a3a3", "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.gray.60}" + "value": "{color.gray.40}" }, - "name": "pf-t--global--text--color--200", + "name": "pf-t--global--color--disabled--200", "attributes": { "category": "global", - "type": "text", - "item": "color", + "type": "color", + "item": "disabled", "subitem": "200" }, "path": [ "global", - "text", "color", + "disabled", "200" ], "references": [ { "type": "color", - "value": "#4d4d4d", + "value": "#a3a3a3", "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#4d4d4d" + "value": "#a3a3a3" }, - "name": "pf-t--color--gray--60", + "name": "pf-t--color--gray--40", "attributes": { "category": "color", "type": "gray", - "item": "60" + "item": "40" }, "path": [ "color", "gray", - "60" + "40" ] } ] @@ -22775,72 +23498,74 @@ ] } }, - "pf-t--global--text--color--inverse": { + "pf-t--global--text--color--on-disabled": { "default": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", "type": "color", - "value": "#ffffff", + "value": "#707070", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", "type": "color", - "value": "{global.text.color.300}" + "value": "{global.color.disabled.300}" }, - "name": "pf-t--global--text--color--inverse", + "name": "pf-t--global--text--color--on-disabled", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "inverse" + "subitem": "on-disabled" }, "path": [ "global", "text", "color", - "inverse" + "on-disabled" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#707070", "filePath": "tokens/default/light/base.json", "isSource": true, "original": { "type": "color", - "value": "{color.white}" + "value": "{color.gray.50}" }, - "name": "pf-t--global--text--color--300", + "name": "pf-t--global--color--disabled--300", "attributes": { "category": "global", - "type": "text", - "item": "color", + "type": "color", + "item": "disabled", "subitem": "300" }, "path": [ "global", - "text", "color", + "disabled", "300" ], "references": [ { "type": "color", - "value": "#ffffff", + "value": "#707070", "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "#ffffff" + "value": "#707070" }, - "name": "pf-t--color--white", + "name": "pf-t--color--gray--50", "attributes": { "category": "color", - "type": "white" + "type": "gray", + "item": "50" }, "path": [ "color", - "white" + "gray", + "50" ] } ] @@ -22848,101 +23573,74 @@ ] } }, - "pf-t--global--text--color--on-brand--default": { + "pf-t--global--text--color--required": { "default": { - "description": "Use as the default color for text placed on a brand-colored background.", + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", "type": "color", - "value": "#ffffff", + "value": "#f4784a", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the default color for text placed on a brand-colored background.", + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", "type": "color", - "value": "{global.text.color.inverse}" + "value": "{global.text.color.400}" }, - "name": "pf-t--global--text--color--on-brand--default", + "name": "pf-t--global--text--color--required", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-brand", - "state": "default" + "subitem": "required" }, "path": [ "global", "text", "color", - "on-brand", - "default" + "required" ], "references": [ { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/light/semantic.json", + "value": "#f4784a", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.text.color.300}" + "value": "{color.red-orange.40}" }, - "name": "pf-t--global--text--color--inverse", + "name": "pf-t--global--text--color--400", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "inverse" + "subitem": "400" }, "path": [ "global", "text", "color", - "inverse" + "400" ], "references": [ { "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/light/base.json", + "value": "#f4784a", + "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.white}" + "value": "#f4784a" }, - "name": "pf-t--global--text--color--300", + "name": "pf-t--color--red-orange--40", "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "300" + "category": "color", + "type": "red-orange", + "item": "40" }, "path": [ - "global", - "text", "color", - "300" - ], - "references": [ - { - "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#ffffff" - }, - "name": "pf-t--color--white", - "attributes": { - "category": "color", - "type": "white" - }, - "path": [ - "color", - "white" - ] - } + "red-orange", + "40" ] } ] @@ -22950,74 +23648,563 @@ ] } }, - "pf-t--global--text--color--on-brand--hover": { + "pf-t--global--text--color--on-highlight": { "default": { - "description": "Use as the hover state color for text placed on a brand-colored background.", + "description": "Use as the color of text that is highlighted.", "type": "color", - "value": "#ffffff", + "value": "#151515", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the hover state color for text placed on a brand-colored background.", + "description": "Use as the color of text that is highlighted.", "type": "color", - "value": "{global.text.color.inverse}" + "value": "{global.text.color.100}" }, - "name": "pf-t--global--text--color--on-brand--hover", + "name": "pf-t--global--text--color--on-highlight", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "on-brand", - "state": "hover" + "subitem": "on-highlight" }, "path": [ "global", "text", "color", - "on-brand", - "hover" + "on-highlight" ], "references": [ { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/light/semantic.json", + "value": "#151515", + "filePath": "tokens/default/light/base.json", "isSource": true, "original": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", "type": "color", - "value": "{global.text.color.300}" + "value": "{color.gray.95}" }, - "name": "pf-t--global--text--color--inverse", + "name": "pf-t--global--text--color--100", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "inverse" + "subitem": "100" }, "path": [ "global", "text", "color", - "inverse" + "100" ], "references": [ { "type": "color", - "value": "#ffffff", - "filePath": "tokens/default/light/base.json", + "value": "#151515", + "filePath": "tokens/default/light/palette.color.json", "isSource": true, "original": { "type": "color", - "value": "{color.white}" + "value": "#151515" }, - "name": "pf-t--global--text--color--300", + "name": "pf-t--color--gray--95", "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "300" + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--brand--default": { + "default": { + "description": "Use as the default color for branded text.", + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the default color for branded text.", + "type": "color", + "value": "{global.color.brand.default}" + }, + "name": "pf-t--global--text--color--brand--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "brand", + "state": "default" + }, + "path": [ + "global", + "text", + "color", + "brand", + "default" + ], + "references": [ + { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.color.brand.200}" + }, + "name": "pf-t--global--color--brand--default", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "default" + }, + "path": [ + "global", + "color", + "brand", + "default" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/light/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.50}" + }, + "name": "pf-t--global--color--brand--200", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "200" + }, + "path": [ + "global", + "color", + "brand", + "200" + ], + "references": [ + { + "type": "color", + "value": "#0066cc", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#0066cc" + }, + "name": "pf-t--color--blue--50", + "attributes": { + "category": "color", + "type": "blue", + "item": "50" + }, + "path": [ + "color", + "blue", + "50" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--brand--hover": { + "default": { + "description": "Use as the hover state color for branded text.", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for branded text.", + "type": "color", + "value": "{global.color.brand.hover}" + }, + "name": "pf-t--global--text--color--brand--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "brand", + "state": "hover" + }, + "path": [ + "global", + "text", + "color", + "brand", + "hover" + ], + "references": [ + { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the hover state for elements that have a branded background color", + "type": "color", + "value": "{global.color.brand.300}" + }, + "name": "pf-t--global--color--brand--hover", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "hover" + }, + "path": [ + "global", + "color", + "brand", + "hover" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--brand--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" + }, + "path": [ + "global", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--brand--clicked": { + "default": { + "description": "Use as the clicked state color for branded text.", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the clicked state color for branded text.", + "type": "color", + "value": "{global.color.brand.clicked}" + }, + "name": "pf-t--global--text--color--brand--clicked", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "brand", + "state": "clicked" + }, + "path": [ + "global", + "text", + "color", + "brand", + "clicked" + ], + "references": [ + { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the clicked state for elements that have a brand background color", + "type": "color", + "value": "{global.color.brand.300}" + }, + "name": "pf-t--global--color--brand--clicked", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "clicked" + }, + "path": [ + "global", + "color", + "brand", + "clicked" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.blue.60}" + }, + "name": "pf-t--global--color--brand--300", + "attributes": { + "category": "global", + "type": "color", + "item": "brand", + "subitem": "300" + }, + "path": [ + "global", + "color", + "brand", + "300" + ], + "references": [ + { + "type": "color", + "value": "#004d99", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#004d99" + }, + "name": "pf-t--color--blue--60", + "attributes": { + "category": "color", + "type": "blue", + "item": "60" + }, + "path": [ + "color", + "blue", + "60" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--default": { + "default": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the default color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--on-brand--default", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "default" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "default" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/light/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" + }, + "path": [ + "global", + "text", + "color", + "300" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#ffffff" + }, + "name": "pf-t--color--white", + "attributes": { + "category": "color", + "type": "white" + }, + "path": [ + "color", + "white" + ] + } + ] + } + ] + } + ] + } + }, + "pf-t--global--text--color--on-brand--hover": { + "default": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the hover state color for text placed on a brand-colored background.", + "type": "color", + "value": "{global.text.color.inverse}" + }, + "name": "pf-t--global--text--color--on-brand--hover", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "on-brand", + "state": "hover" + }, + "path": [ + "global", + "text", + "color", + "on-brand", + "hover" + ], + "references": [ + { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/light/semantic.json", + "isSource": true, + "original": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "name": "pf-t--global--text--color--inverse", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "inverse" + }, + "path": [ + "global", + "text", + "color", + "inverse" + ], + "references": [ + { + "type": "color", + "value": "#ffffff", + "filePath": "tokens/default/light/base.json", + "isSource": true, + "original": { + "type": "color", + "value": "{color.white}" + }, + "name": "pf-t--global--text--color--300", + "attributes": { + "category": "global", + "type": "text", + "item": "color", + "subitem": "300" }, "path": [ "global", @@ -23778,433 +24965,31 @@ ] } }, - "pf-t--global--text--color--placeholder": { + "pf-t--global--text--color--status--success--default": { "default": { - "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", "type": "color", - "value": "#4d4d4d", + "value": "#3d7317", "filePath": "tokens/default/light/semantic.json", "isSource": true, "original": { - "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", "type": "color", - "value": "{global.text.color.subtle}" + "value": "{global.color.status.success.default}" }, - "name": "pf-t--global--text--color--placeholder", + "name": "pf-t--global--text--color--status--success--default", "attributes": { "category": "global", "type": "text", "item": "color", - "subitem": "placeholder" + "subitem": "status", + "state": "success" }, "path": [ "global", "text", "color", - "placeholder" - ], - "references": [ - { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/light/semantic.json", - "isSource": true, - "original": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", - "type": "color", - "value": "{global.text.color.200}" - }, - "name": "pf-t--global--text--color--subtle", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "subtle" - }, - "path": [ - "global", - "text", - "color", - "subtle" - ], - "references": [ - { - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/light/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.60}" - }, - "name": "pf-t--global--text--color--200", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "200" - }, - "path": [ - "global", - "text", - "color", - "200" - ], - "references": [ - { - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#4d4d4d" - }, - "name": "pf-t--color--gray--60", - "attributes": { - "category": "color", - "type": "gray", - "item": "60" - }, - "path": [ - "color", - "gray", - "60" - ] - } - ] - } - ] - } - ] - } - }, - "pf-t--global--text--color--disabled": { - "default": { - "description": "Use as the color of text on disabled elements, like disabled menu items.", - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/light/semantic.json", - "isSource": true, - "original": { - "description": "Use as the color of text on disabled elements, like disabled menu items.", - "type": "color", - "value": "{global.color.disabled.200}" - }, - "name": "pf-t--global--text--color--disabled", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "disabled" - }, - "path": [ - "global", - "text", - "color", - "disabled" - ], - "references": [ - { - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/light/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.40}" - }, - "name": "pf-t--global--color--disabled--200", - "attributes": { - "category": "global", - "type": "color", - "item": "disabled", - "subitem": "200" - }, - "path": [ - "global", - "color", - "disabled", - "200" - ], - "references": [ - { - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#a3a3a3" - }, - "name": "pf-t--color--gray--40", - "attributes": { - "category": "color", - "type": "gray", - "item": "40" - }, - "path": [ - "color", - "gray", - "40" - ] - } - ] - } - ] - } - }, - "pf-t--global--text--color--on-disabled": { - "default": { - "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", - "type": "color", - "value": "#707070", - "filePath": "tokens/default/light/semantic.json", - "isSource": true, - "original": { - "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", - "type": "color", - "value": "{global.color.disabled.300}" - }, - "name": "pf-t--global--text--color--on-disabled", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "on-disabled" - }, - "path": [ - "global", - "text", - "color", - "on-disabled" - ], - "references": [ - { - "type": "color", - "value": "#707070", - "filePath": "tokens/default/light/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.50}" - }, - "name": "pf-t--global--color--disabled--300", - "attributes": { - "category": "global", - "type": "color", - "item": "disabled", - "subitem": "300" - }, - "path": [ - "global", - "color", - "disabled", - "300" - ], - "references": [ - { - "type": "color", - "value": "#707070", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#707070" - }, - "name": "pf-t--color--gray--50", - "attributes": { - "category": "color", - "type": "gray", - "item": "50" - }, - "path": [ - "color", - "gray", - "50" - ] - } - ] - } - ] - } - }, - "pf-t--global--text--color--required": { - "default": { - "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", - "type": "color", - "value": "#f4784a", - "filePath": "tokens/default/light/semantic.json", - "isSource": true, - "original": { - "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", - "type": "color", - "value": "{global.text.color.400}" - }, - "name": "pf-t--global--text--color--required", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "required" - }, - "path": [ - "global", - "text", - "color", - "required" - ], - "references": [ - { - "type": "color", - "value": "#f4784a", - "filePath": "tokens/default/light/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.red-orange.40}" - }, - "name": "pf-t--global--text--color--400", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "400" - }, - "path": [ - "global", - "text", - "color", - "400" - ], - "references": [ - { - "type": "color", - "value": "#f4784a", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#f4784a" - }, - "name": "pf-t--color--red-orange--40", - "attributes": { - "category": "color", - "type": "red-orange", - "item": "40" - }, - "path": [ - "color", - "red-orange", - "40" - ] - } - ] - } - ] - } - }, - "pf-t--global--text--color--on-highlight": { - "default": { - "description": "Use as the color of text that is highlighted.", - "type": "color", - "value": "#151515", - "filePath": "tokens/default/light/semantic.json", - "isSource": true, - "original": { - "description": "Use as the color of text that is highlighted.", - "type": "color", - "value": "{global.text.color.100}" - }, - "name": "pf-t--global--text--color--on-highlight", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "on-highlight" - }, - "path": [ - "global", - "text", - "color", - "on-highlight" - ], - "references": [ - { - "type": "color", - "value": "#151515", - "filePath": "tokens/default/light/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.gray.95}" - }, - "name": "pf-t--global--text--color--100", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "100" - }, - "path": [ - "global", - "text", - "color", - "100" - ], - "references": [ - { - "type": "color", - "value": "#151515", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#151515" - }, - "name": "pf-t--color--gray--95", - "attributes": { - "category": "color", - "type": "gray", - "item": "95" - }, - "path": [ - "color", - "gray", - "95" - ] - } - ] - } - ] - } - }, - "pf-t--global--text--color--status--success--default": { - "default": { - "type": "color", - "value": "#3d7317", - "filePath": "tokens/default/light/semantic.json", - "isSource": true, - "original": { - "type": "color", - "value": "{global.color.status.success.default}" - }, - "name": "pf-t--global--text--color--status--success--default", - "attributes": { - "category": "global", - "type": "text", - "item": "color", - "subitem": "status", - "state": "success" - }, - "path": [ - "global", - "text", - "color", - "status", - "success", - "default" + "status", + "success", + "default" ], "references": [ { @@ -31880,77 +32665,76 @@ ] } }, - "pf-t--global--spacer--action--horizontal--plain--default": { + "pf-t--global--spacer--action--horizontal--compact": { "default": { - "description": "Use to set the horizontal padding inside a plain action, like plain buttons.", + "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", "type": "number", - "value": "0.5rem", + "value": "1rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to set the horizontal padding inside a plain action, like plain buttons.", + "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", "type": "number", - "value": "{global.spacer.sm}" + "value": "{global.spacer.md}" }, - "name": "pf-t--global--spacer--action--horizontal--plain--default", + "name": "pf-t--global--spacer--action--horizontal--compact", "attributes": { "category": "global", "type": "spacer", "item": "action", "subitem": "horizontal", - "state": "plain" + "state": "compact" }, "path": [ "global", "spacer", "action", "horizontal", - "plain", - "default" + "compact" ], "references": [ { - "description": "Use for small spaces between elements.", + "description": "Use for medium-sized spaces between elements.", "type": "number", - "value": "0.5rem", + "value": "1rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for small spaces between elements.", + "description": "Use for medium-sized spaces between elements.", "type": "number", - "value": "{global.spacer.200}" + "value": "{global.spacer.300}" }, - "name": "pf-t--global--spacer--sm", + "name": "pf-t--global--spacer--md", "attributes": { "category": "global", "type": "spacer", - "item": "sm" + "item": "md" }, "path": [ "global", "spacer", - "sm" + "md" ], "references": [ { "type": "number", - "value": "0.5rem", + "value": "1rem", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 8 + "value": 16 }, - "name": "pf-t--global--spacer--200", + "name": "pf-t--global--spacer--300", "attributes": { "category": "global", "type": "spacer", - "item": "200" + "item": "300" }, "path": [ "global", "spacer", - "200" + "300" ] } ] @@ -31958,77 +32742,76 @@ ] } }, - "pf-t--global--spacer--action--horizontal--plain--compact": { + "pf-t--global--spacer--action--horizontal--spacious": { "default": { - "description": "Use to set the horizontal padding inside a compact, plain action/button.", + "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", "type": "number", - "value": "0.25rem", + "value": "2rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to set the horizontal padding inside a compact, plain action/button.", + "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", "type": "number", - "value": "{global.spacer.xs}" + "value": "{global.spacer.xl}" }, - "name": "pf-t--global--spacer--action--horizontal--plain--compact", + "name": "pf-t--global--spacer--action--horizontal--spacious", "attributes": { "category": "global", "type": "spacer", "item": "action", "subitem": "horizontal", - "state": "plain" + "state": "spacious" }, "path": [ "global", "spacer", "action", "horizontal", - "plain", - "compact" + "spacious" ], "references": [ { - "description": "Use for extra small spaces between elements.", + "description": "Use for extra large spaces between elements.", "type": "number", - "value": "0.25rem", + "value": "2rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for extra small spaces between elements.", + "description": "Use for extra large spaces between elements.", "type": "number", - "value": "{global.spacer.100}" + "value": "{global.spacer.500}" }, - "name": "pf-t--global--spacer--xs", + "name": "pf-t--global--spacer--xl", "attributes": { "category": "global", "type": "spacer", - "item": "xs" + "item": "xl" }, "path": [ "global", "spacer", - "xs" + "xl" ], "references": [ { "type": "number", - "value": "0.25rem", + "value": "2rem", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 4 + "value": 32 }, - "name": "pf-t--global--spacer--100", + "name": "pf-t--global--spacer--500", "attributes": { "category": "global", "type": "spacer", - "item": "100" + "item": "500" }, "path": [ "global", "spacer", - "100" + "500" ] } ] @@ -32036,76 +32819,77 @@ ] } }, - "pf-t--global--spacer--action--horizontal--compact": { + "pf-t--global--spacer--action--horizontal--plain--default": { "default": { - "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", + "description": "Use to set the horizontal padding inside a plain action, like plain buttons.", "type": "number", - "value": "1rem", + "value": "0.5rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", + "description": "Use to set the horizontal padding inside a plain action, like plain buttons.", "type": "number", - "value": "{global.spacer.md}" + "value": "{global.spacer.sm}" }, - "name": "pf-t--global--spacer--action--horizontal--compact", + "name": "pf-t--global--spacer--action--horizontal--plain--default", "attributes": { "category": "global", "type": "spacer", "item": "action", "subitem": "horizontal", - "state": "compact" + "state": "plain" }, "path": [ "global", "spacer", "action", "horizontal", - "compact" + "plain", + "default" ], "references": [ { - "description": "Use for medium-sized spaces between elements.", + "description": "Use for small spaces between elements.", "type": "number", - "value": "1rem", + "value": "0.5rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for medium-sized spaces between elements.", + "description": "Use for small spaces between elements.", "type": "number", - "value": "{global.spacer.300}" + "value": "{global.spacer.200}" }, - "name": "pf-t--global--spacer--md", + "name": "pf-t--global--spacer--sm", "attributes": { "category": "global", "type": "spacer", - "item": "md" + "item": "sm" }, "path": [ "global", "spacer", - "md" + "sm" ], "references": [ { "type": "number", - "value": "1rem", + "value": "0.5rem", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 16 + "value": 8 }, - "name": "pf-t--global--spacer--300", + "name": "pf-t--global--spacer--200", "attributes": { "category": "global", "type": "spacer", - "item": "300" + "item": "200" }, "path": [ "global", "spacer", - "300" + "200" ] } ] @@ -32113,76 +32897,77 @@ ] } }, - "pf-t--global--spacer--action--horizontal--spacious": { + "pf-t--global--spacer--action--horizontal--plain--compact": { "default": { - "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", + "description": "Use to set the horizontal padding inside a compact, plain action/button.", "type": "number", - "value": "2rem", + "value": "0.25rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", + "description": "Use to set the horizontal padding inside a compact, plain action/button.", "type": "number", - "value": "{global.spacer.xl}" + "value": "{global.spacer.xs}" }, - "name": "pf-t--global--spacer--action--horizontal--spacious", + "name": "pf-t--global--spacer--action--horizontal--plain--compact", "attributes": { "category": "global", "type": "spacer", "item": "action", "subitem": "horizontal", - "state": "spacious" + "state": "plain" }, "path": [ "global", "spacer", "action", "horizontal", - "spacious" + "plain", + "compact" ], "references": [ { - "description": "Use for extra large spaces between elements.", + "description": "Use for extra small spaces between elements.", "type": "number", - "value": "2rem", + "value": "0.25rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for extra large spaces between elements.", + "description": "Use for extra small spaces between elements.", "type": "number", - "value": "{global.spacer.500}" + "value": "{global.spacer.100}" }, - "name": "pf-t--global--spacer--xl", + "name": "pf-t--global--spacer--xs", "attributes": { "category": "global", "type": "spacer", - "item": "xl" + "item": "xs" }, "path": [ "global", "spacer", - "xl" + "xs" ], "references": [ { "type": "number", - "value": "2rem", + "value": "0.25rem", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 32 + "value": 4 }, - "name": "pf-t--global--spacer--500", + "name": "pf-t--global--spacer--100", "attributes": { "category": "global", "type": "spacer", - "item": "500" + "item": "100" }, "path": [ "global", "spacer", - "500" + "100" ] } ] @@ -33499,110 +34284,78 @@ ] } }, - "pf-t--global--icon--size--font--heading--h1": { + "pf-t--global--icon--size--font--xs": { "default": { - "description": "Use for icons that are placed inline with first level headings", + "description": "Use for icons that are placed inline with font–size–xs text", "type": "number", - "value": "1.5rem", + "value": "0.75rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with first level headings", + "description": "Use for icons that are placed inline with font–size–xs text", "type": "number", - "value": "{global.font.size.heading.h1}" + "value": "{global.font.size.xs}" }, - "name": "pf-t--global--icon--size--font--heading--h1", + "name": "pf-t--global--icon--size--font--xs", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "xs" }, "path": [ "global", "icon", "size", "font", - "heading", - "h1" + "xs" ], "references": [ { - "description": "Use as the font size for first level headings.", "type": "number", - "value": "1.5rem", + "value": "0.75rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for first level headings.", "type": "number", - "value": "{global.font.size.2xl}" + "value": "{global.font.size.100}" }, - "name": "pf-t--global--font--size--heading--h1", + "name": "pf-t--global--font--size--xs", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h1" + "subitem": "xs" }, "path": [ "global", "font", "size", - "heading", - "h1" + "xs" ], "references": [ { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.5rem", - "filePath": "tokens/default/light/semantic.dimension.json", + "value": "0.75rem", + "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.600}" + "value": 12 }, - "name": "pf-t--global--font--size--2xl", + "name": "pf-t--global--font--size--100", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "2xl" + "subitem": "100" }, "path": [ "global", "font", "size", - "2xl" - ], - "references": [ - { - "type": "number", - "value": "1.5rem", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 24 - }, - "name": "pf-t--global--font--size--600", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "600" - }, - "path": [ - "global", - "font", - "size", - "600" - ] - } + "100" ] } ] @@ -33610,110 +34363,80 @@ ] } }, - "pf-t--global--icon--size--font--heading--h2": { + "pf-t--global--icon--size--font--sm": { "default": { - "description": "Use for icons that are placed inline with second level headings", + "description": "Use for icons that are placed inline with font–size–sm text", "type": "number", - "value": "1.25rem", + "value": "0.875rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with second level headings", + "description": "Use for icons that are placed inline with font–size–sm text", "type": "number", - "value": "{global.font.size.heading.h2}" + "value": "{global.font.size.sm}" }, - "name": "pf-t--global--icon--size--font--heading--h2", + "name": "pf-t--global--icon--size--font--sm", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "sm" }, "path": [ "global", "icon", "size", "font", - "heading", - "h2" + "sm" ], "references": [ { - "description": "Use as the font size for second level headings.", + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "1.25rem", + "value": "0.875rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for second level headings.", + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.xl}" + "value": "{global.font.size.200}" }, - "name": "pf-t--global--font--size--heading--h2", + "name": "pf-t--global--font--size--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h2" + "subitem": "sm" }, "path": [ "global", "font", "size", - "heading", - "h2" + "sm" ], "references": [ { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.25rem", - "filePath": "tokens/default/light/semantic.dimension.json", + "value": "0.875rem", + "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.500}" + "value": 14 }, - "name": "pf-t--global--font--size--xl", + "name": "pf-t--global--font--size--200", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xl" + "subitem": "200" }, "path": [ "global", "font", "size", - "xl" - ], - "references": [ - { - "type": "number", - "value": "1.25rem", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 20 - }, - "name": "pf-t--global--font--size--500", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "500" - }, - "path": [ - "global", - "font", - "size", - "500" - ] - } + "200" ] } ] @@ -33721,110 +34444,80 @@ ] } }, - "pf-t--global--icon--size--font--heading--h3": { + "pf-t--global--icon--size--font--md": { "default": { - "description": "Use for icons that are placed inline with third level headings", + "description": "Use for icons that are placed inline with font–size–md text", "type": "number", - "value": "1.125rem", + "value": "1rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with third level headings", + "description": "Use for icons that are placed inline with font–size–md text", "type": "number", - "value": "{global.font.size.heading.h3}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--icon--size--font--heading--h3", + "name": "pf-t--global--icon--size--font--md", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "md" }, "path": [ "global", "icon", "size", "font", - "heading", - "h3" + "md" ], "references": [ { - "description": "Use as the font size for third level headings.", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1.125rem", + "value": "1rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for third level headings.", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.lg}" + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--heading--h3", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h3" + "subitem": "md" }, "path": [ "global", "font", "size", - "heading", - "h3" + "md" ], "references": [ { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/light/semantic.dimension.json", + "value": "1rem", + "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.400}" + "value": 16 }, - "name": "pf-t--global--font--size--lg", + "name": "pf-t--global--font--size--300", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "lg" + "subitem": "300" }, "path": [ "global", "font", "size", - "lg" - ], - "references": [ - { - "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 18 - }, - "name": "pf-t--global--font--size--400", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "400" - }, - "path": [ - "global", - "font", - "size", - "400" - ] - } + "300" ] } ] @@ -33832,110 +34525,80 @@ ] } }, - "pf-t--global--icon--size--font--heading--h4": { + "pf-t--global--icon--size--font--lg": { "default": { - "description": "Use for icons that are placed inline with fourth level headings", + "description": "Use for icons that are placed inline with font–size–lg text", "type": "number", - "value": "1rem", + "value": "1.125rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with fourth level headings", + "description": "Use for icons that are placed inline with font–size–lg text", "type": "number", - "value": "{global.font.size.heading.h4}" + "value": "{global.font.size.lg}" }, - "name": "pf-t--global--icon--size--font--heading--h4", + "name": "pf-t--global--icon--size--font--lg", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "lg" }, "path": [ "global", "icon", "size", "font", - "heading", - "h4" + "lg" ], "references": [ { - "description": "Use as the font size for fourth-level headings.", + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.125rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for fourth-level headings.", + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.400}" }, - "name": "pf-t--global--font--size--heading--h4", + "name": "pf-t--global--font--size--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h4" + "subitem": "lg" }, "path": [ "global", "font", "size", - "heading", - "h4" + "lg" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/light/semantic.dimension.json", + "value": "1.125rem", + "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 18 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--400", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "400" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "400" ] } ] @@ -33943,110 +34606,80 @@ ] } }, - "pf-t--global--icon--size--font--heading--h5": { + "pf-t--global--icon--size--font--xl": { "default": { - "description": "Use for icons that are placed inline with fifth level headings", + "description": "Use for icons that are placed inline with font–size–xl text", "type": "number", - "value": "1rem", + "value": "1.25rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with fifth level headings", + "description": "Use for icons that are placed inline with font–size–xl text", "type": "number", - "value": "{global.font.size.heading.h5}" + "value": "{global.font.size.xl}" }, - "name": "pf-t--global--icon--size--font--heading--h5", + "name": "pf-t--global--icon--size--font--xl", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "xl" }, "path": [ "global", "icon", "size", "font", - "heading", - "h5" + "xl" ], "references": [ { - "description": "Use as the font size for fifth level headings.", + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.25rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for fifth level headings.", + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.500}" }, - "name": "pf-t--global--font--size--heading--h5", + "name": "pf-t--global--font--size--xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h5" + "subitem": "xl" }, "path": [ "global", "font", "size", - "heading", - "h5" + "xl" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/light/semantic.dimension.json", + "value": "1.25rem", + "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 20 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--500", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "500" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "500" ] } ] @@ -34054,110 +34687,80 @@ ] } }, - "pf-t--global--icon--size--font--heading--h6": { + "pf-t--global--icon--size--font--2xl": { "default": { - "description": "Use for icons that are placed inline with sixth level headings", + "description": "Use for icons that are placed inline with font–size–2xl text", "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with sixth level headings", + "description": "Use for icons that are placed inline with font–size–2xl text", "type": "number", - "value": "{global.font.size.heading.h6}" + "value": "{global.font.size.2xl}" }, - "name": "pf-t--global--icon--size--font--heading--h6", + "name": "pf-t--global--icon--size--font--2xl", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "heading" + "state": "2xl" }, "path": [ "global", "icon", "size", "font", - "heading", - "h6" + "2xl" ], "references": [ { - "description": "Use as the font size for sixth level headings.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for sixth level headings.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.600}" }, - "name": "pf-t--global--font--size--heading--h6", + "name": "pf-t--global--font--size--2xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "heading", - "state": "h6" + "subitem": "2xl" }, "path": [ "global", "font", "size", - "heading", - "h6" + "2xl" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", - "filePath": "tokens/default/light/semantic.dimension.json", + "value": "1.5rem", + "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": 24 }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--600", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "600" }, "path": [ "global", "font", "size", - "md" - ], - "references": [ - { - "type": "number", - "value": "1rem", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--font--size--300", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "300" - }, - "path": [ - "global", - "font", - "size", - "300" - ] - } + "600" ] } ] @@ -34165,108 +34768,80 @@ ] } }, - "pf-t--global--icon--size--font--body--sm": { + "pf-t--global--icon--size--font--3xl": { "default": { - "description": "Use for icons that are placed inline with small body text", + "description": "Use for icons that are placed inline with font–size–3xl text", "type": "number", - "value": "0.75rem", + "value": "1.75rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with small body text", + "description": "Use for icons that are placed inline with font–size–3xl text", "type": "number", - "value": "{global.font.size.body.sm}" + "value": "{global.font.size.3xl}" }, - "name": "pf-t--global--icon--size--font--body--sm", + "name": "pf-t--global--icon--size--font--3xl", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "body" + "state": "3xl" }, "path": [ "global", "icon", "size", "font", - "body", - "sm" + "3xl" ], "references": [ { - "description": "Use for a smaller font size in body sections.", + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "0.75rem", + "value": "1.75rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for a smaller font size in body sections.", + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.xs}" + "value": "{global.font.size.700}" }, - "name": "pf-t--global--font--size--body--sm", + "name": "pf-t--global--font--size--3xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "body", - "state": "sm" + "subitem": "3xl" }, "path": [ "global", "font", "size", - "body", - "sm" + "3xl" ], "references": [ { "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/light/semantic.dimension.json", + "value": "1.75rem", + "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": "{global.font.size.100}" + "value": 28 }, - "name": "pf-t--global--font--size--xs", + "name": "pf-t--global--font--size--700", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xs" + "subitem": "700" }, "path": [ "global", "font", "size", - "xs" - ], - "references": [ - { - "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 12 - }, - "name": "pf-t--global--font--size--100", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "100" - }, - "path": [ - "global", - "font", - "size", - "100" - ] - } + "700" ] } ] @@ -34274,110 +34849,80 @@ ] } }, - "pf-t--global--icon--size--font--body--default": { + "pf-t--global--icon--size--font--4xl": { "default": { - "description": "Use for icons that are placed inline with default body text", + "description": "Use for icons that are placed inline with font–size–3xl text", "type": "number", - "value": "0.875rem", + "value": "2.25rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with default body text", + "description": "Use for icons that are placed inline with font–size–3xl text", "type": "number", - "value": "{global.font.size.body.default}" + "value": "{global.font.size.4xl}" }, - "name": "pf-t--global--icon--size--font--body--default", + "name": "pf-t--global--icon--size--font--4xl", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "body" + "state": "4xl" }, "path": [ "global", "icon", "size", "font", - "body", - "default" + "4xl" ], "references": [ { - "description": "Use as the default font size in body sections.", + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "0.875rem", + "value": "2.25rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the default font size in body sections.", + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.sm}" + "value": "{global.font.size.800}" }, - "name": "pf-t--global--font--size--body--default", + "name": "pf-t--global--font--size--4xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "body", - "state": "default" + "subitem": "4xl" }, "path": [ "global", "font", "size", - "body", - "default" + "4xl" ], "references": [ { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "0.875rem", - "filePath": "tokens/default/light/semantic.dimension.json", + "value": "2.25rem", + "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.200}" + "value": 36 }, - "name": "pf-t--global--font--size--sm", + "name": "pf-t--global--font--size--800", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "sm" + "subitem": "800" }, "path": [ "global", "font", "size", - "sm" - ], - "references": [ - { - "type": "number", - "value": "0.875rem", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 14 - }, - "name": "pf-t--global--font--size--200", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "200" - }, - "path": [ - "global", - "font", - "size", - "200" - ] - } + "800" ] } ] @@ -34385,108 +34930,108 @@ ] } }, - "pf-t--global--icon--size--font--body--lg": { + "pf-t--global--icon--size--font--heading--h1": { "default": { - "description": "Use for icons that are placed inline with large body text", + "description": "Use for icons that are placed inline with first level headings", "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with large body text", + "description": "Use for icons that are placed inline with first level headings", "type": "number", - "value": "{global.font.size.body.lg}" + "value": "{global.font.size.heading.h1}" }, - "name": "pf-t--global--icon--size--font--body--lg", + "name": "pf-t--global--icon--size--font--heading--h1", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "body" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "body", - "lg" + "heading", + "h1" ], "references": [ { - "description": "Use for a larger font size in body sections.", + "description": "Use as the font size for first level headings.", "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for a larger font size in body sections.", + "description": "Use as the font size for first level headings.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.2xl}" }, - "name": "pf-t--global--font--size--body--lg", + "name": "pf-t--global--font--size--heading--h1", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "body", - "state": "lg" + "subitem": "heading", + "state": "h1" }, "path": [ "global", "font", "size", - "body", - "lg" + "heading", + "h1" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.300}" + "value": "{global.font.size.600}" }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--2xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "2xl" }, "path": [ "global", "font", "size", - "md" + "2xl" ], "references": [ { "type": "number", - "value": "1rem", + "value": "1.5rem", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 16 + "value": 24 }, - "name": "pf-t--global--font--size--300", + "name": "pf-t--global--font--size--600", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "300" + "subitem": "600" }, "path": [ "global", "font", "size", - "300" + "600" ] } ] @@ -34496,78 +35041,110 @@ ] } }, - "pf-t--global--icon--size--font--xs": { + "pf-t--global--icon--size--font--heading--h2": { "default": { - "description": "Use for icons that are placed inline with font–size–xs text", + "description": "Use for icons that are placed inline with second level headings", "type": "number", - "value": "0.75rem", + "value": "1.25rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–xs text", + "description": "Use for icons that are placed inline with second level headings", "type": "number", - "value": "{global.font.size.xs}" + "value": "{global.font.size.heading.h2}" }, - "name": "pf-t--global--icon--size--font--xs", + "name": "pf-t--global--icon--size--font--heading--h2", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "xs" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "xs" + "heading", + "h2" ], "references": [ { + "description": "Use as the font size for second level headings.", "type": "number", - "value": "0.75rem", + "value": "1.25rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { + "description": "Use as the font size for second level headings.", "type": "number", - "value": "{global.font.size.100}" + "value": "{global.font.size.xl}" }, - "name": "pf-t--global--font--size--xs", + "name": "pf-t--global--font--size--heading--h2", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xs" + "subitem": "heading", + "state": "h2" }, "path": [ "global", "font", "size", - "xs" + "heading", + "h2" ], "references": [ { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/light/base.dimension.json", + "value": "1.25rem", + "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", "type": "number", - "value": 12 + "value": "{global.font.size.500}" }, - "name": "pf-t--global--font--size--100", + "name": "pf-t--global--font--size--xl", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "100" + "subitem": "xl" }, "path": [ "global", "font", "size", - "100" + "xl" + ], + "references": [ + { + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 20 + }, + "name": "pf-t--global--font--size--500", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "500" + }, + "path": [ + "global", + "font", + "size", + "500" + ] + } ] } ] @@ -34575,80 +35152,110 @@ ] } }, - "pf-t--global--icon--size--font--sm": { + "pf-t--global--icon--size--font--heading--h3": { "default": { - "description": "Use for icons that are placed inline with font–size–sm text", + "description": "Use for icons that are placed inline with third level headings", "type": "number", - "value": "0.875rem", + "value": "1.125rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–sm text", + "description": "Use for icons that are placed inline with third level headings", "type": "number", - "value": "{global.font.size.sm}" + "value": "{global.font.size.heading.h3}" }, - "name": "pf-t--global--icon--size--font--sm", + "name": "pf-t--global--icon--size--font--heading--h3", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "sm" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "sm" + "heading", + "h3" ], "references": [ { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "description": "Use as the font size for third level headings.", "type": "number", - "value": "0.875rem", + "value": "1.125rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "description": "Use as the font size for third level headings.", "type": "number", - "value": "{global.font.size.200}" + "value": "{global.font.size.lg}" }, - "name": "pf-t--global--font--size--sm", + "name": "pf-t--global--font--size--heading--h3", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "sm" + "subitem": "heading", + "state": "h3" }, "path": [ "global", "font", "size", - "sm" + "heading", + "h3" ], "references": [ { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": "0.875rem", - "filePath": "tokens/default/light/base.dimension.json", + "value": "1.125rem", + "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", "type": "number", - "value": 14 + "value": "{global.font.size.400}" }, - "name": "pf-t--global--font--size--200", + "name": "pf-t--global--font--size--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "200" + "subitem": "lg" }, "path": [ "global", "font", "size", - "200" + "lg" + ], + "references": [ + { + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 18 + }, + "name": "pf-t--global--font--size--400", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "400" + }, + "path": [ + "global", + "font", + "size", + "400" + ] + } ] } ] @@ -34656,80 +35263,110 @@ ] } }, - "pf-t--global--icon--size--font--md": { + "pf-t--global--icon--size--font--heading--h4": { "default": { - "description": "Use for icons that are placed inline with font–size–md text", + "description": "Use for icons that are placed inline with fourth level headings", "type": "number", "value": "1rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–md text", + "description": "Use for icons that are placed inline with fourth level headings", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.heading.h4}" }, - "name": "pf-t--global--icon--size--font--md", + "name": "pf-t--global--icon--size--font--heading--h4", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "md" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "md" + "heading", + "h4" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use as the font size for fourth-level headings.", "type": "number", "value": "1rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use as the font size for fourth-level headings.", "type": "number", - "value": "{global.font.size.300}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--font--size--heading--h4", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "md" + "subitem": "heading", + "state": "h4" }, "path": [ "global", "font", "size", - "md" + "heading", + "h4" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", "value": "1rem", - "filePath": "tokens/default/light/base.dimension.json", + "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 16 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--300", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "300" + "subitem": "md" }, "path": [ "global", "font", "size", - "300" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] @@ -34737,80 +35374,110 @@ ] } }, - "pf-t--global--icon--size--font--lg": { + "pf-t--global--icon--size--font--heading--h5": { "default": { - "description": "Use for icons that are placed inline with font–size–lg text", + "description": "Use for icons that are placed inline with fifth level headings", "type": "number", - "value": "1.125rem", + "value": "1rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–lg text", + "description": "Use for icons that are placed inline with fifth level headings", "type": "number", - "value": "{global.font.size.lg}" + "value": "{global.font.size.heading.h5}" }, - "name": "pf-t--global--icon--size--font--lg", + "name": "pf-t--global--icon--size--font--heading--h5", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "lg" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "lg" + "heading", + "h5" ], "references": [ { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "description": "Use as the font size for fifth level headings.", "type": "number", - "value": "1.125rem", + "value": "1rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "description": "Use as the font size for fifth level headings.", "type": "number", - "value": "{global.font.size.400}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--lg", + "name": "pf-t--global--font--size--heading--h5", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "lg" + "subitem": "heading", + "state": "h5" }, "path": [ "global", "font", "size", - "lg" + "heading", + "h5" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1.125rem", - "filePath": "tokens/default/light/base.dimension.json", + "value": "1rem", + "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 18 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--400", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "400" + "subitem": "md" }, "path": [ "global", "font", "size", - "400" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] @@ -34818,80 +35485,110 @@ ] } }, - "pf-t--global--icon--size--font--xl": { + "pf-t--global--icon--size--font--heading--h6": { "default": { - "description": "Use for icons that are placed inline with font–size–xl text", + "description": "Use for icons that are placed inline with sixth level headings", "type": "number", - "value": "1.25rem", + "value": "1rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–xl text", + "description": "Use for icons that are placed inline with sixth level headings", "type": "number", - "value": "{global.font.size.xl}" + "value": "{global.font.size.heading.h6}" }, - "name": "pf-t--global--icon--size--font--xl", + "name": "pf-t--global--icon--size--font--heading--h6", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "xl" + "state": "heading" }, "path": [ "global", "icon", "size", "font", - "xl" + "heading", + "h6" ], "references": [ { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for sixth level headings.", "type": "number", - "value": "1.25rem", + "value": "1rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "description": "Use as the font size for sixth level headings.", "type": "number", - "value": "{global.font.size.500}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--xl", + "name": "pf-t--global--font--size--heading--h6", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xl" + "subitem": "heading", + "state": "h6" }, "path": [ "global", "font", "size", - "xl" + "heading", + "h6" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "1.25rem", - "filePath": "tokens/default/light/base.dimension.json", + "value": "1rem", + "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 20 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--500", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "500" + "subitem": "md" }, "path": [ "global", "font", "size", - "500" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] @@ -34899,80 +35596,108 @@ ] } }, - "pf-t--global--icon--size--font--2xl": { + "pf-t--global--icon--size--font--body--sm": { "default": { - "description": "Use for icons that are placed inline with font–size–2xl text", + "description": "Use for icons that are placed inline with small body text", "type": "number", - "value": "1.5rem", + "value": "0.75rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–2xl text", + "description": "Use for icons that are placed inline with small body text", "type": "number", - "value": "{global.font.size.2xl}" + "value": "{global.font.size.body.sm}" }, - "name": "pf-t--global--icon--size--font--2xl", + "name": "pf-t--global--icon--size--font--body--sm", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "2xl" + "state": "body" }, "path": [ "global", "icon", "size", "font", - "2xl" + "body", + "sm" ], "references": [ { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "description": "Use for a smaller font size in body sections.", "type": "number", - "value": "1.5rem", + "value": "0.75rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "description": "Use for a smaller font size in body sections.", "type": "number", - "value": "{global.font.size.600}" + "value": "{global.font.size.xs}" }, - "name": "pf-t--global--font--size--2xl", + "name": "pf-t--global--font--size--body--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "2xl" + "subitem": "body", + "state": "sm" }, "path": [ "global", "font", "size", - "2xl" + "body", + "sm" ], "references": [ { "type": "number", - "value": "1.5rem", - "filePath": "tokens/default/light/base.dimension.json", + "value": "0.75rem", + "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { "type": "number", - "value": 24 + "value": "{global.font.size.100}" }, - "name": "pf-t--global--font--size--600", + "name": "pf-t--global--font--size--xs", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "600" + "subitem": "xs" }, "path": [ "global", "font", "size", - "600" + "xs" + ], + "references": [ + { + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 12 + }, + "name": "pf-t--global--font--size--100", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "100" + }, + "path": [ + "global", + "font", + "size", + "100" + ] + } ] } ] @@ -34980,80 +35705,110 @@ ] } }, - "pf-t--global--icon--size--font--3xl": { + "pf-t--global--icon--size--font--body--default": { "default": { - "description": "Use for icons that are placed inline with font–size–3xl text", + "description": "Use for icons that are placed inline with default body text", "type": "number", - "value": "1.75rem", + "value": "0.875rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–3xl text", + "description": "Use for icons that are placed inline with default body text", "type": "number", - "value": "{global.font.size.3xl}" + "value": "{global.font.size.body.default}" }, - "name": "pf-t--global--icon--size--font--3xl", + "name": "pf-t--global--icon--size--font--body--default", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "3xl" + "state": "body" }, "path": [ "global", "icon", "size", "font", - "3xl" + "body", + "default" ], "references": [ { - "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "description": "Use as the default font size in body sections.", "type": "number", - "value": "1.75rem", + "value": "0.875rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "description": "Use as the default font size in body sections.", "type": "number", - "value": "{global.font.size.700}" + "value": "{global.font.size.sm}" }, - "name": "pf-t--global--font--size--3xl", + "name": "pf-t--global--font--size--body--default", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "3xl" + "subitem": "body", + "state": "default" }, "path": [ "global", "font", "size", - "3xl" + "body", + "default" ], "references": [ { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "1.75rem", - "filePath": "tokens/default/light/base.dimension.json", + "value": "0.875rem", + "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": 28 + "value": "{global.font.size.200}" }, - "name": "pf-t--global--font--size--700", + "name": "pf-t--global--font--size--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "700" + "subitem": "sm" }, "path": [ "global", "font", "size", - "700" + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 14 + }, + "name": "pf-t--global--font--size--200", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "200" + }, + "path": [ + "global", + "font", + "size", + "200" + ] + } ] } ] @@ -35061,80 +35816,110 @@ ] } }, - "pf-t--global--icon--size--font--4xl": { + "pf-t--global--icon--size--font--body--lg": { "default": { - "description": "Use for icons that are placed inline with font–size–3xl text", + "description": "Use for icons that are placed inline with large body text", "type": "number", - "value": "2.25rem", + "value": "1rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for icons that are placed inline with font–size–3xl text", + "description": "Use for icons that are placed inline with large body text", "type": "number", - "value": "{global.font.size.4xl}" + "value": "{global.font.size.body.lg}" }, - "name": "pf-t--global--icon--size--font--4xl", + "name": "pf-t--global--icon--size--font--body--lg", "attributes": { "category": "global", "type": "icon", "item": "size", "subitem": "font", - "state": "4xl" + "state": "body" }, "path": [ "global", "icon", "size", "font", - "4xl" + "body", + "lg" ], "references": [ { - "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "description": "Use for a larger font size in body sections.", "type": "number", - "value": "2.25rem", + "value": "1rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "description": "Use for a larger font size in body sections.", "type": "number", - "value": "{global.font.size.800}" + "value": "{global.font.size.md}" }, - "name": "pf-t--global--font--size--4xl", + "name": "pf-t--global--font--size--body--lg", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "4xl" + "subitem": "body", + "state": "lg" }, "path": [ "global", "font", "size", - "4xl" + "body", + "lg" ], "references": [ { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "2.25rem", - "filePath": "tokens/default/light/base.dimension.json", + "value": "1rem", + "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": 36 + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--800", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "800" + "subitem": "md" }, "path": [ "global", "font", "size", - "800" + "md" + ], + "references": [ + { + "type": "number", + "value": "1rem", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } ] } ] @@ -35142,32 +35927,30 @@ ] } }, - "pf-t--global--border--width--divider--default": { + "pf-t--global--border--width--regular": { "default": { - "description": "Use as the default border width for dividers.", + "description": "Use as the default border width for elements.", "type": "number", "value": "1px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the default border width for dividers.", + "description": "Use as the default border width for elements.", "type": "number", "value": "{global.border.width.100}" }, - "name": "pf-t--global--border--width--divider--default", + "name": "pf-t--global--border--width--regular", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "divider", - "state": "default" + "subitem": "regular" }, "path": [ "global", "border", "width", - "divider", - "default" + "regular" ], "references": [ { @@ -35196,138 +35979,136 @@ ] } }, - "pf-t--global--border--width--divider--hover": { + "pf-t--global--border--width--strong": { "default": { - "description": "Use as the border width hover state for dividers.", + "description": "Use as a stronger/wider border width for elements.", "type": "number", - "value": "1px", + "value": "2px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the border width hover state for dividers.", + "description": "Use as a stronger/wider border width for elements.", "type": "number", - "value": "{global.border.width.100}" + "value": "{global.border.width.200}" }, - "name": "pf-t--global--border--width--divider--hover", + "name": "pf-t--global--border--width--strong", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "divider", - "state": "hover" + "subitem": "strong" }, "path": [ "global", "border", "width", - "divider", - "hover" + "strong" ], "references": [ { "type": "number", - "value": "1px", + "value": "2px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 1 + "value": 2 }, - "name": "pf-t--global--border--width--100", + "name": "pf-t--global--border--width--200", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "100" + "subitem": "200" }, "path": [ "global", "border", "width", - "100" + "200" ] } ] } }, - "pf-t--global--border--width--divider--clicked": { + "pf-t--global--border--width--extra-strong": { "default": { - "description": "Use as the border width clicked state for dividers.", + "description": "Use as the strongest/widest border width for elements.", "type": "number", - "value": "1px", + "value": "3px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the border width clicked state for dividers.", + "description": "Use as the strongest/widest border width for elements.", "type": "number", - "value": "{global.border.width.100}" + "value": "{global.border.width.300}" }, - "name": "pf-t--global--border--width--divider--clicked", + "name": "pf-t--global--border--width--extra-strong", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "divider", - "state": "clicked" + "subitem": "extra-strong" }, "path": [ "global", "border", "width", - "divider", - "clicked" + "extra-strong" ], "references": [ { "type": "number", - "value": "1px", + "value": "3px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 1 + "value": 3 }, - "name": "pf-t--global--border--width--100", + "name": "pf-t--global--border--width--300", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "100" + "subitem": "300" }, "path": [ "global", "border", "width", - "100" + "300" ] } ] } }, - "pf-t--global--border--width--regular": { + "pf-t--global--border--width--divider--default": { "default": { - "description": "Use as the default border width for elements.", + "description": "Use as the default border width for dividers.", "type": "number", "value": "1px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the default border width for elements.", + "description": "Use as the default border width for dividers.", "type": "number", "value": "{global.border.width.100}" }, - "name": "pf-t--global--border--width--regular", + "name": "pf-t--global--border--width--divider--default", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "regular" + "subitem": "divider", + "state": "default" }, "path": [ "global", "border", "width", - "regular" + "divider", + "default" ], "references": [ { @@ -35356,105 +36137,109 @@ ] } }, - "pf-t--global--border--width--strong": { + "pf-t--global--border--width--divider--hover": { "default": { - "description": "Use as a stronger/wider border width for elements.", + "description": "Use as the border width hover state for dividers.", "type": "number", - "value": "2px", + "value": "1px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as a stronger/wider border width for elements.", + "description": "Use as the border width hover state for dividers.", "type": "number", - "value": "{global.border.width.200}" + "value": "{global.border.width.100}" }, - "name": "pf-t--global--border--width--strong", + "name": "pf-t--global--border--width--divider--hover", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "strong" + "subitem": "divider", + "state": "hover" }, "path": [ "global", "border", "width", - "strong" + "divider", + "hover" ], "references": [ { "type": "number", - "value": "2px", + "value": "1px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 2 + "value": 1 }, - "name": "pf-t--global--border--width--200", + "name": "pf-t--global--border--width--100", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "200" + "subitem": "100" }, "path": [ "global", "border", "width", - "200" + "100" ] } ] } }, - "pf-t--global--border--width--extra-strong": { + "pf-t--global--border--width--divider--clicked": { "default": { - "description": "Use as the strongest/widest border width for elements.", + "description": "Use as the border width clicked state for dividers.", "type": "number", - "value": "3px", + "value": "1px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the strongest/widest border width for elements.", + "description": "Use as the border width clicked state for dividers.", "type": "number", - "value": "{global.border.width.300}" + "value": "{global.border.width.100}" }, - "name": "pf-t--global--border--width--extra-strong", + "name": "pf-t--global--border--width--divider--clicked", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "extra-strong" + "subitem": "divider", + "state": "clicked" }, "path": [ "global", "border", "width", - "extra-strong" + "divider", + "clicked" ], "references": [ { "type": "number", - "value": "3px", + "value": "1px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 3 + "value": 1 }, - "name": "pf-t--global--border--width--300", + "name": "pf-t--global--border--width--100", "attributes": { "category": "global", "type": "border", "item": "width", - "subitem": "300" + "subitem": "100" }, "path": [ "global", "border", "width", - "300" + "100" ] } ] @@ -35998,79 +36783,127 @@ ] } }, - "pf-t--global--border--width--action--plain--default": { + "pf-t--global--border--width--action--hover": { "default": { - "description": "Use as the default border width for plain actions", + "description": "Use as the hover state border width for actions like secondary and tertiary buttons", "type": "number", - "value": "0px", + "value": "2px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the default border width for plain actions", + "description": "Use as the hover state border width for actions like secondary and tertiary buttons", "type": "number", - "value": 0 + "value": "{global.border.width.200}" }, - "name": "pf-t--global--border--width--action--plain--default", + "name": "pf-t--global--border--width--action--hover", "attributes": { "category": "global", "type": "border", "item": "width", "subitem": "action", - "state": "plain" + "state": "hover" }, "path": [ "global", "border", "width", "action", - "plain", - "default" + "hover" + ], + "references": [ + { + "type": "number", + "value": "2px", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 2 + }, + "name": "pf-t--global--border--width--200", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "200" + }, + "path": [ + "global", + "border", + "width", + "200" + ] + } ] } }, - "pf-t--global--border--width--action--plain--hover": { + "pf-t--global--border--width--action--clicked": { "default": { - "description": "Use as the border width for plain actions in their hover state", + "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", "type": "number", - "value": "0px", + "value": "2px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the border width for plain actions in their hover state", + "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", "type": "number", - "value": 0 + "value": "{global.border.width.200}" }, - "name": "pf-t--global--border--width--action--plain--hover", + "name": "pf-t--global--border--width--action--clicked", "attributes": { "category": "global", "type": "border", "item": "width", "subitem": "action", - "state": "plain" + "state": "clicked" }, "path": [ "global", "border", "width", "action", - "plain", - "hover" + "clicked" + ], + "references": [ + { + "type": "number", + "value": "2px", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 2 + }, + "name": "pf-t--global--border--width--200", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "200" + }, + "path": [ + "global", + "border", + "width", + "200" + ] + } ] } }, - "pf-t--global--border--width--action--plain--clicked": { + "pf-t--global--border--width--action--plain--default": { "default": { - "description": "Use as the border width for plain actions in their clicked state", + "description": "Use as the default border width for plain actions", "type": "number", "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the border width for plain actions in their clicked state", + "description": "Use as the default border width for plain actions", "type": "number", "value": 0 }, - "name": "pf-t--global--border--width--action--plain--clicked", + "name": "pf-t--global--border--width--action--plain--default", "attributes": { "category": "global", "type": "border", @@ -36084,115 +36917,67 @@ "width", "action", "plain", - "clicked" + "default" ] } }, - "pf-t--global--border--width--action--hover": { + "pf-t--global--border--width--action--plain--hover": { "default": { - "description": "Use as the hover state border width for actions like secondary and tertiary buttons", + "description": "Use as the border width for plain actions in their hover state", "type": "number", - "value": "2px", + "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the hover state border width for actions like secondary and tertiary buttons", + "description": "Use as the border width for plain actions in their hover state", "type": "number", - "value": "{global.border.width.200}" + "value": 0 }, - "name": "pf-t--global--border--width--action--hover", + "name": "pf-t--global--border--width--action--plain--hover", "attributes": { "category": "global", "type": "border", "item": "width", "subitem": "action", - "state": "hover" + "state": "plain" }, "path": [ "global", "border", "width", "action", + "plain", "hover" - ], - "references": [ - { - "type": "number", - "value": "2px", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 2 - }, - "name": "pf-t--global--border--width--200", - "attributes": { - "category": "global", - "type": "border", - "item": "width", - "subitem": "200" - }, - "path": [ - "global", - "border", - "width", - "200" - ] - } ] } }, - "pf-t--global--border--width--action--clicked": { + "pf-t--global--border--width--action--plain--clicked": { "default": { - "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", + "description": "Use as the border width for plain actions in their clicked state", "type": "number", - "value": "2px", + "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", + "description": "Use as the border width for plain actions in their clicked state", "type": "number", - "value": "{global.border.width.200}" + "value": 0 }, - "name": "pf-t--global--border--width--action--clicked", + "name": "pf-t--global--border--width--action--plain--clicked", "attributes": { "category": "global", "type": "border", "item": "width", "subitem": "action", - "state": "clicked" + "state": "plain" }, "path": [ "global", "border", "width", "action", + "plain", "clicked" - ], - "references": [ - { - "type": "number", - "value": "2px", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 2 - }, - "name": "pf-t--global--border--width--200", - "attributes": { - "category": "global", - "type": "border", - "item": "width", - "subitem": "200" - }, - "path": [ - "global", - "border", - "width", - "200" - ] - } ] } }, @@ -36670,86 +37455,7 @@ ] } }, - "pf-t--global--border--radius--glass--default": { - "default": { - "type": "number", - "value": "16px", - "filePath": "tokens/default/light/semantic.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": "{global.border.radius.medium}" - }, - "name": "pf-t--global--border--radius--glass--default", - "attributes": { - "category": "global", - "type": "border", - "item": "radius", - "subitem": "glass", - "state": "default" - }, - "path": [ - "global", - "border", - "radius", - "glass", - "default" - ], - "references": [ - { - "description": "Use to adjust the curvature of the border corners for an element. Use for moderately rounded corners, like cards.", - "type": "number", - "value": "16px", - "filePath": "tokens/default/light/semantic.dimension.json", - "isSource": true, - "original": { - "description": "Use to adjust the curvature of the border corners for an element. Use for moderately rounded corners, like cards.", - "type": "number", - "value": "{global.border.radius.300}" - }, - "name": "pf-t--global--border--radius--medium", - "attributes": { - "category": "global", - "type": "border", - "item": "radius", - "subitem": "medium" - }, - "path": [ - "global", - "border", - "radius", - "medium" - ], - "references": [ - { - "type": "number", - "value": "16px", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 16 - }, - "name": "pf-t--global--border--radius--300", - "attributes": { - "category": "global", - "type": "border", - "item": "radius", - "subitem": "300" - }, - "path": [ - "global", - "border", - "radius", - "300" - ] - } - ] - } - ] - } - }, - "pf-t--global--border--radius--control--form-element": { + "pf-t--global--border--radius--control--default": { "default": { "type": "number", "value": "6px", @@ -36759,20 +37465,20 @@ "type": "number", "value": "{global.border.radius.small}" }, - "name": "pf-t--global--border--radius--control--form-element", + "name": "pf-t--global--border--radius--control--default", "attributes": { "category": "global", "type": "border", "item": "radius", "subitem": "control", - "state": "form-element" + "state": "default" }, "path": [ "global", "border", "radius", "control", - "form-element" + "default" ], "references": [ { @@ -36828,6 +37534,164 @@ ] } }, + "pf-t--global--border--radius--control--form-element": { + "default": { + "type": "number", + "value": "6px", + "filePath": "tokens/default/light/semantic.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.border.radius.small}" + }, + "name": "pf-t--global--border--radius--control--form-element", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "control", + "state": "form-element" + }, + "path": [ + "global", + "border", + "radius", + "control", + "form-element" + ], + "references": [ + { + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "type": "number", + "value": "6px", + "filePath": "tokens/default/light/semantic.dimension.json", + "isSource": true, + "original": { + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "type": "number", + "value": "{global.border.radius.200}" + }, + "name": "pf-t--global--border--radius--small", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "small" + }, + "path": [ + "global", + "border", + "radius", + "small" + ], + "references": [ + { + "type": "number", + "value": "6px", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 6 + }, + "name": "pf-t--global--border--radius--200", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "200" + }, + "path": [ + "global", + "border", + "radius", + "200" + ] + } + ] + } + ] + } + }, + "pf-t--global--border--radius--glass--default": { + "default": { + "type": "number", + "value": "16px", + "filePath": "tokens/default/light/semantic.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.border.radius.medium}" + }, + "name": "pf-t--global--border--radius--glass--default", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "glass", + "state": "default" + }, + "path": [ + "global", + "border", + "radius", + "glass", + "default" + ], + "references": [ + { + "description": "Use to adjust the curvature of the border corners for an element. Use for moderately rounded corners, like cards.", + "type": "number", + "value": "16px", + "filePath": "tokens/default/light/semantic.dimension.json", + "isSource": true, + "original": { + "description": "Use to adjust the curvature of the border corners for an element. Use for moderately rounded corners, like cards.", + "type": "number", + "value": "{global.border.radius.300}" + }, + "name": "pf-t--global--border--radius--medium", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "medium" + }, + "path": [ + "global", + "border", + "radius", + "medium" + ], + "references": [ + { + "type": "number", + "value": "16px", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--border--radius--300", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "300" + }, + "path": [ + "global", + "border", + "radius", + "300" + ] + } + ] + } + ] + } + }, "pf-t--global--border--radius--action--default": { "default": { "type": "number", @@ -36907,6 +37771,242 @@ ] } }, + "pf-t--global--border--radius--action--plain--default": { + "default": { + "type": "number", + "value": "6px", + "filePath": "tokens/default/light/semantic.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.border.radius.small}" + }, + "name": "pf-t--global--border--radius--action--plain--default", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "action", + "state": "plain" + }, + "path": [ + "global", + "border", + "radius", + "action", + "plain", + "default" + ], + "references": [ + { + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "type": "number", + "value": "6px", + "filePath": "tokens/default/light/semantic.dimension.json", + "isSource": true, + "original": { + "description": "Use to adjust the curvature of the border corners for an element. Use for slightly rounded corners, like icon buttons or menus.", + "type": "number", + "value": "{global.border.radius.200}" + }, + "name": "pf-t--global--border--radius--small", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "small" + }, + "path": [ + "global", + "border", + "radius", + "small" + ], + "references": [ + { + "type": "number", + "value": "6px", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 6 + }, + "name": "pf-t--global--border--radius--200", + "attributes": { + "category": "global", + "type": "border", + "item": "radius", + "subitem": "200" + }, + "path": [ + "global", + "border", + "radius", + "200" + ] + } + ] + } + ] + } + }, + "pf-t--global--font--family--body": { + "default": { + "description": "Use to define the font family for body text", + "type": "number", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "filePath": "tokens/default/light/semantic.dimension.json", + "isSource": true, + "original": { + "description": "Use to define the font family for body text", + "type": "number", + "value": "{global.font.family.100}" + }, + "name": "pf-t--global--font--family--body", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "body" + }, + "path": [ + "global", + "font", + "family", + "body" + ], + "references": [ + { + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + }, + "name": "pf-t--global--font--family--100", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "100" + }, + "path": [ + "global", + "font", + "family", + "100" + ] + } + ] + } + }, + "pf-t--global--font--family--heading": { + "default": { + "description": "Use to define the font family for heading text", + "type": "number", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "filePath": "tokens/default/light/semantic.dimension.json", + "isSource": true, + "original": { + "description": "Use to define the font family for heading text", + "type": "number", + "value": "{global.font.family.200}" + }, + "name": "pf-t--global--font--family--heading", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "heading" + }, + "path": [ + "global", + "font", + "family", + "heading" + ], + "references": [ + { + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + }, + "name": "pf-t--global--font--family--200", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "200" + }, + "path": [ + "global", + "font", + "family", + "200" + ] + } + ] + } + }, + "pf-t--global--font--family--mono": { + "default": { + "description": "Use to define the font family for mono text", + "type": "number", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", + "filePath": "tokens/default/light/semantic.dimension.json", + "isSource": true, + "original": { + "description": "Use to define the font family for mono text", + "type": "number", + "value": "{global.font.family.300}" + }, + "name": "pf-t--global--font--family--mono", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "mono" + }, + "path": [ + "global", + "font", + "family", + "mono" + ], + "references": [ + { + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" + }, + "name": "pf-t--global--font--family--300", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "300" + }, + "path": [ + "global", + "font", + "family", + "300" + ] + } + ] + } + }, "pf-t--global--font--line-height--body": { "default": { "description": "Use to define the line height for body text", @@ -37227,199 +38327,613 @@ ] } }, - "pf-t--global--font--size--body--sm": { + "pf-t--global--font--size--xs": { "default": { - "description": "Use for a smaller font size in body sections.", "type": "number", "value": "0.75rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for a smaller font size in body sections.", "type": "number", - "value": "{global.font.size.xs}" + "value": "{global.font.size.100}" }, - "name": "pf-t--global--font--size--body--sm", + "name": "pf-t--global--font--size--xs", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "body", - "state": "sm" + "subitem": "xs" }, "path": [ "global", "font", "size", - "body", - "sm" + "xs" ], "references": [ { "type": "number", "value": "0.75rem", - "filePath": "tokens/default/light/semantic.dimension.json", + "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": "{global.font.size.100}" + "value": 12 }, - "name": "pf-t--global--font--size--xs", + "name": "pf-t--global--font--size--100", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "xs" + "subitem": "100" }, "path": [ "global", "font", "size", - "xs" - ], - "references": [ - { - "type": "number", - "value": "0.75rem", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 12 - }, - "name": "pf-t--global--font--size--100", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "100" - }, - "path": [ - "global", - "font", - "size", - "100" - ] - } + "100" ] } ] } }, - "pf-t--global--font--size--body--default": { + "pf-t--global--font--size--sm": { "default": { - "description": "Use as the default font size in body sections.", + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", "value": "0.875rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the default font size in body sections.", + "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.sm}" + "value": "{global.font.size.200}" }, - "name": "pf-t--global--font--size--body--default", + "name": "pf-t--global--font--size--sm", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "body", - "state": "default" + "subitem": "sm" }, "path": [ "global", "font", "size", - "body", - "default" + "sm" ], "references": [ { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", "value": "0.875rem", - "filePath": "tokens/default/light/semantic.dimension.json", + "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.200}" + "value": 14 }, - "name": "pf-t--global--font--size--sm", + "name": "pf-t--global--font--size--200", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "sm" + "subitem": "200" }, "path": [ "global", "font", "size", - "sm" - ], - "references": [ - { - "type": "number", - "value": "0.875rem", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 14 - }, - "name": "pf-t--global--font--size--200", - "attributes": { - "category": "global", - "type": "font", - "item": "size", - "subitem": "200" - }, - "path": [ - "global", - "font", - "size", - "200" - ] - } + "200" ] } ] } }, - "pf-t--global--font--size--body--lg": { + "pf-t--global--font--size--md": { "default": { - "description": "Use for a larger font size in body sections.", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", "value": "1rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use for a larger font size in body sections.", + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", - "value": "{global.font.size.md}" + "value": "{global.font.size.300}" }, - "name": "pf-t--global--font--size--body--lg", + "name": "pf-t--global--font--size--md", "attributes": { "category": "global", "type": "font", "item": "size", - "subitem": "body", - "state": "lg" + "subitem": "md" }, "path": [ "global", "font", "size", - "body", - "lg" + "md" ], "references": [ { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", "type": "number", "value": "1rem", - "filePath": "tokens/default/light/semantic.dimension.json", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 16 + }, + "name": "pf-t--global--font--size--300", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "300" + }, + "path": [ + "global", + "font", + "size", + "300" + ] + } + ] + } + }, + "pf-t--global--font--size--lg": { + "default": { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/light/semantic.dimension.json", + "isSource": true, + "original": { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.400}" + }, + "name": "pf-t--global--font--size--lg", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "lg" + }, + "path": [ + "global", + "font", + "size", + "lg" + ], + "references": [ + { + "type": "number", + "value": "1.125rem", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 18 + }, + "name": "pf-t--global--font--size--400", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "400" + }, + "path": [ + "global", + "font", + "size", + "400" + ] + } + ] + } + }, + "pf-t--global--font--size--xl": { + "default": { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/light/semantic.dimension.json", + "isSource": true, + "original": { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.500}" + }, + "name": "pf-t--global--font--size--xl", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "xl" + }, + "path": [ + "global", + "font", + "size", + "xl" + ], + "references": [ + { + "type": "number", + "value": "1.25rem", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 20 + }, + "name": "pf-t--global--font--size--500", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "500" + }, + "path": [ + "global", + "font", + "size", + "500" + ] + } + ] + } + }, + "pf-t--global--font--size--2xl": { + "default": { + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/light/semantic.dimension.json", + "isSource": true, + "original": { + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.600}" + }, + "name": "pf-t--global--font--size--2xl", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "2xl" + }, + "path": [ + "global", + "font", + "size", + "2xl" + ], + "references": [ + { + "type": "number", + "value": "1.5rem", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 24 + }, + "name": "pf-t--global--font--size--600", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "600" + }, + "path": [ + "global", + "font", + "size", + "600" + ] + } + ] + } + }, + "pf-t--global--font--size--3xl": { + "default": { + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "1.75rem", + "filePath": "tokens/default/light/semantic.dimension.json", + "isSource": true, + "original": { + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.700}" + }, + "name": "pf-t--global--font--size--3xl", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "3xl" + }, + "path": [ + "global", + "font", + "size", + "3xl" + ], + "references": [ + { + "type": "number", + "value": "1.75rem", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 28 + }, + "name": "pf-t--global--font--size--700", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "700" + }, + "path": [ + "global", + "font", + "size", + "700" + ] + } + ] + } + }, + "pf-t--global--font--size--4xl": { + "default": { + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "2.25rem", + "filePath": "tokens/default/light/semantic.dimension.json", + "isSource": true, + "original": { + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.800}" + }, + "name": "pf-t--global--font--size--4xl", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "4xl" + }, + "path": [ + "global", + "font", + "size", + "4xl" + ], + "references": [ + { + "type": "number", + "value": "2.25rem", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 36 + }, + "name": "pf-t--global--font--size--800", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "800" + }, + "path": [ + "global", + "font", + "size", + "800" + ] + } + ] + } + }, + "pf-t--global--font--size--body--sm": { + "default": { + "description": "Use for a smaller font size in body sections.", + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/light/semantic.dimension.json", + "isSource": true, + "original": { + "description": "Use for a smaller font size in body sections.", + "type": "number", + "value": "{global.font.size.xs}" + }, + "name": "pf-t--global--font--size--body--sm", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "body", + "state": "sm" + }, + "path": [ + "global", + "font", + "size", + "body", + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/light/semantic.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": "{global.font.size.100}" + }, + "name": "pf-t--global--font--size--xs", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "xs" + }, + "path": [ + "global", + "font", + "size", + "xs" + ], + "references": [ + { + "type": "number", + "value": "0.75rem", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 12 + }, + "name": "pf-t--global--font--size--100", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "100" + }, + "path": [ + "global", + "font", + "size", + "100" + ] + } + ] + } + ] + } + }, + "pf-t--global--font--size--body--default": { + "default": { + "description": "Use as the default font size in body sections.", + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/light/semantic.dimension.json", + "isSource": true, + "original": { + "description": "Use as the default font size in body sections.", + "type": "number", + "value": "{global.font.size.sm}" + }, + "name": "pf-t--global--font--size--body--default", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "body", + "state": "default" + }, + "path": [ + "global", + "font", + "size", + "body", + "default" + ], + "references": [ + { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/light/semantic.dimension.json", + "isSource": true, + "original": { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.200}" + }, + "name": "pf-t--global--font--size--sm", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "sm" + }, + "path": [ + "global", + "font", + "size", + "sm" + ], + "references": [ + { + "type": "number", + "value": "0.875rem", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 14 + }, + "name": "pf-t--global--font--size--200", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "200" + }, + "path": [ + "global", + "font", + "size", + "200" + ] + } + ] + } + ] + } + }, + "pf-t--global--font--size--body--lg": { + "default": { + "description": "Use for a larger font size in body sections.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/light/semantic.dimension.json", + "isSource": true, + "original": { + "description": "Use for a larger font size in body sections.", + "type": "number", + "value": "{global.font.size.md}" + }, + "name": "pf-t--global--font--size--body--lg", + "attributes": { + "category": "global", + "type": "font", + "item": "size", + "subitem": "body", + "state": "lg" + }, + "path": [ + "global", + "font", + "size", + "body", + "lg" + ], + "references": [ + { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "1rem", + "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { "description": "Use as the font size for medium text that isn’t a heading or in a body section.", @@ -37954,889 +39468,859 @@ ] } }, - "pf-t--global--font--size--xs": { + "pf-t--global--z-index--xs": { "default": { + "description": "Use to set an extra small z-index, to display an element below other elements with a larger z-index. Use for smaller parts of a component that need to overlap adjacent elements, like box shadows of hovered elements.", "type": "number", - "value": "0.75rem", + "value": 100, "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { + "description": "Use to set an extra small z-index, to display an element below other elements with a larger z-index. Use for smaller parts of a component that need to overlap adjacent elements, like box shadows of hovered elements.", "type": "number", - "value": "{global.font.size.100}" + "value": "{global.z-index.100}" }, - "name": "pf-t--global--font--size--xs", + "name": "pf-t--global--z-index--xs", "attributes": { "category": "global", - "type": "font", - "item": "size", - "subitem": "xs" + "type": "z-index", + "item": "xs" }, "path": [ "global", - "font", - "size", + "z-index", "xs" ], "references": [ { "type": "number", - "value": "0.75rem", + "value": 100, "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 12 + "value": 100 }, - "name": "pf-t--global--font--size--100", + "name": "pf-t--global--z-index--100", "attributes": { "category": "global", - "type": "font", - "item": "size", - "subitem": "100" + "type": "z-index", + "item": "100" }, "path": [ "global", - "font", - "size", + "z-index", "100" ] } ] } }, - "pf-t--global--font--size--sm": { + "pf-t--global--z-index--sm": { "default": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "description": "Use to set a small z-index, to display an element above other elements with smaller z-indexes. Use for components that need to appear above surrounding elements, like menus/dropdowns.", "type": "number", - "value": "0.875rem", + "value": 200, "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "description": "Use to set a small z-index, to display an element above other elements with smaller z-indexes. Use for components that need to appear above surrounding elements, like menus/dropdowns.", "type": "number", - "value": "{global.font.size.200}" + "value": "{global.z-index.200}" }, - "name": "pf-t--global--font--size--sm", + "name": "pf-t--global--z-index--sm", "attributes": { "category": "global", - "type": "font", - "item": "size", - "subitem": "sm" + "type": "z-index", + "item": "sm" }, "path": [ "global", - "font", - "size", + "z-index", "sm" ], "references": [ { "type": "number", - "value": "0.875rem", + "value": 200, "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 14 + "value": 200 }, - "name": "pf-t--global--font--size--200", + "name": "pf-t--global--z-index--200", "attributes": { "category": "global", - "type": "font", - "item": "size", - "subitem": "200" + "type": "z-index", + "item": "200" }, "path": [ "global", - "font", - "size", + "z-index", "200" ] } ] } }, - "pf-t--global--font--size--md": { + "pf-t--global--z-index--md": { "default": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use to set a medium z-index, to display an element above other elements with smaller z-indexes Use for sticky elements, like banners and page sections.", "type": "number", - "value": "1rem", + "value": 300, "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "description": "Use to set a medium z-index, to display an element above other elements with smaller z-indexes Use for sticky elements, like banners and page sections.", "type": "number", - "value": "{global.font.size.300}" + "value": "{global.z-index.300}" }, - "name": "pf-t--global--font--size--md", + "name": "pf-t--global--z-index--md", "attributes": { "category": "global", - "type": "font", - "item": "size", - "subitem": "md" + "type": "z-index", + "item": "md" }, "path": [ "global", - "font", - "size", + "z-index", "md" ], "references": [ { "type": "number", - "value": "1rem", + "value": 300, "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 16 + "value": 300 }, - "name": "pf-t--global--font--size--300", + "name": "pf-t--global--z-index--300", "attributes": { "category": "global", - "type": "font", - "item": "size", - "subitem": "300" + "type": "z-index", + "item": "300" }, "path": [ "global", - "font", - "size", + "z-index", "300" ] } ] } }, - "pf-t--global--font--size--lg": { + "pf-t--global--z-index--lg": { "default": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "description": "Use to set a large z-index, to display an element above other elements with smaller z-indexes Use for the backdrop component, which appears beneath an open modal.", "type": "number", - "value": "1.125rem", + "value": 400, "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "description": "Use to set a large z-index, to display an element above other elements with smaller z-indexes Use for the backdrop component, which appears beneath an open modal.", "type": "number", - "value": "{global.font.size.400}" + "value": "{global.z-index.400}" }, - "name": "pf-t--global--font--size--lg", + "name": "pf-t--global--z-index--lg", "attributes": { "category": "global", - "type": "font", - "item": "size", - "subitem": "lg" + "type": "z-index", + "item": "lg" }, "path": [ "global", - "font", - "size", + "z-index", "lg" ], "references": [ { "type": "number", - "value": "1.125rem", + "value": 400, "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 18 + "value": 400 }, - "name": "pf-t--global--font--size--400", + "name": "pf-t--global--z-index--400", "attributes": { "category": "global", - "type": "font", - "item": "size", - "subitem": "400" + "type": "z-index", + "item": "400" }, "path": [ "global", - "font", - "size", + "z-index", "400" ] } ] } }, - "pf-t--global--font--size--xl": { + "pf-t--global--z-index--xl": { "default": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "description": "Use to set an extra large z-index, to display an element above other elements with smaller z-indexes. Use for modals.", "type": "number", - "value": "1.25rem", + "value": 500, "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "description": "Use to set an extra large z-index, to display an element above other elements with smaller z-indexes. Use for modals.", "type": "number", - "value": "{global.font.size.500}" + "value": "{global.z-index.500}" }, - "name": "pf-t--global--font--size--xl", + "name": "pf-t--global--z-index--xl", "attributes": { "category": "global", - "type": "font", - "item": "size", - "subitem": "xl" + "type": "z-index", + "item": "xl" }, "path": [ "global", - "font", - "size", + "z-index", "xl" ], "references": [ { "type": "number", - "value": "1.25rem", + "value": 500, "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 20 + "value": 500 }, - "name": "pf-t--global--font--size--500", + "name": "pf-t--global--z-index--500", "attributes": { "category": "global", - "type": "font", - "item": "size", - "subitem": "500" + "type": "z-index", + "item": "500" }, "path": [ "global", - "font", - "size", + "z-index", "500" ] } ] } }, - "pf-t--global--font--size--2xl": { + "pf-t--global--z-index--2xl": { "default": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "description": "Use to set a double extra large z-index, to display an element above all other page elements. Use for elements that should appear on top of all others, like toast alert groups.", "type": "number", - "value": "1.5rem", + "value": 600, "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "description": "Use to set a double extra large z-index, to display an element above all other page elements. Use for elements that should appear on top of all others, like toast alert groups.", "type": "number", - "value": "{global.font.size.600}" + "value": "{global.z-index.600}" }, - "name": "pf-t--global--font--size--2xl", + "name": "pf-t--global--z-index--2xl", "attributes": { "category": "global", - "type": "font", - "item": "size", - "subitem": "2xl" + "type": "z-index", + "item": "2xl" }, "path": [ "global", - "font", - "size", + "z-index", "2xl" ], "references": [ { "type": "number", - "value": "1.5rem", + "value": 600, "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 24 + "value": 600 }, - "name": "pf-t--global--font--size--600", + "name": "pf-t--global--z-index--600", "attributes": { "category": "global", - "type": "font", - "item": "size", - "subitem": "600" + "type": "z-index", + "item": "600" }, "path": [ "global", - "font", - "size", + "z-index", "600" ] } ] } }, - "pf-t--global--font--size--3xl": { + "pf-t--global--box-shadow--X--sm--default": { "default": { - "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "description": "Use to define the X value for a default small box-shadow, like in sticky sections", "type": "number", - "value": "1.75rem", + "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "description": "Use to define the X value for a default small box-shadow, like in sticky sections", "type": "number", - "value": "{global.font.size.700}" + "value": "{global.box-shadow.X.400}" }, - "name": "pf-t--global--font--size--3xl", + "name": "pf-t--global--box-shadow--X--sm--default", "attributes": { "category": "global", - "type": "font", - "item": "size", - "subitem": "3xl" + "type": "box-shadow", + "item": "X", + "subitem": "sm", + "state": "default" }, "path": [ "global", - "font", - "size", - "3xl" + "box-shadow", + "X", + "sm", + "default" ], "references": [ { "type": "number", - "value": "1.75rem", + "value": "0px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 28 + "value": 0 }, - "name": "pf-t--global--font--size--700", + "name": "pf-t--global--box-shadow--X--400", "attributes": { "category": "global", - "type": "font", - "item": "size", - "subitem": "700" + "type": "box-shadow", + "item": "X", + "subitem": "400" }, "path": [ "global", - "font", - "size", - "700" + "box-shadow", + "X", + "400" ] } ] } }, - "pf-t--global--font--size--4xl": { + "pf-t--global--box-shadow--X--sm--top": { "default": { - "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "description": "Use to define the X value for a small box-shadow that appears on the top of a raised element, like in sticky footers", "type": "number", - "value": "2.25rem", + "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "description": "Use to define the X value for a small box-shadow that appears on the top of a raised element, like in sticky footers", "type": "number", - "value": "{global.font.size.800}" + "value": "{global.box-shadow.X.400}" }, - "name": "pf-t--global--font--size--4xl", + "name": "pf-t--global--box-shadow--X--sm--top", "attributes": { "category": "global", - "type": "font", - "item": "size", - "subitem": "4xl" + "type": "box-shadow", + "item": "X", + "subitem": "sm", + "state": "top" }, "path": [ "global", - "font", - "size", - "4xl" + "box-shadow", + "X", + "sm", + "top" ], "references": [ { "type": "number", - "value": "2.25rem", + "value": "0px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 36 + "value": 0 }, - "name": "pf-t--global--font--size--800", + "name": "pf-t--global--box-shadow--X--400", "attributes": { "category": "global", - "type": "font", - "item": "size", - "subitem": "800" + "type": "box-shadow", + "item": "X", + "subitem": "400" }, "path": [ "global", - "font", - "size", - "800" + "box-shadow", + "X", + "400" ] } ] } }, - "pf-t--global--font--family--body": { + "pf-t--global--box-shadow--X--sm--bottom": { "default": { - "description": "Use to define the font family for body text", + "description": "Use to define the X value for a small box-shadow that appears on the bottom of a raised element, like in sticky headers.", "type": "number", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the font family for body text", + "description": "Use to define the X value for a small box-shadow that appears on the bottom of a raised element, like in sticky headers.", "type": "number", - "value": "{global.font.family.100}" + "value": "{global.box-shadow.X.400}" }, - "name": "pf-t--global--font--family--body", + "name": "pf-t--global--box-shadow--X--sm--bottom", "attributes": { "category": "global", - "type": "font", - "item": "family", - "subitem": "body" + "type": "box-shadow", + "item": "X", + "subitem": "sm", + "state": "bottom" }, "path": [ "global", - "font", - "family", - "body" + "box-shadow", + "X", + "sm", + "bottom" ], "references": [ { - "type": "string", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "type": "number", + "value": "0px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "type": "string", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + "type": "number", + "value": 0 }, - "name": "pf-t--global--font--family--100", + "name": "pf-t--global--box-shadow--X--400", "attributes": { "category": "global", - "type": "font", - "item": "family", - "subitem": "100" + "type": "box-shadow", + "item": "X", + "subitem": "400" }, "path": [ "global", - "font", - "family", - "100" + "box-shadow", + "X", + "400" ] } ] } }, - "pf-t--global--font--family--heading": { + "pf-t--global--box-shadow--X--sm--left": { "default": { - "description": "Use to define the font family for heading text", + "description": "Use to define the X value for a small box-shadow that appears on the left of a raised element, like in sticky columns.", "type": "number", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "value": "-4px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the font family for heading text", + "description": "Use to define the X value for a small box-shadow that appears on the left of a raised element, like in sticky columns.", "type": "number", - "value": "{global.font.family.200}" + "value": "{global.box-shadow.X.200}" }, - "name": "pf-t--global--font--family--heading", + "name": "pf-t--global--box-shadow--X--sm--left", "attributes": { "category": "global", - "type": "font", - "item": "family", - "subitem": "heading" + "type": "box-shadow", + "item": "X", + "subitem": "sm", + "state": "left" }, "path": [ "global", - "font", - "family", - "heading" + "box-shadow", + "X", + "sm", + "left" ], "references": [ { - "type": "string", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "type": "number", + "value": "-4px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "type": "string", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + "type": "number", + "value": -4 }, - "name": "pf-t--global--font--family--200", + "name": "pf-t--global--box-shadow--X--200", "attributes": { "category": "global", - "type": "font", - "item": "family", + "type": "box-shadow", + "item": "X", "subitem": "200" }, "path": [ "global", - "font", - "family", + "box-shadow", + "X", "200" ] } ] } }, - "pf-t--global--font--family--mono": { + "pf-t--global--box-shadow--X--sm--right": { "default": { - "description": "Use to define the font family for mono text", + "description": "Use to define the X value for a small box-shadow that appears on the right of a raised element, like in sticky columns.", "type": "number", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", + "value": "4px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the font family for mono text", + "description": "Use to define the X value for a small box-shadow that appears on the right of a raised element, like in sticky columns.", "type": "number", - "value": "{global.font.family.300}" + "value": "{global.box-shadow.X.600}" }, - "name": "pf-t--global--font--family--mono", + "name": "pf-t--global--box-shadow--X--sm--right", "attributes": { "category": "global", - "type": "font", - "item": "family", - "subitem": "mono" + "type": "box-shadow", + "item": "X", + "subitem": "sm", + "state": "right" }, "path": [ "global", - "font", - "family", - "mono" + "box-shadow", + "X", + "sm", + "right" ], "references": [ { - "type": "string", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", + "type": "number", + "value": "4px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "type": "string", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" + "type": "number", + "value": 4 }, - "name": "pf-t--global--font--family--300", + "name": "pf-t--global--box-shadow--X--600", "attributes": { "category": "global", - "type": "font", - "item": "family", - "subitem": "300" + "type": "box-shadow", + "item": "X", + "subitem": "600" }, "path": [ "global", - "font", - "family", - "300" + "box-shadow", + "X", + "600" ] } ] } }, - "pf-t--global--z-index--xs": { + "pf-t--global--box-shadow--X--md--default": { "default": { - "description": "Use to set an extra small z-index, to display an element below other elements with a larger z-index. Use for smaller parts of a component that need to overlap adjacent elements, like box shadows of hovered elements.", + "description": "Use to define the X value for a default medium box-shadow, used in popovers and raised menus.", "type": "number", - "value": 100, + "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to set an extra small z-index, to display an element below other elements with a larger z-index. Use for smaller parts of a component that need to overlap adjacent elements, like box shadows of hovered elements.", + "description": "Use to define the X value for a default medium box-shadow, used in popovers and raised menus.", "type": "number", - "value": "{global.z-index.100}" + "value": "{global.box-shadow.X.400}" }, - "name": "pf-t--global--z-index--xs", + "name": "pf-t--global--box-shadow--X--md--default", "attributes": { "category": "global", - "type": "z-index", - "item": "xs" + "type": "box-shadow", + "item": "X", + "subitem": "md", + "state": "default" }, "path": [ "global", - "z-index", - "xs" + "box-shadow", + "X", + "md", + "default" ], "references": [ { "type": "number", - "value": 100, + "value": "0px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 100 + "value": 0 }, - "name": "pf-t--global--z-index--100", + "name": "pf-t--global--box-shadow--X--400", "attributes": { "category": "global", - "type": "z-index", - "item": "100" + "type": "box-shadow", + "item": "X", + "subitem": "400" }, "path": [ "global", - "z-index", - "100" + "box-shadow", + "X", + "400" ] } ] } }, - "pf-t--global--z-index--sm": { + "pf-t--global--box-shadow--X--md--top": { "default": { - "description": "Use to set a small z-index, to display an element above other elements with smaller z-indexes. Use for components that need to appear above surrounding elements, like menus/dropdowns.", + "description": "Use to define the X value for a medium box-shadow that appears on the top of a raised element, like in overlay bottom drawers.", "type": "number", - "value": 200, + "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to set a small z-index, to display an element above other elements with smaller z-indexes. Use for components that need to appear above surrounding elements, like menus/dropdowns.", + "description": "Use to define the X value for a medium box-shadow that appears on the top of a raised element, like in overlay bottom drawers.", "type": "number", - "value": "{global.z-index.200}" + "value": "{global.box-shadow.X.400}" }, - "name": "pf-t--global--z-index--sm", + "name": "pf-t--global--box-shadow--X--md--top", "attributes": { "category": "global", - "type": "z-index", - "item": "sm" + "type": "box-shadow", + "item": "X", + "subitem": "md", + "state": "top" }, "path": [ "global", - "z-index", - "sm" + "box-shadow", + "X", + "md", + "top" ], "references": [ { "type": "number", - "value": 200, + "value": "0px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 200 + "value": 0 }, - "name": "pf-t--global--z-index--200", + "name": "pf-t--global--box-shadow--X--400", "attributes": { "category": "global", - "type": "z-index", - "item": "200" + "type": "box-shadow", + "item": "X", + "subitem": "400" }, "path": [ "global", - "z-index", - "200" + "box-shadow", + "X", + "400" ] } ] } }, - "pf-t--global--z-index--md": { + "pf-t--global--box-shadow--X--md--bottom": { "default": { - "description": "Use to set a medium z-index, to display an element above other elements with smaller z-indexes Use for sticky elements, like banners and page sections.", + "description": "Use to define the X value for a medium box-shadow that appears on the bottom of a raised element.", "type": "number", - "value": 300, + "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to set a medium z-index, to display an element above other elements with smaller z-indexes Use for sticky elements, like banners and page sections.", + "description": "Use to define the X value for a medium box-shadow that appears on the bottom of a raised element.", "type": "number", - "value": "{global.z-index.300}" + "value": "{global.box-shadow.X.400}" }, - "name": "pf-t--global--z-index--md", + "name": "pf-t--global--box-shadow--X--md--bottom", "attributes": { "category": "global", - "type": "z-index", - "item": "md" + "type": "box-shadow", + "item": "X", + "subitem": "md", + "state": "bottom" }, "path": [ "global", - "z-index", - "md" + "box-shadow", + "X", + "md", + "bottom" ], "references": [ { "type": "number", - "value": 300, + "value": "0px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 300 + "value": 0 }, - "name": "pf-t--global--z-index--300", + "name": "pf-t--global--box-shadow--X--400", "attributes": { "category": "global", - "type": "z-index", - "item": "300" + "type": "box-shadow", + "item": "X", + "subitem": "400" }, "path": [ "global", - "z-index", - "300" - ] - } - ] - } - }, - "pf-t--global--z-index--lg": { - "default": { - "description": "Use to set a large z-index, to display an element above other elements with smaller z-indexes Use for the backdrop component, which appears beneath an open modal.", - "type": "number", - "value": 400, - "filePath": "tokens/default/light/semantic.dimension.json", - "isSource": true, - "original": { - "description": "Use to set a large z-index, to display an element above other elements with smaller z-indexes Use for the backdrop component, which appears beneath an open modal.", - "type": "number", - "value": "{global.z-index.400}" - }, - "name": "pf-t--global--z-index--lg", - "attributes": { - "category": "global", - "type": "z-index", - "item": "lg" - }, - "path": [ - "global", - "z-index", - "lg" - ], - "references": [ - { - "type": "number", - "value": 400, - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 400 - }, - "name": "pf-t--global--z-index--400", - "attributes": { - "category": "global", - "type": "z-index", - "item": "400" - }, - "path": [ - "global", - "z-index", + "box-shadow", + "X", "400" ] } ] } }, - "pf-t--global--z-index--xl": { + "pf-t--global--box-shadow--X--md--left": { "default": { - "description": "Use to set an extra large z-index, to display an element above other elements with smaller z-indexes. Use for modals.", + "description": "Use to define the X value for a medium box-shadow that appears on the left of a raised element, like in overlay drawers that show on the right of the screen.", "type": "number", - "value": 500, + "value": "-10px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to set an extra large z-index, to display an element above other elements with smaller z-indexes. Use for modals.", + "description": "Use to define the X value for a medium box-shadow that appears on the left of a raised element, like in overlay drawers that show on the right of the screen.", "type": "number", - "value": "{global.z-index.500}" + "value": "{global.box-shadow.X.100}" }, - "name": "pf-t--global--z-index--xl", + "name": "pf-t--global--box-shadow--X--md--left", "attributes": { "category": "global", - "type": "z-index", - "item": "xl" + "type": "box-shadow", + "item": "X", + "subitem": "md", + "state": "left" }, "path": [ "global", - "z-index", - "xl" + "box-shadow", + "X", + "md", + "left" ], "references": [ { "type": "number", - "value": 500, + "value": "-10px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 500 + "value": -10 }, - "name": "pf-t--global--z-index--500", + "name": "pf-t--global--box-shadow--X--100", "attributes": { "category": "global", - "type": "z-index", - "item": "500" + "type": "box-shadow", + "item": "X", + "subitem": "100" }, "path": [ "global", - "z-index", - "500" + "box-shadow", + "X", + "100" ] } ] } }, - "pf-t--global--z-index--2xl": { + "pf-t--global--box-shadow--X--md--right": { "default": { - "description": "Use to set a double extra large z-index, to display an element above all other page elements. Use for elements that should appear on top of all others, like toast alert groups.", + "description": "Use to define the X value for a medium box-shadow that appears on the right of a raised element, like in overlay drawers that show on the left of the screen.", "type": "number", - "value": 600, + "value": "10px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to set a double extra large z-index, to display an element above all other page elements. Use for elements that should appear on top of all others, like toast alert groups.", + "description": "Use to define the X value for a medium box-shadow that appears on the right of a raised element, like in overlay drawers that show on the left of the screen.", "type": "number", - "value": "{global.z-index.600}" + "value": "{global.box-shadow.X.700}" }, - "name": "pf-t--global--z-index--2xl", + "name": "pf-t--global--box-shadow--X--md--right", "attributes": { "category": "global", - "type": "z-index", - "item": "2xl" + "type": "box-shadow", + "item": "X", + "subitem": "md", + "state": "right" }, "path": [ "global", - "z-index", - "2xl" + "box-shadow", + "X", + "md", + "right" ], "references": [ { "type": "number", - "value": 600, + "value": "10px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 600 + "value": 10 }, - "name": "pf-t--global--z-index--600", + "name": "pf-t--global--box-shadow--X--700", "attributes": { "category": "global", - "type": "z-index", - "item": "600" + "type": "box-shadow", + "item": "X", + "subitem": "700" }, "path": [ "global", - "z-index", - "600" + "box-shadow", + "X", + "700" ] } ] } }, - "pf-t--global--box-shadow--X--sm--default": { + "pf-t--global--box-shadow--X--lg--default": { "default": { - "description": "Use to define the X value for a default small box-shadow, like in sticky sections", + "description": "Use to define the X value for a default large box-shadow, used in modals and wizards.", "type": "number", "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the X value for a default small box-shadow, like in sticky sections", + "description": "Use to define the X value for a default large box-shadow, used in modals and wizards.", "type": "number", "value": "{global.box-shadow.X.400}" }, - "name": "pf-t--global--box-shadow--X--sm--default", + "name": "pf-t--global--box-shadow--X--lg--default", "attributes": { "category": "global", "type": "box-shadow", "item": "X", - "subitem": "sm", + "subitem": "lg", "state": "default" }, "path": [ "global", "box-shadow", "X", - "sm", + "lg", "default" ], "references": [ @@ -38866,31 +40350,31 @@ ] } }, - "pf-t--global--box-shadow--X--sm--top": { + "pf-t--global--box-shadow--X--lg--top": { "default": { - "description": "Use to define the X value for a small box-shadow that appears on the top of a raised element, like in sticky footers", + "description": "Use to define the X value for a large box-shadow that appears on the top of a raised element.", "type": "number", "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the X value for a small box-shadow that appears on the top of a raised element, like in sticky footers", + "description": "Use to define the X value for a large box-shadow that appears on the top of a raised element.", "type": "number", "value": "{global.box-shadow.X.400}" }, - "name": "pf-t--global--box-shadow--X--sm--top", + "name": "pf-t--global--box-shadow--X--lg--top", "attributes": { "category": "global", "type": "box-shadow", "item": "X", - "subitem": "sm", + "subitem": "lg", "state": "top" }, "path": [ "global", "box-shadow", "X", - "sm", + "lg", "top" ], "references": [ @@ -38920,31 +40404,31 @@ ] } }, - "pf-t--global--box-shadow--X--sm--bottom": { + "pf-t--global--box-shadow--X--lg--bottom": { "default": { - "description": "Use to define the X value for a small box-shadow that appears on the bottom of a raised element, like in sticky headers.", + "description": "Use to define the X value for a large box-shadow that appears on the bottom of a raised element.", "type": "number", "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the X value for a small box-shadow that appears on the bottom of a raised element, like in sticky headers.", + "description": "Use to define the X value for a large box-shadow that appears on the bottom of a raised element.", "type": "number", "value": "{global.box-shadow.X.400}" }, - "name": "pf-t--global--box-shadow--X--sm--bottom", + "name": "pf-t--global--box-shadow--X--lg--bottom", "attributes": { "category": "global", "type": "box-shadow", "item": "X", - "subitem": "sm", + "subitem": "lg", "state": "bottom" }, "path": [ "global", "box-shadow", "X", - "sm", + "lg", "bottom" ], "references": [ @@ -38974,841 +40458,841 @@ ] } }, - "pf-t--global--box-shadow--X--sm--left": { + "pf-t--global--box-shadow--X--lg--left": { "default": { - "description": "Use to define the X value for a small box-shadow that appears on the left of a raised element, like in sticky columns.", + "description": "Use to define the X value for a large box-shadow that appears on the left of a raised element.", "type": "number", - "value": "-4px", + "value": "-20px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the X value for a small box-shadow that appears on the left of a raised element, like in sticky columns.", + "description": "Use to define the X value for a large box-shadow that appears on the left of a raised element.", "type": "number", - "value": "{global.box-shadow.X.200}" + "value": "{global.box-shadow.X.50}" }, - "name": "pf-t--global--box-shadow--X--sm--left", + "name": "pf-t--global--box-shadow--X--lg--left", "attributes": { "category": "global", "type": "box-shadow", "item": "X", - "subitem": "sm", + "subitem": "lg", "state": "left" }, "path": [ "global", "box-shadow", "X", - "sm", + "lg", "left" ], "references": [ { "type": "number", - "value": "-4px", + "value": "-20px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": -4 + "value": -20 }, - "name": "pf-t--global--box-shadow--X--200", + "name": "pf-t--global--box-shadow--X--50", "attributes": { "category": "global", "type": "box-shadow", "item": "X", - "subitem": "200" + "subitem": "50" }, "path": [ "global", "box-shadow", "X", - "200" + "50" ] } ] } }, - "pf-t--global--box-shadow--X--sm--right": { + "pf-t--global--box-shadow--X--lg--right": { "default": { - "description": "Use to define the X value for a small box-shadow that appears on the right of a raised element, like in sticky columns.", + "description": "Use to define the X value for a large box-shadow that appears on the right of a raised element.", "type": "number", - "value": "4px", + "value": "20px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the X value for a small box-shadow that appears on the right of a raised element, like in sticky columns.", + "description": "Use to define the X value for a large box-shadow that appears on the right of a raised element.", "type": "number", - "value": "{global.box-shadow.X.600}" + "value": "{global.box-shadow.X.800}" }, - "name": "pf-t--global--box-shadow--X--sm--right", + "name": "pf-t--global--box-shadow--X--lg--right", "attributes": { "category": "global", "type": "box-shadow", "item": "X", - "subitem": "sm", + "subitem": "lg", "state": "right" }, "path": [ "global", "box-shadow", "X", - "sm", + "lg", "right" ], "references": [ { "type": "number", - "value": "4px", + "value": "20px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 4 + "value": 20 }, - "name": "pf-t--global--box-shadow--X--600", + "name": "pf-t--global--box-shadow--X--800", "attributes": { "category": "global", "type": "box-shadow", "item": "X", - "subitem": "600" + "subitem": "800" }, "path": [ "global", "box-shadow", "X", - "600" + "800" ] } ] } }, - "pf-t--global--box-shadow--X--md--default": { + "pf-t--global--box-shadow--Y--sm--default": { "default": { - "description": "Use to define the X value for a default medium box-shadow, used in popovers and raised menus.", + "description": "Use to define the Y value for a default small box-shadow, like in sticky sections", "type": "number", - "value": "0px", + "value": "1px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the X value for a default medium box-shadow, used in popovers and raised menus.", + "description": "Use to define the Y value for a default small box-shadow, like in sticky sections", "type": "number", - "value": "{global.box-shadow.X.400}" + "value": "{global.box-shadow.Y.500}" }, - "name": "pf-t--global--box-shadow--X--md--default", + "name": "pf-t--global--box-shadow--Y--sm--default", "attributes": { "category": "global", "type": "box-shadow", - "item": "X", - "subitem": "md", + "item": "Y", + "subitem": "sm", "state": "default" }, "path": [ "global", "box-shadow", - "X", - "md", + "Y", + "sm", "default" ], "references": [ { "type": "number", - "value": "0px", + "value": "1px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 0 + "value": 1 }, - "name": "pf-t--global--box-shadow--X--400", + "name": "pf-t--global--box-shadow--Y--500", "attributes": { "category": "global", "type": "box-shadow", - "item": "X", - "subitem": "400" + "item": "Y", + "subitem": "500" }, "path": [ "global", "box-shadow", - "X", - "400" + "Y", + "500" ] } ] } }, - "pf-t--global--box-shadow--X--md--top": { + "pf-t--global--box-shadow--Y--sm--top": { "default": { - "description": "Use to define the X value for a medium box-shadow that appears on the top of a raised element, like in overlay bottom drawers.", + "description": "Use to define the Y value for a small box-shadow that appears on the top of a raised element, like in sticky footers", "type": "number", - "value": "0px", + "value": "-4px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the X value for a medium box-shadow that appears on the top of a raised element, like in overlay bottom drawers.", + "description": "Use to define the Y value for a small box-shadow that appears on the top of a raised element, like in sticky footers", "type": "number", - "value": "{global.box-shadow.X.400}" + "value": "{global.box-shadow.Y.200}" }, - "name": "pf-t--global--box-shadow--X--md--top", + "name": "pf-t--global--box-shadow--Y--sm--top", "attributes": { "category": "global", "type": "box-shadow", - "item": "X", - "subitem": "md", + "item": "Y", + "subitem": "sm", "state": "top" }, "path": [ "global", "box-shadow", - "X", - "md", + "Y", + "sm", "top" ], "references": [ { "type": "number", - "value": "0px", + "value": "-4px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 0 + "value": -4 }, - "name": "pf-t--global--box-shadow--X--400", + "name": "pf-t--global--box-shadow--Y--200", "attributes": { "category": "global", "type": "box-shadow", - "item": "X", - "subitem": "400" + "item": "Y", + "subitem": "200" }, "path": [ "global", "box-shadow", - "X", - "400" + "Y", + "200" ] } ] } }, - "pf-t--global--box-shadow--X--md--bottom": { + "pf-t--global--box-shadow--Y--sm--bottom": { "default": { - "description": "Use to define the X value for a medium box-shadow that appears on the bottom of a raised element.", + "description": "Use to define the Y value for a small box-shadow that appears on the bottom of a raised element, like in sticky headers.", "type": "number", - "value": "0px", + "value": "4px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the X value for a medium box-shadow that appears on the bottom of a raised element.", + "description": "Use to define the Y value for a small box-shadow that appears on the bottom of a raised element, like in sticky headers.", "type": "number", - "value": "{global.box-shadow.X.400}" + "value": "{global.box-shadow.Y.600}" }, - "name": "pf-t--global--box-shadow--X--md--bottom", + "name": "pf-t--global--box-shadow--Y--sm--bottom", "attributes": { "category": "global", "type": "box-shadow", - "item": "X", - "subitem": "md", + "item": "Y", + "subitem": "sm", "state": "bottom" }, "path": [ "global", "box-shadow", - "X", - "md", + "Y", + "sm", "bottom" ], "references": [ { "type": "number", - "value": "0px", + "value": "4px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 0 + "value": 4 }, - "name": "pf-t--global--box-shadow--X--400", + "name": "pf-t--global--box-shadow--Y--600", "attributes": { "category": "global", "type": "box-shadow", - "item": "X", - "subitem": "400" + "item": "Y", + "subitem": "600" }, "path": [ "global", "box-shadow", - "X", - "400" + "Y", + "600" ] } ] } }, - "pf-t--global--box-shadow--X--md--left": { + "pf-t--global--box-shadow--Y--sm--left": { "default": { - "description": "Use to define the X value for a medium box-shadow that appears on the left of a raised element, like in overlay drawers that show on the right of the screen.", + "description": "Use to define the Y value for a small box-shadow that appears on the left of a raised element, like in sticky columns.", "type": "number", - "value": "-10px", + "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the X value for a medium box-shadow that appears on the left of a raised element, like in overlay drawers that show on the right of the screen.", + "description": "Use to define the Y value for a small box-shadow that appears on the left of a raised element, like in sticky columns.", "type": "number", - "value": "{global.box-shadow.X.100}" + "value": "{global.box-shadow.Y.400}" }, - "name": "pf-t--global--box-shadow--X--md--left", + "name": "pf-t--global--box-shadow--Y--sm--left", "attributes": { "category": "global", "type": "box-shadow", - "item": "X", - "subitem": "md", + "item": "Y", + "subitem": "sm", "state": "left" }, "path": [ "global", "box-shadow", - "X", - "md", + "Y", + "sm", "left" ], "references": [ { "type": "number", - "value": "-10px", + "value": "0px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": -10 + "value": 0 }, - "name": "pf-t--global--box-shadow--X--100", + "name": "pf-t--global--box-shadow--Y--400", "attributes": { "category": "global", "type": "box-shadow", - "item": "X", - "subitem": "100" + "item": "Y", + "subitem": "400" }, "path": [ "global", "box-shadow", - "X", - "100" + "Y", + "400" ] } ] } }, - "pf-t--global--box-shadow--X--md--right": { + "pf-t--global--box-shadow--Y--sm--right": { "default": { - "description": "Use to define the X value for a medium box-shadow that appears on the right of a raised element, like in overlay drawers that show on the left of the screen.", + "description": "Use to define the Y value for a small box-shadow that appears on the right of a raised element, like in sticky columns.", "type": "number", - "value": "10px", + "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the X value for a medium box-shadow that appears on the right of a raised element, like in overlay drawers that show on the left of the screen.", + "description": "Use to define the Y value for a small box-shadow that appears on the right of a raised element, like in sticky columns.", "type": "number", - "value": "{global.box-shadow.X.700}" + "value": "{global.box-shadow.Y.400}" }, - "name": "pf-t--global--box-shadow--X--md--right", + "name": "pf-t--global--box-shadow--Y--sm--right", "attributes": { "category": "global", "type": "box-shadow", - "item": "X", - "subitem": "md", + "item": "Y", + "subitem": "sm", "state": "right" }, "path": [ "global", "box-shadow", - "X", - "md", + "Y", + "sm", "right" ], "references": [ { "type": "number", - "value": "10px", + "value": "0px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 10 + "value": 0 }, - "name": "pf-t--global--box-shadow--X--700", + "name": "pf-t--global--box-shadow--Y--400", "attributes": { "category": "global", "type": "box-shadow", - "item": "X", - "subitem": "700" + "item": "Y", + "subitem": "400" }, "path": [ "global", "box-shadow", - "X", - "700" + "Y", + "400" ] } ] } }, - "pf-t--global--box-shadow--X--lg--default": { + "pf-t--global--box-shadow--Y--md--default": { "default": { - "description": "Use to define the X value for a default large box-shadow, used in modals and wizards.", + "description": "Use to define the Y value for a default medium box-shadow, used in popovers and raised menus.", "type": "number", - "value": "0px", + "value": "4px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the X value for a default large box-shadow, used in modals and wizards.", + "description": "Use to define the Y value for a default medium box-shadow, used in popovers and raised menus.", "type": "number", - "value": "{global.box-shadow.X.400}" + "value": "{global.box-shadow.Y.600}" }, - "name": "pf-t--global--box-shadow--X--lg--default", + "name": "pf-t--global--box-shadow--Y--md--default", "attributes": { "category": "global", "type": "box-shadow", - "item": "X", - "subitem": "lg", + "item": "Y", + "subitem": "md", "state": "default" }, "path": [ "global", "box-shadow", - "X", - "lg", + "Y", + "md", "default" ], "references": [ { "type": "number", - "value": "0px", + "value": "4px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 0 + "value": 4 }, - "name": "pf-t--global--box-shadow--X--400", + "name": "pf-t--global--box-shadow--Y--600", "attributes": { "category": "global", "type": "box-shadow", - "item": "X", - "subitem": "400" + "item": "Y", + "subitem": "600" }, "path": [ "global", "box-shadow", - "X", - "400" + "Y", + "600" ] } ] } }, - "pf-t--global--box-shadow--X--lg--top": { + "pf-t--global--box-shadow--Y--md--top": { "default": { - "description": "Use to define the X value for a large box-shadow that appears on the top of a raised element.", + "description": "Use to define the Y value for a medium box-shadow that appears on the top of a raised element, like in overlay bottom drawers", "type": "number", - "value": "0px", + "value": "-10px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the X value for a large box-shadow that appears on the top of a raised element.", + "description": "Use to define the Y value for a medium box-shadow that appears on the top of a raised element, like in overlay bottom drawers", "type": "number", - "value": "{global.box-shadow.X.400}" + "value": "{global.box-shadow.Y.100}" }, - "name": "pf-t--global--box-shadow--X--lg--top", + "name": "pf-t--global--box-shadow--Y--md--top", "attributes": { "category": "global", "type": "box-shadow", - "item": "X", - "subitem": "lg", + "item": "Y", + "subitem": "md", "state": "top" }, "path": [ "global", "box-shadow", - "X", - "lg", + "Y", + "md", "top" ], "references": [ { "type": "number", - "value": "0px", + "value": "-10px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 0 + "value": -10 }, - "name": "pf-t--global--box-shadow--X--400", + "name": "pf-t--global--box-shadow--Y--100", "attributes": { "category": "global", "type": "box-shadow", - "item": "X", - "subitem": "400" + "item": "Y", + "subitem": "100" }, "path": [ "global", "box-shadow", - "X", - "400" + "Y", + "100" ] } ] } }, - "pf-t--global--box-shadow--X--lg--bottom": { + "pf-t--global--box-shadow--Y--md--bottom": { "default": { - "description": "Use to define the X value for a large box-shadow that appears on the bottom of a raised element.", + "description": "Use to define the Y value for a medium box-shadow that appears on the bottom of a raised element.", "type": "number", - "value": "0px", + "value": "10px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the X value for a large box-shadow that appears on the bottom of a raised element.", + "description": "Use to define the Y value for a medium box-shadow that appears on the bottom of a raised element.", "type": "number", - "value": "{global.box-shadow.X.400}" + "value": "{global.box-shadow.Y.700}" }, - "name": "pf-t--global--box-shadow--X--lg--bottom", + "name": "pf-t--global--box-shadow--Y--md--bottom", "attributes": { "category": "global", "type": "box-shadow", - "item": "X", - "subitem": "lg", + "item": "Y", + "subitem": "md", "state": "bottom" }, "path": [ "global", "box-shadow", - "X", - "lg", + "Y", + "md", "bottom" ], "references": [ { "type": "number", - "value": "0px", + "value": "10px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 0 + "value": 10 }, - "name": "pf-t--global--box-shadow--X--400", + "name": "pf-t--global--box-shadow--Y--700", "attributes": { "category": "global", "type": "box-shadow", - "item": "X", - "subitem": "400" + "item": "Y", + "subitem": "700" }, "path": [ "global", "box-shadow", - "X", - "400" + "Y", + "700" ] } ] } }, - "pf-t--global--box-shadow--X--lg--left": { + "pf-t--global--box-shadow--Y--md--left": { "default": { - "description": "Use to define the X value for a large box-shadow that appears on the left of a raised element.", + "description": "Use to define the Y value for a medium box-shadow that appears on the left of a raised element, like in overlay drawers that show on the right of the screen.", "type": "number", - "value": "-20px", + "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the X value for a large box-shadow that appears on the left of a raised element.", + "description": "Use to define the Y value for a medium box-shadow that appears on the left of a raised element, like in overlay drawers that show on the right of the screen.", "type": "number", - "value": "{global.box-shadow.X.50}" + "value": "{global.box-shadow.Y.400}" }, - "name": "pf-t--global--box-shadow--X--lg--left", + "name": "pf-t--global--box-shadow--Y--md--left", "attributes": { "category": "global", "type": "box-shadow", - "item": "X", - "subitem": "lg", + "item": "Y", + "subitem": "md", "state": "left" }, "path": [ "global", "box-shadow", - "X", - "lg", + "Y", + "md", "left" ], "references": [ { "type": "number", - "value": "-20px", + "value": "0px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": -20 + "value": 0 }, - "name": "pf-t--global--box-shadow--X--50", + "name": "pf-t--global--box-shadow--Y--400", "attributes": { "category": "global", "type": "box-shadow", - "item": "X", - "subitem": "50" + "item": "Y", + "subitem": "400" }, "path": [ "global", "box-shadow", - "X", - "50" + "Y", + "400" ] } ] } }, - "pf-t--global--box-shadow--X--lg--right": { + "pf-t--global--box-shadow--Y--md--right": { "default": { - "description": "Use to define the X value for a large box-shadow that appears on the right of a raised element.", + "description": "Use to define the Y value for a medium box-shadow that appears on the right of a raised element, like in overlay drawers that show on the left of the screen.", "type": "number", - "value": "20px", + "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the X value for a large box-shadow that appears on the right of a raised element.", + "description": "Use to define the Y value for a medium box-shadow that appears on the right of a raised element, like in overlay drawers that show on the left of the screen.", "type": "number", - "value": "{global.box-shadow.X.800}" + "value": "{global.box-shadow.Y.400}" }, - "name": "pf-t--global--box-shadow--X--lg--right", + "name": "pf-t--global--box-shadow--Y--md--right", "attributes": { "category": "global", "type": "box-shadow", - "item": "X", - "subitem": "lg", + "item": "Y", + "subitem": "md", "state": "right" }, "path": [ "global", "box-shadow", - "X", - "lg", + "Y", + "md", "right" ], "references": [ { "type": "number", - "value": "20px", + "value": "0px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 20 + "value": 0 }, - "name": "pf-t--global--box-shadow--X--800", + "name": "pf-t--global--box-shadow--Y--400", "attributes": { "category": "global", "type": "box-shadow", - "item": "X", - "subitem": "800" + "item": "Y", + "subitem": "400" }, "path": [ "global", "box-shadow", - "X", - "800" + "Y", + "400" ] } ] } }, - "pf-t--global--box-shadow--Y--sm--default": { + "pf-t--global--box-shadow--Y--lg--default": { "default": { - "description": "Use to define the Y value for a default small box-shadow, like in sticky sections", + "description": "Use to define the Y value for a default large box-shadow, used in modals and wizards.", "type": "number", - "value": "1px", + "value": "10px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the Y value for a default small box-shadow, like in sticky sections", + "description": "Use to define the Y value for a default large box-shadow, used in modals and wizards.", "type": "number", - "value": "{global.box-shadow.Y.500}" + "value": "{global.box-shadow.Y.700}" }, - "name": "pf-t--global--box-shadow--Y--sm--default", + "name": "pf-t--global--box-shadow--Y--lg--default", "attributes": { "category": "global", "type": "box-shadow", "item": "Y", - "subitem": "sm", + "subitem": "lg", "state": "default" }, "path": [ "global", "box-shadow", "Y", - "sm", + "lg", "default" ], "references": [ { "type": "number", - "value": "1px", + "value": "10px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 1 + "value": 10 }, - "name": "pf-t--global--box-shadow--Y--500", + "name": "pf-t--global--box-shadow--Y--700", "attributes": { "category": "global", "type": "box-shadow", "item": "Y", - "subitem": "500" + "subitem": "700" }, "path": [ "global", "box-shadow", "Y", - "500" + "700" ] } ] } }, - "pf-t--global--box-shadow--Y--sm--top": { + "pf-t--global--box-shadow--Y--lg--top": { "default": { - "description": "Use to define the Y value for a small box-shadow that appears on the top of a raised element, like in sticky footers", + "description": "Use to define the Y value for a large box-shadow that appears on the top of a raised element.", "type": "number", - "value": "-4px", + "value": "-20px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the Y value for a small box-shadow that appears on the top of a raised element, like in sticky footers", + "description": "Use to define the Y value for a large box-shadow that appears on the top of a raised element.", "type": "number", - "value": "{global.box-shadow.Y.200}" + "value": "{global.box-shadow.Y.50}" }, - "name": "pf-t--global--box-shadow--Y--sm--top", + "name": "pf-t--global--box-shadow--Y--lg--top", "attributes": { "category": "global", "type": "box-shadow", "item": "Y", - "subitem": "sm", + "subitem": "lg", "state": "top" }, "path": [ "global", "box-shadow", "Y", - "sm", + "lg", "top" ], "references": [ { "type": "number", - "value": "-4px", + "value": "-20px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": -4 + "value": -20 }, - "name": "pf-t--global--box-shadow--Y--200", + "name": "pf-t--global--box-shadow--Y--50", "attributes": { "category": "global", "type": "box-shadow", "item": "Y", - "subitem": "200" + "subitem": "50" }, "path": [ "global", "box-shadow", "Y", - "200" + "50" ] } ] } }, - "pf-t--global--box-shadow--Y--sm--bottom": { + "pf-t--global--box-shadow--Y--lg--bottom": { "default": { - "description": "Use to define the Y value for a small box-shadow that appears on the bottom of a raised element, like in sticky headers.", + "description": "Use to define the Y value for a large box-shadow that appears on the bottom of a raised element.", "type": "number", - "value": "4px", + "value": "20px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the Y value for a small box-shadow that appears on the bottom of a raised element, like in sticky headers.", + "description": "Use to define the Y value for a large box-shadow that appears on the bottom of a raised element.", "type": "number", - "value": "{global.box-shadow.Y.600}" + "value": "{global.box-shadow.Y.800}" }, - "name": "pf-t--global--box-shadow--Y--sm--bottom", + "name": "pf-t--global--box-shadow--Y--lg--bottom", "attributes": { "category": "global", "type": "box-shadow", "item": "Y", - "subitem": "sm", + "subitem": "lg", "state": "bottom" }, "path": [ "global", "box-shadow", "Y", - "sm", + "lg", "bottom" ], "references": [ { "type": "number", - "value": "4px", + "value": "20px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 4 + "value": 20 }, - "name": "pf-t--global--box-shadow--Y--600", + "name": "pf-t--global--box-shadow--Y--800", "attributes": { "category": "global", "type": "box-shadow", "item": "Y", - "subitem": "600" + "subitem": "800" }, "path": [ "global", "box-shadow", "Y", - "600" + "800" ] } ] } }, - "pf-t--global--box-shadow--Y--sm--left": { + "pf-t--global--box-shadow--Y--lg--left": { "default": { - "description": "Use to define the Y value for a small box-shadow that appears on the left of a raised element, like in sticky columns.", + "description": "Use to define the Y value for a large box-shadow that appears on the left of a raised element.", "type": "number", "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the Y value for a small box-shadow that appears on the left of a raised element, like in sticky columns.", + "description": "Use to define the Y value for a large box-shadow that appears on the left of a raised element.", "type": "number", "value": "{global.box-shadow.Y.400}" }, - "name": "pf-t--global--box-shadow--Y--sm--left", + "name": "pf-t--global--box-shadow--Y--lg--left", "attributes": { "category": "global", "type": "box-shadow", "item": "Y", - "subitem": "sm", + "subitem": "lg", "state": "left" }, "path": [ "global", "box-shadow", "Y", - "sm", + "lg", "left" ], "references": [ @@ -39838,31 +41322,31 @@ ] } }, - "pf-t--global--box-shadow--Y--sm--right": { + "pf-t--global--box-shadow--Y--lg--right": { "default": { - "description": "Use to define the Y value for a small box-shadow that appears on the right of a raised element, like in sticky columns.", + "description": "Use to define the Y value for a large box-shadow that appears on the right of a raised element.", "type": "number", "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the Y value for a small box-shadow that appears on the right of a raised element, like in sticky columns.", + "description": "Use to define the Y value for a large box-shadow that appears on the right of a raised element.", "type": "number", "value": "{global.box-shadow.Y.400}" }, - "name": "pf-t--global--box-shadow--Y--sm--right", + "name": "pf-t--global--box-shadow--Y--lg--right", "attributes": { "category": "global", "type": "box-shadow", "item": "Y", - "subitem": "sm", + "subitem": "lg", "state": "right" }, "path": [ "global", "box-shadow", "Y", - "sm", + "lg", "right" ], "references": [ @@ -39892,194 +41376,188 @@ ] } }, - "pf-t--global--box-shadow--Y--md--default": { + "pf-t--global--box-shadow--blur--sm": { "default": { - "description": "Use to define the Y value for a default medium box-shadow, used in popovers and raised menus.", + "description": "Use to define the blur for a small box-shadow", "type": "number", - "value": "4px", + "value": "6px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the Y value for a default medium box-shadow, used in popovers and raised menus.", + "description": "Use to define the blur for a small box-shadow", "type": "number", - "value": "{global.box-shadow.Y.600}" + "value": "{global.box-shadow.blur.100}" }, - "name": "pf-t--global--box-shadow--Y--md--default", + "name": "pf-t--global--box-shadow--blur--sm", "attributes": { "category": "global", "type": "box-shadow", - "item": "Y", - "subitem": "md", - "state": "default" + "item": "blur", + "subitem": "sm" }, "path": [ "global", "box-shadow", - "Y", - "md", - "default" + "blur", + "sm" ], "references": [ { "type": "number", - "value": "4px", + "value": "6px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 4 + "value": 6 }, - "name": "pf-t--global--box-shadow--Y--600", + "name": "pf-t--global--box-shadow--blur--100", "attributes": { "category": "global", "type": "box-shadow", - "item": "Y", - "subitem": "600" + "item": "blur", + "subitem": "100" }, "path": [ "global", "box-shadow", - "Y", - "600" + "blur", + "100" ] } ] } }, - "pf-t--global--box-shadow--Y--md--top": { + "pf-t--global--box-shadow--blur--md": { "default": { - "description": "Use to define the Y value for a medium box-shadow that appears on the top of a raised element, like in overlay bottom drawers", + "description": "Use to define the blur for a medium box-shadow", "type": "number", - "value": "-10px", + "value": "10px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the Y value for a medium box-shadow that appears on the top of a raised element, like in overlay bottom drawers", + "description": "Use to define the blur for a medium box-shadow", "type": "number", - "value": "{global.box-shadow.Y.100}" + "value": "{global.box-shadow.blur.200}" }, - "name": "pf-t--global--box-shadow--Y--md--top", + "name": "pf-t--global--box-shadow--blur--md", "attributes": { "category": "global", "type": "box-shadow", - "item": "Y", - "subitem": "md", - "state": "top" + "item": "blur", + "subitem": "md" }, "path": [ "global", "box-shadow", - "Y", - "md", - "top" + "blur", + "md" ], "references": [ { "type": "number", - "value": "-10px", + "value": "10px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": -10 + "value": 10 }, - "name": "pf-t--global--box-shadow--Y--100", + "name": "pf-t--global--box-shadow--blur--200", "attributes": { "category": "global", "type": "box-shadow", - "item": "Y", - "subitem": "100" + "item": "blur", + "subitem": "200" }, "path": [ "global", "box-shadow", - "Y", - "100" + "blur", + "200" ] } ] } }, - "pf-t--global--box-shadow--Y--md--bottom": { + "pf-t--global--box-shadow--blur--lg": { "default": { - "description": "Use to define the Y value for a medium box-shadow that appears on the bottom of a raised element.", + "description": "Use to define the blue for a large box-shadow", "type": "number", - "value": "10px", + "value": "20px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the Y value for a medium box-shadow that appears on the bottom of a raised element.", + "description": "Use to define the blue for a large box-shadow", "type": "number", - "value": "{global.box-shadow.Y.700}" + "value": "{global.box-shadow.blur.300}" }, - "name": "pf-t--global--box-shadow--Y--md--bottom", + "name": "pf-t--global--box-shadow--blur--lg", "attributes": { "category": "global", "type": "box-shadow", - "item": "Y", - "subitem": "md", - "state": "bottom" + "item": "blur", + "subitem": "lg" }, "path": [ "global", "box-shadow", - "Y", - "md", - "bottom" + "blur", + "lg" ], "references": [ { "type": "number", - "value": "10px", + "value": "20px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 10 + "value": 20 }, - "name": "pf-t--global--box-shadow--Y--700", + "name": "pf-t--global--box-shadow--blur--300", "attributes": { "category": "global", "type": "box-shadow", - "item": "Y", - "subitem": "700" + "item": "blur", + "subitem": "300" }, "path": [ "global", "box-shadow", - "Y", - "700" + "blur", + "300" ] } ] } }, - "pf-t--global--box-shadow--Y--md--left": { + "pf-t--global--box-shadow--spread--sm--default": { "default": { - "description": "Use to define the Y value for a medium box-shadow that appears on the left of a raised element, like in overlay drawers that show on the right of the screen.", + "description": "Use to define the spread for a small box-shadow", "type": "number", "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the Y value for a medium box-shadow that appears on the left of a raised element, like in overlay drawers that show on the right of the screen.", + "description": "Use to define the spread for a small box-shadow", "type": "number", - "value": "{global.box-shadow.Y.400}" + "value": "{global.box-shadow.spread.100}" }, - "name": "pf-t--global--box-shadow--Y--md--left", + "name": "pf-t--global--box-shadow--spread--sm--default", "attributes": { "category": "global", "type": "box-shadow", - "item": "Y", - "subitem": "md", - "state": "left" + "item": "spread", + "subitem": "sm", + "state": "default" }, "path": [ "global", "box-shadow", - "Y", - "md", - "left" + "spread", + "sm", + "default" ], "references": [ { @@ -40091,2589 +41569,2055 @@ "type": "number", "value": 0 }, - "name": "pf-t--global--box-shadow--Y--400", + "name": "pf-t--global--box-shadow--spread--100", "attributes": { "category": "global", "type": "box-shadow", - "item": "Y", - "subitem": "400" + "item": "spread", + "subitem": "100" }, "path": [ "global", "box-shadow", - "Y", - "400" + "spread", + "100" ] } ] } }, - "pf-t--global--box-shadow--Y--md--right": { + "pf-t--global--box-shadow--spread--sm--directional": { "default": { - "description": "Use to define the Y value for a medium box-shadow that appears on the right of a raised element, like in overlay drawers that show on the left of the screen.", + "description": "Use to define the spread for a small box-shadow", "type": "number", - "value": "0px", + "value": "-4px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the Y value for a medium box-shadow that appears on the right of a raised element, like in overlay drawers that show on the left of the screen.", + "description": "Use to define the spread for a small box-shadow", "type": "number", - "value": "{global.box-shadow.Y.400}" + "value": "{global.box-shadow.spread.200}" }, - "name": "pf-t--global--box-shadow--Y--md--right", + "name": "pf-t--global--box-shadow--spread--sm--directional", "attributes": { "category": "global", "type": "box-shadow", - "item": "Y", - "subitem": "md", - "state": "right" + "item": "spread", + "subitem": "sm", + "state": "directional" }, "path": [ "global", "box-shadow", - "Y", - "md", - "right" + "spread", + "sm", + "directional" ], "references": [ { "type": "number", - "value": "0px", + "value": "-4px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 0 + "value": -4 }, - "name": "pf-t--global--box-shadow--Y--400", + "name": "pf-t--global--box-shadow--spread--200", "attributes": { "category": "global", "type": "box-shadow", - "item": "Y", - "subitem": "400" + "item": "spread", + "subitem": "200" }, "path": [ "global", "box-shadow", - "Y", - "400" + "spread", + "200" ] } ] } }, - "pf-t--global--box-shadow--Y--lg--default": { + "pf-t--global--box-shadow--spread--md--default": { "default": { - "description": "Use to define the Y value for a default large box-shadow, used in modals and wizards.", + "description": "Use to define the spread of a medium box-shadow", "type": "number", - "value": "10px", + "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the Y value for a default large box-shadow, used in modals and wizards.", + "description": "Use to define the spread of a medium box-shadow", "type": "number", - "value": "{global.box-shadow.Y.700}" + "value": "{global.box-shadow.spread.100}" }, - "name": "pf-t--global--box-shadow--Y--lg--default", + "name": "pf-t--global--box-shadow--spread--md--default", "attributes": { "category": "global", "type": "box-shadow", - "item": "Y", - "subitem": "lg", + "item": "spread", + "subitem": "md", "state": "default" }, "path": [ "global", "box-shadow", - "Y", - "lg", + "spread", + "md", "default" ], "references": [ { "type": "number", - "value": "10px", + "value": "0px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 10 + "value": 0 }, - "name": "pf-t--global--box-shadow--Y--700", + "name": "pf-t--global--box-shadow--spread--100", "attributes": { "category": "global", "type": "box-shadow", - "item": "Y", - "subitem": "700" + "item": "spread", + "subitem": "100" }, "path": [ "global", "box-shadow", - "Y", - "700" + "spread", + "100" ] } ] } }, - "pf-t--global--box-shadow--Y--lg--top": { + "pf-t--global--box-shadow--spread--md--directional": { "default": { - "description": "Use to define the Y value for a large box-shadow that appears on the top of a raised element.", + "description": "Use to define the spread of a medium box-shadow", "type": "number", - "value": "-20px", + "value": "-8px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the Y value for a large box-shadow that appears on the top of a raised element.", + "description": "Use to define the spread of a medium box-shadow", "type": "number", - "value": "{global.box-shadow.Y.50}" + "value": "{global.box-shadow.spread.300}" }, - "name": "pf-t--global--box-shadow--Y--lg--top", + "name": "pf-t--global--box-shadow--spread--md--directional", "attributes": { "category": "global", "type": "box-shadow", - "item": "Y", - "subitem": "lg", - "state": "top" + "item": "spread", + "subitem": "md", + "state": "directional" }, "path": [ "global", "box-shadow", - "Y", - "lg", - "top" + "spread", + "md", + "directional" ], "references": [ { "type": "number", - "value": "-20px", + "value": "-8px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": -20 + "value": -8 }, - "name": "pf-t--global--box-shadow--Y--50", + "name": "pf-t--global--box-shadow--spread--300", "attributes": { "category": "global", "type": "box-shadow", - "item": "Y", - "subitem": "50" + "item": "spread", + "subitem": "300" }, "path": [ "global", "box-shadow", - "Y", - "50" + "spread", + "300" ] } ] } }, - "pf-t--global--box-shadow--Y--lg--bottom": { + "pf-t--global--box-shadow--spread--lg--default": { "default": { - "description": "Use to define the Y value for a large box-shadow that appears on the bottom of a raised element.", + "description": "Use to define the spread of a large box-shadow", "type": "number", - "value": "20px", + "value": "0px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the Y value for a large box-shadow that appears on the bottom of a raised element.", + "description": "Use to define the spread of a large box-shadow", "type": "number", - "value": "{global.box-shadow.Y.800}" + "value": "{global.box-shadow.spread.100}" }, - "name": "pf-t--global--box-shadow--Y--lg--bottom", + "name": "pf-t--global--box-shadow--spread--lg--default", "attributes": { "category": "global", "type": "box-shadow", - "item": "Y", + "item": "spread", "subitem": "lg", - "state": "bottom" + "state": "default" }, "path": [ "global", "box-shadow", - "Y", + "spread", "lg", - "bottom" + "default" ], "references": [ { "type": "number", - "value": "20px", + "value": "0px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 20 + "value": 0 }, - "name": "pf-t--global--box-shadow--Y--800", + "name": "pf-t--global--box-shadow--spread--100", "attributes": { "category": "global", "type": "box-shadow", - "item": "Y", - "subitem": "800" + "item": "spread", + "subitem": "100" }, "path": [ "global", "box-shadow", - "Y", - "800" + "spread", + "100" ] } ] } }, - "pf-t--global--box-shadow--Y--lg--left": { + "pf-t--global--box-shadow--spread--lg--directional": { "default": { - "description": "Use to define the Y value for a large box-shadow that appears on the left of a raised element.", + "description": "Use to define the spread of a large box-shadow", "type": "number", - "value": "0px", + "value": "-20px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the Y value for a large box-shadow that appears on the left of a raised element.", + "description": "Use to define the spread of a large box-shadow", "type": "number", - "value": "{global.box-shadow.Y.400}" + "value": "{global.box-shadow.spread.400}" }, - "name": "pf-t--global--box-shadow--Y--lg--left", + "name": "pf-t--global--box-shadow--spread--lg--directional", "attributes": { "category": "global", "type": "box-shadow", - "item": "Y", + "item": "spread", "subitem": "lg", - "state": "left" + "state": "directional" }, "path": [ "global", "box-shadow", - "Y", + "spread", "lg", - "left" + "directional" ], "references": [ { "type": "number", - "value": "0px", + "value": "-20px", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 0 + "value": -20 }, - "name": "pf-t--global--box-shadow--Y--400", + "name": "pf-t--global--box-shadow--spread--400", "attributes": { "category": "global", "type": "box-shadow", - "item": "Y", + "item": "spread", "subitem": "400" }, "path": [ "global", "box-shadow", - "Y", + "spread", "400" ] } ] } }, - "pf-t--global--box-shadow--Y--lg--right": { + "pf-t--global--breakpoint--xs": { "default": { - "description": "Use to define the Y value for a large box-shadow that appears on the right of a raised element.", + "description": "Use to define an extra small breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "0px", + "value": "0rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the Y value for a large box-shadow that appears on the right of a raised element.", + "description": "Use to define an extra small breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.box-shadow.Y.400}" + "value": "{global.breakpoint.100}" }, - "name": "pf-t--global--box-shadow--Y--lg--right", + "name": "pf-t--global--breakpoint--xs", "attributes": { "category": "global", - "type": "box-shadow", - "item": "Y", - "subitem": "lg", - "state": "right" + "type": "breakpoint", + "item": "xs" }, "path": [ "global", - "box-shadow", - "Y", - "lg", - "right" + "breakpoint", + "xs" ], "references": [ { "type": "number", - "value": "0px", + "value": "0rem", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", "value": 0 }, - "name": "pf-t--global--box-shadow--Y--400", + "name": "pf-t--global--breakpoint--100", "attributes": { "category": "global", - "type": "box-shadow", - "item": "Y", - "subitem": "400" + "type": "breakpoint", + "item": "100" }, "path": [ "global", - "box-shadow", - "Y", - "400" + "breakpoint", + "100" ] } ] } }, - "pf-t--global--box-shadow--blur--sm": { + "pf-t--global--breakpoint--sm": { "default": { - "description": "Use to define the blur for a small box-shadow", + "description": "Use to define a small breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "6px", + "value": "36rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the blur for a small box-shadow", + "description": "Use to define a small breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.box-shadow.blur.100}" + "value": "{global.breakpoint.200}" }, - "name": "pf-t--global--box-shadow--blur--sm", + "name": "pf-t--global--breakpoint--sm", "attributes": { "category": "global", - "type": "box-shadow", - "item": "blur", - "subitem": "sm" + "type": "breakpoint", + "item": "sm" }, "path": [ "global", - "box-shadow", - "blur", + "breakpoint", "sm" ], "references": [ { "type": "number", - "value": "6px", + "value": "36rem", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 6 + "value": 576 }, - "name": "pf-t--global--box-shadow--blur--100", + "name": "pf-t--global--breakpoint--200", "attributes": { "category": "global", - "type": "box-shadow", - "item": "blur", - "subitem": "100" + "type": "breakpoint", + "item": "200" }, "path": [ "global", - "box-shadow", - "blur", - "100" + "breakpoint", + "200" ] } ] } }, - "pf-t--global--box-shadow--blur--md": { + "pf-t--global--breakpoint--md": { "default": { - "description": "Use to define the blur for a medium box-shadow", + "description": "Use to define a medium breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "10px", + "value": "48rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the blur for a medium box-shadow", + "description": "Use to define a medium breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.box-shadow.blur.200}" + "value": "{global.breakpoint.300}" }, - "name": "pf-t--global--box-shadow--blur--md", + "name": "pf-t--global--breakpoint--md", "attributes": { "category": "global", - "type": "box-shadow", - "item": "blur", - "subitem": "md" + "type": "breakpoint", + "item": "md" }, "path": [ "global", - "box-shadow", - "blur", + "breakpoint", "md" ], "references": [ { "type": "number", - "value": "10px", + "value": "48rem", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 10 + "value": 768 }, - "name": "pf-t--global--box-shadow--blur--200", + "name": "pf-t--global--breakpoint--300", "attributes": { "category": "global", - "type": "box-shadow", - "item": "blur", - "subitem": "200" + "type": "breakpoint", + "item": "300" }, "path": [ "global", - "box-shadow", - "blur", - "200" + "breakpoint", + "300" ] } ] } }, - "pf-t--global--box-shadow--blur--lg": { + "pf-t--global--breakpoint--lg": { "default": { - "description": "Use to define the blue for a large box-shadow", + "description": "Use to define a large breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "20px", + "value": "62rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the blue for a large box-shadow", + "description": "Use to define a large breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.box-shadow.blur.300}" + "value": "{global.breakpoint.400}" }, - "name": "pf-t--global--box-shadow--blur--lg", + "name": "pf-t--global--breakpoint--lg", "attributes": { "category": "global", - "type": "box-shadow", - "item": "blur", - "subitem": "lg" + "type": "breakpoint", + "item": "lg" }, "path": [ "global", - "box-shadow", - "blur", + "breakpoint", "lg" ], "references": [ { "type": "number", - "value": "20px", + "value": "62rem", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 20 + "value": 992 }, - "name": "pf-t--global--box-shadow--blur--300", + "name": "pf-t--global--breakpoint--400", "attributes": { "category": "global", - "type": "box-shadow", - "item": "blur", - "subitem": "300" + "type": "breakpoint", + "item": "400" }, "path": [ "global", - "box-shadow", - "blur", - "300" + "breakpoint", + "400" ] } ] } }, - "pf-t--global--box-shadow--spread--sm--default": { + "pf-t--global--breakpoint--xl": { "default": { - "description": "Use to define the spread for a small box-shadow", + "description": "Use to define an extra large breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "0px", + "value": "75rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the spread for a small box-shadow", + "description": "Use to define an extra large breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.box-shadow.spread.100}" + "value": "{global.breakpoint.500}" }, - "name": "pf-t--global--box-shadow--spread--sm--default", + "name": "pf-t--global--breakpoint--xl", "attributes": { "category": "global", - "type": "box-shadow", - "item": "spread", - "subitem": "sm", - "state": "default" + "type": "breakpoint", + "item": "xl" }, "path": [ "global", - "box-shadow", - "spread", - "sm", - "default" + "breakpoint", + "xl" ], "references": [ { "type": "number", - "value": "0px", + "value": "75rem", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 0 + "value": 1200 }, - "name": "pf-t--global--box-shadow--spread--100", + "name": "pf-t--global--breakpoint--500", "attributes": { "category": "global", - "type": "box-shadow", - "item": "spread", - "subitem": "100" + "type": "breakpoint", + "item": "500" }, "path": [ "global", - "box-shadow", - "spread", - "100" + "breakpoint", + "500" ] } ] } }, - "pf-t--global--box-shadow--spread--sm--directional": { + "pf-t--global--breakpoint--2xl": { "default": { - "description": "Use to define the spread for a small box-shadow", + "description": "Use to define a double extra large breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "-4px", + "value": "90.625rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the spread for a small box-shadow", + "description": "Use to define a double extra large breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.box-shadow.spread.200}" + "value": "{global.breakpoint.600}" }, - "name": "pf-t--global--box-shadow--spread--sm--directional", + "name": "pf-t--global--breakpoint--2xl", "attributes": { "category": "global", - "type": "box-shadow", - "item": "spread", - "subitem": "sm", - "state": "directional" + "type": "breakpoint", + "item": "2xl" }, "path": [ "global", - "box-shadow", - "spread", - "sm", - "directional" + "breakpoint", + "2xl" ], "references": [ { "type": "number", - "value": "-4px", + "value": "90.625rem", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": -4 + "value": 1450 }, - "name": "pf-t--global--box-shadow--spread--200", + "name": "pf-t--global--breakpoint--600", "attributes": { "category": "global", - "type": "box-shadow", - "item": "spread", - "subitem": "200" + "type": "breakpoint", + "item": "600" }, "path": [ "global", - "box-shadow", - "spread", - "200" + "breakpoint", + "600" ] } ] } }, - "pf-t--global--box-shadow--spread--md--default": { + "pf-t--global--breakpoint--height--sm": { "default": { - "description": "Use to define the spread of a medium box-shadow", + "description": "Use to define a small height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "0px", + "value": "0rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the spread of a medium box-shadow", + "description": "Use to define a small height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.box-shadow.spread.100}" + "value": "{global.breakpoint.100}" }, - "name": "pf-t--global--box-shadow--spread--md--default", + "name": "pf-t--global--breakpoint--height--sm", "attributes": { "category": "global", - "type": "box-shadow", - "item": "spread", - "subitem": "md", - "state": "default" + "type": "breakpoint", + "item": "height", + "subitem": "sm" }, "path": [ "global", - "box-shadow", - "spread", - "md", - "default" + "breakpoint", + "height", + "sm" ], "references": [ { "type": "number", - "value": "0px", + "value": "0rem", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", "value": 0 }, - "name": "pf-t--global--box-shadow--spread--100", + "name": "pf-t--global--breakpoint--100", "attributes": { "category": "global", - "type": "box-shadow", - "item": "spread", - "subitem": "100" + "type": "breakpoint", + "item": "100" }, "path": [ "global", - "box-shadow", - "spread", + "breakpoint", "100" ] } ] } }, - "pf-t--global--box-shadow--spread--md--directional": { + "pf-t--global--breakpoint--height--md": { "default": { - "description": "Use to define the spread of a medium box-shadow", + "description": "Use to define a medium height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "-8px", + "value": "40rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the spread of a medium box-shadow", + "description": "Use to define a medium height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.box-shadow.spread.300}" + "value": "{global.breakpoint.250}" }, - "name": "pf-t--global--box-shadow--spread--md--directional", + "name": "pf-t--global--breakpoint--height--md", "attributes": { "category": "global", - "type": "box-shadow", - "item": "spread", - "subitem": "md", - "state": "directional" + "type": "breakpoint", + "item": "height", + "subitem": "md" }, "path": [ "global", - "box-shadow", - "spread", - "md", - "directional" + "breakpoint", + "height", + "md" ], "references": [ { "type": "number", - "value": "-8px", + "value": "40rem", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": -8 + "value": 640 }, - "name": "pf-t--global--box-shadow--spread--300", + "name": "pf-t--global--breakpoint--250", "attributes": { "category": "global", - "type": "box-shadow", - "item": "spread", - "subitem": "300" + "type": "breakpoint", + "item": "250" }, "path": [ "global", - "box-shadow", - "spread", - "300" + "breakpoint", + "250" ] } ] } }, - "pf-t--global--box-shadow--spread--lg--default": { + "pf-t--global--breakpoint--height--lg": { "default": { - "description": "Use to define the spread of a large box-shadow", + "description": "Use to define a large height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "0px", + "value": "48rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the spread of a large box-shadow", + "description": "Use to define a large height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.box-shadow.spread.100}" + "value": "{global.breakpoint.300}" }, - "name": "pf-t--global--box-shadow--spread--lg--default", + "name": "pf-t--global--breakpoint--height--lg", "attributes": { "category": "global", - "type": "box-shadow", - "item": "spread", - "subitem": "lg", - "state": "default" + "type": "breakpoint", + "item": "height", + "subitem": "lg" }, "path": [ "global", - "box-shadow", - "spread", - "lg", - "default" + "breakpoint", + "height", + "lg" ], "references": [ { "type": "number", - "value": "0px", + "value": "48rem", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 0 + "value": 768 }, - "name": "pf-t--global--box-shadow--spread--100", + "name": "pf-t--global--breakpoint--300", "attributes": { "category": "global", - "type": "box-shadow", - "item": "spread", - "subitem": "100" + "type": "breakpoint", + "item": "300" }, "path": [ "global", - "box-shadow", - "spread", - "100" + "breakpoint", + "300" ] } ] } }, - "pf-t--global--box-shadow--spread--lg--directional": { + "pf-t--global--breakpoint--height--xl": { "default": { - "description": "Use to define the spread of a large box-shadow", + "description": "Use to define an extra large height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "-20px", + "value": "60rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define the spread of a large box-shadow", + "description": "Use to define an extra large height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.box-shadow.spread.400}" + "value": "{global.breakpoint.350}" }, - "name": "pf-t--global--box-shadow--spread--lg--directional", + "name": "pf-t--global--breakpoint--height--xl", "attributes": { "category": "global", - "type": "box-shadow", - "item": "spread", - "subitem": "lg", - "state": "directional" + "type": "breakpoint", + "item": "height", + "subitem": "xl" }, "path": [ "global", - "box-shadow", - "spread", - "lg", - "directional" + "breakpoint", + "height", + "xl" ], "references": [ { "type": "number", - "value": "-20px", + "value": "60rem", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": -20 + "value": 960 }, - "name": "pf-t--global--box-shadow--spread--400", + "name": "pf-t--global--breakpoint--350", "attributes": { "category": "global", - "type": "box-shadow", - "item": "spread", - "subitem": "400" + "type": "breakpoint", + "item": "350" }, "path": [ "global", - "box-shadow", - "spread", - "400" + "breakpoint", + "350" ] } ] } }, - "pf-t--global--breakpoint--xs": { + "pf-t--global--breakpoint--height--2xl": { "default": { - "description": "Use to define an extra small breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", + "description": "Use to define an extra small height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "0rem", + "value": "80rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define an extra small breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", + "description": "Use to define an extra small height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.breakpoint.100}" + "value": "{global.breakpoint.550}" }, - "name": "pf-t--global--breakpoint--xs", + "name": "pf-t--global--breakpoint--height--2xl", "attributes": { "category": "global", "type": "breakpoint", - "item": "xs" + "item": "height", + "subitem": "2xl" }, "path": [ "global", "breakpoint", - "xs" + "height", + "2xl" ], "references": [ { "type": "number", - "value": "0rem", + "value": "80rem", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "number", - "value": 0 + "value": 1280 }, - "name": "pf-t--global--breakpoint--100", + "name": "pf-t--global--breakpoint--550", "attributes": { "category": "global", "type": "breakpoint", - "item": "100" + "item": "550" }, "path": [ "global", "breakpoint", - "100" + "550" ] } ] } }, - "pf-t--global--breakpoint--sm": { + "pf-t--global--text-decoration--width--default": { "default": { - "description": "Use to define a small breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "36rem", + "value": "1px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define a small breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.breakpoint.200}" + "value": "{global.border.width.regular}" }, - "name": "pf-t--global--breakpoint--sm", + "name": "pf-t--global--text-decoration--width--default", "attributes": { "category": "global", - "type": "breakpoint", - "item": "sm" + "type": "text-decoration", + "item": "width", + "subitem": "default" }, "path": [ "global", - "breakpoint", - "sm" + "text-decoration", + "width", + "default" ], "references": [ { + "description": "Use as the default border width for elements.", "type": "number", - "value": "36rem", - "filePath": "tokens/default/light/base.dimension.json", + "value": "1px", + "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { + "description": "Use as the default border width for elements.", "type": "number", - "value": 576 + "value": "{global.border.width.100}" }, - "name": "pf-t--global--breakpoint--200", + "name": "pf-t--global--border--width--regular", "attributes": { "category": "global", - "type": "breakpoint", - "item": "200" + "type": "border", + "item": "width", + "subitem": "regular" }, "path": [ "global", - "breakpoint", - "200" + "border", + "width", + "regular" + ], + "references": [ + { + "type": "number", + "value": "1px", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1 + }, + "name": "pf-t--global--border--width--100", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "100" + }, + "path": [ + "global", + "border", + "width", + "100" + ] + } ] } ] } }, - "pf-t--global--breakpoint--md": { + "pf-t--global--text-decoration--width--hover": { "default": { - "description": "Use to define a medium breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "48rem", + "value": "1px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define a medium breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.breakpoint.300}" + "value": "{global.border.width.regular}" }, - "name": "pf-t--global--breakpoint--md", + "name": "pf-t--global--text-decoration--width--hover", "attributes": { "category": "global", - "type": "breakpoint", - "item": "md" + "type": "text-decoration", + "item": "width", + "subitem": "hover" }, "path": [ "global", - "breakpoint", - "md" + "text-decoration", + "width", + "hover" ], "references": [ { + "description": "Use as the default border width for elements.", "type": "number", - "value": "48rem", - "filePath": "tokens/default/light/base.dimension.json", + "value": "1px", + "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { + "description": "Use as the default border width for elements.", "type": "number", - "value": 768 + "value": "{global.border.width.100}" }, - "name": "pf-t--global--breakpoint--300", + "name": "pf-t--global--border--width--regular", "attributes": { "category": "global", - "type": "breakpoint", - "item": "300" + "type": "border", + "item": "width", + "subitem": "regular" }, "path": [ "global", - "breakpoint", - "300" + "border", + "width", + "regular" + ], + "references": [ + { + "type": "number", + "value": "1px", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 1 + }, + "name": "pf-t--global--border--width--100", + "attributes": { + "category": "global", + "type": "border", + "item": "width", + "subitem": "100" + }, + "path": [ + "global", + "border", + "width", + "100" + ] + } ] } ] } }, - "pf-t--global--breakpoint--lg": { + "pf-t--global--text-decoration--offset--default": { "default": { - "description": "Use to define a large breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "62rem", + "value": "0.25rem", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define a large breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.breakpoint.400}" + "value": "{global.spacer.xs}" }, - "name": "pf-t--global--breakpoint--lg", + "name": "pf-t--global--text-decoration--offset--default", "attributes": { "category": "global", - "type": "breakpoint", - "item": "lg" + "type": "text-decoration", + "item": "offset", + "subitem": "default" }, "path": [ "global", - "breakpoint", - "lg" + "text-decoration", + "offset", + "default" ], "references": [ { + "description": "Use for extra small spaces between elements.", "type": "number", - "value": "62rem", - "filePath": "tokens/default/light/base.dimension.json", + "value": "0.25rem", + "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { + "description": "Use for extra small spaces between elements.", "type": "number", - "value": 992 + "value": "{global.spacer.100}" }, - "name": "pf-t--global--breakpoint--400", + "name": "pf-t--global--spacer--xs", "attributes": { "category": "global", - "type": "breakpoint", - "item": "400" + "type": "spacer", + "item": "xs" }, "path": [ "global", - "breakpoint", - "400" + "spacer", + "xs" + ], + "references": [ + { + "type": "number", + "value": "0.25rem", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "number", + "value": 4 + }, + "name": "pf-t--global--spacer--100", + "attributes": { + "category": "global", + "type": "spacer", + "item": "100" + }, + "path": [ + "global", + "spacer", + "100" + ] + } ] } ] } }, - "pf-t--global--breakpoint--xl": { + "pf-t--global--text-decoration--editable-text--line--default": { "default": { - "description": "Use to define an extra large breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "75rem", + "value": "underline", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define an extra large breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.breakpoint.500}" + "value": "{global.text-decoration.line.200}" }, - "name": "pf-t--global--breakpoint--xl", + "name": "pf-t--global--text-decoration--editable-text--line--default", "attributes": { "category": "global", - "type": "breakpoint", - "item": "xl" + "type": "text-decoration", + "item": "editable-text", + "subitem": "line", + "state": "default" }, "path": [ "global", - "breakpoint", - "xl" + "text-decoration", + "editable-text", + "line", + "default" ], "references": [ { - "type": "number", - "value": "75rem", + "type": "string", + "value": "underline", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "type": "number", - "value": 1200 + "type": "string", + "value": "underline" }, - "name": "pf-t--global--breakpoint--500", + "name": "pf-t--global--text-decoration--line--200", "attributes": { "category": "global", - "type": "breakpoint", - "item": "500" + "type": "text-decoration", + "item": "line", + "subitem": "200" }, "path": [ "global", - "breakpoint", - "500" + "text-decoration", + "line", + "200" ] } ] } }, - "pf-t--global--breakpoint--2xl": { + "pf-t--global--text-decoration--editable-text--line--hover": { "default": { - "description": "Use to define a double extra large breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "90.625rem", + "value": "underline", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define a double extra large breakpoint, which is the minimum width at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.breakpoint.600}" + "value": "{global.text-decoration.line.200}" }, - "name": "pf-t--global--breakpoint--2xl", + "name": "pf-t--global--text-decoration--editable-text--line--hover", "attributes": { "category": "global", - "type": "breakpoint", - "item": "2xl" + "type": "text-decoration", + "item": "editable-text", + "subitem": "line", + "state": "hover" }, "path": [ "global", - "breakpoint", - "2xl" + "text-decoration", + "editable-text", + "line", + "hover" ], "references": [ { - "type": "number", - "value": "90.625rem", + "type": "string", + "value": "underline", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "type": "number", - "value": 1450 + "type": "string", + "value": "underline" }, - "name": "pf-t--global--breakpoint--600", + "name": "pf-t--global--text-decoration--line--200", "attributes": { "category": "global", - "type": "breakpoint", - "item": "600" + "type": "text-decoration", + "item": "line", + "subitem": "200" }, "path": [ "global", - "breakpoint", - "600" + "text-decoration", + "line", + "200" ] } ] } }, - "pf-t--global--breakpoint--height--sm": { + "pf-t--global--text-decoration--editable-text--style--default": { "default": { - "description": "Use to define a small height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "0rem", + "value": "dashed", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define a small height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.breakpoint.100}" + "value": "{global.text-decoration.style.200}" }, - "name": "pf-t--global--breakpoint--height--sm", + "name": "pf-t--global--text-decoration--editable-text--style--default", "attributes": { "category": "global", - "type": "breakpoint", - "item": "height", - "subitem": "sm" + "type": "text-decoration", + "item": "editable-text", + "subitem": "style", + "state": "default" }, "path": [ "global", - "breakpoint", - "height", - "sm" + "text-decoration", + "editable-text", + "style", + "default" ], "references": [ { - "type": "number", - "value": "0rem", + "type": "string", + "value": "dashed", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "type": "number", - "value": 0 + "type": "string", + "value": "dashed" }, - "name": "pf-t--global--breakpoint--100", + "name": "pf-t--global--text-decoration--style--200", "attributes": { "category": "global", - "type": "breakpoint", - "item": "100" + "type": "text-decoration", + "item": "style", + "subitem": "200" }, "path": [ "global", - "breakpoint", - "100" + "text-decoration", + "style", + "200" ] } ] } }, - "pf-t--global--breakpoint--height--md": { + "pf-t--global--text-decoration--editable-text--style--hover": { "default": { - "description": "Use to define a medium height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "40rem", + "value": "dashed", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define a medium height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.breakpoint.250}" + "value": "{global.text-decoration.style.200}" }, - "name": "pf-t--global--breakpoint--height--md", + "name": "pf-t--global--text-decoration--editable-text--style--hover", "attributes": { "category": "global", - "type": "breakpoint", - "item": "height", - "subitem": "md" + "type": "text-decoration", + "item": "editable-text", + "subitem": "style", + "state": "hover" }, "path": [ "global", - "breakpoint", - "height", - "md" + "text-decoration", + "editable-text", + "style", + "hover" ], "references": [ { - "type": "number", - "value": "40rem", + "type": "string", + "value": "dashed", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "type": "number", - "value": 640 + "type": "string", + "value": "dashed" }, - "name": "pf-t--global--breakpoint--250", + "name": "pf-t--global--text-decoration--style--200", "attributes": { "category": "global", - "type": "breakpoint", - "item": "250" + "type": "text-decoration", + "item": "style", + "subitem": "200" }, "path": [ "global", - "breakpoint", - "250" + "text-decoration", + "style", + "200" ] } ] } }, - "pf-t--global--breakpoint--height--lg": { + "pf-t--global--text-decoration--link--line--default": { "default": { - "description": "Use to define a large height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "48rem", + "value": "underline", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define a large height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.breakpoint.300}" + "value": "{global.text-decoration.line.200}" }, - "name": "pf-t--global--breakpoint--height--lg", + "name": "pf-t--global--text-decoration--link--line--default", "attributes": { "category": "global", - "type": "breakpoint", - "item": "height", - "subitem": "lg" + "type": "text-decoration", + "item": "link", + "subitem": "line", + "state": "default" }, "path": [ "global", - "breakpoint", - "height", - "lg" + "text-decoration", + "link", + "line", + "default" ], "references": [ { - "type": "number", - "value": "48rem", + "type": "string", + "value": "underline", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "type": "number", - "value": 768 + "type": "string", + "value": "underline" }, - "name": "pf-t--global--breakpoint--300", + "name": "pf-t--global--text-decoration--line--200", "attributes": { "category": "global", - "type": "breakpoint", - "item": "300" + "type": "text-decoration", + "item": "line", + "subitem": "200" }, "path": [ "global", - "breakpoint", - "300" + "text-decoration", + "line", + "200" ] } ] } }, - "pf-t--global--breakpoint--height--xl": { + "pf-t--global--text-decoration--link--line--hover": { "default": { - "description": "Use to define an extra large height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "60rem", + "value": "underline", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define an extra large height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.breakpoint.350}" + "value": "{global.text-decoration.line.200}" }, - "name": "pf-t--global--breakpoint--height--xl", + "name": "pf-t--global--text-decoration--link--line--hover", "attributes": { "category": "global", - "type": "breakpoint", - "item": "height", - "subitem": "xl" + "type": "text-decoration", + "item": "link", + "subitem": "line", + "state": "hover" }, "path": [ "global", - "breakpoint", - "height", - "xl" + "text-decoration", + "link", + "line", + "hover" ], "references": [ { - "type": "number", - "value": "60rem", + "type": "string", + "value": "underline", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "type": "number", - "value": 960 + "type": "string", + "value": "underline" }, - "name": "pf-t--global--breakpoint--350", + "name": "pf-t--global--text-decoration--line--200", "attributes": { "category": "global", - "type": "breakpoint", - "item": "350" + "type": "text-decoration", + "item": "line", + "subitem": "200" }, "path": [ "global", - "breakpoint", - "350" + "text-decoration", + "line", + "200" ] } ] } }, - "pf-t--global--breakpoint--height--2xl": { + "pf-t--global--text-decoration--link--style--default": { "default": { - "description": "Use to define an extra small height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "80rem", + "value": "dashed", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { - "description": "Use to define an extra small height breakpoint, which is the minimum height at which an effect applies to an element, in order to support responsive design.", "type": "number", - "value": "{global.breakpoint.550}" + "value": "{global.text-decoration.style.200}" }, - "name": "pf-t--global--breakpoint--height--2xl", + "name": "pf-t--global--text-decoration--link--style--default", "attributes": { "category": "global", - "type": "breakpoint", - "item": "height", - "subitem": "2xl" + "type": "text-decoration", + "item": "link", + "subitem": "style", + "state": "default" }, "path": [ "global", - "breakpoint", - "height", - "2xl" + "text-decoration", + "link", + "style", + "default" ], "references": [ { - "type": "number", - "value": "80rem", + "type": "string", + "value": "dashed", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "type": "number", - "value": 1280 + "type": "string", + "value": "dashed" }, - "name": "pf-t--global--breakpoint--550", + "name": "pf-t--global--text-decoration--style--200", "attributes": { "category": "global", - "type": "breakpoint", - "item": "550" + "type": "text-decoration", + "item": "style", + "subitem": "200" }, "path": [ "global", - "breakpoint", - "550" + "text-decoration", + "style", + "200" ] } ] } }, - "pf-t--global--text-decoration--width--default": { + "pf-t--global--text-decoration--link--style--hover": { "default": { "type": "number", - "value": "1px", + "value": "dashed", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { "type": "number", - "value": "{global.border.width.regular}" + "value": "{global.text-decoration.style.200}" }, - "name": "pf-t--global--text-decoration--width--default", + "name": "pf-t--global--text-decoration--link--style--hover", "attributes": { "category": "global", "type": "text-decoration", - "item": "width", - "subitem": "default" + "item": "link", + "subitem": "style", + "state": "hover" }, "path": [ "global", "text-decoration", - "width", - "default" + "link", + "style", + "hover" ], "references": [ { - "description": "Use as the default border width for elements.", - "type": "number", - "value": "1px", - "filePath": "tokens/default/light/semantic.dimension.json", + "type": "string", + "value": "dashed", + "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "description": "Use as the default border width for elements.", - "type": "number", - "value": "{global.border.width.100}" + "type": "string", + "value": "dashed" }, - "name": "pf-t--global--border--width--regular", + "name": "pf-t--global--text-decoration--style--200", "attributes": { "category": "global", - "type": "border", - "item": "width", - "subitem": "regular" + "type": "text-decoration", + "item": "style", + "subitem": "200" }, "path": [ "global", - "border", - "width", - "regular" - ], - "references": [ - { - "type": "number", - "value": "1px", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 1 - }, - "name": "pf-t--global--border--width--100", - "attributes": { - "category": "global", - "type": "border", - "item": "width", - "subitem": "100" - }, - "path": [ - "global", - "border", - "width", - "100" - ] - } + "text-decoration", + "style", + "200" ] } ] } }, - "pf-t--global--text-decoration--width--hover": { + "pf-t--global--text-decoration--help-text--line--default": { "default": { "type": "number", - "value": "2px", + "value": "underline", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { "type": "number", - "value": "{global.border.width.strong}" + "value": "{global.text-decoration.line.200}" }, - "name": "pf-t--global--text-decoration--width--hover", + "name": "pf-t--global--text-decoration--help-text--line--default", "attributes": { "category": "global", "type": "text-decoration", - "item": "width", - "subitem": "hover" + "item": "help-text", + "subitem": "line", + "state": "default" }, "path": [ "global", "text-decoration", - "width", - "hover" + "help-text", + "line", + "default" ], "references": [ { - "description": "Use as a stronger/wider border width for elements.", - "type": "number", - "value": "2px", - "filePath": "tokens/default/light/semantic.dimension.json", + "type": "string", + "value": "underline", + "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "description": "Use as a stronger/wider border width for elements.", - "type": "number", - "value": "{global.border.width.200}" + "type": "string", + "value": "underline" }, - "name": "pf-t--global--border--width--strong", + "name": "pf-t--global--text-decoration--line--200", "attributes": { "category": "global", - "type": "border", - "item": "width", - "subitem": "strong" + "type": "text-decoration", + "item": "line", + "subitem": "200" }, "path": [ "global", - "border", - "width", - "strong" - ], - "references": [ - { - "type": "number", - "value": "2px", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 2 - }, - "name": "pf-t--global--border--width--200", - "attributes": { - "category": "global", - "type": "border", - "item": "width", - "subitem": "200" - }, - "path": [ - "global", - "border", - "width", - "200" - ] - } + "text-decoration", + "line", + "200" ] } ] } }, - "pf-t--global--text-decoration--offset--default": { + "pf-t--global--text-decoration--help-text--line--hover": { "default": { "type": "number", - "value": "0.25rem", + "value": "underline", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { "type": "number", - "value": "{global.spacer.xs}" + "value": "{global.text-decoration.line.200}" }, - "name": "pf-t--global--text-decoration--offset--default", + "name": "pf-t--global--text-decoration--help-text--line--hover", "attributes": { "category": "global", "type": "text-decoration", - "item": "offset", - "subitem": "default" + "item": "help-text", + "subitem": "line", + "state": "hover" }, "path": [ "global", "text-decoration", - "offset", - "default" + "help-text", + "line", + "hover" ], "references": [ { - "description": "Use for extra small spaces between elements.", - "type": "number", - "value": "0.25rem", - "filePath": "tokens/default/light/semantic.dimension.json", + "type": "string", + "value": "underline", + "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { - "description": "Use for extra small spaces between elements.", - "type": "number", - "value": "{global.spacer.100}" + "type": "string", + "value": "underline" }, - "name": "pf-t--global--spacer--xs", + "name": "pf-t--global--text-decoration--line--200", "attributes": { "category": "global", - "type": "spacer", - "item": "xs" - }, + "type": "text-decoration", + "item": "line", + "subitem": "200" + }, "path": [ "global", - "spacer", - "xs" - ], - "references": [ - { - "type": "number", - "value": "0.25rem", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 4 - }, - "name": "pf-t--global--spacer--100", - "attributes": { - "category": "global", - "type": "spacer", - "item": "100" - }, - "path": [ - "global", - "spacer", - "100" - ] - } + "text-decoration", + "line", + "200" ] } ] } }, - "pf-t--global--text-decoration--editable-text--line--default": { + "pf-t--global--text-decoration--help-text--style--default": { "default": { "type": "number", - "value": "underline", + "value": "dashed", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { "type": "number", - "value": "{global.text-decoration.line.200}" + "value": "{global.text-decoration.style.200}" }, - "name": "pf-t--global--text-decoration--editable-text--line--default", + "name": "pf-t--global--text-decoration--help-text--style--default", "attributes": { "category": "global", "type": "text-decoration", - "item": "editable-text", - "subitem": "line", + "item": "help-text", + "subitem": "style", "state": "default" }, "path": [ "global", "text-decoration", - "editable-text", - "line", + "help-text", + "style", "default" ], "references": [ { "type": "string", - "value": "underline", + "value": "dashed", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "string", - "value": "underline" + "value": "dashed" }, - "name": "pf-t--global--text-decoration--line--200", + "name": "pf-t--global--text-decoration--style--200", "attributes": { "category": "global", "type": "text-decoration", - "item": "line", + "item": "style", "subitem": "200" }, "path": [ "global", "text-decoration", - "line", + "style", "200" ] } ] } }, - "pf-t--global--text-decoration--editable-text--line--hover": { + "pf-t--global--text-decoration--help-text--style--hover": { "default": { "type": "number", - "value": "underline", + "value": "dashed", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { "type": "number", - "value": "{global.text-decoration.line.200}" + "value": "{global.text-decoration.style.200}" }, - "name": "pf-t--global--text-decoration--editable-text--line--hover", + "name": "pf-t--global--text-decoration--help-text--style--hover", "attributes": { "category": "global", "type": "text-decoration", - "item": "editable-text", - "subitem": "line", + "item": "help-text", + "subitem": "style", "state": "hover" }, "path": [ "global", "text-decoration", - "editable-text", - "line", + "help-text", + "style", "hover" ], "references": [ { "type": "string", - "value": "underline", + "value": "dashed", "filePath": "tokens/default/light/base.dimension.json", "isSource": true, "original": { "type": "string", - "value": "underline" + "value": "dashed" }, - "name": "pf-t--global--text-decoration--line--200", + "name": "pf-t--global--text-decoration--style--200", "attributes": { "category": "global", "type": "text-decoration", - "item": "line", + "item": "style", "subitem": "200" }, "path": [ "global", "text-decoration", - "line", + "style", "200" ] } ] } }, - "pf-t--global--text-decoration--editable-text--style--default": { + "pf-t--global--focus-ring--position--offset": { "default": { + "description": "Use to define the position of a custom focus ring that sits outside (offset) of the element receiving focus.", "type": "number", - "value": "dashed", + "value": "2px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { + "description": "Use to define the position of a custom focus ring that sits outside (offset) of the element receiving focus.", "type": "number", - "value": "{global.text-decoration.style.200}" + "value": 2 }, - "name": "pf-t--global--text-decoration--editable-text--style--default", + "name": "pf-t--global--focus-ring--position--offset", "attributes": { "category": "global", - "type": "text-decoration", - "item": "editable-text", - "subitem": "style", - "state": "default" + "type": "focus-ring", + "item": "position", + "subitem": "offset" }, "path": [ "global", - "text-decoration", - "editable-text", - "style", - "default" - ], - "references": [ - { - "type": "string", - "value": "dashed", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "string", - "value": "dashed" - }, - "name": "pf-t--global--text-decoration--style--200", - "attributes": { - "category": "global", - "type": "text-decoration", - "item": "style", - "subitem": "200" - }, - "path": [ - "global", - "text-decoration", - "style", - "200" - ] - } + "focus-ring", + "position", + "offset" ] } }, - "pf-t--global--text-decoration--editable-text--style--hover": { + "pf-t--global--focus-ring--position--inset": { "default": { + "description": "Use to define the position of a custom focus ring that sits inside (inset) of the element receiving focus.", "type": "number", - "value": "dashed", + "value": "-4px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { + "description": "Use to define the position of a custom focus ring that sits inside (inset) of the element receiving focus.", "type": "number", - "value": "{global.text-decoration.style.200}" + "value": -4 }, - "name": "pf-t--global--text-decoration--editable-text--style--hover", + "name": "pf-t--global--focus-ring--position--inset", "attributes": { "category": "global", - "type": "text-decoration", - "item": "editable-text", - "subitem": "style", - "state": "hover" + "type": "focus-ring", + "item": "position", + "subitem": "inset" }, "path": [ "global", - "text-decoration", - "editable-text", - "style", - "hover" - ], - "references": [ - { - "type": "string", - "value": "dashed", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "string", - "value": "dashed" - }, - "name": "pf-t--global--text-decoration--style--200", - "attributes": { - "category": "global", - "type": "text-decoration", - "item": "style", - "subitem": "200" - }, - "path": [ - "global", - "text-decoration", - "style", - "200" - ] - } + "focus-ring", + "position", + "inset" ] } }, - "pf-t--global--text-decoration--link--line--default": { + "pf-t--global--focus-ring--width--offset": { "default": { + "description": "Use to define the width of a custom focus ring that sits outside (offset) of the element receiving focus.", "type": "number", - "value": "underline", + "value": "2px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { + "description": "Use to define the width of a custom focus ring that sits outside (offset) of the element receiving focus.", "type": "number", - "value": "{global.text-decoration.line.200}" + "value": 2 }, - "name": "pf-t--global--text-decoration--link--line--default", + "name": "pf-t--global--focus-ring--width--offset", "attributes": { "category": "global", - "type": "text-decoration", - "item": "link", - "subitem": "line", - "state": "default" + "type": "focus-ring", + "item": "width", + "subitem": "offset" }, "path": [ "global", - "text-decoration", - "link", - "line", - "default" - ], - "references": [ - { - "type": "string", - "value": "underline", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "string", - "value": "underline" - }, - "name": "pf-t--global--text-decoration--line--200", - "attributes": { - "category": "global", - "type": "text-decoration", - "item": "line", - "subitem": "200" - }, - "path": [ - "global", - "text-decoration", - "line", - "200" - ] - } + "focus-ring", + "width", + "offset" ] } }, - "pf-t--global--text-decoration--link--line--hover": { + "pf-t--global--focus-ring--width--inset": { "default": { + "description": "Use to define the width of a custom focus ring that sits inside (inset) of the element receiving focus.", "type": "number", - "value": "underline", + "value": "3px", "filePath": "tokens/default/light/semantic.dimension.json", "isSource": true, "original": { + "description": "Use to define the width of a custom focus ring that sits inside (inset) of the element receiving focus.", "type": "number", - "value": "{global.text-decoration.line.200}" + "value": 3 }, - "name": "pf-t--global--text-decoration--link--line--hover", + "name": "pf-t--global--focus-ring--width--inset", "attributes": { "category": "global", - "type": "text-decoration", - "item": "link", - "subitem": "line", - "state": "hover" + "type": "focus-ring", + "item": "width", + "subitem": "inset" }, "path": [ "global", - "text-decoration", - "link", - "line", - "hover" + "focus-ring", + "width", + "inset" + ] + } + } + }, + "motion": { + "pf-t--global--motion--duration--xs": { + "default": { + "description": "Use for the quickest possible duration of an animation.", + "type": "number", + "value": "50ms", + "filePath": "tokens/default/light/semantic.motion.json", + "isSource": true, + "original": { + "description": "Use for the quickest possible duration of an animation.", + "type": "number", + "value": "{global.duration.50}" + }, + "name": "pf-t--global--motion--duration--xs", + "attributes": { + "category": "global", + "type": "motion", + "item": "duration", + "subitem": "xs" + }, + "path": [ + "global", + "motion", + "duration", + "xs" ], "references": [ { - "type": "string", - "value": "underline", - "filePath": "tokens/default/light/base.dimension.json", + "type": "number", + "value": "50ms", + "filePath": "tokens/default/light/base.motion.json", "isSource": true, "original": { - "type": "string", - "value": "underline" + "type": "number", + "value": 50 }, - "name": "pf-t--global--text-decoration--line--200", + "name": "pf-t--global--duration--50", "attributes": { "category": "global", - "type": "text-decoration", - "item": "line", - "subitem": "200" + "type": "duration", + "item": "50" }, "path": [ "global", - "text-decoration", - "line", - "200" + "duration", + "50" ] } ] } }, - "pf-t--global--text-decoration--link--style--default": { + "pf-t--global--motion--duration--sm": { "default": { + "description": "Use for a short animation duration. Use for simple and/or small animations.", "type": "number", - "value": "dashed", - "filePath": "tokens/default/light/semantic.dimension.json", + "value": "100ms", + "filePath": "tokens/default/light/semantic.motion.json", "isSource": true, "original": { + "description": "Use for a short animation duration. Use for simple and/or small animations.", "type": "number", - "value": "{global.text-decoration.style.200}" + "value": "{global.duration.100}" }, - "name": "pf-t--global--text-decoration--link--style--default", + "name": "pf-t--global--motion--duration--sm", "attributes": { "category": "global", - "type": "text-decoration", - "item": "link", - "subitem": "style", - "state": "default" + "type": "motion", + "item": "duration", + "subitem": "sm" }, "path": [ "global", - "text-decoration", - "link", - "style", - "default" + "motion", + "duration", + "sm" ], "references": [ { - "type": "string", - "value": "dashed", - "filePath": "tokens/default/light/base.dimension.json", + "type": "number", + "value": "100ms", + "filePath": "tokens/default/light/base.motion.json", "isSource": true, "original": { - "type": "string", - "value": "dashed" + "type": "number", + "value": 100 }, - "name": "pf-t--global--text-decoration--style--200", + "name": "pf-t--global--duration--100", "attributes": { "category": "global", - "type": "text-decoration", - "item": "style", - "subitem": "200" + "type": "duration", + "item": "100" }, "path": [ "global", - "text-decoration", - "style", - "200" + "duration", + "100" ] } ] } }, - "pf-t--global--text-decoration--link--style--hover": { + "pf-t--global--motion--duration--md": { "default": { + "description": "Use for a medium animation duration.", "type": "number", - "value": "dashed", - "filePath": "tokens/default/light/semantic.dimension.json", + "value": "200ms", + "filePath": "tokens/default/light/semantic.motion.json", "isSource": true, "original": { + "description": "Use for a medium animation duration.", "type": "number", - "value": "{global.text-decoration.style.200}" + "value": "{global.duration.200}" }, - "name": "pf-t--global--text-decoration--link--style--hover", + "name": "pf-t--global--motion--duration--md", "attributes": { "category": "global", - "type": "text-decoration", - "item": "link", - "subitem": "style", - "state": "hover" + "type": "motion", + "item": "duration", + "subitem": "md" }, "path": [ "global", - "text-decoration", - "link", - "style", - "hover" + "motion", + "duration", + "md" ], "references": [ { - "type": "string", - "value": "dashed", - "filePath": "tokens/default/light/base.dimension.json", + "type": "number", + "value": "200ms", + "filePath": "tokens/default/light/base.motion.json", "isSource": true, "original": { - "type": "string", - "value": "dashed" + "type": "number", + "value": 200 }, - "name": "pf-t--global--text-decoration--style--200", + "name": "pf-t--global--duration--200", "attributes": { "category": "global", - "type": "text-decoration", - "item": "style", - "subitem": "200" + "type": "duration", + "item": "200" }, "path": [ "global", - "text-decoration", - "style", + "duration", "200" ] } ] } }, - "pf-t--global--text-decoration--help-text--line--default": { + "pf-t--global--motion--duration--lg": { "default": { + "description": "Use for long animation duration. Use for larger, more expressive animations.", "type": "number", - "value": "underline", - "filePath": "tokens/default/light/semantic.dimension.json", + "value": "300ms", + "filePath": "tokens/default/light/semantic.motion.json", "isSource": true, "original": { + "description": "Use for long animation duration. Use for larger, more expressive animations.", "type": "number", - "value": "{global.text-decoration.line.200}" + "value": "{global.duration.300}" }, - "name": "pf-t--global--text-decoration--help-text--line--default", + "name": "pf-t--global--motion--duration--lg", "attributes": { "category": "global", - "type": "text-decoration", - "item": "help-text", - "subitem": "line", - "state": "default" + "type": "motion", + "item": "duration", + "subitem": "lg" }, "path": [ "global", - "text-decoration", - "help-text", - "line", - "default" + "motion", + "duration", + "lg" ], "references": [ { - "type": "string", - "value": "underline", - "filePath": "tokens/default/light/base.dimension.json", + "type": "number", + "value": "300ms", + "filePath": "tokens/default/light/base.motion.json", "isSource": true, "original": { - "type": "string", - "value": "underline" + "type": "number", + "value": 300 }, - "name": "pf-t--global--text-decoration--line--200", + "name": "pf-t--global--duration--300", "attributes": { "category": "global", - "type": "text-decoration", - "item": "line", - "subitem": "200" + "type": "duration", + "item": "300" }, "path": [ "global", - "text-decoration", - "line", - "200" + "duration", + "300" ] } ] } }, - "pf-t--global--text-decoration--help-text--line--hover": { + "pf-t--global--motion--duration--xl": { "default": { + "description": "Use for extra long animation duration.", "type": "number", - "value": "underline", - "filePath": "tokens/default/light/semantic.dimension.json", + "value": "400ms", + "filePath": "tokens/default/light/semantic.motion.json", "isSource": true, "original": { + "description": "Use for extra long animation duration.", "type": "number", - "value": "{global.text-decoration.line.200}" + "value": "{global.duration.400}" }, - "name": "pf-t--global--text-decoration--help-text--line--hover", + "name": "pf-t--global--motion--duration--xl", "attributes": { "category": "global", - "type": "text-decoration", - "item": "help-text", - "subitem": "line", - "state": "hover" + "type": "motion", + "item": "duration", + "subitem": "xl" }, "path": [ "global", - "text-decoration", - "help-text", - "line", - "hover" + "motion", + "duration", + "xl" ], "references": [ { - "type": "string", - "value": "underline", - "filePath": "tokens/default/light/base.dimension.json", + "type": "number", + "value": "400ms", + "filePath": "tokens/default/light/base.motion.json", "isSource": true, "original": { - "type": "string", - "value": "underline" + "type": "number", + "value": 400 }, - "name": "pf-t--global--text-decoration--line--200", + "name": "pf-t--global--duration--400", "attributes": { "category": "global", - "type": "text-decoration", - "item": "line", - "subitem": "200" + "type": "duration", + "item": "400" }, "path": [ "global", - "text-decoration", - "line", - "200" + "duration", + "400" ] } ] } }, - "pf-t--global--text-decoration--help-text--style--default": { + "pf-t--global--motion--duration--2xl": { "default": { + "description": "Use for significantly long animation duration.", "type": "number", - "value": "dashed", - "filePath": "tokens/default/light/semantic.dimension.json", + "value": "500ms", + "filePath": "tokens/default/light/semantic.motion.json", "isSource": true, "original": { + "description": "Use for significantly long animation duration.", "type": "number", - "value": "{global.text-decoration.style.200}" + "value": "{global.duration.500}" }, - "name": "pf-t--global--text-decoration--help-text--style--default", - "attributes": { - "category": "global", - "type": "text-decoration", - "item": "help-text", - "subitem": "style", - "state": "default" - }, - "path": [ - "global", - "text-decoration", - "help-text", - "style", - "default" - ], - "references": [ - { - "type": "string", - "value": "dashed", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "string", - "value": "dashed" - }, - "name": "pf-t--global--text-decoration--style--200", - "attributes": { - "category": "global", - "type": "text-decoration", - "item": "style", - "subitem": "200" - }, - "path": [ - "global", - "text-decoration", - "style", - "200" - ] - } - ] - } - }, - "pf-t--global--text-decoration--help-text--style--hover": { - "default": { - "type": "number", - "value": "dashed", - "filePath": "tokens/default/light/semantic.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": "{global.text-decoration.style.200}" - }, - "name": "pf-t--global--text-decoration--help-text--style--hover", - "attributes": { - "category": "global", - "type": "text-decoration", - "item": "help-text", - "subitem": "style", - "state": "hover" - }, - "path": [ - "global", - "text-decoration", - "help-text", - "style", - "hover" - ], - "references": [ - { - "type": "string", - "value": "dashed", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "string", - "value": "dashed" - }, - "name": "pf-t--global--text-decoration--style--200", - "attributes": { - "category": "global", - "type": "text-decoration", - "item": "style", - "subitem": "200" - }, - "path": [ - "global", - "text-decoration", - "style", - "200" - ] - } - ] - } - }, - "pf-t--global--focus-ring--position--offset": { - "default": { - "description": "Use to define the position of a custom focus ring that sits outside (offset) of the element receiving focus.", - "type": "number", - "value": "2px", - "filePath": "tokens/default/light/semantic.dimension.json", - "isSource": true, - "original": { - "description": "Use to define the position of a custom focus ring that sits outside (offset) of the element receiving focus.", - "type": "number", - "value": 2 - }, - "name": "pf-t--global--focus-ring--position--offset", - "attributes": { - "category": "global", - "type": "focus-ring", - "item": "position", - "subitem": "offset" - }, - "path": [ - "global", - "focus-ring", - "position", - "offset" - ] - } - }, - "pf-t--global--focus-ring--position--inset": { - "default": { - "description": "Use to define the position of a custom focus ring that sits inside (inset) of the element receiving focus.", - "type": "number", - "value": "-4px", - "filePath": "tokens/default/light/semantic.dimension.json", - "isSource": true, - "original": { - "description": "Use to define the position of a custom focus ring that sits inside (inset) of the element receiving focus.", - "type": "number", - "value": -4 - }, - "name": "pf-t--global--focus-ring--position--inset", - "attributes": { - "category": "global", - "type": "focus-ring", - "item": "position", - "subitem": "inset" - }, - "path": [ - "global", - "focus-ring", - "position", - "inset" - ] - } - }, - "pf-t--global--focus-ring--width--offset": { - "default": { - "description": "Use to define the width of a custom focus ring that sits outside (offset) of the element receiving focus.", - "type": "number", - "value": "2px", - "filePath": "tokens/default/light/semantic.dimension.json", - "isSource": true, - "original": { - "description": "Use to define the width of a custom focus ring that sits outside (offset) of the element receiving focus.", - "type": "number", - "value": 2 - }, - "name": "pf-t--global--focus-ring--width--offset", - "attributes": { - "category": "global", - "type": "focus-ring", - "item": "width", - "subitem": "offset" - }, - "path": [ - "global", - "focus-ring", - "width", - "offset" - ] - } - }, - "pf-t--global--focus-ring--width--inset": { - "default": { - "description": "Use to define the width of a custom focus ring that sits inside (inset) of the element receiving focus.", - "type": "number", - "value": "3px", - "filePath": "tokens/default/light/semantic.dimension.json", - "isSource": true, - "original": { - "description": "Use to define the width of a custom focus ring that sits inside (inset) of the element receiving focus.", - "type": "number", - "value": 3 - }, - "name": "pf-t--global--focus-ring--width--inset", - "attributes": { - "category": "global", - "type": "focus-ring", - "item": "width", - "subitem": "inset" - }, - "path": [ - "global", - "focus-ring", - "width", - "inset" - ] - } - } - }, - "motion": { - "pf-t--global--motion--duration--xs": { - "default": { - "description": "Use for the quickest possible duration of an animation.", - "type": "number", - "value": "50ms", - "filePath": "tokens/default/light/semantic.motion.json", - "isSource": true, - "original": { - "description": "Use for the quickest possible duration of an animation.", - "type": "number", - "value": "{global.duration.50}" - }, - "name": "pf-t--global--motion--duration--xs", - "attributes": { - "category": "global", - "type": "motion", - "item": "duration", - "subitem": "xs" - }, - "path": [ - "global", - "motion", - "duration", - "xs" - ], - "references": [ - { - "type": "number", - "value": "50ms", - "filePath": "tokens/default/light/base.motion.json", - "isSource": true, - "original": { - "type": "number", - "value": 50 - }, - "name": "pf-t--global--duration--50", - "attributes": { - "category": "global", - "type": "duration", - "item": "50" - }, - "path": [ - "global", - "duration", - "50" - ] - } - ] - } - }, - "pf-t--global--motion--duration--sm": { - "default": { - "description": "Use for a short animation duration. Use for simple and/or small animations.", - "type": "number", - "value": "100ms", - "filePath": "tokens/default/light/semantic.motion.json", - "isSource": true, - "original": { - "description": "Use for a short animation duration. Use for simple and/or small animations.", - "type": "number", - "value": "{global.duration.100}" - }, - "name": "pf-t--global--motion--duration--sm", - "attributes": { - "category": "global", - "type": "motion", - "item": "duration", - "subitem": "sm" - }, - "path": [ - "global", - "motion", - "duration", - "sm" - ], - "references": [ - { - "type": "number", - "value": "100ms", - "filePath": "tokens/default/light/base.motion.json", - "isSource": true, - "original": { - "type": "number", - "value": 100 - }, - "name": "pf-t--global--duration--100", - "attributes": { - "category": "global", - "type": "duration", - "item": "100" - }, - "path": [ - "global", - "duration", - "100" - ] - } - ] - } - }, - "pf-t--global--motion--duration--md": { - "default": { - "description": "Use for a medium animation duration.", - "type": "number", - "value": "200ms", - "filePath": "tokens/default/light/semantic.motion.json", - "isSource": true, - "original": { - "description": "Use for a medium animation duration.", - "type": "number", - "value": "{global.duration.200}" - }, - "name": "pf-t--global--motion--duration--md", - "attributes": { - "category": "global", - "type": "motion", - "item": "duration", - "subitem": "md" - }, - "path": [ - "global", - "motion", - "duration", - "md" - ], - "references": [ - { - "type": "number", - "value": "200ms", - "filePath": "tokens/default/light/base.motion.json", - "isSource": true, - "original": { - "type": "number", - "value": 200 - }, - "name": "pf-t--global--duration--200", - "attributes": { - "category": "global", - "type": "duration", - "item": "200" - }, - "path": [ - "global", - "duration", - "200" - ] - } - ] - } - }, - "pf-t--global--motion--duration--lg": { - "default": { - "description": "Use for long animation duration. Use for larger, more expressive animations.", - "type": "number", - "value": "300ms", - "filePath": "tokens/default/light/semantic.motion.json", - "isSource": true, - "original": { - "description": "Use for long animation duration. Use for larger, more expressive animations.", - "type": "number", - "value": "{global.duration.300}" - }, - "name": "pf-t--global--motion--duration--lg", - "attributes": { - "category": "global", - "type": "motion", - "item": "duration", - "subitem": "lg" - }, - "path": [ - "global", - "motion", - "duration", - "lg" - ], - "references": [ - { - "type": "number", - "value": "300ms", - "filePath": "tokens/default/light/base.motion.json", - "isSource": true, - "original": { - "type": "number", - "value": 300 - }, - "name": "pf-t--global--duration--300", - "attributes": { - "category": "global", - "type": "duration", - "item": "300" - }, - "path": [ - "global", - "duration", - "300" - ] - } - ] - } - }, - "pf-t--global--motion--duration--xl": { - "default": { - "description": "Use for extra long animation duration.", - "type": "number", - "value": "400ms", - "filePath": "tokens/default/light/semantic.motion.json", - "isSource": true, - "original": { - "description": "Use for extra long animation duration.", - "type": "number", - "value": "{global.duration.400}" - }, - "name": "pf-t--global--motion--duration--xl", - "attributes": { - "category": "global", - "type": "motion", - "item": "duration", - "subitem": "xl" - }, - "path": [ - "global", - "motion", - "duration", - "xl" - ], - "references": [ - { - "type": "number", - "value": "400ms", - "filePath": "tokens/default/light/base.motion.json", - "isSource": true, - "original": { - "type": "number", - "value": 400 - }, - "name": "pf-t--global--duration--400", - "attributes": { - "category": "global", - "type": "duration", - "item": "400" - }, - "path": [ - "global", - "duration", - "400" - ] - } - ] - } - }, - "pf-t--global--motion--duration--2xl": { - "default": { - "description": "Use for significantly long animation duration.", - "type": "number", - "value": "500ms", - "filePath": "tokens/default/light/semantic.motion.json", - "isSource": true, - "original": { - "description": "Use for significantly long animation duration.", - "type": "number", - "value": "{global.duration.500}" - }, - "name": "pf-t--global--motion--duration--2xl", + "name": "pf-t--global--motion--duration--2xl", "attributes": { "category": "global", "type": "motion", @@ -42761,31 +43705,31 @@ ] } }, - "pf-t--global--motion--duration--slide-in--short": { + "pf-t--global--motion--duration--slide-out--short": { "default": { - "description": "Use for a short duration of a slide-in animation, which moves an offscreen element into the viewport.", + "description": "Use for a shorter duration of a slide-out animation, which moves an element out of the viewport.", "type": "number", "value": "300ms", "filePath": "tokens/default/light/semantic.motion.json", "isSource": true, "original": { - "description": "Use for a short duration of a slide-in animation, which moves an offscreen element into the viewport.", + "description": "Use for a shorter duration of a slide-out animation, which moves an element out of the viewport.", "type": "number", "value": "{global.motion.duration.lg}" }, - "name": "pf-t--global--motion--duration--slide-in--short", + "name": "pf-t--global--motion--duration--slide-out--short", "attributes": { "category": "global", "type": "motion", "item": "duration", - "subitem": "slide-in", + "subitem": "slide-out", "state": "short" }, "path": [ "global", "motion", "duration", - "slide-in", + "slide-out", "short" ], "references": [ @@ -42840,31 +43784,31 @@ ] } }, - "pf-t--global--motion--duration--slide-in--default": { + "pf-t--global--motion--duration--slide-out--default": { "default": { - "description": "Use for a default duration of a slide-in animation, which moves an offscreen element into the viewport.", + "description": "Use as the default duration of a slide-out animation, which moves an element out of the viewport.", "type": "number", "value": "400ms", "filePath": "tokens/default/light/semantic.motion.json", "isSource": true, "original": { - "description": "Use for a default duration of a slide-in animation, which moves an offscreen element into the viewport.", + "description": "Use as the default duration of a slide-out animation, which moves an element out of the viewport.", "type": "number", "value": "{global.motion.duration.xl}" }, - "name": "pf-t--global--motion--duration--slide-in--default", + "name": "pf-t--global--motion--duration--slide-out--default", "attributes": { "category": "global", "type": "motion", "item": "duration", - "subitem": "slide-in", + "subitem": "slide-out", "state": "default" }, "path": [ "global", "motion", "duration", - "slide-in", + "slide-out", "default" ], "references": [ @@ -42919,31 +43863,31 @@ ] } }, - "pf-t--global--motion--duration--slide-in--long": { + "pf-t--global--motion--duration--slide-out--long": { "default": { - "description": "Use for a longer duration of a slide-in animation, which moves an offscreen element into the viewport.", + "description": "Use for a longer duration of a slide-out animation, which moves an element out of the viewport.", "type": "number", "value": "500ms", "filePath": "tokens/default/light/semantic.motion.json", "isSource": true, "original": { - "description": "Use for a longer duration of a slide-in animation, which moves an offscreen element into the viewport.", + "description": "Use for a longer duration of a slide-out animation, which moves an element out of the viewport.", "type": "number", "value": "{global.motion.duration.2xl}" }, - "name": "pf-t--global--motion--duration--slide-in--long", + "name": "pf-t--global--motion--duration--slide-out--long", "attributes": { "category": "global", "type": "motion", "item": "duration", - "subitem": "slide-in", + "subitem": "slide-out", "state": "long" }, "path": [ "global", "motion", "duration", - "slide-in", + "slide-out", "long" ], "references": [ @@ -42998,78 +43942,78 @@ ] } }, - "pf-t--global--motion--duration--fade--short": { + "pf-t--global--motion--duration--slide-in--short": { "default": { - "description": "Use a short/quick fade to transition color and/or opacity. Useful for fading in one or more elements. Short fades are used for small elements traveling short distances. Used in small interactions like buttons.", + "description": "Use for a short duration of a slide-in animation, which moves an offscreen element into the viewport.", "type": "number", - "value": "100ms", + "value": "300ms", "filePath": "tokens/default/light/semantic.motion.json", "isSource": true, "original": { - "description": "Use a short/quick fade to transition color and/or opacity. Useful for fading in one or more elements. Short fades are used for small elements traveling short distances. Used in small interactions like buttons.", + "description": "Use for a short duration of a slide-in animation, which moves an offscreen element into the viewport.", "type": "number", - "value": "{global.motion.duration.sm}" + "value": "{global.motion.duration.lg}" }, - "name": "pf-t--global--motion--duration--fade--short", + "name": "pf-t--global--motion--duration--slide-in--short", "attributes": { "category": "global", "type": "motion", "item": "duration", - "subitem": "fade", + "subitem": "slide-in", "state": "short" }, "path": [ "global", "motion", "duration", - "fade", + "slide-in", "short" ], "references": [ { - "description": "Use for a short animation duration. Use for simple and/or small animations.", + "description": "Use for long animation duration. Use for larger, more expressive animations.", "type": "number", - "value": "100ms", + "value": "300ms", "filePath": "tokens/default/light/semantic.motion.json", "isSource": true, "original": { - "description": "Use for a short animation duration. Use for simple and/or small animations.", + "description": "Use for long animation duration. Use for larger, more expressive animations.", "type": "number", - "value": "{global.duration.100}" + "value": "{global.duration.300}" }, - "name": "pf-t--global--motion--duration--sm", + "name": "pf-t--global--motion--duration--lg", "attributes": { "category": "global", "type": "motion", "item": "duration", - "subitem": "sm" + "subitem": "lg" }, "path": [ "global", "motion", "duration", - "sm" + "lg" ], "references": [ { "type": "number", - "value": "100ms", + "value": "300ms", "filePath": "tokens/default/light/base.motion.json", "isSource": true, "original": { "type": "number", - "value": 100 + "value": 300 }, - "name": "pf-t--global--duration--100", + "name": "pf-t--global--duration--300", "attributes": { "category": "global", "type": "duration", - "item": "100" + "item": "300" }, "path": [ "global", "duration", - "100" + "300" ] } ] @@ -43077,78 +44021,78 @@ ] } }, - "pf-t--global--motion--duration--fade--default": { + "pf-t--global--motion--duration--slide-in--default": { "default": { - "description": "Use a default fade to transition color and/or opacity. Useful for fading in one or more elements. Default fades are used for medium sized elements traveling medium distances. Used on alerts.", + "description": "Use for a default duration of a slide-in animation, which moves an offscreen element into the viewport.", "type": "number", - "value": "200ms", + "value": "400ms", "filePath": "tokens/default/light/semantic.motion.json", "isSource": true, "original": { - "description": "Use a default fade to transition color and/or opacity. Useful for fading in one or more elements. Default fades are used for medium sized elements traveling medium distances. Used on alerts.", + "description": "Use for a default duration of a slide-in animation, which moves an offscreen element into the viewport.", "type": "number", - "value": "{global.motion.duration.md}" + "value": "{global.motion.duration.xl}" }, - "name": "pf-t--global--motion--duration--fade--default", + "name": "pf-t--global--motion--duration--slide-in--default", "attributes": { "category": "global", "type": "motion", "item": "duration", - "subitem": "fade", + "subitem": "slide-in", "state": "default" }, "path": [ "global", "motion", "duration", - "fade", + "slide-in", "default" ], "references": [ { - "description": "Use for a medium animation duration.", + "description": "Use for extra long animation duration.", "type": "number", - "value": "200ms", + "value": "400ms", "filePath": "tokens/default/light/semantic.motion.json", "isSource": true, "original": { - "description": "Use for a medium animation duration.", + "description": "Use for extra long animation duration.", "type": "number", - "value": "{global.duration.200}" + "value": "{global.duration.400}" }, - "name": "pf-t--global--motion--duration--md", + "name": "pf-t--global--motion--duration--xl", "attributes": { "category": "global", "type": "motion", "item": "duration", - "subitem": "md" + "subitem": "xl" }, "path": [ "global", "motion", "duration", - "md" + "xl" ], "references": [ { "type": "number", - "value": "200ms", + "value": "400ms", "filePath": "tokens/default/light/base.motion.json", "isSource": true, "original": { "type": "number", - "value": 200 + "value": 400 }, - "name": "pf-t--global--duration--200", + "name": "pf-t--global--duration--400", "attributes": { "category": "global", "type": "duration", - "item": "200" + "item": "400" }, "path": [ "global", "duration", - "200" + "400" ] } ] @@ -43156,78 +44100,78 @@ ] } }, - "pf-t--global--motion--duration--fade--long": { + "pf-t--global--motion--duration--slide-in--long": { "default": { - "description": "Use a long fade to transition color and/or opacity. Useful for fading in one or more elements. Long fades are used for large elements traveling long distances.", + "description": "Use for a longer duration of a slide-in animation, which moves an offscreen element into the viewport.", "type": "number", - "value": "300ms", + "value": "500ms", "filePath": "tokens/default/light/semantic.motion.json", "isSource": true, "original": { - "description": "Use a long fade to transition color and/or opacity. Useful for fading in one or more elements. Long fades are used for large elements traveling long distances.", + "description": "Use for a longer duration of a slide-in animation, which moves an offscreen element into the viewport.", "type": "number", - "value": "{global.motion.duration.lg}" + "value": "{global.motion.duration.2xl}" }, - "name": "pf-t--global--motion--duration--fade--long", + "name": "pf-t--global--motion--duration--slide-in--long", "attributes": { "category": "global", "type": "motion", "item": "duration", - "subitem": "fade", + "subitem": "slide-in", "state": "long" }, "path": [ "global", "motion", "duration", - "fade", + "slide-in", "long" ], "references": [ { - "description": "Use for long animation duration. Use for larger, more expressive animations.", + "description": "Use for significantly long animation duration.", "type": "number", - "value": "300ms", + "value": "500ms", "filePath": "tokens/default/light/semantic.motion.json", "isSource": true, "original": { - "description": "Use for long animation duration. Use for larger, more expressive animations.", + "description": "Use for significantly long animation duration.", "type": "number", - "value": "{global.duration.300}" + "value": "{global.duration.500}" }, - "name": "pf-t--global--motion--duration--lg", + "name": "pf-t--global--motion--duration--2xl", "attributes": { "category": "global", "type": "motion", "item": "duration", - "subitem": "lg" + "subitem": "2xl" }, "path": [ "global", "motion", "duration", - "lg" + "2xl" ], "references": [ { "type": "number", - "value": "300ms", + "value": "500ms", "filePath": "tokens/default/light/base.motion.json", "isSource": true, "original": { "type": "number", - "value": 300 + "value": 500 }, - "name": "pf-t--global--duration--300", + "name": "pf-t--global--duration--500", "attributes": { "category": "global", "type": "duration", - "item": "300" + "item": "500" }, "path": [ "global", "duration", - "300" + "500" ] } ] @@ -43235,78 +44179,78 @@ ] } }, - "pf-t--global--motion--duration--slide-out--short": { + "pf-t--global--motion--duration--fade--short": { "default": { - "description": "Use for a shorter duration of a slide-out animation, which moves an element out of the viewport.", + "description": "Use a short/quick fade to transition color and/or opacity. Useful for fading in one or more elements. Short fades are used for small elements traveling short distances. Used in small interactions like buttons.", "type": "number", - "value": "300ms", + "value": "100ms", "filePath": "tokens/default/light/semantic.motion.json", "isSource": true, "original": { - "description": "Use for a shorter duration of a slide-out animation, which moves an element out of the viewport.", + "description": "Use a short/quick fade to transition color and/or opacity. Useful for fading in one or more elements. Short fades are used for small elements traveling short distances. Used in small interactions like buttons.", "type": "number", - "value": "{global.motion.duration.lg}" + "value": "{global.motion.duration.sm}" }, - "name": "pf-t--global--motion--duration--slide-out--short", + "name": "pf-t--global--motion--duration--fade--short", "attributes": { "category": "global", "type": "motion", "item": "duration", - "subitem": "slide-out", + "subitem": "fade", "state": "short" }, "path": [ "global", "motion", "duration", - "slide-out", + "fade", "short" ], "references": [ { - "description": "Use for long animation duration. Use for larger, more expressive animations.", + "description": "Use for a short animation duration. Use for simple and/or small animations.", "type": "number", - "value": "300ms", + "value": "100ms", "filePath": "tokens/default/light/semantic.motion.json", "isSource": true, "original": { - "description": "Use for long animation duration. Use for larger, more expressive animations.", + "description": "Use for a short animation duration. Use for simple and/or small animations.", "type": "number", - "value": "{global.duration.300}" + "value": "{global.duration.100}" }, - "name": "pf-t--global--motion--duration--lg", + "name": "pf-t--global--motion--duration--sm", "attributes": { "category": "global", "type": "motion", "item": "duration", - "subitem": "lg" + "subitem": "sm" }, "path": [ "global", "motion", "duration", - "lg" + "sm" ], "references": [ { "type": "number", - "value": "300ms", + "value": "100ms", "filePath": "tokens/default/light/base.motion.json", "isSource": true, "original": { "type": "number", - "value": 300 + "value": 100 }, - "name": "pf-t--global--duration--300", + "name": "pf-t--global--duration--100", "attributes": { "category": "global", "type": "duration", - "item": "300" + "item": "100" }, "path": [ "global", "duration", - "300" + "100" ] } ] @@ -43314,78 +44258,78 @@ ] } }, - "pf-t--global--motion--duration--slide-out--default": { + "pf-t--global--motion--duration--fade--default": { "default": { - "description": "Use as the default duration of a slide-out animation, which moves an element out of the viewport.", + "description": "Use a default fade to transition color and/or opacity. Useful for fading in one or more elements. Default fades are used for medium sized elements traveling medium distances. Used on alerts.", "type": "number", - "value": "400ms", + "value": "200ms", "filePath": "tokens/default/light/semantic.motion.json", "isSource": true, "original": { - "description": "Use as the default duration of a slide-out animation, which moves an element out of the viewport.", + "description": "Use a default fade to transition color and/or opacity. Useful for fading in one or more elements. Default fades are used for medium sized elements traveling medium distances. Used on alerts.", "type": "number", - "value": "{global.motion.duration.xl}" + "value": "{global.motion.duration.md}" }, - "name": "pf-t--global--motion--duration--slide-out--default", + "name": "pf-t--global--motion--duration--fade--default", "attributes": { "category": "global", "type": "motion", "item": "duration", - "subitem": "slide-out", + "subitem": "fade", "state": "default" }, "path": [ "global", "motion", "duration", - "slide-out", + "fade", "default" ], "references": [ { - "description": "Use for extra long animation duration.", + "description": "Use for a medium animation duration.", "type": "number", - "value": "400ms", + "value": "200ms", "filePath": "tokens/default/light/semantic.motion.json", "isSource": true, "original": { - "description": "Use for extra long animation duration.", + "description": "Use for a medium animation duration.", "type": "number", - "value": "{global.duration.400}" + "value": "{global.duration.200}" }, - "name": "pf-t--global--motion--duration--xl", + "name": "pf-t--global--motion--duration--md", "attributes": { "category": "global", "type": "motion", "item": "duration", - "subitem": "xl" + "subitem": "md" }, "path": [ "global", "motion", "duration", - "xl" + "md" ], "references": [ { "type": "number", - "value": "400ms", + "value": "200ms", "filePath": "tokens/default/light/base.motion.json", "isSource": true, "original": { "type": "number", - "value": 400 + "value": 200 }, - "name": "pf-t--global--duration--400", + "name": "pf-t--global--duration--200", "attributes": { "category": "global", "type": "duration", - "item": "400" + "item": "200" }, "path": [ "global", "duration", - "400" + "200" ] } ] @@ -43393,78 +44337,78 @@ ] } }, - "pf-t--global--motion--duration--slide-out--long": { + "pf-t--global--motion--duration--fade--long": { "default": { - "description": "Use for a longer duration of a slide-out animation, which moves an element out of the viewport.", + "description": "Use a long fade to transition color and/or opacity. Useful for fading in one or more elements. Long fades are used for large elements traveling long distances.", "type": "number", - "value": "500ms", + "value": "300ms", "filePath": "tokens/default/light/semantic.motion.json", "isSource": true, "original": { - "description": "Use for a longer duration of a slide-out animation, which moves an element out of the viewport.", + "description": "Use a long fade to transition color and/or opacity. Useful for fading in one or more elements. Long fades are used for large elements traveling long distances.", "type": "number", - "value": "{global.motion.duration.2xl}" + "value": "{global.motion.duration.lg}" }, - "name": "pf-t--global--motion--duration--slide-out--long", + "name": "pf-t--global--motion--duration--fade--long", "attributes": { "category": "global", "type": "motion", "item": "duration", - "subitem": "slide-out", + "subitem": "fade", "state": "long" }, "path": [ "global", "motion", "duration", - "slide-out", + "fade", "long" ], "references": [ { - "description": "Use for significantly long animation duration.", + "description": "Use for long animation duration. Use for larger, more expressive animations.", "type": "number", - "value": "500ms", + "value": "300ms", "filePath": "tokens/default/light/semantic.motion.json", "isSource": true, "original": { - "description": "Use for significantly long animation duration.", + "description": "Use for long animation duration. Use for larger, more expressive animations.", "type": "number", - "value": "{global.duration.500}" + "value": "{global.duration.300}" }, - "name": "pf-t--global--motion--duration--2xl", + "name": "pf-t--global--motion--duration--lg", "attributes": { "category": "global", "type": "motion", "item": "duration", - "subitem": "2xl" + "subitem": "lg" }, "path": [ "global", "motion", "duration", - "2xl" + "lg" ], "references": [ { "type": "number", - "value": "500ms", + "value": "300ms", "filePath": "tokens/default/light/base.motion.json", "isSource": true, "original": { "type": "number", - "value": 500 + "value": 300 }, - "name": "pf-t--global--duration--500", + "name": "pf-t--global--duration--300", "attributes": { "category": "global", "type": "duration", - "item": "500" + "item": "300" }, "path": [ "global", "duration", - "500" + "300" ] } ] @@ -50902,6 +51846,81 @@ ] } }, + "pf-t--global--font--family--100": { + "default": { + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + }, + "name": "pf-t--global--font--family--100", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "100" + }, + "path": [ + "global", + "font", + "family", + "100" + ] + } + }, + "pf-t--global--font--family--200": { + "default": { + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + }, + "name": "pf-t--global--font--family--200", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "200" + }, + "path": [ + "global", + "font", + "family", + "200" + ] + } + }, + "pf-t--global--font--family--300": { + "default": { + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", + "filePath": "tokens/default/light/base.dimension.json", + "isSource": true, + "original": { + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" + }, + "name": "pf-t--global--font--family--300", + "attributes": { + "category": "global", + "type": "font", + "item": "family", + "subitem": "300" + }, + "path": [ + "global", + "font", + "family", + "300" + ] + } + }, "pf-t--global--font--line-height--100": { "default": { "type": "number", @@ -51252,81 +52271,6 @@ ] } }, - "pf-t--global--font--family--100": { - "default": { - "type": "string", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "string", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" - }, - "name": "pf-t--global--font--family--100", - "attributes": { - "category": "global", - "type": "font", - "item": "family", - "subitem": "100" - }, - "path": [ - "global", - "font", - "family", - "100" - ] - } - }, - "pf-t--global--font--family--200": { - "default": { - "type": "string", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "string", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" - }, - "name": "pf-t--global--font--family--200", - "attributes": { - "category": "global", - "type": "font", - "item": "family", - "subitem": "200" - }, - "path": [ - "global", - "font", - "family", - "200" - ] - } - }, - "pf-t--global--font--family--300": { - "default": { - "type": "string", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "string", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" - }, - "name": "pf-t--global--font--family--300", - "attributes": { - "category": "global", - "type": "font", - "item": "family", - "subitem": "300" - }, - "path": [ - "global", - "font", - "family", - "300" - ] - } - }, "pf-t--global--z-index--100": { "default": { "type": "number", @@ -52724,636 +53668,6 @@ } }, "palette": { - "pf-t--global--border--radius--control--default": { - "redhat": { - "type": "number", - "value": "999px", - "filePath": "tokens/redhat/light/redhat.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": "{global.border.radius.pill}" - }, - "name": "pf-t--global--border--radius--control--default", - "attributes": { - "category": "global", - "type": "border", - "item": "radius", - "subitem": "control", - "state": "default" - }, - "path": [ - "global", - "border", - "radius", - "control", - "default" - ], - "references": [ - { - "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", - "type": "number", - "value": "999px", - "filePath": "tokens/default/light/semantic.dimension.json", - "isSource": true, - "original": { - "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", - "type": "number", - "value": "{global.border.radius.500}" - }, - "name": "pf-t--global--border--radius--pill", - "attributes": { - "category": "global", - "type": "border", - "item": "radius", - "subitem": "pill" - }, - "path": [ - "global", - "border", - "radius", - "pill" - ], - "references": [ - { - "type": "number", - "value": "999px", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 999 - }, - "name": "pf-t--global--border--radius--500", - "attributes": { - "category": "global", - "type": "border", - "item": "radius", - "subitem": "500" - }, - "path": [ - "global", - "border", - "radius", - "500" - ] - } - ] - } - ] - } - }, - "pf-t--global--border--radius--action--plain--default": { - "redhat": { - "type": "number", - "value": "999px", - "filePath": "tokens/redhat/light/redhat.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": "{global.border.radius.pill}" - }, - "name": "pf-t--global--border--radius--action--plain--default", - "attributes": { - "category": "global", - "type": "border", - "item": "radius", - "subitem": "action", - "state": "plain" - }, - "path": [ - "global", - "border", - "radius", - "action", - "plain", - "default" - ], - "references": [ - { - "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", - "type": "number", - "value": "999px", - "filePath": "tokens/default/light/semantic.dimension.json", - "isSource": true, - "original": { - "description": "Use to adjust the curvature of the border corners for an element. Use for corners that are as round as possible, like standard buttons and badges.", - "type": "number", - "value": "{global.border.radius.500}" - }, - "name": "pf-t--global--border--radius--pill", - "attributes": { - "category": "global", - "type": "border", - "item": "radius", - "subitem": "pill" - }, - "path": [ - "global", - "border", - "radius", - "pill" - ], - "references": [ - { - "type": "number", - "value": "999px", - "filePath": "tokens/default/light/base.dimension.json", - "isSource": true, - "original": { - "type": "number", - "value": 999 - }, - "name": "pf-t--global--border--radius--500", - "attributes": { - "category": "global", - "type": "border", - "item": "radius", - "subitem": "500" - }, - "path": [ - "global", - "border", - "radius", - "500" - ] - } - ] - } - ] - } - }, - "pf-t--global--border--color--brand--accent--default": { - "redhat": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", - "type": "color", - "value": "#000000", - "filePath": "tokens/redhat/light/redhat.color.json", - "isSource": true, - "original": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", - "type": "color", - "value": "{global.color.brand.accent.400}" - }, - "name": "pf-t--global--border--color--brand--accent--default", - "attributes": { - "category": "global", - "type": "border", - "item": "color", - "subitem": "brand", - "state": "accent" - }, - "path": [ - "global", - "border", - "color", - "brand", - "accent", - "default" - ], - "references": [ - { - "type": "color", - "value": "#000000", - "filePath": "tokens/default/light/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.black}" - }, - "name": "pf-t--global--color--brand--accent--400", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "400" - }, - "path": [ - "global", - "color", - "brand", - "accent", - "400" - ], - "references": [ - { - "type": "color", - "value": "#000000", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#000000" - }, - "name": "pf-t--color--black", - "attributes": { - "category": "color", - "type": "black" - }, - "path": [ - "color", - "black" - ] - } - ] - } - ] - } - }, - "pf-t--global--border--color--brand--accent--hover": { - "redhat": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", - "type": "color", - "value": "#000000", - "filePath": "tokens/redhat/light/redhat.color.json", - "isSource": true, - "original": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", - "type": "color", - "value": "{global.color.brand.accent.400}" - }, - "name": "pf-t--global--border--color--brand--accent--hover", - "attributes": { - "category": "global", - "type": "border", - "item": "color", - "subitem": "brand", - "state": "accent" - }, - "path": [ - "global", - "border", - "color", - "brand", - "accent", - "hover" - ], - "references": [ - { - "type": "color", - "value": "#000000", - "filePath": "tokens/default/light/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.black}" - }, - "name": "pf-t--global--color--brand--accent--400", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "400" - }, - "path": [ - "global", - "color", - "brand", - "accent", - "400" - ], - "references": [ - { - "type": "color", - "value": "#000000", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#000000" - }, - "name": "pf-t--color--black", - "attributes": { - "category": "color", - "type": "black" - }, - "path": [ - "color", - "black" - ] - } - ] - } - ] - } - }, - "pf-t--global--border--color--brand--accent--clicked": { - "redhat": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", - "type": "color", - "value": "#000000", - "filePath": "tokens/redhat/light/redhat.color.json", - "isSource": true, - "original": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", - "type": "color", - "value": "{global.color.brand.accent.400}" - }, - "name": "pf-t--global--border--color--brand--accent--clicked", - "attributes": { - "category": "global", - "type": "border", - "item": "color", - "subitem": "brand", - "state": "accent" - }, - "path": [ - "global", - "border", - "color", - "brand", - "accent", - "clicked" - ], - "references": [ - { - "type": "color", - "value": "#000000", - "filePath": "tokens/default/light/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.black}" - }, - "name": "pf-t--global--color--brand--accent--400", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "400" - }, - "path": [ - "global", - "color", - "brand", - "accent", - "400" - ], - "references": [ - { - "type": "color", - "value": "#000000", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#000000" - }, - "name": "pf-t--color--black", - "attributes": { - "category": "color", - "type": "black" - }, - "path": [ - "color", - "black" - ] - } - ] - } - ] - } - }, - "pf-t--global--color--brand--accent--default": { - "redhat": { - "description": "Use this color for elements that you want to reinforce your brand", - "type": "color", - "value": "#ee0000", - "filePath": "tokens/redhat/light/redhat.color.json", - "isSource": true, - "original": { - "description": "Use this color for elements that you want to reinforce your brand", - "type": "color", - "value": "{global.color.brand.accent.100}" - }, - "name": "pf-t--global--color--brand--accent--default", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "default" - }, - "path": [ - "global", - "color", - "brand", - "accent", - "default" - ], - "references": [ - { - "type": "color", - "value": "#ee0000", - "filePath": "tokens/default/light/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.red.50}" - }, - "name": "pf-t--global--color--brand--accent--100", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "100" - }, - "path": [ - "global", - "color", - "brand", - "accent", - "100" - ], - "references": [ - { - "type": "color", - "value": "#ee0000", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#ee0000" - }, - "name": "pf-t--color--red--50", - "attributes": { - "category": "color", - "type": "red", - "item": "50" - }, - "path": [ - "color", - "red", - "50" - ] - } - ] - } - ] - } - }, - "pf-t--global--color--brand--accent--hover": { - "redhat": { - "description": "Use as the hover state for elements that have a branded background color", - "type": "color", - "value": "#a60000", - "filePath": "tokens/redhat/light/redhat.color.json", - "isSource": true, - "original": { - "description": "Use as the hover state for elements that have a branded background color", - "type": "color", - "value": "{global.color.brand.accent.200}" - }, - "name": "pf-t--global--color--brand--accent--hover", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "hover" - }, - "path": [ - "global", - "color", - "brand", - "accent", - "hover" - ], - "references": [ - { - "type": "color", - "value": "#a60000", - "filePath": "tokens/default/light/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.red.60}" - }, - "name": "pf-t--global--color--brand--accent--200", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "200" - }, - "path": [ - "global", - "color", - "brand", - "accent", - "200" - ], - "references": [ - { - "type": "color", - "value": "#a60000", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#a60000" - }, - "name": "pf-t--color--red--60", - "attributes": { - "category": "color", - "type": "red", - "item": "60" - }, - "path": [ - "color", - "red", - "60" - ] - } - ] - } - ] - } - }, - "pf-t--global--color--brand--accent--clicked": { - "redhat": { - "description": "Use as the clicked state for elements that have a brand background color", - "type": "color", - "value": "#a60000", - "filePath": "tokens/redhat/light/redhat.color.json", - "isSource": true, - "original": { - "description": "Use as the clicked state for elements that have a brand background color", - "type": "color", - "value": "{global.color.brand.accent.200}" - }, - "name": "pf-t--global--color--brand--accent--clicked", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "clicked" - }, - "path": [ - "global", - "color", - "brand", - "accent", - "clicked" - ], - "references": [ - { - "type": "color", - "value": "#a60000", - "filePath": "tokens/default/light/base.json", - "isSource": true, - "original": { - "type": "color", - "value": "{color.red.60}" - }, - "name": "pf-t--global--color--brand--accent--200", - "attributes": { - "category": "global", - "type": "color", - "item": "brand", - "subitem": "accent", - "state": "200" - }, - "path": [ - "global", - "color", - "brand", - "accent", - "200" - ], - "references": [ - { - "type": "color", - "value": "#a60000", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#a60000" - }, - "name": "pf-t--color--red--60", - "attributes": { - "category": "color", - "type": "red", - "item": "60" - }, - "path": [ - "color", - "red", - "60" - ] - } - ] - } - ] - } - }, "pf-t--color--white": { "default": { "type": "color", @@ -53375,259 +53689,6 @@ ] } }, - "pf-t--color--gray--10": { - "default": { - "type": "color", - "value": "#f2f2f2", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#f2f2f2" - }, - "name": "pf-t--color--gray--10", - "attributes": { - "category": "color", - "type": "gray", - "item": "10" - }, - "path": [ - "color", - "gray", - "10" - ] - } - }, - "pf-t--color--gray--20": { - "default": { - "type": "color", - "value": "#e0e0e0", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#e0e0e0" - }, - "name": "pf-t--color--gray--20", - "attributes": { - "category": "color", - "type": "gray", - "item": "20" - }, - "path": [ - "color", - "gray", - "20" - ] - } - }, - "pf-t--color--gray--30": { - "default": { - "type": "color", - "value": "#c7c7c7", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#c7c7c7" - }, - "name": "pf-t--color--gray--30", - "attributes": { - "category": "color", - "type": "gray", - "item": "30" - }, - "path": [ - "color", - "gray", - "30" - ] - } - }, - "pf-t--color--gray--40": { - "default": { - "type": "color", - "value": "#a3a3a3", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#a3a3a3" - }, - "name": "pf-t--color--gray--40", - "attributes": { - "category": "color", - "type": "gray", - "item": "40" - }, - "path": [ - "color", - "gray", - "40" - ] - } - }, - "pf-t--color--gray--45": { - "default": { - "type": "color", - "value": "#8c8c8c", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#8c8c8c" - }, - "name": "pf-t--color--gray--45", - "attributes": { - "category": "color", - "type": "gray", - "item": "45" - }, - "path": [ - "color", - "gray", - "45" - ] - } - }, - "pf-t--color--gray--50": { - "default": { - "type": "color", - "value": "#707070", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#707070" - }, - "name": "pf-t--color--gray--50", - "attributes": { - "category": "color", - "type": "gray", - "item": "50" - }, - "path": [ - "color", - "gray", - "50" - ] - } - }, - "pf-t--color--gray--60": { - "default": { - "type": "color", - "value": "#4d4d4d", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#4d4d4d" - }, - "name": "pf-t--color--gray--60", - "attributes": { - "category": "color", - "type": "gray", - "item": "60" - }, - "path": [ - "color", - "gray", - "60" - ] - } - }, - "pf-t--color--gray--70": { - "default": { - "type": "color", - "value": "#383838", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#383838" - }, - "name": "pf-t--color--gray--70", - "attributes": { - "category": "color", - "type": "gray", - "item": "70" - }, - "path": [ - "color", - "gray", - "70" - ] - } - }, - "pf-t--color--gray--80": { - "default": { - "type": "color", - "value": "#292929", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#292929" - }, - "name": "pf-t--color--gray--80", - "attributes": { - "category": "color", - "type": "gray", - "item": "80" - }, - "path": [ - "color", - "gray", - "80" - ] - } - }, - "pf-t--color--gray--90": { - "default": { - "type": "color", - "value": "#1f1f1f", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#1f1f1f" - }, - "name": "pf-t--color--gray--90", - "attributes": { - "category": "color", - "type": "gray", - "item": "90" - }, - "path": [ - "color", - "gray", - "90" - ] - } - }, - "pf-t--color--gray--95": { - "default": { - "type": "color", - "value": "#151515", - "filePath": "tokens/default/light/palette.color.json", - "isSource": true, - "original": { - "type": "color", - "value": "#151515" - }, - "name": "pf-t--color--gray--95", - "attributes": { - "category": "color", - "type": "gray", - "item": "95" - }, - "path": [ - "color", - "gray", - "95" - ] - } - }, "pf-t--color--black": { "default": { "type": "color", @@ -53649,6 +53710,259 @@ ] } }, + "pf-t--color--gray--10": { + "default": { + "type": "color", + "value": "#f2f2f2", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#f2f2f2" + }, + "name": "pf-t--color--gray--10", + "attributes": { + "category": "color", + "type": "gray", + "item": "10" + }, + "path": [ + "color", + "gray", + "10" + ] + } + }, + "pf-t--color--gray--20": { + "default": { + "type": "color", + "value": "#e0e0e0", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#e0e0e0" + }, + "name": "pf-t--color--gray--20", + "attributes": { + "category": "color", + "type": "gray", + "item": "20" + }, + "path": [ + "color", + "gray", + "20" + ] + } + }, + "pf-t--color--gray--30": { + "default": { + "type": "color", + "value": "#c7c7c7", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#c7c7c7" + }, + "name": "pf-t--color--gray--30", + "attributes": { + "category": "color", + "type": "gray", + "item": "30" + }, + "path": [ + "color", + "gray", + "30" + ] + } + }, + "pf-t--color--gray--40": { + "default": { + "type": "color", + "value": "#a3a3a3", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#a3a3a3" + }, + "name": "pf-t--color--gray--40", + "attributes": { + "category": "color", + "type": "gray", + "item": "40" + }, + "path": [ + "color", + "gray", + "40" + ] + } + }, + "pf-t--color--gray--45": { + "default": { + "type": "color", + "value": "#8c8c8c", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#8c8c8c" + }, + "name": "pf-t--color--gray--45", + "attributes": { + "category": "color", + "type": "gray", + "item": "45" + }, + "path": [ + "color", + "gray", + "45" + ] + } + }, + "pf-t--color--gray--50": { + "default": { + "type": "color", + "value": "#707070", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#707070" + }, + "name": "pf-t--color--gray--50", + "attributes": { + "category": "color", + "type": "gray", + "item": "50" + }, + "path": [ + "color", + "gray", + "50" + ] + } + }, + "pf-t--color--gray--60": { + "default": { + "type": "color", + "value": "#4d4d4d", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#4d4d4d" + }, + "name": "pf-t--color--gray--60", + "attributes": { + "category": "color", + "type": "gray", + "item": "60" + }, + "path": [ + "color", + "gray", + "60" + ] + } + }, + "pf-t--color--gray--70": { + "default": { + "type": "color", + "value": "#383838", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#383838" + }, + "name": "pf-t--color--gray--70", + "attributes": { + "category": "color", + "type": "gray", + "item": "70" + }, + "path": [ + "color", + "gray", + "70" + ] + } + }, + "pf-t--color--gray--80": { + "default": { + "type": "color", + "value": "#292929", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#292929" + }, + "name": "pf-t--color--gray--80", + "attributes": { + "category": "color", + "type": "gray", + "item": "80" + }, + "path": [ + "color", + "gray", + "80" + ] + } + }, + "pf-t--color--gray--90": { + "default": { + "type": "color", + "value": "#1f1f1f", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#1f1f1f" + }, + "name": "pf-t--color--gray--90", + "attributes": { + "category": "color", + "type": "gray", + "item": "90" + }, + "path": [ + "color", + "gray", + "90" + ] + } + }, + "pf-t--color--gray--95": { + "default": { + "type": "color", + "value": "#151515", + "filePath": "tokens/default/light/palette.color.json", + "isSource": true, + "original": { + "type": "color", + "value": "#151515" + }, + "name": "pf-t--color--gray--95", + "attributes": { + "category": "color", + "type": "gray", + "item": "95" + }, + "path": [ + "color", + "gray", + "95" + ] + } + }, "pf-t--color--blue--10": { "default": { "type": "color", @@ -57066,6 +57380,75 @@ ] } }, + "pf-t--chart--global--letter-spacing": { + "default": { + "type": "string", + "value": "normal", + "filePath": "tokens/default/light/charts.json", + "isSource": true, + "original": { + "type": "string", + "value": "normal" + }, + "name": "pf-t--chart--global--letter-spacing", + "attributes": { + "category": "chart", + "type": "global", + "item": "letter-spacing" + }, + "path": [ + "chart", + "global", + "letter-spacing" + ] + } + }, + "pf-t--chart--global--stroke-line-cap": { + "default": { + "type": "string", + "value": "round", + "filePath": "tokens/default/light/charts.json", + "isSource": true, + "original": { + "type": "string", + "value": "round" + }, + "name": "pf-t--chart--global--stroke-line-cap", + "attributes": { + "category": "chart", + "type": "global", + "item": "stroke-line-cap" + }, + "path": [ + "chart", + "global", + "stroke-line-cap" + ] + } + }, + "pf-t--chart--global--stroke-line-join": { + "default": { + "type": "string", + "value": "round", + "filePath": "tokens/default/light/charts.json", + "isSource": true, + "original": { + "type": "string", + "value": "round" + }, + "name": "pf-t--chart--global--stroke-line-join", + "attributes": { + "category": "chart", + "type": "global", + "item": "stroke-line-join" + }, + "path": [ + "chart", + "global", + "stroke-line-join" + ] + } + }, "pf-t--chart--global--BorderWidth--xs": { "default": { "type": "number", @@ -57893,29 +58276,6 @@ ] } }, - "pf-t--chart--global--letter-spacing": { - "default": { - "type": "string", - "value": "normal", - "filePath": "tokens/default/light/charts.json", - "isSource": true, - "original": { - "type": "string", - "value": "normal" - }, - "name": "pf-t--chart--global--letter-spacing", - "attributes": { - "category": "chart", - "type": "global", - "item": "letter-spacing" - }, - "path": [ - "chart", - "global", - "letter-spacing" - ] - } - }, "pf-t--chart--global--layout--padding": { "default": { "type": "number", @@ -57991,29 +58351,6 @@ ] } }, - "pf-t--chart--global--stroke-line-cap": { - "default": { - "type": "string", - "value": "round", - "filePath": "tokens/default/light/charts.json", - "isSource": true, - "original": { - "type": "string", - "value": "round" - }, - "name": "pf-t--chart--global--stroke-line-cap", - "attributes": { - "category": "chart", - "type": "global", - "item": "stroke-line-cap" - }, - "path": [ - "chart", - "global", - "stroke-line-cap" - ] - } - }, "pf-t--chart--global--label--padding": { "default": { "type": "number", @@ -58064,43 +58401,6 @@ ] } }, - "pf-t--chart--global--label--stroke": { - "default": { - "width": { - "type": "number", - "value": 0, - "filePath": "tokens/default/light/charts.json", - "isSource": true - }, - "type": "string", - "value": "transparent", - "filePath": "tokens/default/light/charts.json", - "isSource": true, - "original": { - "width": { - "type": "number", - "value": 0, - "filePath": "tokens/default/light/charts.json", - "isSource": true - }, - "type": "string", - "value": "transparent" - }, - "name": "pf-t--chart--global--label--stroke", - "attributes": { - "category": "chart", - "type": "global", - "item": "label", - "subitem": "stroke" - }, - "path": [ - "chart", - "global", - "label", - "stroke" - ] - } - }, "pf-t--chart--global--label--text-anchor": { "default": { "type": "string", @@ -58174,26 +58474,40 @@ ] } }, - "pf-t--chart--global--stroke-line-join": { + "pf-t--chart--global--label--stroke": { "default": { + "width": { + "type": "number", + "value": 0, + "filePath": "tokens/default/light/charts.json", + "isSource": true + }, "type": "string", - "value": "round", + "value": "transparent", "filePath": "tokens/default/light/charts.json", "isSource": true, "original": { + "width": { + "type": "number", + "value": 0, + "filePath": "tokens/default/light/charts.json", + "isSource": true + }, "type": "string", - "value": "round" + "value": "transparent" }, - "name": "pf-t--chart--global--stroke-line-join", + "name": "pf-t--chart--global--label--stroke", "attributes": { "category": "chart", "type": "global", - "item": "stroke-line-join" + "item": "label", + "subitem": "stroke" }, "path": [ "chart", "global", - "stroke-line-join" + "label", + "stroke" ] } }, diff --git a/packages/module/plugins/export-patternfly-tokens/dist/ui.html b/packages/module/plugins/export-patternfly-tokens/dist/ui.html index d42d748..28cd21d 100644 --- a/packages/module/plugins/export-patternfly-tokens/dist/ui.html +++ b/packages/module/plugins/export-patternfly-tokens/dist/ui.html @@ -2,6 +2,273 @@ \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDc0g7QUFDakI7QUFDckcsOEJBQThCLG1GQUEyQixDQUFDLDRGQUFxQztBQUMvRjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTyw4R0FBOEcsWUFBWSxPQUFPLEtBQUssWUFBWSxPQUFPLEtBQUssWUFBWSxhQUFhLFdBQVcsWUFBWSxPQUFPLE9BQU8sVUFBVSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsT0FBTyxLQUFLLFlBQVksYUFBYSxhQUFhLE9BQU8sS0FBSyxZQUFZLGFBQWEsYUFBYSxXQUFXLFlBQVksYUFBYSxXQUFXLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLE1BQU0sTUFBTSxVQUFVLFVBQVUsTUFBTSxNQUFNLFlBQVksYUFBYSxPQUFPLEtBQUssWUFBWSxhQUFhLE9BQU8sS0FBSyxZQUFZLE9BQU8sS0FBSyxVQUFVLFlBQVksT0FBTyxLQUFLLFVBQVUsWUFBWSxPQUFPLEtBQUssVUFBVSxVQUFVLE9BQU8sS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksT0FBTyxLQUFLLFlBQVksaUNBQWlDLHNCQUFzQixHQUFHLE9BQU8sMkJBQTJCLEdBQUcsVUFBVSw0Q0FBNEMsbUNBQW1DLGNBQWMsNEJBQTRCLEdBQUcsd0JBQXdCLGdCQUFnQixHQUFHLFVBQVUsa0JBQWtCLDJCQUEyQix3QkFBd0IsR0FBRyxZQUFZLHFCQUFxQix1QkFBdUIsNEJBQTRCLEdBQUcsY0FBYyxzREFBc0QsZ0RBQWdELDZDQUE2QyxZQUFZLHdDQUF3QyxzQkFBc0IsbUJBQW1CLDRCQUE0QixxQkFBcUIsR0FBRyxrQkFBa0IscURBQXFELGtCQUFrQixHQUFHLHVCQUF1QixtQkFBbUIsZ0JBQWdCLEdBQUcsV0FBVyw2Q0FBNkMsdUJBQXVCLEdBQUcsWUFBWSxrREFBa0QsMkNBQTJDLHdLQUF3SyxzQkFBc0IsR0FBRyx1QkFBdUIsa0JBQWtCLGtDQUFrQyxHQUFHLGtCQUFrQixrQkFBa0Isd0JBQXdCLEdBQUcscUJBQXFCLGtCQUFrQixvQkFBb0IsR0FBRyxnQ0FBZ0MsaUJBQWlCLGdCQUFnQixHQUFHLGFBQWEsc0RBQXNELEdBQUcsV0FBVyxzREFBc0QsR0FBRyxxQkFBcUI7QUFDNThFO0FBQ0EsaUVBQWUsdUJBQXVCLEVBQUM7Ozs7Ozs7Ozs7OztBQ3hHMUI7O0FBRWI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRDtBQUNyRDtBQUNBO0FBQ0EsZ0RBQWdEO0FBQ2hEO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLGlCQUFpQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIscUJBQXFCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWLHNGQUFzRixxQkFBcUI7QUFDM0c7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWLGlEQUFpRCxxQkFBcUI7QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWLHNEQUFzRCxxQkFBcUI7QUFDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7QUNwRmE7O0FBRWI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RCxjQUFjO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7QUNmQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLGFBQWEsR0FBRyxJQUFvRCxvQkFBb0IsS0FBSyxFQUE4SyxDQUFDLFlBQVkseUJBQXlCLGdCQUFnQixVQUFVLFVBQVUsTUFBTSxTQUFtQyxDQUFDLGdCQUFnQixPQUFDLE9BQU8sb0JBQW9CLDhDQUE4QyxrQ0FBa0MsWUFBWSxZQUFZLG1DQUFtQyxpQkFBaUIsZUFBZSxzQkFBc0Isb0JBQW9CLFVBQVUsU0FBbUMsS0FBSyxXQUFXLFlBQVksU0FBUyxFQUFFLG1CQUFtQixhQUFhLDBHQUEwRyxxQkFBcUIsMEVBQTBFLFdBQVcsK09BQStPLGtCQUFrQixzQkFBc0Isa0NBQWtDLCtGQUErRix3REFBd0QseUpBQXlKLHNEQUFzRCxXQUFXLGtNQUFrTSxVQUFVLEVBQUUsNEJBQTRCLHFCQUFxQixhQUFhLDRHQUE0RyxzQkFBc0IsdUdBQXVHLGFBQWEsNEJBQTRCLG1JQUFtSSw2QkFBNkIsNkdBQTZHLElBQUksZ0NBQWdDLHlQQUF5UCxvQ0FBb0MsNklBQTZJLGFBQWEsRUFBRSwrRkFBK0YscUJBQXFCLGFBQWEsa0NBQWtDLFNBQVMsdUNBQXVDLGtDQUFrQyw2QkFBNkIscUNBQXFDLHdCQUF3QixFQUFFLHdDQUF3QyxxQkFBcUIsYUFBYSxtQkFBbUIsaUJBQWlCLG1CQUFtQixNQUFNLEtBQUssSUFBSSxZQUFZLElBQUksaUNBQWlDLE9BQU8sU0FBUyxHQUFHLHdCQUF3Qix3RUFBd0UsY0FBYyxNQUFNLFlBQVksSUFBSSw0QkFBNEIsV0FBVyxxQ0FBcUMsY0FBYyxNQUFNLFlBQVksSUFBSSx1Q0FBdUMsV0FBVyxzQkFBc0IsRUFBRSxhQUFhLHFCQUFxQixhQUFhLHlLQUF5SyxHQUFHLHFCQUFxQixhQUFhLFdBQVcsMERBQTBELFdBQVcsRUFBRSxPQUFPLHFCQUFxQixhQUFhLHlMQUF5TCxnQkFBZ0Isa0dBQWtHLG9FQUFvRSxtR0FBbUcsOEJBQThCLDBGQUEwRixnQ0FBZ0MsK0NBQStDLG9DQUFvQyxvQ0FBb0MseUNBQXlDLEVBQUUsV0FBVyw4QkFBOEIsUUFBUSxtQkFBbUIsR0FBRyw4QkFBOEIsMEJBQTBCLCtCQUErQix5QkFBeUIsR0FBRyxFQUFFLGlEQUFpRCxxQkFBcUIsYUFBYSxnQkFBZ0IsV0FBVyxRQUFRLElBQUkseUNBQXlDLFNBQVMsd0JBQXdCLGdUQUFnVCw2Q0FBNkMsaUdBQWlHLFFBQVEsK0JBQStCLFlBQVksOENBQThDLFFBQVEsMENBQTBDLDRDQUE0QyxpQkFBaUIsK1FBQStRLFNBQVMsaUtBQWlLLDRIQUE0SCxzR0FBc0csb0JBQW9CLGlSQUFpUiw2Q0FBNkMsbUVBQW1FLHlHQUF5RyxrQkFBa0IsOERBQThELEdBQUcsc0NBQXNDLHdFQUF3RSxvQ0FBb0MsTUFBTSw4RUFBOEUsV0FBVyx3QkFBd0IsV0FBVyxFQUFFLHdCQUF3QixzQ0FBc0MsbUJBQW1CLDhHQUE4RyxrREFBa0QsaUJBQWlCLG9GQUFvRixVQUFVLGFBQWEsRUFBRSxvQkFBb0Isd0JBQXdCLFdBQVcsRUFBRSwwQkFBMEIsdUNBQXVDLHNCQUFzQiw4QkFBOEIsZ0NBQWdDLHlCQUF5QixlQUFlLDhCQUE4QixhQUFhLEVBQUUsZ0RBQWdELG1DQUFtQyxzRkFBc0YsaUVBQWlFLFdBQVcsYUFBYSxhQUFhLEVBQUUsMENBQTBDLDJJQUEySSwwQ0FBMEMsc0JBQXNCLFdBQVcsK0JBQStCLGtCQUFrQix3QkFBd0Isc0ZBQXNGLDJCQUEyQixXQUFXLE9BQU8sK0JBQStCLDRMQUE0TCwrQkFBK0Isb0JBQW9CLDRDQUE0QyxZQUFZLFdBQVcsUUFBUSxjQUFjLFVBQVUsU0FBUyw2QkFBNkIsNEJBQTRCLDRCQUE0QixXQUFXLGdCQUFnQixhQUFhLEVBQUUsdUZBQXVGLHFCQUFxQixhQUFhLGtEQUFrRCxpQ0FBaUMsNkRBQTZELElBQUksd0JBQXdCLElBQUksb0JBQW9CLGtCQUFrQixnRUFBZ0UsU0FBUyw4RkFBOEYsa0JBQWtCLDhDQUE4Qyw0R0FBNEcsVUFBVSxtQkFBbUIsU0FBUyxXQUFXLFVBQVUsRUFBRSx3Q0FBd0Msc0JBQXNCLGFBQWEsYUFBYSxxQ0FBcUMsc0lBQXNJLG9GQUFvRixZQUFZLDZEQUE2RCxVQUFVLG1KQUFtSiw2QkFBNkIsd0NBQXdDLEVBQUUsdUVBQXVFLHNCQUFzQixhQUFhLHVIQUF1SCxjQUFjLG1DQUFtQyxvREFBb0QseUJBQXlCLEtBQUssc0JBQXNCLDZGQUE2RixXQUFXLEVBQUUsd0JBQXdCLFdBQVcsdUJBQXVCLEVBQUUsOEZBQThGLDZNQUE2TSxlQUFlLG1CQUFtQixtQkFBbUIsdUNBQXVDLDRCQUE0QixXQUFXLG9CQUFvQix3QkFBd0IsbUJBQW1CLGtDQUFrQyxXQUFXLEtBQUssc0RBQXNELHlCQUF5QiwrTUFBK00sMENBQTBDLHVEQUF1RCxHQUFHLEVBQUUsc0dBQXNHLHNCQUFzQixhQUFhLG1EQUFtRCxnQkFBZ0IsNkZBQTZGLG9EQUFvRCxXQUFXLGlEQUFpRCxRQUFRLGFBQWEsV0FBVyxFQUFFLHlCQUF5Qiw0Q0FBNEMsc0JBQXNCLHVDQUF1QyxFQUFFLDhCQUE4QixnRUFBZ0UsK0JBQStCLGlHQUFpRyxhQUFhLEVBQUUsMkNBQTJDLHNCQUFzQixhQUFhLG9DQUFvQyxrQkFBa0IsOEJBQThCLFdBQVcsMEJBQTBCLHFDQUFxQyx5QkFBeUIsa0JBQWtCLHNCQUFzQixhQUFhLEVBQUUseURBQXlELHNCQUFzQixhQUFhLEVBQUUsbUNBQW1DLHNCQUFzQixhQUFhLFdBQVcsOERBQThELHNFQUFzRSxrRkFBa0YsdUJBQXVCLHlCQUF5Qix1Q0FBdUMsb0JBQW9CLG1CQUFtQixzQkFBc0IsMEJBQTBCLHNCQUFzQiw2RkFBNkYsR0FBRyxzQkFBc0IsYUFBYSxrQkFBa0IsdUNBQXVDLElBQUksc1ZBQXNWLGlEQUFpRCx1S0FBdUssV0FBVyxzSUFBc0ksbUJBQW1CLGdCQUFnQix5UEFBeVAsaURBQWlELHlCQUF5QiwrQkFBK0IsZUFBZSxvQ0FBb0MsaUJBQWlCLGdGQUFnRix1QkFBdUIsaUJBQWlCLGNBQWMsNERBQTRELE9BQU8sZ0JBQWdCLDhGQUE4RixxQkFBcUIsVUFBVSw0SEFBNEgsb0JBQW9CLFNBQVMsa0NBQWtDLGtCQUFrQixJQUFJLHNCQUFzQixxRUFBcUUsU0FBUyxRQUFRLGlDQUFpQyx3QkFBd0IsRUFBRSw4QkFBOEIsd0JBQXdCLG9CQUFvQixrQkFBa0IseUNBQXlDLHdCQUF3QixFQUFFLGtEQUFrRCx1QkFBdUIsb0JBQW9CLGNBQWMsb0JBQW9CLG1GQUFtRix5Q0FBeUMsb0NBQW9DLE1BQU0sV0FBVyxpQ0FBaUMsWUFBWSxxQkFBcUIsOEZBQThGLG9DQUFvQyxXQUFXLElBQUksb0JBQW9CLEVBQUUsc0pBQXNKLHVLQUF1SywrS0FBK0ssa0NBQWtDLDZCQUE2QixTQUFTLDRCQUE0Qiw0Q0FBNEMsNkJBQTZCLG9EQUFvRCxrQ0FBa0MsY0FBYyxpRkFBaUYsWUFBWSxFQUFFLGdOQUFnTixzQkFBc0IsYUFBYSxzQkFBc0IsRUFBRSxjQUFjLHNCQUFzQixhQUFhLHdCQUF3QixjQUFjLGVBQWUsWUFBWSxtQkFBbUIsa0JBQWtCLDJEQUEyRCw4QkFBOEIsOENBQThDLGdHQUFnRyxLQUFLLHVHQUF1RyxTQUFTLCtDQUErQywrRkFBK0YsOENBQThDLGtDQUFrQyxzQ0FBc0MsbUVBQW1FLHVCQUF1QixhQUFhLEVBQUUsZ0NBQWdDLHNCQUFzQixhQUFhLG9CQUFvQixjQUFjLDBEQUEwRCxhQUFhLHdCQUF3Qiw4QkFBOEIsd0JBQXdCLDZJQUE2SSxzQkFBc0IsZ0NBQWdDLGtCQUFrQiw0QkFBNEIsb0JBQW9CLHFCQUFxQixVQUFVLHlDQUF5QyxjQUFjLDRCQUE0Qix1QkFBdUIsd0JBQXdCLGdEQUFnRCxzQkFBc0Isa0NBQWtDLG1DQUFtQyxxQkFBcUIsc0JBQXNCLDhGQUE4RixhQUFhLEVBQUUsY0FBYyxzQkFBc0IsYUFBYSw4QkFBOEIsY0FBYyxlQUFlLDZEQUE2RCxvQkFBb0IsbUVBQW1FLHVCQUF1QixhQUFhLEVBQUUsc0NBQXNDLHNCQUFzQixhQUFhLHdCQUF3QixjQUFjLGVBQWUsMkRBQTJELHlDQUF5Qyw4Q0FBOEMsMENBQTBDLCtDQUErQyw0QkFBNEIsa0NBQWtDLG9CQUFvQixtRUFBbUUsdUJBQXVCLGFBQWEsRUFBRSxnQ0FBZ0Msc0JBQXNCLGFBQWEseUJBQXlCLGNBQWMsZUFBZSw2REFBNkQsc0RBQXNELHNFQUFzRSx1QkFBdUIsYUFBYSxFQUFFLGlDQUFpQyxzQkFBc0IsYUFBYSxxSUFBcUksc0JBQXNCLHFCQUFxQiwwS0FBMEssRUFBRSxxSEFBcUgsc0JBQXNCLGFBQWEsK0xBQStMLEdBQUcsc0JBQXNCLGFBQWEsMkNBQTJDLGNBQWMsbURBQW1ELHFEQUFxRCxXQUFXLHFEQUFxRCxFQUFFLGFBQWEsRUFBRSxtQ0FBbUMsc0JBQXNCLGFBQWEsMkNBQTJDLGFBQWEseURBQXlELGlFQUFpRSxzRUFBc0UsYUFBYSxFQUFFLGdEQUFnRCxzQkFBc0IsYUFBYSwyQ0FBMkMsY0FBYywrRUFBK0UscURBQXFELE1BQU0sd0NBQXdDLCtDQUErQyxzQ0FBc0MsYUFBYSxFQUFFLG1DQUFtQyxzQkFBc0IsYUFBYSwyQ0FBMkMsY0FBYywwQkFBMEIsV0FBVyxrSEFBa0gsb0dBQW9HLGFBQWEsV0FBVyxFQUFFLCtDQUErQyw4Q0FBOEMsK0JBQStCLGtKQUFrSix1Q0FBdUMscUpBQXFKLDhCQUE4QiwyQ0FBMkMsaURBQWlELDBDQUEwQyxrQkFBa0IsaURBQWlELE1BQU0sb0RBQW9ELE1BQU0sNkRBQTZELCtCQUErQixhQUFhLDRDQUE0QyxFQUFFLGFBQWEsRUFBRSxtQ0FBbUMsc0JBQXNCLGFBQWEsY0FBYyx5Q0FBeUMsaURBQWlELHVFQUF1RSx3QkFBd0Isb0JBQW9CLGFBQWEsaUJBQWlCLG9CQUFvQixnQkFBZ0IsNEJBQTRCLGFBQWEsSUFBSSxtREFBbUQsU0FBUyxxQkFBcUIsU0FBUyxtQkFBbUIsZ0tBQWdLLGtCQUFrQix1Q0FBdUMsb0JBQW9CLGlGQUFpRixvQkFBb0Isa0NBQWtDLDRCQUE0Qix1Q0FBdUMsa0JBQWtCLGdDQUFnQyw4QkFBOEIsaUZBQWlGLG9FQUFvRSxXQUFXLCtCQUErQixrQkFBa0Isd0JBQXdCLFFBQVEsMkJBQTJCLFdBQVcsT0FBTyxrQkFBa0IsbUdBQW1HLG1CQUFtQiw0Q0FBNEMsdUJBQXVCLDRHQUE0RyxtQkFBbUIsMEJBQTBCLGFBQWEsOEJBQThCLDZEQUE2RCw0QkFBNEIsNklBQTZJLGlCQUFpQixpRkFBaUYscURBQXFELHFCQUFxQiwwQkFBMEIsK0NBQStDLGFBQWEsR0FBRyxzQkFBc0IsYUFBYSwrSEFBK0gsb0JBQW9CLDJDQUEyQyxVQUFVLGdCQUFnQixtQ0FBbUMseURBQXlELDBCQUEwQixrQkFBa0IseUJBQXlCLFVBQVUsc0JBQXNCLElBQUksc0JBQXNCLFVBQVUsOERBQThELGdDQUFnQyxtQ0FBbUMsaUJBQWlCLHFCQUFxQixRQUFRLFdBQVcsbUJBQW1CLFVBQVUsK0JBQStCLHNEQUFzRCw2Q0FBNkMsV0FBVyxpQ0FBaUMsU0FBUyx5Q0FBeUMsOERBQThELFNBQVMsS0FBSyxTQUFTLEtBQUssS0FBSyxXQUFXLEVBQUUsa0JBQWtCLFFBQVEsVUFBVSw0Q0FBNEMsTUFBTSx3QkFBd0IsSUFBSSxrSEFBa0gsU0FBUyxtREFBbUQsYUFBYSx1QkFBdUIsaUJBQWlCLGtCQUFrQixXQUFXLCtDQUErQyx3QkFBd0IsK0JBQStCLHVCQUF1QixPQUFPLG1CQUFtQix5REFBeUQsa0JBQWtCLGlDQUFpQyw0QkFBNEIscUlBQXFJLG1CQUFtQiwyQ0FBMkMsS0FBSyxhQUFhLEVBQUUsK0lBQStJLHNCQUFzQixhQUFhLGtQQUFrUCxLQUFLLHlCQUF5QixJQUFJLHlCQUF5Qix1QkFBdUIsT0FBTyxTQUFTLElBQUksNkZBQTZGLHlEQUF5RCxTQUFTLFlBQVksSUFBSSw2Q0FBNkMsU0FBUyxpQkFBaUIsRUFBRSxxQkFBcUIsc0JBQXNCLGFBQWEsZ0hBQWdILE1BQU0sd0RBQXdELGdCQUFnQixhQUFhLCtDQUErQyxhQUFhLDRCQUE0Qix5QkFBeUIsMkRBQTJELDZCQUE2QixRQUFRLElBQUksMkpBQTJKLHdEQUF3RCxJQUFJLDZRQUE2USxTQUFTLElBQUksMEJBQTBCLGdGQUFnRix3Q0FBd0MsVUFBVSxJQUFJLDRCQUE0Qix1Q0FBdUMsS0FBSywyQkFBMkIsU0FBUyxzQkFBc0IseUZBQXlGLHNGQUFzRix1REFBdUQsc0RBQXNELDhEQUE4RCx3Q0FBd0MsaUJBQWlCLFFBQVEscUdBQXFHLCtCQUErQixtQkFBbUIsb0JBQW9CLE1BQU0saURBQWlELHNCQUFzQixLQUFLLHFDQUFxQyxRQUFRLG9KQUFvSixpQ0FBaUMsRUFBRSw4QkFBOEIsaURBQWlELHlDQUF5QyxzQkFBc0IsMkVBQTJFLFdBQVcsc0NBQXNDLEVBQUUsc0JBQXNCLEVBQUUsMkVBQTJFLHNCQUFzQixhQUFhLDRFQUE0RSxjQUFjLFNBQVMsZ0JBQWdCLFlBQVksV0FBVyw2QkFBNkIsU0FBUywwQ0FBMEMsdUJBQXVCLElBQUkscUJBQXFCLE9BQU8sRUFBRSxTQUFTLElBQUksNkZBQTZGLGdDQUFnQyxTQUFTLHNEQUFzRCxPQUFPLGlDQUFpQyx3QkFBd0IsaURBQWlELEtBQUssSUFBSSw2S0FBNkssa0JBQWtCLDZCQUE2QixpQkFBaUIsV0FBVyxpQ0FBaUMsU0FBUyxpQkFBaUIsc0JBQXNCLElBQUksa0ZBQWtGLFNBQVMsVUFBVSx5QkFBeUIsSUFBSSxpRkFBaUYsU0FBUyxVQUFVLEtBQUssY0FBYyxrQ0FBa0MsMkdBQTJHLElBQUksS0FBSyxpQ0FBaUMsU0FBUyxrQkFBa0IsNEJBQTRCLGdCQUFnQixZQUFZLFdBQVcsY0FBYyxTQUFTLHNCQUFzQixTQUFTLFVBQVUsMkJBQTJCLGdDQUFnQyx5QkFBeUIscUNBQXFDLHdCQUF3QixxQ0FBcUMsd0JBQXdCLHFDQUFxQyxVQUFVLHlDQUF5QyxnQ0FBZ0Msd0JBQXdCLHlCQUF5Qix3QkFBd0IsMkJBQTJCLGdCQUFnQixtQkFBbUIsNEJBQTRCLG1CQUFtQixvREFBb0Qsc0NBQXNDLHlCQUF5Qix3QkFBd0IsMkNBQTJDLGVBQWUsMkJBQTJCLGdDQUFnQyx5QkFBeUIsZ0JBQWdCLHFDQUFxQywyQkFBMkIsZUFBZSwyQkFBMkIsZ0NBQWdDLHlCQUF5Qix5Q0FBeUMsd0JBQXdCLHFDQUFxQyxjQUFjLDZCQUE2Qix1QkFBdUIsa0JBQWtCLHFCQUFxQixrQkFBa0IsdUJBQXVCLGdDQUFnQyxXQUFXLEtBQUssV0FBVyxxRUFBcUUsbUJBQW1CLHlCQUF5Qix3UEFBd1AsNEJBQTRCLCtFQUErRSxxRUFBcUUsYUFBYSxRQUFRLGlCQUFpQiwwRUFBMEUsU0FBUyx5QkFBeUIsd0JBQXdCLHVCQUF1QixFQUFFLDBCQUEwQixjQUFjLDBDQUEwQyxxQkFBcUIsYUFBYSxRQUFRLG1CQUFtQixzSEFBc0gsU0FBUyxzQ0FBc0MsNkNBQTZDLGtMQUFrTCxxQkFBcUIscUJBQXFCLG1CQUFtQix1QkFBdUIsa0JBQWtCLHdCQUF3QixJQUFJLG1CQUFtQixxQkFBcUIscUhBQXFILHNFQUFzRSxnSkFBZ0osR0FBRyxFQUFFLDhFQUE4RSxzQkFBc0IsYUFBYSxtR0FBbUcsY0FBYyxpQ0FBaUMsYUFBYSwyQkFBMkIsMENBQTBDLHFCQUFxQixnQ0FBZ0MsMkdBQTJHLDJCQUEyQix3QkFBd0Isd0JBQXdCLG9DQUFvQyxpQ0FBaUMsa0NBQWtDLHNVQUFzVSwyR0FBMkcsbURBQW1ELHVDQUF1QywyWEFBMlgsOENBQThDLElBQUksMEdBQTBHLHVCQUF1Qiw4Q0FBOEMsMk9BQTJPLDJCQUEyQixRQUFRLFFBQVEsb0JBQW9CLHlLQUF5SywyQkFBMkIsTUFBTSxnREFBZ0QseURBQXlELFdBQVcsaUJBQWlCLG9FQUFvRSw2TkFBNk4sNkJBQTZCLGdFQUFnRSwwUUFBMFEsd0JBQXdCLFFBQVEsZ1dBQWdXLG1MQUFtTCx5YkFBeWIsbUpBQW1KLGdEQUFnRCxxREFBcUQsVUFBVSx1RUFBdUUsNkVBQTZFLDJCQUEyQixpQkFBaUIsa0JBQWtCLDJGQUEyRixhQUFhLEVBQUUscUZBQXFGLHNCQUFzQixhQUFhLDJJQUEySSxnQkFBZ0Isa0NBQWtDLGFBQWEsdUJBQXVCLDJCQUEyQixvQkFBb0IsaUNBQWlDLDJCQUEyQixRQUFRLGlVQUFpVSx5QkFBeUIsd0ZBQXdGLFlBQVksK0tBQStLLGdIQUFnSCw2QkFBNkIsOE5BQThOLG1CQUFtQix5U0FBeVMsbUhBQW1ILDhCQUE4QixtREFBbUQsNEJBQTRCLG9PQUFvTyxpQ0FBaUMsd0JBQXdCLG1DQUFtQyxpVUFBaVUsNkJBQTZCLDJDQUEyQywwQ0FBMEMsRUFBRSxZQUFZLG9FQUFvRSx1QkFBdUIsY0FBYyx1QkFBdUIsd0NBQXdDLGtIQUFrSCxLQUFLLHVDQUF1QywrQkFBK0IsS0FBSyxxQ0FBcUMsb0RBQW9ELDBDQUEwQyxrQ0FBa0MsS0FBSyx3Q0FBd0MseURBQXlELHNDQUFzQyw4QkFBOEIsTUFBTSxpQkFBaUIsdUdBQXVHLFlBQVkseUNBQXlDLDhCQUE4QixNQUFNLGlCQUFpQiwwR0FBMEcsYUFBYSxhQUFhLEVBQUUsc0hBQXNILHNCQUFzQixhQUFhLGtCQUFrQixvTUFBb00sbUVBQW1FLGtJQUFrSSxhQUFhLDJCQUEyQixzQkFBc0IsSUFBSSxtREFBbUQsaURBQWlELHdFQUF3RSx3QkFBd0Isb0ZBQW9GLFNBQVMsNEJBQTRCLHFCQUFxQixxQkFBcUIsNENBQTRDLDBCQUEwQiw4REFBOEQsK0JBQStCLDJHQUEyRywrQkFBK0Isc0ZBQXNGLDhCQUE4QixvSEFBb0gsMkZBQTJGLDhGQUE4RixLQUFLLFdBQVcsd0JBQXdCLFlBQVksRUFBRSxtSEFBbUgsc0JBQXNCLGFBQWEsYUFBYSx1REFBdUQsTUFBTSxtREFBbUQsYUFBYSxpQkFBaUIsZUFBZSxnQkFBZ0IseUlBQXlJLHlDQUF5QyxnQ0FBZ0MsaUVBQWlFLDJDQUEyQyxZQUFZLGlCQUFpQixLQUFLLDJCQUEyQixpQ0FBaUMsd0JBQXdCLFNBQVMsYUFBYSxRQUFRLEtBQUssbUJBQW1CLEVBQUUsRUFBRSxrQkFBa0IsTUFBTSxRQUFRLFdBQVcsS0FBSyxzQkFBc0IsdUJBQXVCLFlBQVksS0FBMEIsQ0FBQyxJQUFNLENBQUMsQ0FBa0UsRUFBRSxHQUFHLHNCQUFzQixhQUFhLHFCQUFxQixjQUFjLFFBQVEsOENBQThDLGNBQWMsMkVBQTJFLGdFQUFnRSxrQkFBa0Isd0xBQXdMLGtCQUFrQixhQUFhLE1BQU0sSUFBSSxPQUFPLFNBQVMscUJBQXFCLHFGQUFxRixFQUFFLGNBQWMsZ0JBQWdCLHlGQUF5RixzQkFBc0IsZ0JBQWdCLFNBQVMsY0FBYyx3QkFBd0IsY0FBYyx5QkFBeUIsbUJBQW1CLE9BQU8sRUFBRSwrQkFBK0IsZ0JBQWdCLFNBQVMsSUFBSSxnQ0FBZ0MsU0FBUywyQkFBMkIsU0FBUyw0Q0FBNEMsb0NBQW9DLHVCQUF1Qiw2QkFBNkIsc0NBQXNDLFNBQVMsRUFBRSxhQUFhLHNDQUFzQyxRQUFRLEVBQUUsRUFBRSwrQkFBK0IseUJBQXlCLGdDQUFnQywwRkFBMEYsOEJBQThCLGtGQUFrRixTQUFTLHVDQUF1QywwQkFBMEIsNENBQTRDLG1DQUFtQyxzQ0FBc0MseUJBQXlCLDJDQUEyQyxrQ0FBa0MseUJBQXlCLGFBQWEsaURBQWlELGNBQWMsWUFBWSxLQUFLLHNCQUFzQiw4QkFBOEIsTUFBTSw2QkFBNkIsU0FBUyx3QkFBd0Isc0JBQXNCLDhCQUE4QixNQUFNLDRCQUE0QixTQUFTLHVCQUF1Qiw4QkFBOEIsZ0NBQWdDLHNCQUFzQixrQkFBa0IscUJBQXFCLG1CQUFtQixXQUFXLDhHQUE4RyxvQkFBb0IsOEJBQThCLDBDQUEwQyxLQUFLLE1BQU0sV0FBVyxTQUFTLGdCQUFnQiw4QkFBOEIseUNBQXlDLGFBQWEsd0JBQXdCLEdBQUcsb0JBQW9CLFdBQVcsOEdBQThHLG9CQUFvQiw4QkFBOEIsdUJBQXVCLEtBQUssTUFBTSxzQ0FBc0MseUJBQXlCLGFBQWEsd0JBQXdCLEVBQUUsTUFBTSxVQUFVLEVBQUUsYUFBYSxzQkFBc0IsYUFBYSxTQUFTLGtIQUFrSCxFQUFFLHdGQUF3RixzQkFBc0IsYUFBYSxpS0FBaUssY0FBYyx3Q0FBd0MsdUJBQXVCLDJFQUEyRSxNQUFNLEVBQUUsbUJBQW1CLHVNQUF1TSxvRkFBb0YsK0JBQStCLGtFQUFrRSxNQUFNLHdOQUF3TixtQkFBbUIsZ0JBQWdCLGVBQWUsNENBQTRDLGdCQUFnQiwrQkFBK0IsNkNBQTZDLHVCQUF1QiwrS0FBK0ssR0FBRyw0SUFBNEksMkxBQTJMLDhDQUE4QyxtSEFBbUgsZ0NBQWdDLG9CQUFvQiwrQkFBK0IsK0pBQStKLG9EQUFvRCxjQUFjLGdCQUFnQixzQkFBc0IsY0FBYyxrQkFBa0IsRUFBRSxzR0FBc0csc0JBQXNCLGFBQWEsK0xBQStMLGNBQWMsd0NBQXdDLHVCQUF1QixtQ0FBbUMsTUFBTSxFQUFFLG1CQUFtQix5VkFBeVYsNkNBQTZDLG9DQUFvQyw0REFBNEQsZ0JBQWdCLGVBQWUsNENBQTRDLGdCQUFnQiwrQkFBK0Isb0ZBQW9GLHVCQUF1QixzTUFBc00sR0FBRyw4V0FBOFcsK1hBQStYLDJEQUEyRCxzTEFBc0wsZ0NBQWdDLG9CQUFvQiwrQkFBK0Isb0tBQW9LLG9EQUFvRCxjQUFjLGdCQUFnQixZQUFZLEVBQUUsaUpBQWlKLHNCQUFzQixhQUFhLHNHQUFzRyxxQkFBcUIsa0RBQWtELFNBQVMsRUFBRSxnQkFBZ0IsTUFBTSxrRUFBa0UsaURBQWlELFNBQVMsMkJBQTJCLGlFQUFpRSxPQUFPLDZCQUE2QixxREFBcUQsaUJBQWlCLElBQUksa0JBQWtCLDJCQUEyQixnQkFBZ0IscUJBQXFCLElBQUksbUJBQW1CLHlDQUF5QyxJQUFJLGtDQUFrQyxVQUFVLElBQUksNkJBQTZCLFlBQVksSUFBSSxrQkFBa0IsMkJBQTJCLDhCQUE4Qix1QkFBdUIsb0lBQW9JLGVBQWUsR0FBRyxzQkFBc0IsYUFBYSw4QkFBOEIsSUFBSSxvQ0FBb0MsU0FBUyxLQUFLLElBQUksa0RBQWtELFNBQVMsS0FBSyw4QkFBOEIsTUFBTSx3REFBd0QsZ0JBQWdCLG9HQUFvRyxpQkFBaUIsSUFBSSxpQ0FBaUMsU0FBUyx5Q0FBeUMsNkJBQTZCLFFBQVEsSUFBSSwySkFBMkosMEJBQTBCLElBQUksNlFBQTZRLFNBQVMsNkJBQTZCLHFCQUFxQiw2QkFBNkIsOENBQThDLElBQUkseUJBQXlCLFNBQVMsNEJBQTRCLDJDQUEyQyxVQUFVLElBQUksNEJBQTRCLHVDQUF1QyxLQUFLLDJCQUEyQixTQUFTLHNCQUFzQix5RkFBeUYsY0FBYyw0QkFBNEIsTUFBTSxpREFBaUQsc0JBQXNCLEtBQUssc0NBQXNDLEVBQUUsY0FBYyxzQkFBc0IsYUFBYSw0QkFBNEIseUNBQXlDLE1BQU0sRUFBRSxxQkFBcUIseUJBQXlCLEVBQUUsa0JBQWtCLGtCQUFrQixHQUFHLHNCQUFzQixhQUFhLFdBQVcsK1hBQStYLEdBQUcsc0JBQXNCLGFBQWEsaUJBQWlCLG1CQUFtQixNQUFNLEtBQUssSUFBSSxZQUFZLElBQUksaUNBQWlDLE9BQU8sU0FBUyxHQUFHLDRCQUE0QixjQUFjLE1BQU0sWUFBWSxJQUFJLDRCQUE0QixZQUFZLEdBQUcsc0JBQXNCLGFBQWEsOE1BQThNLGdCQUFnQixvQkFBb0IsY0FBYyx1QkFBdUIsY0FBYyxtQkFBbUIsT0FBTyxRQUFRLGNBQWMsMEJBQTBCLGlOQUFpTixnQkFBZ0IscUhBQXFILGdCQUFnQiw2QkFBNkIsZ0JBQWdCLHNFQUFzRSxnQkFBZ0IsNkxBQTZMLG9FQUFvRSxHQUFHLCtEQUErRCxTQUFTLElBQUksbUpBQW1KLHdCQUF3QixrQ0FBa0Msc0JBQXNCLDRCQUE0QixvQ0FBb0MsY0FBYyxtQ0FBbUMsR0FBRywrREFBK0Qsd0dBQXdHLHVDQUF1QyxFQUFFLFVBQVUsdUNBQXVDLEVBQUUsS0FBSyw2QkFBNkIsc1pBQXNaLHNLQUFzSyxHQUFHLDBDQUEwQyxnQkFBZ0IsYUFBYSxFQUFFLGtCQUFrQixzQ0FBc0MseUJBQXlCLDhYQUE4WCxxQkFBcUIsK0tBQStLLEVBQUUsYUFBYSxpSkFBaUosd0VBQXdFLDhDQUE4QyxzSUFBc0ksZ0JBQWdCLGVBQWUsRUFBRSxrQkFBa0Isc0NBQXNDLHlCQUF5Qix5ZUFBeWUsd0lBQXdJLG9MQUFvTCxFQUFFLGtHQUFrRywyQkFBMkIsaUhBQWlILG9EQUFvRCx5TkFBeU4sc0JBQXNCLG1GQUFtRixhQUFhLDhuQ0FBOG5DLGNBQWMsTUFBTSw2TUFBNk0sY0FBYyxXQUFXLDBCQUEwQiw2U0FBNlMsWUFBWSx3QkFBd0IsZUFBZSxRQUFRLDhHQUE4RyxhQUFhLFlBQVksdWVBQXVlLCtCQUErQixZQUFZLHNEQUFzRCxFQUFFLG1CQUFtQix3Q0FBd0MseUJBQXlCLHNDQUFzQyxzQkFBc0Isa0hBQWtILGlGQUFpRixvSEFBb0gsME5BQTBOLHVCQUF1Qix5RkFBeUYsNERBQTRELHlCQUF5QixZQUFZLDRDQUE0Qyx5R0FBeUcsbXJCQUFtckIsS0FBSywyQkFBMkIscUxBQXFMLG9DQUFvQyxnQkFBZ0IsME1BQTBNLGdEQUFnRCwwSUFBMEksaUJBQWlCLG1DQUFtQyxZQUFZLEdBQUcsbUtBQW1LLElBQUksTUFBTSxvRkFBb0YsYUFBYSw4R0FBOEcsaUJBQWlCLHNDQUFzQyxZQUFZLEdBQUcsbUtBQW1LLElBQUksTUFBTSwwRkFBMEYsYUFBYSxtR0FBbUcsa0JBQWtCLGlNQUFpTSxpREFBaUQseURBQXlELGlEQUFpRCwyREFBMkQsbUNBQW1DLFdBQVcsRUFBRSw0Q0FBNEMsa0JBQWtCLE1BQU0sa0lBQWtJLDBHQUEwRyxtQ0FBbUMsNEJBQTRCLEVBQUUsbUJBQW1CLHVDQUF1Qyx5QkFBeUIsMEdBQTBHLGVBQWUsSUFBSSwyR0FBMkcsZ0ZBQWdGLG1QQUFtUCwwR0FBMEcsMkJBQTJCLHlGQUF5RixtTUFBbU0sNlNBQTZTLDBCQUEwQixNQUFNLGtJQUFrSSxzQ0FBc0MsK0JBQStCLHlCQUF5Qix1RUFBdUUsZ1JBQWdSLGVBQWUsRUFBRSxxQ0FBcUMseUhBQXlILEVBQUUsa0NBQWtDLDhMQUE4TCxvREFBb0QsRUFBRSw4RUFBOEUsc0JBQXNCLGFBQWEscUJBQXFCLHdJQUF3SSxHQUFHLHNCQUFzQixhQUFhLHdCQUF3QixzREFBc0QseVBBQXlQLEtBQUsscURBQXFELFFBQVEsRUFBRSx3REFBd0QsS0FBSyxZQUFZLGNBQWMsNEJBQTRCLFdBQVcsU0FBUyxVQUFVLFFBQVEsOENBQThDLFFBQVEsNkhBQTZILFFBQVEsRUFBRSw0Q0FBNEMsY0FBYyw0QkFBNEIsV0FBVyx3Q0FBd0MsUUFBUSx3RkFBd0YsZ0RBQWdELFFBQVEsMEJBQTBCLHNCQUFzQixnREFBZ0QsUUFBUSxrQkFBa0IsZUFBZSxTQUFTLGtCQUFrQixFQUFFLFdBQVcsYUFBYSxzQkFBc0IsU0FBUyxrQkFBa0IsRUFBRSxZQUFZLFdBQVcsa0JBQWtCLEVBQUUsWUFBWSxvQkFBb0IsU0FBUyxrQkFBa0IsRUFBRSxVQUFVLEtBQUssSUFBSSxnREFBZ0Qsd0NBQXdDLEtBQUssVUFBVSxtREFBbUQsRUFBRSx3Q0FBd0MsT0FBTyxPQUFPLGdCQUFnQix5SUFBeUksR0FBRyxzQkFBc0IsYUFBYSwrSEFBK0gsY0FBYyw4REFBOEQsYUFBYSwrZkFBK2YsY0FBYyxNQUFNLDBRQUEwUSxjQUFjLE1BQU0sbUVBQW1FLGdCQUFnQixRQUFRLG1LQUFtSyxnQkFBZ0IsUUFBUSw4RUFBOEUsYUFBYSxjQUFjLE1BQU0sTUFBTSw2Q0FBNkMsTUFBTSxlQUFlLEtBQUssTUFBTSxlQUFlLEtBQUssTUFBTSxlQUFlLEtBQUssTUFBTSxlQUFlLGlDQUFpQyxPQUFPLE1BQU0sS0FBSyxlQUFlLDRCQUE0QixPQUFPLE9BQU8sa0RBQWtELG9CQUFvQixnQkFBZ0Isa1lBQWtZLGtGQUFrRixlQUFlLDBDQUEwQywySEFBMkgsOERBQThELDBJQUEwSSxRQUFRLGdCQUFnQixzQkFBc0IsVUFBVSxNQUFNLEtBQUssS0FBSyxFQUFFLGlCQUFpQixzQkFBc0Isd0JBQXdCLDBFQUEwRSxNQUFNLDZFQUE2RSx5Q0FBeUMsTUFBTSxjQUFjLDZDQUE2QyxNQUFNLGdEQUFnRCxtQkFBbUIsc0NBQXNDLE1BQU0sdURBQXVELE1BQU0sWUFBWSxLQUFLLEVBQUUsaUJBQWlCLHNCQUFzQiwrQkFBK0IsNkNBQTZDLE1BQU0sa0JBQWtCLDJDQUEyQyxNQUFNLDhHQUE4RyxZQUFZLEtBQUssRUFBRSxpQkFBaUIsc0JBQXNCLHlJQUF5SSxZQUFZLEtBQUssRUFBRSxpQkFBaUIsc0JBQXNCLDhIQUE4SCx3QkFBd0IsS0FBSyxLQUFLLEVBQUUsaUJBQWlCLHNCQUFzQixnSEFBZ0gsaUNBQWlDLFNBQVMsb1FBQW9RLG9CQUFvQix3QkFBd0IsaUJBQWlCLFFBQVEsbUZBQW1GLEVBQUUsK0RBQStELGdDQUFnQyxvQkFBb0Isd0JBQXdCLGlCQUFpQixRQUFRLHNGQUFzRixFQUFFLCtEQUErRCxtQ0FBbUMsU0FBUyx1QkFBdUIsS0FBSyxLQUFLLEVBQUUsaUJBQWlCLHNCQUFzQix3QkFBd0Isc0NBQXNDLE1BQU0sTUFBTSw4RUFBOEUsTUFBTSxhQUFhLEtBQUssRUFBRSxpQkFBaUIsc0JBQXNCLHFDQUFxQyx5R0FBeUcsNEJBQTRCLGdDQUFnQyxtQkFBbUIsMEJBQTBCLE1BQU0sS0FBSyxJQUFJLEVBQUUsaUJBQWlCLHNCQUFzQixtQ0FBbUMsaUJBQWlCLE1BQU0scUNBQXFDLFlBQVksUUFBUSxpQkFBaUIsTUFBTSw0Q0FBNEMsWUFBWSxNQUFNLDRCQUE0QixLQUFLLEVBQUUsaUJBQWlCLHNCQUFzQiw4QkFBOEIsK0NBQStDLE1BQU0sa0RBQWtELGtCQUFrQix1QkFBdUIsdUNBQXVDLHNEQUFzRCxNQUFNLFVBQVUsTUFBTSxhQUFhLEtBQUssRUFBRSxpQkFBaUIsc0JBQXNCLG1IQUFtSCxzREFBc0QsTUFBTSxtQkFBbUIsYUFBYSxlQUFlLEVBQUUsS0FBSyxJQUFJLEVBQUUsaUJBQWlCLHNCQUFzQixvQ0FBb0MsS0FBSyxVQUFVLHVCQUF1QixxQ0FBcUMsZUFBZSw2REFBNkQsMkNBQTJDLE1BQU0sbUJBQW1CLGFBQWEsc0JBQXNCLEVBQUUsS0FBSyx3RUFBd0UsRUFBRSxpQkFBaUIsc0JBQXNCLHVDQUF1QyxLQUFLLFdBQVcsVUFBVSxJQUFJLEVBQUUsaUJBQWlCLHNCQUFzQiwyQkFBMkIsNENBQTRDLE1BQU0seUNBQXlDLGdCQUFnQixVQUFVLElBQUksRUFBRSxpQkFBaUIsc0JBQXNCLHNDQUFzQyxLQUFLLFVBQVUsSUFBSSxFQUFFLGlCQUFpQixzQkFBc0IseUNBQXlDLDRCQUE0Qiw0Q0FBNEMsTUFBTSxLQUFLLElBQUkscUJBQXFCLHFCQUFxQixvQkFBb0IsdURBQXVELE1BQU0sa0JBQWtCLGVBQWUsaUVBQWlFLDhDQUE4QyxNQUFNLHdDQUF3QyxnQkFBZ0IseUVBQXlFLHdDQUF3QyxNQUFNLDJCQUEyQixrQkFBa0IseUJBQXlCLGlNQUFpTSxNQUFNLGFBQWEsd0VBQXdFLEVBQUUsaUJBQWlCLHNCQUFzQixrQkFBa0IsZ0JBQWdCLDZFQUE2RSxFQUFFLGlCQUFpQixzQkFBc0Isc0JBQXNCLDJDQUEyQyxVQUFVLE1BQU0sU0FBUyxvQkFBb0IsTUFBTSxTQUFTLDhDQUE4QyxNQUFNLHVCQUF1QixvQkFBb0IsY0FBYyxJQUFJLEVBQUUsaUJBQWlCLHNCQUFzQixtRUFBbUUseUJBQXlCLGFBQWEsMEVBQTBFLEVBQUUsaUJBQWlCLHNCQUFzQixlQUFlLGdCQUFnQiw4RUFBOEUsRUFBRSxpQkFBaUIsc0JBQXNCLHNCQUFzQiwrQkFBK0Isd0NBQXdDLE1BQU0sa0NBQWtDLG9CQUFvQixjQUFjLElBQUksRUFBRSxpQkFBaUIsc0JBQXNCLG1FQUFtRSxvQkFBb0IsZ0RBQWdELE1BQU0sVUFBVSx5QkFBeUIscUJBQXFCLG1DQUFtQyxnREFBZ0QsTUFBTSxpRkFBaUYsaUNBQWlDLGdDQUFnQyxrQkFBa0IsRUFBRSwwQkFBMEIsTUFBTSx5QkFBeUIsOEJBQThCLE1BQU0sbUJBQW1CLEtBQUssS0FBSyxFQUFFLGlCQUFpQixzQkFBc0IscUlBQXFJLHVDQUF1QyxNQUFNLE1BQU0sVUFBVSw0QkFBNEIsS0FBSyxLQUFLLEVBQUUsaUJBQWlCLHNCQUFzQiw2QkFBNkIseUNBQXlDLE1BQU0sTUFBTSxVQUFVLFlBQVksUUFBUSxhQUFhLFFBQVEsaUJBQWlCLHlCQUF5Qiw4ZEFBOGQsMEJBQTBCLHlCQUF5QixjQUFjLGdEQUFnRCxrQ0FBa0MsTUFBTSxxRUFBcUUsc0NBQXNDLGlCQUFpQix3SUFBd0ksb0RBQW9ELEVBQUUsZ0ZBQWdGLHNCQUFzQixhQUFhLHNiQUFzYixvQ0FBb0MsaUlBQWlJLFFBQVEsTUFBTSxXQUFXLFFBQVEsSUFBSSxnQkFBZ0IsYUFBYSxlQUFlLEtBQUssc0VBQXNFLFFBQVEsY0FBYyxLQUFLLHFCQUFxQixNQUFNLGtDQUFrQyxnQ0FBZ0MsZUFBZSxLQUFLLHFCQUFxQixRQUFRLElBQUksbUNBQW1DLCtJQUErSSxNQUFNLEVBQUUsd0ZBQXdGLHlDQUF5QyxFQUFFLGFBQWEsSUFBSSxPQUFPLDBDQUEwQyxlQUFlLFlBQVksbUJBQW1CLG1DQUFtQyx5QkFBeUIsV0FBVywrQ0FBK0MsNEJBQTRCLG9EQUFvRCxFQUFFLHFCQUFxQixzQkFBc0IsYUFBYSxXQUFXLDRLQUE0SyxHQUFHLHNCQUFzQixhQUFhLG1DQUFtQyxjQUFjLG1CQUFtQixPQUFPLFFBQVEsd1VBQXdVLEtBQUsscUJBQXFCLEtBQUsscUJBQXFCLEtBQUsscUJBQXFCLEtBQUssbUJBQW1CLEtBQUsseUJBQXlCLHNCQUFzQixpSEFBaUgsZ0JBQWdCLGlEQUFpRCxjQUFjLGlDQUFpQyxnQkFBZ0Isc0VBQXNFLGtCQUFrQixvSkFBb0osa0JBQWtCLHFCQUFxQixnQkFBZ0IsWUFBWSwwQkFBMEIsRUFBRSxhQUFhLGtCQUFrQiw2QkFBNkIsUUFBUSxLQUFLLHVCQUF1QixRQUFRLEtBQUssS0FBSyxlQUFlLDZCQUE2QixjQUFjLE1BQU0sUUFBUSxJQUFJLHVCQUF1QixRQUFRLElBQUksdUJBQXVCLFFBQVEsSUFBSSxxQkFBcUIsbUVBQW1FLGNBQWMsdUdBQXVHLG9CQUFvQixnQkFBZ0IsMENBQTBDLGtCQUFrQiwyQkFBMkIsaUdBQWlHLCtCQUErQixZQUFZLGtCQUFrQixnQkFBZ0IsdUJBQXVCLHdOQUF3TixFQUFFLFNBQVMsZ0JBQWdCLGtHQUFrRyxrQ0FBa0MsSUFBSSxrRUFBa0UsS0FBSyxhQUFhLGdHQUFnRyxpQ0FBaUMsS0FBSyxhQUFhLFFBQVEsd1BBQXdQLEVBQUUsNkNBQTZDLDJLQUEySyxRQUFRLEtBQUssb0JBQW9CLCtDQUErQyxJQUFJLHdLQUF3SyxVQUFVLEdBQUcsVUFBVSxrQkFBa0IsS0FBSyx3REFBd0QsV0FBVyxRQUFRLE1BQU0sd0JBQXdCLE1BQU0scUZBQXFGLHdCQUF3QixrQkFBa0IsZ0NBQWdDLDhDQUE4QyxLQUFLLHNNQUFzTSxrQkFBa0IsZ0NBQWdDLDJCQUEyQixLQUFLLDJDQUEyQyxZQUFZLHdCQUF3QixFQUFFLDBJQUEwSSxpREFBaUQsS0FBSyxTQUFTLG9CQUFvQix3Q0FBd0MsdUZBQXVGLFdBQVcsdUJBQXVCLGVBQWUsK0JBQStCLFVBQVUsTUFBTSxtQkFBbUIsVUFBVSxhQUFhLG1CQUFtQixLQUFLLG1CQUFtQixVQUFVLGFBQWEsVUFBVSxJQUFJLHNCQUFzQixZQUFZLGlCQUFpQixRQUFRLEtBQUssV0FBVyxRQUFRLE9BQU8sdUJBQXVCLEtBQUssT0FBTyx1QkFBdUIsS0FBSyxPQUFPLHVCQUF1QixLQUFLLE9BQU8sdUJBQXVCLG1CQUFtQixJQUFJLDZCQUE2QixzRUFBc0UsK0hBQStILDBEQUEwRCxZQUFZLCtEQUErRCxtQkFBbUIsUUFBUSxNQUFNLGlEQUFpRCwwRUFBMEUsU0FBUyxJQUFJLHFDQUFxQyxTQUFTLCtDQUErQyxNQUFNLCtGQUErRiw4QkFBOEIsS0FBSyxrQ0FBa0Msb0xBQW9MLE1BQU0sMkNBQTJDLElBQUksK0JBQStCLDBDQUEwQywyRkFBMkYsNkJBQTZCLGdSQUFnUix5QkFBeUIsOEJBQThCLDRJQUE0SSxLQUFLLEVBQUUscUJBQXFCLHNCQUFzQixhQUFhLHFCQUFxQiw2TEFBNkwsR0FBRyxzQkFBc0IsYUFBYSxlQUFlLGFBQWEsb0JBQW9CLG9CQUFvQixxRUFBcUUsK0NBQStDLHNDQUFzQyw0QkFBNEIsS0FBSyxFQUFFLFlBQVksb0NBQW9DLHVCQUF1Qiw4QkFBOEIsS0FBSyx3Q0FBd0MsdUlBQXVJLHVCQUF1Qix1RUFBdUUsVUFBVSxhQUFhLHVCQUF1Qix1RkFBdUYsZ0NBQWdDLGdDQUFnQyx1REFBdUQsa0JBQWtCLGNBQWMsa0JBQWtCLDRCQUE0Qiw2Q0FBNkMsNENBQTRDLFdBQVcsd0JBQXdCLE9BQU8sbUJBQW1CLHVCQUF1QixvQkFBb0IsY0FBYyxZQUFZLGNBQWMsdUJBQXVCLEtBQUssV0FBVyxNQUFNLEtBQUssSUFBSSxhQUFhLDBCQUEwQixpQkFBaUIsV0FBVyxNQUFNLGVBQWUsTUFBTSxvQkFBb0IsTUFBTSx5QkFBeUIsTUFBTSxzQkFBc0IsSUFBSSxRQUFRLGFBQWEsY0FBYywwRkFBMEYsa0RBQWtELFlBQVksS0FBMEIsQ0FBQyxJQUFNLENBQUMsQ0FBa0UsRUFBRSxHQUFHLEVBQUUsR0FBRyxXQUFXOzs7Ozs7Ozs7OztBQ1o1OTlGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7QUFFYixJQUFJLElBQXFDO0FBQ3pDOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsbUJBQU8sQ0FBQyxnREFBTztBQUNyQyxnQkFBZ0IsbUJBQU8sQ0FBQyx3REFBVzs7QUFFbkM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSw2RkFBNkYsYUFBYTtBQUMxRztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUdBQWlHLGVBQWU7QUFDaEg7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTtBQUNBLEtBQUssR0FBRzs7QUFFUixrREFBa0Q7QUFDbEQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGdDQUFnQzs7QUFFaEMsa0JBQWtCOztBQUVsQixvQkFBb0I7O0FBRXBCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEscURBQXFEO0FBQ3JEOztBQUVBLGlDQUFpQzs7QUFFakMsMENBQTBDOztBQUUxQyxnQ0FBZ0M7O0FBRWhDLDZDQUE2QztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwyQ0FBMkM7QUFDM0M7QUFDQTtBQUNBOztBQUVBLGdEQUFnRDtBQUNoRCxpQ0FBaUM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7O0FBRUEscUNBQXFDOztBQUVyQyxnQ0FBZ0M7O0FBRWhDLHNDQUFzQzs7QUFFdEM7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7O0FBRUEsc0NBQXNDOztBQUV0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWtCLHlCQUF5QjtBQUMzQztBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSx3Q0FBd0M7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHdDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSx3Q0FBd0M7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHdDQUF3QztBQUN4QztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjs7QUFFQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBOztBQUVBLDJCQUEyQjtBQUMzQjtBQUNBOztBQUVBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7O0FBRUEsNEJBQTRCO0FBQzVCOztBQUVBLGlCQUFpQjtBQUNqQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7OztBQUdBLHFCQUFxQjs7QUFFckI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRztBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRzs7QUFFSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEdBQUc7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHOztBQUVKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRzs7QUFFSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHOztBQUVKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEdBQUc7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRztBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsWUFBWTs7O0FBR1o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQSw4REFBOEQ7QUFDOUQsUUFBUTtBQUNSO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxZQUFZO0FBQ3ZCLFdBQVcsUUFBUTtBQUNuQixXQUFXLEdBQUc7QUFDZDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUM7O0FBRXZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTOztBQUVUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBLFNBQVM7QUFDVCx1QkFBdUI7QUFDdkI7QUFDQSxTQUFTO0FBQ1QsdUJBQXVCO0FBQ3ZCO0FBQ0EsU0FBUztBQUNULHdCQUF3QjtBQUN4QjtBQUNBLFNBQVM7QUFDVCx3QkFBd0I7QUFDeEI7QUFDQSxTQUFTO0FBQ1QsaUNBQWlDO0FBQ2pDO0FBQ0EsU0FBUztBQUNULDJCQUEyQjtBQUMzQjtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDJEQUEyRDs7QUFFM0Q7QUFDQTs7QUFFQTtBQUNBLHlEQUF5RDtBQUN6RDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUzs7O0FBR1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsYUFBYSxrQkFBa0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjs7QUFFQTtBQUNBO0FBQ0EsZ0ZBQWdGO0FBQ2hGO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjs7O0FBR2xCO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJOzs7QUFHSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEVBQUU7OztBQUdGO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLGdEQUFnRDtBQUNoRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsNENBQTRDO0FBQzVDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsR0FBRztBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsa0NBQWtDO0FBQ2xDOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCOztBQUVBO0FBQ0E7QUFDQSwwREFBMEQ7QUFDMUQ7O0FBRUE7QUFDQTtBQUNBOztBQUVBLGtFQUFrRTtBQUNsRTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsb0JBQW9CLGtCQUFrQjtBQUN0Qzs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0EsK0JBQStCO0FBQy9COzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSOzs7QUFHQSx1Q0FBdUM7QUFDdkM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsU0FBUztBQUNULFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsaUNBQWlDOztBQUVqQztBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLG9CQUFvQiwyQkFBMkI7QUFDL0M7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxvQkFBb0IsMkJBQTJCO0FBQy9DO0FBQ0E7QUFDQTs7QUFFQSxxQkFBcUIscUJBQXFCO0FBQzFDOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsc0JBQXNCLHNCQUFzQjtBQUM1QztBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLGtDQUFrQzs7QUFFbEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DOztBQUVwQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0Qjs7QUFFQSxzQ0FBc0M7QUFDdEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDO0FBQ3JDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGtEQUFrRDs7QUFFbEQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsWUFBWTtBQUN2QixXQUFXLFFBQVE7QUFDbkI7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFlBQVk7QUFDdkIsV0FBVyxRQUFRO0FBQ25CO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBLDZDQUE2QztBQUM3Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsR0FBRztBQUNkLFlBQVksUUFBUTtBQUNwQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QjtBQUN6Qjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCOztBQUUvQiw0Q0FBNEM7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFlBQVk7QUFDdkIsV0FBVyxRQUFRO0FBQ25COztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsa0NBQWtDO0FBQzVDO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsb0JBQW9CLHNCQUFzQjtBQUMxQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLGlDQUFpQyxJQUFJO0FBQzNDO0FBQ0E7QUFDQSxNQUFNLGlDQUFpQyxJQUFJO0FBQzNDO0FBQ0EsNkRBQTZEO0FBQzdELE1BQU0saUNBQWlDLElBQUk7QUFDM0M7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBLDZOQUE2TjtBQUM3TjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLENBQUM7O0FBRUQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDZFQUE2RSxZQUFZO0FBQ3pGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGlJQUFpSSw4QkFBOEI7QUFDL0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxtRkFBbUY7QUFDbkY7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUSwwQ0FBMEM7OztBQUdsRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxnR0FBZ0c7QUFDaEc7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUSwwQ0FBMEM7OztBQUdsRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsOEVBQThFOztBQUU5RTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHNKQUFzSixpQkFBaUI7QUFDdkssUUFBUTtBQUNSLHNKQUFzSixpQkFBaUIsd0RBQXdELG1CQUFtQixnQkFBZ0IsK0JBQStCO0FBQ2pTOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047OztBQUdBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBLG9HQUFvRyxHQUFHOztBQUV2RztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFlBQVksZ0JBQWdCO0FBQzVCOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHVFQUF1RTs7QUFFdkU7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLDhDQUE4Qzs7QUFFOUM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0JBQW9CLDBCQUEwQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFlBQVksV0FBVztBQUN2Qjs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsMkNBQTJDO0FBQzNDOztBQUVBO0FBQ0E7QUFDQSxzQkFBc0I7O0FBRXRCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsMkJBQTJCO0FBQzNCO0FBQ0E7O0FBRUEsc0NBQXNDO0FBQ3RDOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvRUFBb0U7QUFDcEU7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBLGlCQUFpQjs7QUFFakI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxlQUFlO0FBQzdCO0FBQ0E7QUFDQTtBQUNBLFFBQVE7OztBQUdSLHdFQUF3RTs7QUFFeEU7QUFDQSwrREFBK0Q7QUFDL0Q7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxRQUFROzs7QUFHUjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0Esd0JBQXdCOztBQUV4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFVBQVU7QUFDckIsV0FBVyxHQUFHO0FBQ2QsV0FBVyxNQUFNO0FBQ2pCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsVUFBVTtBQUNyQixXQUFXLEdBQUc7QUFDZCxXQUFXLE1BQU07QUFDakI7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJGQUEyRjs7QUFFM0Y7QUFDQTtBQUNBLE9BQU87O0FBRVA7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RDs7QUFFdkQsMkNBQTJDO0FBQzNDO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNO0FBQ04sSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFROzs7QUFHUjtBQUNBLE1BQU07QUFDTjtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsUUFBUTtBQUNSOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBLHlDQUF5Qzs7QUFFekM7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHdCQUF3QixvQkFBb0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxREFBcUQ7QUFDckQ7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFROzs7QUFHUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esc0NBQXNDO0FBQ3RDOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyREFBMkQ7QUFDM0Q7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEM7QUFDOUM7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTtBQUNGOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQztBQUMzQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxrQkFBa0IsZ0JBQWdCO0FBQ2xDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFFQUFxRTtBQUNyRTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHVDQUF1QztBQUN2Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1Qzs7QUFFdkM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0M7O0FBRXRDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOENBQThDOztBQUU5Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGOztBQUVBLHVDQUF1Qzs7QUFFdkMsK0JBQStCO0FBQy9COztBQUVBO0FBQ0E7QUFDQSx3QkFBd0I7O0FBRXhCO0FBQ0EsdUNBQXVDOztBQUV2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7O0FBRUE7QUFDQSwwRUFBMEU7QUFDMUU7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsU0FBUywyQ0FBMkM7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHdDQUF3QztBQUN4QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUVBQXFFO0FBQ3JFO0FBQ0E7O0FBRUEsb0JBQW9CLGlDQUFpQztBQUNyRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLG1CQUFtQiw0Q0FBNEM7QUFDL0Q7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsNEVBQTRFOztBQUU1RSxxQkFBcUI7QUFDckI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7O0FBRUEsOEJBQThCO0FBQzlCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7O0FBR0E7QUFDQSxRQUFRO0FBQ1I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtDQUFrQzs7QUFFbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWtCLHFCQUFxQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxnQkFBZ0IsZUFBZTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EscUNBQXFDOztBQUVyQztBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsZ0NBQWdDO0FBQ2hDLFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsaUNBQWlDO0FBQ2pDLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQixLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixTQUFTO0FBQ3pCO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsZ0NBQWdDO0FBQ2hDO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7O0FBR0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxrQ0FBa0M7QUFDbEM7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsbUNBQW1DO0FBQ25DO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsdUNBQXVDO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSx1Q0FBdUM7QUFDdkM7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHlDQUF5QztBQUN6QztBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0Esa0RBQWtEO0FBQ2xEOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0Esc0NBQXNDO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSx3Q0FBd0M7QUFDeEM7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDs7QUFFQSxvQ0FBb0M7O0FBRXBDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7OztBQUdBLGdGQUFnRjtBQUNoRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7O0FBR0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFlBQVk7QUFDWjs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFlBQVk7QUFDWjs7O0FBR0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGO0FBQ0E7QUFDQSxZQUFZLFNBQVM7QUFDckI7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9DQUFvQztBQUNwQztBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxTQUFTO0FBQ3JCOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFlBQVksU0FBUztBQUNyQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNENBQTRDO0FBQzVDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw4R0FBOEc7QUFDOUc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFdBQVc7O0FBRVg7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7OztBQUdKLGtCQUFrQixrQkFBa0I7QUFDcEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLHdCQUF3QjtBQUNuQyxZQUFZO0FBQ1o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyx3QkFBd0I7QUFDbkMsWUFBWTtBQUNaOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsd0JBQXdCO0FBQ25DLFdBQVcsUUFBUTtBQUNuQixZQUFZO0FBQ1o7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxXQUFXLFlBQVk7QUFDdkIsWUFBWTtBQUNaOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFlBQVk7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7OztBQUdSO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsd0JBQXdCO0FBQ25DLFdBQVcsUUFBUTtBQUNuQjs7QUFFQTtBQUNBO0FBQ0EsOENBQThDO0FBQzlDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLCtFQUErRTtBQUMvRTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxvQkFBb0Isc0JBQXNCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFlBQVk7QUFDWjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLCtDQUErQztBQUMvQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhO0FBQ2I7OztBQUdBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSw0Q0FBNEM7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGtCQUFrQixvQ0FBb0M7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJHQUEyRztBQUMzRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRiwyVEFBMlQ7QUFDM1Q7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLCtDQUErQyxRQUFRO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0oscUJBQXFCLCtCQUErQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLGtCQUFrQiwwQkFBMEI7QUFDNUM7QUFDQTtBQUNBO0FBQ0Esd0VBQXdFO0FBQ3hFLElBQUk7OztBQUdKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsMEdBQTBHO0FBQzFHOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwyQkFBMkI7OztBQUczQjtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsK0NBQStDOztBQUUvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0M7O0FBRWhDO0FBQ0E7QUFDQTtBQUNBLDhCQUE4Qjs7QUFFOUI7QUFDQSxxQ0FBcUM7OztBQUdyQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7O0FBRUE7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4Qjs7QUFFOUI7QUFDQTtBQUNBO0FBQ0EsOEJBQThCOztBQUU5QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsMEJBQTBCLE9BQU87QUFDakM7QUFDQTs7QUFFQTs7QUFFQSwwQkFBMEIsT0FBTztBQUNqQztBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsaUlBQWlJLG1CQUFtQixnQkFBZ0IsK0JBQStCO0FBQ25NLE1BQU07QUFDTjtBQUNBO0FBQ0EsS0FBSztBQUNMOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7OztBQUdSO0FBQ0EsTUFBTTtBQUNOOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxNQUFNLG9HQUFvRyxrQ0FBa0M7QUFDNUk7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGtCQUFrQiwwQkFBMEI7QUFDNUM7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNEJBQTRCO0FBQzVCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDZEQUE2RDtBQUM3RDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxnREFBZ0Q7QUFDaEQ7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRDtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQiw0QkFBNEI7QUFDbEQ7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxrREFBa0Q7QUFDbEQ7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esb0RBQW9EO0FBQ3BEOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9EQUFvRDtBQUNwRDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sMkVBQTJFLG9HQUFvRyxrQ0FBa0M7QUFDdk47QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVOzs7QUFHVjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTSxvR0FBb0c7QUFDMUc7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG1FQUFtRTs7QUFFbkUsK0ZBQStGO0FBQy9GOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQiw0QkFBNEI7QUFDbEQ7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDhDQUE4QztBQUM5Qzs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdEQUFnRDtBQUNoRDs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsZ0RBQWdEO0FBQ2hEOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEscUJBQXFCLHdCQUF3QjtBQUM3Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUEsMkRBQTJEO0FBQzNEO0FBQ0EsZ0ZBQWdGO0FBQ2hGO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDOztBQUUvQztBQUNBLGNBQWM7OztBQUdkO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBEQUEwRDtBQUMxRDtBQUNBO0FBQ0Esd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBLDJ2QkFBMnZCOztBQUUzdkI7QUFDQTtBQUNBO0FBQ0EscUNBQXFDOztBQUVyQyx3REFBd0Q7O0FBRXhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnQ0FBZ0M7O0FBRWhDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esd0VBQXdFO0FBQ3hFO0FBQ0E7QUFDQSxFQUFFLG1CQUFtQjs7QUFFckI7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5RUFBeUU7QUFDekU7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQjtBQUMvQjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxnREFBZ0Q7O0FBRWhEO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJLGNBQWM7QUFDbEI7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGdCQUFnQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsU0FBUyxjQUFjO0FBQ3ZCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1REFBdUQ7QUFDdkQ7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkRBQTJEO0FBQzNEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDO0FBQzNDO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUk7OztBQUdKO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7O0FBRUE7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSwrQ0FBK0M7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLCtDQUErQztBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsK0NBQStDO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBOzs7QUFHQSwwRUFBMEU7QUFDMUU7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwySEFBMkg7QUFDM0g7QUFDQTtBQUNBOztBQUVBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxvRUFBb0U7O0FBRXBFO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEVBQUU7OztBQUdGLDJEQUEyRDs7QUFFM0QscURBQXFEO0FBQ3JEO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0Q7QUFDcEQ7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxvQkFBb0I7QUFDcEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0E7O0FBRUEsMkhBQTJIO0FBQzNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwRUFBMEU7QUFDMUU7O0FBRUE7QUFDQSwrQ0FBK0M7O0FBRS9DO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esb0VBQW9FO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7O0FBRUE7O0FBRUEsYUFBYSxrQkFBa0I7QUFDL0I7O0FBRUE7QUFDQTtBQUNBLFVBQVU7QUFDVjs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLFFBQVE7OztBQUdSO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQztBQUMxQyxnQkFBZ0I7O0FBRWhCO0FBQ0E7QUFDQTtBQUNBLHlEQUF5RDtBQUN6RDs7QUFFQTtBQUNBO0FBQ0Esd0VBQXdFO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQ7O0FBRTVELDJEQUEyRDs7QUFFM0QsK0RBQStEOztBQUUvRDtBQUNBLDhEQUE4RDtBQUM5RDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCOztBQUVBLGtDQUFrQzs7QUFFbEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esd0NBQXdDOztBQUV4QztBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDO0FBQy9DO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0M7QUFDeEM7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLHNKQUFzSjs7QUFFdEoscUNBQXFDO0FBQ3JDOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsOERBQThEO0FBQzlELHFEQUFxRDtBQUNyRCwyREFBMkQ7QUFDM0QsMkNBQTJDO0FBQzNDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRDs7QUFFdEQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLE1BQU07QUFDTjs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSwrQ0FBK0M7O0FBRS9DOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSw0QkFBNEI7O0FBRTVCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBLHdDQUF3QztBQUN4QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHNGQUFzRjs7QUFFdEYsNERBQTREO0FBQzVEOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7OztBQUdWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7OztBQUdWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBLDhDQUE4QztBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7OztBQUdSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsNkJBQTZCO0FBQ2pEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCOztBQUVBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7O0FBRUE7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7O0FBRUE7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUEsa0NBQWtDO0FBQ2xDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0Esd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGdFQUFnRTs7QUFFaEU7QUFDQSx1Q0FBdUM7QUFDdkM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQzs7QUFFMUM7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBOztBQUVBO0FBQ0EsVUFBVSx5QkFBeUI7OztBQUduQztBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxVQUFVOzs7QUFHVjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7O0FBR1Ysd0JBQXdCO0FBQ3hCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDZDQUE2Qzs7QUFFN0M7O0FBRUE7QUFDQSxpQ0FBaUM7QUFDakM7O0FBRUE7QUFDQTtBQUNBLG1DQUFtQzs7QUFFbkM7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBLHdDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0Esb0NBQW9DO0FBQ3BDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVOzs7QUFHVjtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7O0FBR1Y7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsOENBQThDO0FBQzlDO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1IsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QztBQUN4Qzs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG9CQUFvQixvQkFBb0I7QUFDeEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrQkFBK0I7QUFDL0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJOzs7QUFHSixpR0FBaUc7QUFDakcsZ0RBQWdEO0FBQ2hEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVDQUF1Qzs7QUFFdkM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSw4SUFBOEk7O0FBRTlJO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxVQUFVO0FBQ1Ysa0VBQWtFLDRDQUE0QztBQUM5Rzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsMkNBQTJDOztBQUUzQztBQUNBO0FBQ0E7O0FBRUE7QUFDQSw2Q0FBNkM7QUFDN0MsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTs7O0FBR0Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0Esc0RBQXNEO0FBQ3REOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0EsbUlBQW1JO0FBQ25JO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNO0FBQ047OztBQUdBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7O0FBR0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxtSUFBbUk7QUFDbkk7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7O0FBR0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFROzs7QUFHUjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEscUNBQXFDOztBQUVyQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDhIQUE4SCx5Q0FBeUM7QUFDdks7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHNCQUFzQix3QkFBd0I7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFdBQVcsa0RBQWtEO0FBQzdEO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLDZCQUE2QjtBQUMxQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07OztBQUdOLHdFQUF3RTs7QUFFeEUsV0FBVyw2QkFBNkI7QUFDeEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxRQUFROzs7QUFHUjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFFBQVE7QUFDUjs7O0FBR0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQSxlQUFlLGFBQWE7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsV0FBVyxpQ0FBaUM7QUFDNUM7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsWUFBWTtBQUN6Qjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07OztBQUdOLHdFQUF3RTs7QUFFeEUsV0FBVyxZQUFZO0FBQ3ZCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVOzs7QUFHVjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDLE1BQU07QUFDbkQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EscUNBQXFDOztBQUVyQztBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQ7QUFDMUQ7O0FBRUEsK0NBQStDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsOERBQThEOztBQUU5RDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSw4REFBOEQ7O0FBRTlEO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLGdDQUFnQztBQUNoQztBQUNBO0FBQ0E7O0FBRUEsb0NBQW9DO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSx3Q0FBd0M7QUFDeEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSw0Q0FBNEM7O0FBRTVDO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGtCQUFrQixrQ0FBa0M7QUFDcEQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsbURBQW1EO0FBQ25EOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDJCQUEyQjtBQUMzQjs7QUFFQSxzQ0FBc0M7QUFDdEM7QUFDQTtBQUNBOztBQUVBO0FBQ0EsK0JBQStCO0FBQy9CLG9EQUFvRDtBQUNwRDtBQUNBOztBQUVBLDBDQUEwQztBQUMxQztBQUNBO0FBQ0E7O0FBRUEsd0RBQXdEOztBQUV4RCx3QkFBd0I7QUFDeEI7QUFDQTs7QUFFQTtBQUNBLDBCQUEwQjs7QUFFMUIsaUNBQWlDO0FBQ2pDO0FBQ0E7O0FBRUE7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSx3QkFBd0IsOEJBQThCO0FBQ3REO0FBQ0E7QUFDQSxnREFBZ0Q7QUFDaEQ7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtCQUFrQiw0Q0FBNEM7QUFDOUQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGtDQUFrQzs7QUFFbEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esa0NBQWtDO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBLDhDQUE4Qzs7QUFFOUM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7OztBQUdSO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLElBQUk7QUFDSjs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSx3Q0FBd0M7QUFDeEM7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUVBQXFFO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9EQUFvRDtBQUNwRDs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNkJBQTZCOztBQUU3QixxQ0FBcUM7O0FBRXJDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7O0FBR0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7OztBQUdWO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTs7QUFFTjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7O0FBR0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSx1Q0FBdUM7QUFDdkM7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLDJDQUEyQztBQUNqRDs7O0FBR0E7QUFDQTtBQUNBOztBQUVBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7O0FBRXJCLGlGQUFpRjtBQUNqRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHlDQUF5QztBQUN6QztBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrRkFBa0Y7QUFDbEY7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0lBQWdJO0FBQ2hJO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7OztBQUdMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQSx5S0FBeUssMENBQTBDO0FBQ25OO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBOztBQUVBLDhDQUE4QztBQUM5QztBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNENBQTRDO0FBQzVDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07OztBQUdOO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DOzs7QUFHbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esc0NBQXNDO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSw4QkFBOEI7O0FBRTlCLGdEQUFnRDtBQUNoRDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxzRUFBc0U7QUFDdEU7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxlQUFlO0FBQ3pCLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxFQUFFOzs7QUFHRjtBQUNBO0FBQ0Esa0NBQWtDO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGdFQUFnRTs7QUFFaEU7QUFDQSxpQ0FBaUM7QUFDakM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLGdDQUFnQztBQUNoQzs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EseURBQXlEO0FBQ3pEOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxRQUFRLElBQUk7QUFDWjtBQUNBO0FBQ0Esd0RBQXdEO0FBQ3hEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTs7O0FBR0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7O0FBRUEsaUhBQWlIO0FBQ2pIO0FBQ0E7QUFDQTs7QUFFQSx5Q0FBeUM7QUFDekMsTUFBTSxLQUFLLEVBS047QUFDTCxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxnREFBZ0Q7O0FBRWhELDhCQUE4QjtBQUM5Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPOztBQUVQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7O0FBR0E7QUFDQSxJQUFJOztBQUVKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EseURBQXlEO0FBQ3pEO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0EsMkNBQTJDO0FBQzNDOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0E7QUFDQSw0R0FBNEc7QUFDNUc7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTs7O0FBR0EsaVFBQWlRO0FBQ2pROztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBLGdGQUFnRjtBQUNoRjtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwrR0FBK0c7QUFDL0c7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUEsMEVBQTBFOztBQUUxRTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQ7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlHQUFpRztBQUNqRztBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsZ0NBQWdDOztBQUVoQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsb0NBQW9DOztBQUVwQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxnREFBZ0Q7O0FBRWhEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVOzs7QUFHVjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOLG1DQUFtQztBQUNuQzs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQSxRQUFROzs7QUFHUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0Q7O0FBRWxEOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQztBQUMxQzs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsaURBQWlEOztBQUVqRDtBQUNBO0FBQ0EseUVBQXlFOztBQUV6RTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsdUVBQXVFOztBQUV2RTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLDJDQUEyQzs7QUFFM0M7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQSxpREFBaUQ7O0FBRWpEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0Q7QUFDbEQ7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOztBQUVBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDOztBQUVqQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0Esc0VBQXNFOztBQUV0RSx1Q0FBdUM7QUFDdkM7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR04seUNBQXlDOztBQUV6QztBQUNBLHVDQUF1QztBQUN2QztBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsK0NBQStDOztBQUUvQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx3REFBd0Q7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0RBQXNEOztBQUV0RDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0Q7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7O0FBR0E7QUFDQSxJQUFJO0FBQ0osK0dBQStHO0FBQy9HO0FBQ0EseUJBQXlCOztBQUV6QjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0osZ0dBQWdHO0FBQ2hHOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSiwwRUFBMEU7O0FBRTFFO0FBQ0E7QUFDQSw0RkFBNEY7QUFDNUY7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1R0FBdUc7QUFDdkc7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQ7O0FBRTVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTs7QUFFQTs7QUFFQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEM7O0FBRTFDLDRDQUE0Qzs7QUFFNUM7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLGdHQUFnRztBQUNoRztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSw0Q0FBNEM7QUFDNUM7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxvQ0FBb0M7O0FBRXBDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxRQUFRO0FBQ1I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLHlOQUF5TixHQUFHOztBQUU1TjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixxQkFBcUI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsbUJBQW1CLFlBQVk7QUFDL0I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDRDQUE0Qzs7QUFFNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7OztBQUdaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLHFDQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDOztBQUV2QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGdEQUFnRDs7QUFFaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOzs7QUFHQTtBQUNBLHdDQUF3Qzs7QUFFeEM7QUFDQTtBQUNBO0FBQ0EsbURBQW1EOztBQUVuRDtBQUNBO0FBQ0EsTUFBTTtBQUNOOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07QUFDTjs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUEsMENBQTBDOztBQUUxQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxnSEFBZ0g7QUFDaEg7QUFDQTs7QUFFQSxnREFBZ0Q7QUFDaEQ7O0FBRUE7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQSxnSEFBZ0g7QUFDaEg7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBOzs7QUFHQTtBQUNBLFVBQVU7QUFDVjtBQUNBOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDZEQUE2RDs7QUFFN0Q7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUSxvQ0FBb0M7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsNERBQTREO0FBQzVEOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQSwrQ0FBK0M7QUFDL0M7QUFDQTs7QUFFQSxzSEFBc0g7O0FBRXRILGdEQUFnRDtBQUNoRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxVQUFVO0FBQ1Y7OztBQUdBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVU7QUFDVjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047O0FBRUE7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDO0FBQ3RDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esa0dBQWtHO0FBQ2xHO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOOztBQUVBO0FBQ0Esa0dBQWtHO0FBQ2xHO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG9EQUFvRDtBQUNwRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7QUFFM0M7QUFDQTtBQUNBOztBQUVBO0FBQ0EsOENBQThDO0FBQzlDO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0Q7QUFDbEQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLGNBQWM7OztBQUdkO0FBQ0E7QUFDQTs7QUFFQSxxREFBcUQ7QUFDckQ7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBLGlEQUFpRDtBQUNqRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLCtDQUErQztBQUMvQzs7QUFFQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxjQUFjOztBQUVkOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esc0RBQXNEO0FBQ3REO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7O0FBRVo7O0FBRUE7QUFDQTtBQUNBLDhDQUE4Qzs7QUFFOUM7QUFDQTtBQUNBLFlBQVk7OztBQUdaO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0Esa0RBQWtEO0FBQ2xEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQ7QUFDMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBOzs7QUFHQTtBQUNBLGlFQUFpRTtBQUNqRTs7QUFFQSxzSUFBc0k7O0FBRXRJO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRDtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsWUFBWTs7QUFFWixVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx3Q0FBd0M7QUFDeEM7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEscURBQXFEOztBQUVyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRDtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjs7QUFFQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBOztBQUVBLGdFQUFnRTtBQUNoRTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVOzs7QUFHVjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0Esd0VBQXdFOztBQUV4RTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw0Q0FBNEM7QUFDNUM7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7O0FBRXZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxHQUFHOzs7QUFHSDtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLEVBQUU7OztBQUdGO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsRUFBRTs7O0FBR0Y7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxFQUFFOzs7QUFHRjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUM7O0FBRXZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDRCQUE0Qjs7QUFFNUI7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQ7QUFDbkQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQSxVQUFVOzs7QUFHVjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBLGNBQWM7QUFDZDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Qsa09BQWtPLHFDQUFxQyx3RkFBd0YsMkJBQTJCLHFCQUFxQixRQUFRLGFBQWE7QUFDcGEsY0FBYztBQUNkO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1FQUFtRTtBQUNuRTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGNBQWM7QUFDZDs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBLHVEQUF1RDtBQUN2RDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxtREFBbUQ7QUFDbkQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBOzs7QUFHQSxpRUFBaUU7QUFDakU7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0EsUUFBUSw0SUFBNEk7QUFDcEo7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNOztBQUVOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSw0QkFBNEI7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCOztBQUU5QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjs7O0FBR0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBLHNEQUFzRDs7QUFFdEQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9DQUFvQzs7QUFFcEM7QUFDQTs7QUFFQSxtREFBbUQ7QUFDbkQ7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLElBQUksK0JBQStCO0FBQ25DOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxJQUFJLCtCQUErQjtBQUNuQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG9CQUFvQixzQkFBc0I7QUFDMUM7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBOztBQUVBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EseURBQXlEO0FBQ3pEO0FBQ0E7O0FBRUE7QUFDQSw0Q0FBNEM7O0FBRTVDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxzREFBc0Q7QUFDdEQ7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEM7QUFDNUM7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsZ0RBQWdEO0FBQ2hEOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUVBQXVFOztBQUV2RTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0Esd0RBQXdEO0FBQ3hEO0FBQ0E7QUFDQSxVQUFVOzs7QUFHVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7O0FBRWxDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNEJBQTRCOztBQUU1Qjs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSx3QkFBd0Isc0JBQXNCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUI7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0RkFBNEY7O0FBRTVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEI7O0FBRTVCLGtDQUFrQzs7QUFFbEMsK0JBQStCOztBQUUvQiwyQkFBMkI7O0FBRTNCLDZDQUE2QztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHNEQUFzRDs7QUFFdEQsbURBQW1EOztBQUVuRCx5Q0FBeUM7QUFDekM7QUFDQTtBQUNBOztBQUVBLCtDQUErQztBQUMvQzs7QUFFQSw4Q0FBOEM7O0FBRTlDLHlEQUF5RDs7QUFFekQsNkNBQTZDOztBQUU3QywrQ0FBK0M7QUFDL0M7O0FBRUEsZ0RBQWdEO0FBQ2hEOztBQUVBO0FBQ0EsZ0NBQWdDO0FBQ2hDOztBQUVBLG1EQUFtRDtBQUNuRDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbURBQW1EO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDOztBQUV0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QztBQUN6QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZDQUE2QztBQUM3QyxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnREFBZ0Q7QUFDaEQ7O0FBRUEsZ0RBQWdEOztBQUVoRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKLCtEQUErRDs7QUFFL0Q7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEVBQUU7QUFDRjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGtEQUFrRDs7QUFFbEQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNkVBQTZFO0FBQzdFO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtFQUFrRTtBQUNsRTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDBDQUEwQztBQUMxQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRGQUE0Rjs7QUFFNUY7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7OztBQUdWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG9FQUFvRTs7O0FBR3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7OztBQUdWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSwwQkFBMEIsbUJBQW1CO0FBQzdDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0Esb0ZBQW9GO0FBQ3BGOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSiw2Q0FBNkM7QUFDN0M7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0M7O0FBRXBDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQjtBQUMzQjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsMkRBQTJEO0FBQzNEO0FBQ0E7QUFDQTtBQUNBLG9EQUFvRDtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQSxNQUFNOzs7QUFHTjtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUM7QUFDekM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EseUNBQXlDO0FBQ3pDOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0EsNkNBQTZDOztBQUU3QztBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEM7O0FBRTVDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0EseUVBQXlFOztBQUV6RTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0Esc0RBQXNEOzs7QUFHdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx3RUFBd0U7O0FBRXhFO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07OztBQUdOLGlDQUFpQzs7QUFFakM7QUFDQSxJQUFJLGdDQUFnQzs7O0FBR3BDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJLDRDQUE0QztBQUNoRDs7O0FBR0E7QUFDQSxrQ0FBa0M7QUFDbEM7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwrQkFBK0I7QUFDL0I7QUFDQTs7QUFFQTtBQUNBLE9BQU87QUFDUDtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUM7O0FBRXZDLHdDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBOztBQUVBLDBDQUEwQztBQUMxQztBQUNBO0FBQ0E7O0FBRUEsaUNBQWlDOztBQUVqQztBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0EsNkNBQTZDOztBQUU3QztBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKLHNDQUFzQztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsb0JBQW9CLDhCQUE4QjtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOOzs7QUFHQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7OztBQUdKOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLDZEQUE2RDtBQUM3RDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0M7QUFDeEM7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHFFQUFxRTs7QUFFckU7QUFDQTtBQUNBOztBQUVBLG9CQUFvQiw0QkFBNEI7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTs7O0FBR0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7O0FBRTFCOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDRDQUE0QztBQUNwRDs7O0FBR0E7QUFDQSw4QkFBOEI7QUFDOUI7QUFDQTs7QUFFQSxrREFBa0Q7O0FBRWxEOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7OztBQUdSOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtSEFBbUg7O0FBRW5IOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxHQUFHO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsOExBQThMLG9EQUFvRCxFQUFFO0FBQ3BQLFFBQVE7QUFDUjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxtT0FBbU8sb0RBQW9ELEVBQUU7QUFDelI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwwQkFBMEI7O0FBRTFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsaUNBQWlDOztBQUVqQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7QUFDM0MsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHlEQUF5RDtBQUN6RDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCOztBQUV6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjs7QUFFcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDO0FBQ3hDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLGdEQUFnRDs7QUFFaEQsd0NBQXdDO0FBQ3hDOztBQUVBLG9DQUFvQzs7QUFFcEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0Q7QUFDcEQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0RBQWtEOztBQUVsRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0RBQXNEOztBQUV0RCx3Q0FBd0M7QUFDeEM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUM7O0FBRXpDOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxxQkFBcUIsaUJBQWlCO0FBQ3RDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdMQUF3TDs7QUFFeEwsNkNBQTZDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLDBFQUEwRTtBQUMxRTtBQUNBOztBQUVBLDhDQUE4QztBQUM5Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLEdBQUc7QUFDWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHdEQUF3RDs7QUFFeEQ7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQSxNQUFNOzs7QUFHTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx3REFBd0Q7O0FBRXhEO0FBQ0EsbUNBQW1DOztBQUVuQzs7QUFFQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNO0FBQ04sc0JBQXNCLHdCQUF3QjtBQUM5QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx3REFBd0QsUUFBUTs7QUFFaEU7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7OztBQUdMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHFDQUFxQztBQUNyQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHFDQUFxQztBQUNyQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHFDQUFxQztBQUNyQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7OztBQUdMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0EsZ0xBQWdMLDhCQUE4QjtBQUM5TTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7OztBQUdBLDZEQUE2RDs7QUFFN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnREFBZ0Q7O0FBRWhEOztBQUVBO0FBQ0Esb0JBQW9CLDJCQUEyQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUEsbUNBQW1DO0FBQ25DO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBLHVEQUF1RDs7QUFFdkQ7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUssR0FBRztBQUNSOztBQUVBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUEsOEVBQThFOztBQUU5RTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEVBQUU7QUFDRjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDOztBQUUvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwwREFBMEQ7QUFDMUQsb0JBQW9CO0FBQ3BCLGtCQUFrQjtBQUNsQixtQkFBbUI7QUFDbkIsaUJBQWlCO0FBQ2pCLGVBQWU7QUFDZixtQkFBbUI7QUFDbkIsY0FBYztBQUNkLDhCQUE4QjtBQUM5QiwrQkFBK0I7QUFDL0IsMkNBQTJDO0FBQzNDLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7Ozs7Ozs7Ozs7OztBQzNxNkJhOztBQUViLFFBQVEsbUJBQU8sQ0FBQyx3REFBVztBQUMzQixJQUFJLEtBQXFDLEVBQUUsRUFHMUMsQ0FBQztBQUNGO0FBQ0EsRUFBRSxrQkFBa0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLEVBQUUsbUJBQW1CO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7O0FDeEJhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLElBQUksS0FBcUMsRUFBRSxFQUsxQyxDQUFDO0FBQ0YsRUFBRSx1SUFBMEQ7QUFDNUQ7Ozs7Ozs7Ozs7Ozs7QUNyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVhOztBQUViLElBQUksSUFBcUM7QUFDekM7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7O0FBR0w7O0FBRUE7QUFDQSxvQkFBb0I7O0FBRXBCO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBLDRCQUE0QjtBQUM1QjtBQUNBLHFDQUFxQzs7QUFFckMsZ0NBQWdDO0FBQ2hDO0FBQ0E7O0FBRUEsZ0NBQWdDOztBQUVoQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDZGQUE2RixhQUFhO0FBQzFHO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpR0FBaUcsZUFBZTtBQUNoSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBO0FBQ0EsS0FBSyxHQUFHOztBQUVSLGtEQUFrRDtBQUNsRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSw4TUFBOE07O0FBRTlNO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxZQUFZO0FBQ3pCLGNBQWMsU0FBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsWUFBWTtBQUN6QixhQUFhLFdBQVc7QUFDeEIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsWUFBWTtBQUN6QixhQUFhLFFBQVE7QUFDckIsYUFBYSxXQUFXO0FBQ3hCLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxZQUFZO0FBQ3pCLGFBQWEsUUFBUTtBQUNyQixhQUFhLFdBQVc7QUFDeEIsYUFBYSxTQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQSwwQkFBMEI7O0FBRTFCLDJCQUEyQjtBQUMzQjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGlCQUFpQjtBQUM1QjtBQUNBLFdBQVcsV0FBVztBQUN0QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxXQUFXO0FBQ3RCO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsMEJBQTBCOztBQUUxQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxvREFBb0Q7O0FBRXBEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxpQ0FBaUM7O0FBRWpDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTs7O0FBR0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTs7O0FBR0Y7QUFDQTtBQUNBLEVBQUU7OztBQUdGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxXQUFXLEdBQUc7QUFDZCxXQUFXLEdBQUc7QUFDZCxXQUFXLGVBQWU7QUFDMUIsV0FBVyxHQUFHO0FBQ2QsV0FBVyxHQUFHO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZDtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxHQUFHOztBQUVSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLEdBQUc7QUFDUjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQjs7QUFFaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHFFQUFxRTs7QUFFckU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjs7QUFFQSxvQkFBb0Isb0JBQW9CO0FBQ3hDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxnQkFBZ0I7O0FBRWhCLHVCQUF1QixrQkFBa0I7O0FBRXpDO0FBQ0EseUJBQXlCOztBQUV6Qiw0QkFBNEI7QUFDNUI7QUFDQTs7QUFFQSxnQ0FBZ0M7O0FBRWhDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07OztBQUdOOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOzs7QUFHQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBLG9CQUFvQixvQkFBb0I7QUFDeEM7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFNBQVM7QUFDcEIsWUFBWSxTQUFTO0FBQ3JCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLFdBQVcsUUFBUTtBQUNuQixZQUFZO0FBQ1o7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJOzs7QUFHSjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx3Q0FBd0M7QUFDeEM7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esd0JBQXdCOztBQUV4Qjs7QUFFQTtBQUNBLG9CQUFvQixxQkFBcUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxxSUFBcUkseUNBQXlDO0FBQzlLO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxJQUFJO0FBQ2YsV0FBVyxrQkFBa0I7QUFDN0IsV0FBVyxHQUFHO0FBQ2QsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsSUFBSTtBQUNmLFlBQVksUUFBUTtBQUNwQjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLElBQUk7QUFDZixXQUFXLGtCQUFrQjtBQUM3QixXQUFXLEdBQUc7QUFDZDtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0M7QUFDeEMsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsU0FBUztBQUNwQixZQUFZLGNBQWM7QUFDMUI7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPOztBQUVQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLEdBQUc7O0FBRVI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjs7QUFFbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBLDBDQUEwQztBQUMxQzs7QUFFQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUEsb0NBQW9DO0FBQ3BDOztBQUVBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyxJQUFJO0FBQ25EOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyxJQUFJO0FBQ3hDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEM7QUFDMUM7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUM7O0FBRXZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTOztBQUVUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUzs7QUFFVDtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBLFNBQVM7QUFDVCx1QkFBdUI7QUFDdkI7QUFDQSxTQUFTO0FBQ1QsdUJBQXVCO0FBQ3ZCO0FBQ0EsU0FBUztBQUNULHdCQUF3QjtBQUN4QjtBQUNBLFNBQVM7QUFDVCx3QkFBd0I7QUFDeEI7QUFDQSxTQUFTO0FBQ1QsaUNBQWlDO0FBQ2pDO0FBQ0EsU0FBUztBQUNULDJCQUEyQjtBQUMzQjtBQUNBLFNBQVM7QUFDVCxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDJEQUEyRDs7QUFFM0Q7QUFDQTs7QUFFQTtBQUNBLDJEQUEyRDtBQUMzRDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUzs7O0FBR1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTzs7QUFFUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7O0FBRUE7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsYUFBYSxrQkFBa0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjs7QUFFQTtBQUNBO0FBQ0EsZ0ZBQWdGO0FBQ2hGO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjs7O0FBR2xCO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJOzs7QUFHSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw4QkFBOEI7QUFDOUI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkhBQTJIO0FBQzNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsb0VBQW9FOztBQUVwRTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsY0FBYztBQUN6QixXQUFXLEdBQUc7QUFDZDs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsMkRBQTJEO0FBQzNEO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFdBQVc7QUFDdEIsV0FBVyxHQUFHO0FBQ2Q7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esb0JBQW9CLGlCQUFpQjtBQUNyQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGNBQWM7QUFDekI7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTiw0Q0FBNEM7O0FBRTVDOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGNBQWM7QUFDekI7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQSxvQkFBb0IsaUJBQWlCO0FBQ3JDOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNENBQTRDO0FBQzVDOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxzREFBc0Q7QUFDdEQ7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQSxvQkFBb0Isc0JBQXNCO0FBQzFDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxrQkFBa0Isc0JBQXNCO0FBQ3hDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseURBQXlEO0FBQ3pEOztBQUVBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7QUFFQTtBQUNBLG1DQUFtQztBQUNuQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0M7QUFDL0M7QUFDQTs7QUFFQSwwT0FBME87QUFDMU87QUFDQSxXQUFXO0FBQ1g7QUFDQTs7QUFFQTtBQUNBLE1BQU07QUFDTixnQ0FBZ0M7QUFDaEM7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxRQUFRO0FBQ1I7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxlQUFlLGtCQUFrQjtBQUNqQzs7QUFFQTtBQUNBO0FBQ0EsWUFBWTtBQUNaOztBQUVBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGdCQUFnQjtBQUNoQixpQkFBaUI7QUFDakIsZ0JBQWdCO0FBQ2hCLGdCQUFnQjtBQUNoQixxQkFBcUI7QUFDckIsa0JBQWtCO0FBQ2xCLGdCQUFnQjtBQUNoQiwwREFBMEQ7QUFDMUQsb0JBQW9CO0FBQ3BCLHFCQUFxQjtBQUNyQixxQkFBcUI7QUFDckIscUJBQXFCO0FBQ3JCLGlCQUFpQjtBQUNqQixrQkFBa0I7QUFDbEIsc0JBQXNCO0FBQ3RCLFlBQVk7QUFDWixZQUFZO0FBQ1osdUJBQXVCO0FBQ3ZCLG9CQUFvQjtBQUNwQixtQkFBbUI7QUFDbkIsa0JBQWtCO0FBQ2xCLHFCQUFxQjtBQUNyQix3QkFBd0I7QUFDeEIsaUJBQWlCO0FBQ2pCLGFBQWE7QUFDYiwyQkFBMkI7QUFDM0IsMEJBQTBCO0FBQzFCLHVCQUF1QjtBQUN2QixlQUFlO0FBQ2Ysa0JBQWtCO0FBQ2xCLGNBQWM7QUFDZCxnQkFBZ0I7QUFDaEIsNEJBQTRCO0FBQzVCLHFCQUFxQjtBQUNyQixlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOzs7Ozs7Ozs7Ozs7QUNsckZhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSwySEFBc0Q7QUFDeEQ7Ozs7Ozs7Ozs7OztBQ05BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTs7QUFFYixJQUFJLElBQXFDO0FBQ3pDOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7O0FBRWxDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBLEVBQUUsb0JBQW9CO0FBQ3RCO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTs7QUFFQSxFQUFFLG9CQUFvQjtBQUN0QjtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7OztBQUdBLG9DQUFvQzs7QUFFcEMscUNBQXFDOztBQUVyQztBQUNBO0FBQ0Esa0NBQWtDOztBQUVsQywrQ0FBK0M7O0FBRS9DO0FBQ0EscUJBQXFCOztBQUVyQix1QkFBdUI7QUFDdkI7QUFDQSwyQ0FBMkM7O0FBRTNDO0FBQ0E7QUFDQSxvQ0FBb0M7O0FBRXBDO0FBQ0E7QUFDQSxtRkFBbUY7O0FBRW5GOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFROztBQUVSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7O0FBRUE7QUFDQSxJQUFJOzs7QUFHSjtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0EsUUFBUTs7O0FBR1I7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0EsNkJBQTZCOztBQUU3QjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOzs7QUFHSjtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw4Q0FBOEM7QUFDOUM7O0FBRUE7QUFDQSxpQ0FBaUM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSw2QkFBNkI7QUFDN0Isa0NBQWtDO0FBQ2xDLDRCQUE0QjtBQUM1QiwrQkFBK0I7QUFDL0IsMEJBQTBCO0FBQzFCLHFDQUFxQztBQUNyQywrQkFBK0I7QUFDL0Isa0NBQWtDO0FBQ2xDLCtCQUErQjtBQUMvQix3Q0FBd0M7QUFDeEMscUNBQXFDO0FBQ3JDLHFCQUFxQjtBQUNyQiwrQkFBK0I7QUFDL0IsNkJBQTZCO0FBQzdCLGdDQUFnQztBQUNoQyxpQ0FBaUM7QUFDakMsNEJBQTRCO0FBQzVCLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7Ozs7Ozs7Ozs7OztBQ3puQmE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLHVJQUEwRDtBQUM1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDTEEsTUFBMkc7QUFDM0csTUFBaUc7QUFDakcsTUFBd0c7QUFDeEcsTUFBMkg7QUFDM0gsTUFBb0g7QUFDcEgsTUFBb0g7QUFDcEgsTUFBNEc7QUFDNUc7QUFDQTs7QUFFQTs7QUFFQSw0QkFBNEIscUdBQW1CO0FBQy9DLHdCQUF3QixrSEFBYTtBQUNyQyxpQkFBaUIsdUdBQWE7QUFDOUIsaUJBQWlCLCtGQUFNO0FBQ3ZCLDZCQUE2QixzR0FBa0I7O0FBRS9DLGFBQWEsMEdBQUcsQ0FBQyxtRkFBTzs7OztBQUlzRDtBQUM5RSxPQUFPLGlFQUFlLG1GQUFPLElBQUksbUZBQU8sVUFBVSxtRkFBTyxtQkFBbUIsRUFBQzs7Ozs7Ozs7Ozs7O0FDeEJoRTs7QUFFYjtBQUNBO0FBQ0E7QUFDQSxrQkFBa0Isd0JBQXdCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLGlCQUFpQjtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDRCQUE0QjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLDZCQUE2QjtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7QUNuRmE7O0FBRWI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OztBQ2pDYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OztBQ1RhOztBQUViO0FBQ0E7QUFDQSxjQUFjLEtBQXdDLEdBQUcsc0JBQWlCLEdBQUcsQ0FBSTtBQUNqRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OztBQ1RhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0RBQWtEO0FBQ2xEO0FBQ0E7QUFDQSwwQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0EsaUZBQWlGO0FBQ2pGO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EseURBQXlEO0FBQ3pEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7OztBQzVEYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O1VDYkE7VUFDQTs7VUFFQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTs7VUFFQTtVQUNBOztVQUVBO1VBQ0E7O1VBRUE7VUFDQTtVQUNBOzs7OztXQ3pCQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0EsaUNBQWlDLFdBQVc7V0FDNUM7V0FDQTs7Ozs7V0NQQTtXQUNBO1dBQ0E7V0FDQTtXQUNBLHlDQUF5Qyx3Q0FBd0M7V0FDakY7V0FDQTtXQUNBOzs7OztXQ1BBOzs7OztXQ0FBO1dBQ0E7V0FDQTtXQUNBLHVEQUF1RCxpQkFBaUI7V0FDeEU7V0FDQSxnREFBZ0QsYUFBYTtXQUM3RDs7Ozs7V0NOQTtXQUNBO1dBQ0E7V0FDQTtXQUNBOzs7OztXQ0pBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBK0I7QUFDYztBQUNkO0FBQ2I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxvQkFBb0Isa0NBQUs7QUFDekIsb0JBQW9CLHVCQUF1QjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEZBQThGO0FBQzlGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDREQUE0RCxvQkFBb0I7QUFDaEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsY0FBYztBQUM1QztBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLFlBQVksZ0RBQW1CLFFBQVEsa0RBQWtEO0FBQ3pGO0FBQ0EsZ0RBQWdELGlCQUFpQixrQkFBa0I7QUFDbkY7QUFDQSxzQ0FBc0MsMkNBQWM7QUFDcEQsa0NBQWtDLDJDQUFjO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSw0Q0FBZTtBQUNuQjtBQUNBO0FBQ0EsOEJBQThCLFFBQVEsaUJBQWlCO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsZ0JBQWdCLFdBQVcsVUFBVSxRQUFRLDhCQUE4QjtBQUN2RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxZQUFZLGdEQUFtQjtBQUMvQixRQUFRLGdEQUFtQixVQUFVLCtCQUErQjtBQUNwRSxZQUFZLGdEQUFtQixhQUFhLHVDQUF1QztBQUNuRixRQUFRLGdEQUFtQixlQUFlLHdFQUF3RTtBQUNsSCxRQUFRLGdEQUFtQixVQUFVLGtEQUFrRDtBQUN2RixZQUFZLGdEQUFtQjtBQUMvQixZQUFZLGdEQUFtQixVQUFVLDRCQUE0QjtBQUNyRSxRQUFRLGdEQUFtQixVQUFVLG1EQUFtRDtBQUN4RixZQUFZLGdEQUFtQjtBQUMvQixZQUFZLGdEQUFtQixVQUFVLDZCQUE2QjtBQUN0RTtBQUNBLHdEQUFtQixpRUFBaUUsZ0RBQW1CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQHBhdHRlcm5mbHkvZGVzaWduLXRva2Vucy8uL3BsdWdpbnMvZXhwb3J0LXBhdHRlcm5mbHktdG9rZW5zL3NyYy91aS5jc3MiLCJ3ZWJwYWNrOi8vQHBhdHRlcm5mbHkvZGVzaWduLXRva2Vucy8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzIiwid2VicGFjazovL0BwYXR0ZXJuZmx5L2Rlc2lnbi10b2tlbnMvLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMiLCJ3ZWJwYWNrOi8vQHBhdHRlcm5mbHkvZGVzaWduLXRva2Vucy8uLi8uLi9ub2RlX21vZHVsZXMvanN6aXAvZGlzdC9qc3ppcC5taW4uanMiLCJ3ZWJwYWNrOi8vQHBhdHRlcm5mbHkvZGVzaWduLXRva2Vucy8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20uZGV2ZWxvcG1lbnQuanMiLCJ3ZWJwYWNrOi8vQHBhdHRlcm5mbHkvZGVzaWduLXRva2Vucy8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2NsaWVudC5qcyIsIndlYnBhY2s6Ly9AcGF0dGVybmZseS9kZXNpZ24tdG9rZW5zLy4uLy4uL25vZGVfbW9kdWxlcy9yZWFjdC1kb20vaW5kZXguanMiLCJ3ZWJwYWNrOi8vQHBhdHRlcm5mbHkvZGVzaWduLXRva2Vucy8uLi8uLi9ub2RlX21vZHVsZXMvcmVhY3QvY2pzL3JlYWN0LmRldmVsb3BtZW50LmpzIiwid2VicGFjazovL0BwYXR0ZXJuZmx5L2Rlc2lnbi10b2tlbnMvLi4vLi4vbm9kZV9tb2R1bGVzL3JlYWN0L2luZGV4LmpzIiwid2VicGFjazovL0BwYXR0ZXJuZmx5L2Rlc2lnbi10b2tlbnMvLi4vLi4vbm9kZV9tb2R1bGVzL3NjaGVkdWxlci9janMvc2NoZWR1bGVyLmRldmVsb3BtZW50LmpzIiwid2VicGFjazovL0BwYXR0ZXJuZmx5L2Rlc2lnbi10b2tlbnMvLi4vLi4vbm9kZV9tb2R1bGVzL3NjaGVkdWxlci9pbmRleC5qcyIsIndlYnBhY2s6Ly9AcGF0dGVybmZseS9kZXNpZ24tdG9rZW5zLy4vcGx1Z2lucy9leHBvcnQtcGF0dGVybmZseS10b2tlbnMvc3JjL3VpLmNzcz83NGI2Iiwid2VicGFjazovL0BwYXR0ZXJuZmx5L2Rlc2lnbi10b2tlbnMvLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzIiwid2VicGFjazovL0BwYXR0ZXJuZmx5L2Rlc2lnbi10b2tlbnMvLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qcyIsIndlYnBhY2s6Ly9AcGF0dGVybmZseS9kZXNpZ24tdG9rZW5zLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qcyIsIndlYnBhY2s6Ly9AcGF0dGVybmZseS9kZXNpZ24tdG9rZW5zLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qcyIsIndlYnBhY2s6Ly9AcGF0dGVybmZseS9kZXNpZ24tdG9rZW5zLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzIiwid2VicGFjazovL0BwYXR0ZXJuZmx5L2Rlc2lnbi10b2tlbnMvLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanMiLCJ3ZWJwYWNrOi8vQHBhdHRlcm5mbHkvZGVzaWduLXRva2Vucy93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9AcGF0dGVybmZseS9kZXNpZ24tdG9rZW5zL3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL0BwYXR0ZXJuZmx5L2Rlc2lnbi10b2tlbnMvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL0BwYXR0ZXJuZmx5L2Rlc2lnbi10b2tlbnMvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9AcGF0dGVybmZseS9kZXNpZ24tdG9rZW5zL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vQHBhdHRlcm5mbHkvZGVzaWduLXRva2Vucy93ZWJwYWNrL3J1bnRpbWUvbm9kZSBtb2R1bGUgZGVjb3JhdG9yIiwid2VicGFjazovL0BwYXR0ZXJuZmx5L2Rlc2lnbi10b2tlbnMvd2VicGFjay9ydW50aW1lL25vbmNlIiwid2VicGFjazovL0BwYXR0ZXJuZmx5L2Rlc2lnbi10b2tlbnMvLi9wbHVnaW5zL2V4cG9ydC1wYXR0ZXJuZmx5LXRva2Vucy9zcmMvdWkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGA6cm9vdCB7XG4gIC0tc3BhY2luZzogMC44cmVtO1xufVxuXG4qIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZpZ21hLWNvbG9yLWJnKTtcbiAgY29sb3I6IHZhcigtLWZpZ21hLWNvbG9yLXRleHQpO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmcpO1xufVxuXG5odG1sLFxuYm9keSxcbm1haW4ge1xuICBoZWlnaHQ6IDk4JTtcbn1cblxubWFpbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tc3BhY2luZyk7XG59XG5cbmJ1dHRvbiB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZyk7XG59XG5cbnRleHRhcmVhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZmlnbWEtY29sb3ItYmctc2Vjb25kYXJ5KTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tZmlnbWEtY29sb3ItYm9yZGVyKTtcbiAgY29sb3I6IHZhcigtLWZpZ21hLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgZmxleDogMTtcbiAgZm9udC1mYW1pbHk6IEFuZGFsZSBNb25vLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBvdmVyZmxvdzogYXV0bztcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZyk7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG59XG50ZXh0YXJlYTpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZmlnbWEtY29sb3ItYm9yZGVyLXNlbGVjdGVkKTtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuYnV0dG9uLFxudGV4dGFyZWEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbmEsXG5wIHtcbiAgY29sb3I6IHZhcigtLWZpZ21hLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgcGFkZGluZy1yaWdodDogNXB4O1xufVxuXG5idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1maWdtYS1jb2xvci1iZy1icmFuZCk7XG4gIGNvbG9yOiB2YXIoLS1maWdtYS1jb2xvci10ZXh0LW9uYnJhbmQpO1xuICBmb250LWZhbWlseTogc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIixcbiAgICBSb2JvdG8sIE94eWdlbiwgVWJ1bnR1LCBDYW50YXJlbGwsIFwiT3BlbiBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIixcbiAgICBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmJ1dHRvbi1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbn1cblxuLnppcC13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmpzb24tZG93bmxvYWRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4udG9rZW5zLWRvd25sb2FkLXdyYXBwZXIgYSB7XG4gIHBhZGRpbmc6IDVweDtcbiAgbWFyZ2luOiA1cHg7XG59XG5cbiNleHBvcnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1maWdtYS1jb2xvci1iZy1jb21wb25lbnQpO1xufVxuXG4jc2F2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZpZ21hLWNvbG9yLWJnLWNvbXBvbmVudCk7XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3BsdWdpbnMvZXhwb3J0LXBhdHRlcm5mbHktdG9rZW5zL3NyYy91aS5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUE7RUFDRSxpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSx1Q0FBdUM7RUFDdkMsOEJBQThCO0VBQzlCLFNBQVM7RUFDVCx1QkFBdUI7QUFDekI7O0FBRUE7OztFQUdFLFdBQVc7QUFDYjs7QUFFQTtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQix1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSxpREFBaUQ7RUFDakQsMkNBQTJDO0VBQzNDLHdDQUF3QztFQUN4QyxPQUFPO0VBQ1AsbUNBQW1DO0VBQ25DLGlCQUFpQjtFQUNqQixjQUFjO0VBQ2QsdUJBQXVCO0VBQ3ZCLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZ0RBQWdEO0VBQ2hELGFBQWE7QUFDZjs7QUFFQTs7RUFFRSxjQUFjO0VBQ2QsV0FBVztBQUNiOztBQUVBOztFQUVFLHdDQUF3QztFQUN4QyxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSw2Q0FBNkM7RUFDN0Msc0NBQXNDO0VBQ3RDOztjQUVZO0VBQ1osaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsYUFBYTtFQUNiLDZCQUE2QjtBQUMvQjs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLFlBQVk7RUFDWixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxpREFBaUQ7QUFDbkQ7O0FBRUE7RUFDRSxpREFBaUQ7QUFDbkRcIixcInNvdXJjZXNDb250ZW50XCI6W1wiOnJvb3Qge1xcbiAgLS1zcGFjaW5nOiAwLjhyZW07XFxufVxcblxcbioge1xcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG59XFxuXFxuYm9keSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1maWdtYS1jb2xvci1iZyk7XFxuICBjb2xvcjogdmFyKC0tZmlnbWEtY29sb3ItdGV4dCk7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nKTtcXG59XFxuXFxuaHRtbCxcXG5ib2R5LFxcbm1haW4ge1xcbiAgaGVpZ2h0OiA5OCU7XFxufVxcblxcbm1haW4ge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBnYXA6IHZhcigtLXNwYWNpbmcpO1xcbn1cXG5cXG5idXR0b24ge1xcbiAgYXBwZWFyYW5jZTogbm9uZTtcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXG4gIHBhZGRpbmc6IHZhcigtLXNwYWNpbmcpO1xcbn1cXG5cXG50ZXh0YXJlYSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1maWdtYS1jb2xvci1iZy1zZWNvbmRhcnkpO1xcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tZmlnbWEtY29sb3ItYm9yZGVyKTtcXG4gIGNvbG9yOiB2YXIoLS1maWdtYS1jb2xvci10ZXh0LXNlY29uZGFyeSk7XFxuICBmbGV4OiAxO1xcbiAgZm9udC1mYW1pbHk6IEFuZGFsZSBNb25vLCBtb25vc3BhY2U7XFxuICBmb250LXNpemU6IDAuOXJlbTtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbiAgcGFkZGluZzogdmFyKC0tc3BhY2luZyk7XFxuICB3aGl0ZS1zcGFjZTogcHJlO1xcbn1cXG50ZXh0YXJlYTpmb2N1cyB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWZpZ21hLWNvbG9yLWJvcmRlci1zZWxlY3RlZCk7XFxuICBvdXRsaW5lOiBub25lO1xcbn1cXG5cXG5idXR0b24sXFxudGV4dGFyZWEge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuXFxuYSxcXG5wIHtcXG4gIGNvbG9yOiB2YXIoLS1maWdtYS1jb2xvci10ZXh0LXNlY29uZGFyeSk7XFxuICBwYWRkaW5nLXJpZ2h0OiA1cHg7XFxufVxcblxcbmJ1dHRvbiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1maWdtYS1jb2xvci1iZy1icmFuZCk7XFxuICBjb2xvcjogdmFyKC0tZmlnbWEtY29sb3ItdGV4dC1vbmJyYW5kKTtcXG4gIGZvbnQtZmFtaWx5OiBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXFxcIlNlZ29lIFVJXFxcIixcXG4gICAgUm9ib3RvLCBPeHlnZW4sIFVidW50dSwgQ2FudGFyZWxsLCBcXFwiT3BlbiBTYW5zXFxcIiwgXFxcIkhlbHZldGljYSBOZXVlXFxcIixcXG4gICAgc2Fucy1zZXJpZjtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcbn1cXG5cXG4uYnV0dG9uLWNvbnRhaW5lciB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XFxufVxcblxcbi56aXAtd3JhcHBlciB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG59XFxuXFxuLmpzb24tZG93bmxvYWRzIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBmbGV4LXdyYXA6IHdyYXA7XFxufVxcblxcbi50b2tlbnMtZG93bmxvYWQtd3JhcHBlciBhIHtcXG4gIHBhZGRpbmc6IDVweDtcXG4gIG1hcmdpbjogNXB4O1xcbn1cXG5cXG4jZXhwb3J0IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZpZ21hLWNvbG9yLWJnLWNvbXBvbmVudCk7XFxufVxcblxcbiNzYXZlIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWZpZ21hLWNvbG9yLWJnLWNvbXBvbmVudCk7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcpIHtcbiAgdmFyIGxpc3QgPSBbXTtcblxuICAvLyByZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBhcyBjc3Mgc3RyaW5nXG4gIGxpc3QudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciBjb250ZW50ID0gXCJcIjtcbiAgICAgIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2YgaXRlbVs1XSAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICAgIGlmIChpdGVtWzRdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIik7XG4gICAgICB9XG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbGF5ZXJcIi5jb25jYXQoaXRlbVs1XS5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KGl0ZW1bNV0pIDogXCJcIiwgXCIge1wiKTtcbiAgICAgIH1cbiAgICAgIGNvbnRlbnQgKz0gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtKTtcbiAgICAgIGlmIChuZWVkTGF5ZXIpIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfSkuam9pbihcIlwiKTtcbiAgfTtcblxuICAvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxuICBsaXN0LmkgPSBmdW5jdGlvbiBpKG1vZHVsZXMsIG1lZGlhLCBkZWR1cGUsIHN1cHBvcnRzLCBsYXllcikge1xuICAgIGlmICh0eXBlb2YgbW9kdWxlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgdW5kZWZpbmVkXV07XG4gICAgfVxuICAgIHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG4gICAgaWYgKGRlZHVwZSkge1xuICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCB0aGlzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgIHZhciBpZCA9IHRoaXNba11bMF07XG4gICAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgICAgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpZF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAodmFyIF9rID0gMDsgX2sgPCBtb2R1bGVzLmxlbmd0aDsgX2srKykge1xuICAgICAgdmFyIGl0ZW0gPSBbXS5jb25jYXQobW9kdWxlc1tfa10pO1xuICAgICAgaWYgKGRlZHVwZSAmJiBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2l0ZW1bMF1dKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBsYXllciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW1bNV0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChtZWRpYSkge1xuICAgICAgICBpZiAoIWl0ZW1bMl0pIHtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc3VwcG9ydHMpIHtcbiAgICAgICAgaWYgKCFpdGVtWzRdKSB7XG4gICAgICAgICAgaXRlbVs0XSA9IFwiXCIuY29uY2F0KHN1cHBvcnRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bNF0gPSBzdXBwb3J0cztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdC5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGxpc3Q7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdGVtKSB7XG4gIHZhciBjb250ZW50ID0gaXRlbVsxXTtcbiAgdmFyIGNzc01hcHBpbmcgPSBpdGVtWzNdO1xuICBpZiAoIWNzc01hcHBpbmcpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuICBpZiAodHlwZW9mIGJ0b2EgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHZhciBiYXNlNjQgPSBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShjc3NNYXBwaW5nKSkpKTtcbiAgICB2YXIgZGF0YSA9IFwic291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsXCIuY29uY2F0KGJhc2U2NCk7XG4gICAgdmFyIHNvdXJjZU1hcHBpbmcgPSBcIi8qIyBcIi5jb25jYXQoZGF0YSwgXCIgKi9cIik7XG4gICAgcmV0dXJuIFtjb250ZW50XS5jb25jYXQoW3NvdXJjZU1hcHBpbmddKS5qb2luKFwiXFxuXCIpO1xuICB9XG4gIHJldHVybiBbY29udGVudF0uam9pbihcIlxcblwiKTtcbn07IiwiLyohXG5cbkpTWmlwIHYzLjEwLjEgLSBBIEphdmFTY3JpcHQgY2xhc3MgZm9yIGdlbmVyYXRpbmcgYW5kIHJlYWRpbmcgemlwIGZpbGVzXG48aHR0cDovL3N0dWFydGsuY29tL2pzemlwPlxuXG4oYykgMjAwOS0yMDE2IFN0dWFydCBLbmlnaHRsZXkgPHN0dWFydCBbYXRdIHN0dWFydGsuY29tPlxuRHVhbCBsaWNlbmNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2Ugb3IgR1BMdjMuIFNlZSBodHRwczovL3Jhdy5naXRodWIuY29tL1N0dWsvanN6aXAvbWFpbi9MSUNFTlNFLm1hcmtkb3duLlxuXG5KU1ppcCB1c2VzIHRoZSBsaWJyYXJ5IHBha28gcmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIDpcbmh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlY2EvcGFrby9ibG9iL21haW4vTElDRU5TRVxuKi9cblxuIWZ1bmN0aW9uKGUpe2lmKFwib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlKW1vZHVsZS5leHBvcnRzPWUoKTtlbHNlIGlmKFwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZClkZWZpbmUoW10sZSk7ZWxzZXsoXCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHNlbGY/c2VsZjp0aGlzKS5KU1ppcD1lKCl9fShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBzKGEsbyxoKXtmdW5jdGlvbiB1KHIsZSl7aWYoIW9bcl0pe2lmKCFhW3JdKXt2YXIgdD1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFlJiZ0KXJldHVybiB0KHIsITApO2lmKGwpcmV0dXJuIGwociwhMCk7dmFyIG49bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIityK1wiJ1wiKTt0aHJvdyBuLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsbn12YXIgaT1vW3JdPXtleHBvcnRzOnt9fTthW3JdWzBdLmNhbGwoaS5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciB0PWFbcl1bMV1bZV07cmV0dXJuIHUodHx8ZSl9LGksaS5leHBvcnRzLHMsYSxvLGgpfXJldHVybiBvW3JdLmV4cG9ydHN9Zm9yKHZhciBsPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsZT0wO2U8aC5sZW5ndGg7ZSsrKXUoaFtlXSk7cmV0dXJuIHV9KHsxOltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIGQ9ZShcIi4vdXRpbHNcIiksYz1lKFwiLi9zdXBwb3J0XCIpLHA9XCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVwiO3IuZW5jb2RlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxyLG4saSxzLGEsbyxoPVtdLHU9MCxsPWUubGVuZ3RoLGY9bCxjPVwic3RyaW5nXCIhPT1kLmdldFR5cGVPZihlKTt1PGUubGVuZ3RoOylmPWwtdSxuPWM/KHQ9ZVt1KytdLHI9dTxsP2VbdSsrXTowLHU8bD9lW3UrK106MCk6KHQ9ZS5jaGFyQ29kZUF0KHUrKykscj11PGw/ZS5jaGFyQ29kZUF0KHUrKyk6MCx1PGw/ZS5jaGFyQ29kZUF0KHUrKyk6MCksaT10Pj4yLHM9KDMmdCk8PDR8cj4+NCxhPTE8Zj8oMTUmcik8PDJ8bj4+Njo2NCxvPTI8Zj82MyZuOjY0LGgucHVzaChwLmNoYXJBdChpKStwLmNoYXJBdChzKStwLmNoYXJBdChhKStwLmNoYXJBdChvKSk7cmV0dXJuIGguam9pbihcIlwiKX0sci5kZWNvZGU9ZnVuY3Rpb24oZSl7dmFyIHQscixuLGkscyxhLG89MCxoPTAsdT1cImRhdGE6XCI7aWYoZS5zdWJzdHIoMCx1Lmxlbmd0aCk9PT11KXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgYmFzZTY0IGlucHV0LCBpdCBsb29rcyBsaWtlIGEgZGF0YSB1cmwuXCIpO3ZhciBsLGY9MyooZT1lLnJlcGxhY2UoL1teQS1aYS16MC05Ky89XS9nLFwiXCIpKS5sZW5ndGgvNDtpZihlLmNoYXJBdChlLmxlbmd0aC0xKT09PXAuY2hhckF0KDY0KSYmZi0tLGUuY2hhckF0KGUubGVuZ3RoLTIpPT09cC5jaGFyQXQoNjQpJiZmLS0sZiUxIT0wKXRocm93IG5ldyBFcnJvcihcIkludmFsaWQgYmFzZTY0IGlucHV0LCBiYWQgY29udGVudCBsZW5ndGguXCIpO2ZvcihsPWMudWludDhhcnJheT9uZXcgVWludDhBcnJheSgwfGYpOm5ldyBBcnJheSgwfGYpO288ZS5sZW5ndGg7KXQ9cC5pbmRleE9mKGUuY2hhckF0KG8rKykpPDwyfChpPXAuaW5kZXhPZihlLmNoYXJBdChvKyspKSk+PjQscj0oMTUmaSk8PDR8KHM9cC5pbmRleE9mKGUuY2hhckF0KG8rKykpKT4+MixuPSgzJnMpPDw2fChhPXAuaW5kZXhPZihlLmNoYXJBdChvKyspKSksbFtoKytdPXQsNjQhPT1zJiYobFtoKytdPXIpLDY0IT09YSYmKGxbaCsrXT1uKTtyZXR1cm4gbH19LHtcIi4vc3VwcG9ydFwiOjMwLFwiLi91dGlsc1wiOjMyfV0sMjpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBuPWUoXCIuL2V4dGVybmFsXCIpLGk9ZShcIi4vc3RyZWFtL0RhdGFXb3JrZXJcIikscz1lKFwiLi9zdHJlYW0vQ3JjMzJQcm9iZVwiKSxhPWUoXCIuL3N0cmVhbS9EYXRhTGVuZ3RoUHJvYmVcIik7ZnVuY3Rpb24gbyhlLHQscixuLGkpe3RoaXMuY29tcHJlc3NlZFNpemU9ZSx0aGlzLnVuY29tcHJlc3NlZFNpemU9dCx0aGlzLmNyYzMyPXIsdGhpcy5jb21wcmVzc2lvbj1uLHRoaXMuY29tcHJlc3NlZENvbnRlbnQ9aX1vLnByb3RvdHlwZT17Z2V0Q29udGVudFdvcmtlcjpmdW5jdGlvbigpe3ZhciBlPW5ldyBpKG4uUHJvbWlzZS5yZXNvbHZlKHRoaXMuY29tcHJlc3NlZENvbnRlbnQpKS5waXBlKHRoaXMuY29tcHJlc3Npb24udW5jb21wcmVzc1dvcmtlcigpKS5waXBlKG5ldyBhKFwiZGF0YV9sZW5ndGhcIikpLHQ9dGhpcztyZXR1cm4gZS5vbihcImVuZFwiLGZ1bmN0aW9uKCl7aWYodGhpcy5zdHJlYW1JbmZvLmRhdGFfbGVuZ3RoIT09dC51bmNvbXByZXNzZWRTaXplKXRocm93IG5ldyBFcnJvcihcIkJ1ZyA6IHVuY29tcHJlc3NlZCBkYXRhIHNpemUgbWlzbWF0Y2hcIil9KSxlfSxnZXRDb21wcmVzc2VkV29ya2VyOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBpKG4uUHJvbWlzZS5yZXNvbHZlKHRoaXMuY29tcHJlc3NlZENvbnRlbnQpKS53aXRoU3RyZWFtSW5mbyhcImNvbXByZXNzZWRTaXplXCIsdGhpcy5jb21wcmVzc2VkU2l6ZSkud2l0aFN0cmVhbUluZm8oXCJ1bmNvbXByZXNzZWRTaXplXCIsdGhpcy51bmNvbXByZXNzZWRTaXplKS53aXRoU3RyZWFtSW5mbyhcImNyYzMyXCIsdGhpcy5jcmMzMikud2l0aFN0cmVhbUluZm8oXCJjb21wcmVzc2lvblwiLHRoaXMuY29tcHJlc3Npb24pfX0sby5jcmVhdGVXb3JrZXJGcm9tPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZS5waXBlKG5ldyBzKS5waXBlKG5ldyBhKFwidW5jb21wcmVzc2VkU2l6ZVwiKSkucGlwZSh0LmNvbXByZXNzV29ya2VyKHIpKS5waXBlKG5ldyBhKFwiY29tcHJlc3NlZFNpemVcIikpLndpdGhTdHJlYW1JbmZvKFwiY29tcHJlc3Npb25cIix0KX0sdC5leHBvcnRzPW99LHtcIi4vZXh0ZXJuYWxcIjo2LFwiLi9zdHJlYW0vQ3JjMzJQcm9iZVwiOjI1LFwiLi9zdHJlYW0vRGF0YUxlbmd0aFByb2JlXCI6MjYsXCIuL3N0cmVhbS9EYXRhV29ya2VyXCI6Mjd9XSwzOltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49ZShcIi4vc3RyZWFtL0dlbmVyaWNXb3JrZXJcIik7ci5TVE9SRT17bWFnaWM6XCJcXDBcXDBcIixjb21wcmVzc1dvcmtlcjpmdW5jdGlvbigpe3JldHVybiBuZXcgbihcIlNUT1JFIGNvbXByZXNzaW9uXCIpfSx1bmNvbXByZXNzV29ya2VyOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBuKFwiU1RPUkUgZGVjb21wcmVzc2lvblwiKX19LHIuREVGTEFURT1lKFwiLi9mbGF0ZVwiKX0se1wiLi9mbGF0ZVwiOjcsXCIuL3N0cmVhbS9HZW5lcmljV29ya2VyXCI6Mjh9XSw0OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49ZShcIi4vdXRpbHNcIik7dmFyIG89ZnVuY3Rpb24oKXtmb3IodmFyIGUsdD1bXSxyPTA7cjwyNTY7cisrKXtlPXI7Zm9yKHZhciBuPTA7bjw4O24rKyllPTEmZT8zOTg4MjkyMzg0XmU+Pj4xOmU+Pj4xO3Rbcl09ZX1yZXR1cm4gdH0oKTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwIT09ZSYmZS5sZW5ndGg/XCJzdHJpbmdcIiE9PW4uZ2V0VHlwZU9mKGUpP2Z1bmN0aW9uKGUsdCxyLG4pe3ZhciBpPW8scz1uK3I7ZV49LTE7Zm9yKHZhciBhPW47YTxzO2ErKyllPWU+Pj44XmlbMjU1JihlXnRbYV0pXTtyZXR1cm4tMV5lfSgwfHQsZSxlLmxlbmd0aCwwKTpmdW5jdGlvbihlLHQscixuKXt2YXIgaT1vLHM9bityO2VePS0xO2Zvcih2YXIgYT1uO2E8czthKyspZT1lPj4+OF5pWzI1NSYoZV50LmNoYXJDb2RlQXQoYSkpXTtyZXR1cm4tMV5lfSgwfHQsZSxlLmxlbmd0aCwwKTowfX0se1wiLi91dGlsc1wiOjMyfV0sNTpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3IuYmFzZTY0PSExLHIuYmluYXJ5PSExLHIuZGlyPSExLHIuY3JlYXRlRm9sZGVycz0hMCxyLmRhdGU9bnVsbCxyLmNvbXByZXNzaW9uPW51bGwsci5jb21wcmVzc2lvbk9wdGlvbnM9bnVsbCxyLmNvbW1lbnQ9bnVsbCxyLnVuaXhQZXJtaXNzaW9ucz1udWxsLHIuZG9zUGVybWlzc2lvbnM9bnVsbH0se31dLDY6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgbj1udWxsO249XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFByb21pc2U/UHJvbWlzZTplKFwibGllXCIpLHQuZXhwb3J0cz17UHJvbWlzZTpufX0se2xpZTozN31dLDc6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgbj1cInVuZGVmaW5lZFwiIT10eXBlb2YgVWludDhBcnJheSYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFVpbnQxNkFycmF5JiZcInVuZGVmaW5lZFwiIT10eXBlb2YgVWludDMyQXJyYXksaT1lKFwicGFrb1wiKSxzPWUoXCIuL3V0aWxzXCIpLGE9ZShcIi4vc3RyZWFtL0dlbmVyaWNXb3JrZXJcIiksbz1uP1widWludDhhcnJheVwiOlwiYXJyYXlcIjtmdW5jdGlvbiBoKGUsdCl7YS5jYWxsKHRoaXMsXCJGbGF0ZVdvcmtlci9cIitlKSx0aGlzLl9wYWtvPW51bGwsdGhpcy5fcGFrb0FjdGlvbj1lLHRoaXMuX3Bha29PcHRpb25zPXQsdGhpcy5tZXRhPXt9fXIubWFnaWM9XCJcXGJcXDBcIixzLmluaGVyaXRzKGgsYSksaC5wcm90b3R5cGUucHJvY2Vzc0NodW5rPWZ1bmN0aW9uKGUpe3RoaXMubWV0YT1lLm1ldGEsbnVsbD09PXRoaXMuX3Bha28mJnRoaXMuX2NyZWF0ZVBha28oKSx0aGlzLl9wYWtvLnB1c2gocy50cmFuc2Zvcm1UbyhvLGUuZGF0YSksITEpfSxoLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe2EucHJvdG90eXBlLmZsdXNoLmNhbGwodGhpcyksbnVsbD09PXRoaXMuX3Bha28mJnRoaXMuX2NyZWF0ZVBha28oKSx0aGlzLl9wYWtvLnB1c2goW10sITApfSxoLnByb3RvdHlwZS5jbGVhblVwPWZ1bmN0aW9uKCl7YS5wcm90b3R5cGUuY2xlYW5VcC5jYWxsKHRoaXMpLHRoaXMuX3Bha289bnVsbH0saC5wcm90b3R5cGUuX2NyZWF0ZVBha289ZnVuY3Rpb24oKXt0aGlzLl9wYWtvPW5ldyBpW3RoaXMuX3Bha29BY3Rpb25dKHtyYXc6ITAsbGV2ZWw6dGhpcy5fcGFrb09wdGlvbnMubGV2ZWx8fC0xfSk7dmFyIHQ9dGhpczt0aGlzLl9wYWtvLm9uRGF0YT1mdW5jdGlvbihlKXt0LnB1c2goe2RhdGE6ZSxtZXRhOnQubWV0YX0pfX0sci5jb21wcmVzc1dvcmtlcj1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IGgoXCJEZWZsYXRlXCIsZSl9LHIudW5jb21wcmVzc1dvcmtlcj1mdW5jdGlvbigpe3JldHVybiBuZXcgaChcIkluZmxhdGVcIix7fSl9fSx7XCIuL3N0cmVhbS9HZW5lcmljV29ya2VyXCI6MjgsXCIuL3V0aWxzXCI6MzIscGFrbzozOH1dLDg6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBBKGUsdCl7dmFyIHIsbj1cIlwiO2ZvcihyPTA7cjx0O3IrKyluKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDI1NSZlKSxlPj4+PTg7cmV0dXJuIG59ZnVuY3Rpb24gbihlLHQscixuLGkscyl7dmFyIGEsbyxoPWUuZmlsZSx1PWUuY29tcHJlc3Npb24sbD1zIT09Ty51dGY4ZW5jb2RlLGY9SS50cmFuc2Zvcm1UbyhcInN0cmluZ1wiLHMoaC5uYW1lKSksYz1JLnRyYW5zZm9ybVRvKFwic3RyaW5nXCIsTy51dGY4ZW5jb2RlKGgubmFtZSkpLGQ9aC5jb21tZW50LHA9SS50cmFuc2Zvcm1UbyhcInN0cmluZ1wiLHMoZCkpLG09SS50cmFuc2Zvcm1UbyhcInN0cmluZ1wiLE8udXRmOGVuY29kZShkKSksXz1jLmxlbmd0aCE9PWgubmFtZS5sZW5ndGgsZz1tLmxlbmd0aCE9PWQubGVuZ3RoLGI9XCJcIix2PVwiXCIseT1cIlwiLHc9aC5kaXIsaz1oLmRhdGUseD17Y3JjMzI6MCxjb21wcmVzc2VkU2l6ZTowLHVuY29tcHJlc3NlZFNpemU6MH07dCYmIXJ8fCh4LmNyYzMyPWUuY3JjMzIseC5jb21wcmVzc2VkU2l6ZT1lLmNvbXByZXNzZWRTaXplLHgudW5jb21wcmVzc2VkU2l6ZT1lLnVuY29tcHJlc3NlZFNpemUpO3ZhciBTPTA7dCYmKFN8PTgpLGx8fCFfJiYhZ3x8KFN8PTIwNDgpO3ZhciB6PTAsQz0wO3cmJih6fD0xNiksXCJVTklYXCI9PT1pPyhDPTc5OCx6fD1mdW5jdGlvbihlLHQpe3ZhciByPWU7cmV0dXJuIGV8fChyPXQ/MTY4OTM6MzMyMDQpLCg2NTUzNSZyKTw8MTZ9KGgudW5peFBlcm1pc3Npb25zLHcpKTooQz0yMCx6fD1mdW5jdGlvbihlKXtyZXR1cm4gNjMmKGV8fDApfShoLmRvc1Blcm1pc3Npb25zKSksYT1rLmdldFVUQ0hvdXJzKCksYTw8PTYsYXw9ay5nZXRVVENNaW51dGVzKCksYTw8PTUsYXw9ay5nZXRVVENTZWNvbmRzKCkvMixvPWsuZ2V0VVRDRnVsbFllYXIoKS0xOTgwLG88PD00LG98PWsuZ2V0VVRDTW9udGgoKSsxLG88PD01LG98PWsuZ2V0VVRDRGF0ZSgpLF8mJih2PUEoMSwxKStBKEIoZiksNCkrYyxiKz1cInVwXCIrQSh2Lmxlbmd0aCwyKSt2KSxnJiYoeT1BKDEsMSkrQShCKHApLDQpK20sYis9XCJ1Y1wiK0EoeS5sZW5ndGgsMikreSk7dmFyIEU9XCJcIjtyZXR1cm4gRSs9XCJcXG5cXDBcIixFKz1BKFMsMiksRSs9dS5tYWdpYyxFKz1BKGEsMiksRSs9QShvLDIpLEUrPUEoeC5jcmMzMiw0KSxFKz1BKHguY29tcHJlc3NlZFNpemUsNCksRSs9QSh4LnVuY29tcHJlc3NlZFNpemUsNCksRSs9QShmLmxlbmd0aCwyKSxFKz1BKGIubGVuZ3RoLDIpLHtmaWxlUmVjb3JkOlIuTE9DQUxfRklMRV9IRUFERVIrRStmK2IsZGlyUmVjb3JkOlIuQ0VOVFJBTF9GSUxFX0hFQURFUitBKEMsMikrRStBKHAubGVuZ3RoLDIpK1wiXFwwXFwwXFwwXFwwXCIrQSh6LDQpK0Eobiw0KStmK2IrcH19dmFyIEk9ZShcIi4uL3V0aWxzXCIpLGk9ZShcIi4uL3N0cmVhbS9HZW5lcmljV29ya2VyXCIpLE89ZShcIi4uL3V0ZjhcIiksQj1lKFwiLi4vY3JjMzJcIiksUj1lKFwiLi4vc2lnbmF0dXJlXCIpO2Z1bmN0aW9uIHMoZSx0LHIsbil7aS5jYWxsKHRoaXMsXCJaaXBGaWxlV29ya2VyXCIpLHRoaXMuYnl0ZXNXcml0dGVuPTAsdGhpcy56aXBDb21tZW50PXQsdGhpcy56aXBQbGF0Zm9ybT1yLHRoaXMuZW5jb2RlRmlsZU5hbWU9bix0aGlzLnN0cmVhbUZpbGVzPWUsdGhpcy5hY2N1bXVsYXRlPSExLHRoaXMuY29udGVudEJ1ZmZlcj1bXSx0aGlzLmRpclJlY29yZHM9W10sdGhpcy5jdXJyZW50U291cmNlT2Zmc2V0PTAsdGhpcy5lbnRyaWVzQ291bnQ9MCx0aGlzLmN1cnJlbnRGaWxlPW51bGwsdGhpcy5fc291cmNlcz1bXX1JLmluaGVyaXRzKHMsaSkscy5wcm90b3R5cGUucHVzaD1mdW5jdGlvbihlKXt2YXIgdD1lLm1ldGEucGVyY2VudHx8MCxyPXRoaXMuZW50cmllc0NvdW50LG49dGhpcy5fc291cmNlcy5sZW5ndGg7dGhpcy5hY2N1bXVsYXRlP3RoaXMuY29udGVudEJ1ZmZlci5wdXNoKGUpOih0aGlzLmJ5dGVzV3JpdHRlbis9ZS5kYXRhLmxlbmd0aCxpLnByb3RvdHlwZS5wdXNoLmNhbGwodGhpcyx7ZGF0YTplLmRhdGEsbWV0YTp7Y3VycmVudEZpbGU6dGhpcy5jdXJyZW50RmlsZSxwZXJjZW50OnI/KHQrMTAwKihyLW4tMSkpL3I6MTAwfX0pKX0scy5wcm90b3R5cGUub3BlbmVkU291cmNlPWZ1bmN0aW9uKGUpe3RoaXMuY3VycmVudFNvdXJjZU9mZnNldD10aGlzLmJ5dGVzV3JpdHRlbix0aGlzLmN1cnJlbnRGaWxlPWUuZmlsZS5uYW1lO3ZhciB0PXRoaXMuc3RyZWFtRmlsZXMmJiFlLmZpbGUuZGlyO2lmKHQpe3ZhciByPW4oZSx0LCExLHRoaXMuY3VycmVudFNvdXJjZU9mZnNldCx0aGlzLnppcFBsYXRmb3JtLHRoaXMuZW5jb2RlRmlsZU5hbWUpO3RoaXMucHVzaCh7ZGF0YTpyLmZpbGVSZWNvcmQsbWV0YTp7cGVyY2VudDowfX0pfWVsc2UgdGhpcy5hY2N1bXVsYXRlPSEwfSxzLnByb3RvdHlwZS5jbG9zZWRTb3VyY2U9ZnVuY3Rpb24oZSl7dGhpcy5hY2N1bXVsYXRlPSExO3ZhciB0PXRoaXMuc3RyZWFtRmlsZXMmJiFlLmZpbGUuZGlyLHI9bihlLHQsITAsdGhpcy5jdXJyZW50U291cmNlT2Zmc2V0LHRoaXMuemlwUGxhdGZvcm0sdGhpcy5lbmNvZGVGaWxlTmFtZSk7aWYodGhpcy5kaXJSZWNvcmRzLnB1c2goci5kaXJSZWNvcmQpLHQpdGhpcy5wdXNoKHtkYXRhOmZ1bmN0aW9uKGUpe3JldHVybiBSLkRBVEFfREVTQ1JJUFRPUitBKGUuY3JjMzIsNCkrQShlLmNvbXByZXNzZWRTaXplLDQpK0EoZS51bmNvbXByZXNzZWRTaXplLDQpfShlKSxtZXRhOntwZXJjZW50OjEwMH19KTtlbHNlIGZvcih0aGlzLnB1c2goe2RhdGE6ci5maWxlUmVjb3JkLG1ldGE6e3BlcmNlbnQ6MH19KTt0aGlzLmNvbnRlbnRCdWZmZXIubGVuZ3RoOyl0aGlzLnB1c2godGhpcy5jb250ZW50QnVmZmVyLnNoaWZ0KCkpO3RoaXMuY3VycmVudEZpbGU9bnVsbH0scy5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5ieXRlc1dyaXR0ZW4sdD0wO3Q8dGhpcy5kaXJSZWNvcmRzLmxlbmd0aDt0KyspdGhpcy5wdXNoKHtkYXRhOnRoaXMuZGlyUmVjb3Jkc1t0XSxtZXRhOntwZXJjZW50OjEwMH19KTt2YXIgcj10aGlzLmJ5dGVzV3JpdHRlbi1lLG49ZnVuY3Rpb24oZSx0LHIsbixpKXt2YXIgcz1JLnRyYW5zZm9ybVRvKFwic3RyaW5nXCIsaShuKSk7cmV0dXJuIFIuQ0VOVFJBTF9ESVJFQ1RPUllfRU5EK1wiXFwwXFwwXFwwXFwwXCIrQShlLDIpK0EoZSwyKStBKHQsNCkrQShyLDQpK0Eocy5sZW5ndGgsMikrc30odGhpcy5kaXJSZWNvcmRzLmxlbmd0aCxyLGUsdGhpcy56aXBDb21tZW50LHRoaXMuZW5jb2RlRmlsZU5hbWUpO3RoaXMucHVzaCh7ZGF0YTpuLG1ldGE6e3BlcmNlbnQ6MTAwfX0pfSxzLnByb3RvdHlwZS5wcmVwYXJlTmV4dFNvdXJjZT1mdW5jdGlvbigpe3RoaXMucHJldmlvdXM9dGhpcy5fc291cmNlcy5zaGlmdCgpLHRoaXMub3BlbmVkU291cmNlKHRoaXMucHJldmlvdXMuc3RyZWFtSW5mbyksdGhpcy5pc1BhdXNlZD90aGlzLnByZXZpb3VzLnBhdXNlKCk6dGhpcy5wcmV2aW91cy5yZXN1bWUoKX0scy5wcm90b3R5cGUucmVnaXN0ZXJQcmV2aW91cz1mdW5jdGlvbihlKXt0aGlzLl9zb3VyY2VzLnB1c2goZSk7dmFyIHQ9dGhpcztyZXR1cm4gZS5vbihcImRhdGFcIixmdW5jdGlvbihlKXt0LnByb2Nlc3NDaHVuayhlKX0pLGUub24oXCJlbmRcIixmdW5jdGlvbigpe3QuY2xvc2VkU291cmNlKHQucHJldmlvdXMuc3RyZWFtSW5mbyksdC5fc291cmNlcy5sZW5ndGg/dC5wcmVwYXJlTmV4dFNvdXJjZSgpOnQuZW5kKCl9KSxlLm9uKFwiZXJyb3JcIixmdW5jdGlvbihlKXt0LmVycm9yKGUpfSksdGhpc30scy5wcm90b3R5cGUucmVzdW1lPWZ1bmN0aW9uKCl7cmV0dXJuISFpLnByb3RvdHlwZS5yZXN1bWUuY2FsbCh0aGlzKSYmKCF0aGlzLnByZXZpb3VzJiZ0aGlzLl9zb3VyY2VzLmxlbmd0aD8odGhpcy5wcmVwYXJlTmV4dFNvdXJjZSgpLCEwKTp0aGlzLnByZXZpb3VzfHx0aGlzLl9zb3VyY2VzLmxlbmd0aHx8dGhpcy5nZW5lcmF0ZWRFcnJvcj92b2lkIDA6KHRoaXMuZW5kKCksITApKX0scy5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fc291cmNlcztpZighaS5wcm90b3R5cGUuZXJyb3IuY2FsbCh0aGlzLGUpKXJldHVybiExO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXRyeXt0W3JdLmVycm9yKGUpfWNhdGNoKGUpe31yZXR1cm4hMH0scy5wcm90b3R5cGUubG9jaz1mdW5jdGlvbigpe2kucHJvdG90eXBlLmxvY2suY2FsbCh0aGlzKTtmb3IodmFyIGU9dGhpcy5fc291cmNlcyx0PTA7dDxlLmxlbmd0aDt0KyspZVt0XS5sb2NrKCl9LHQuZXhwb3J0cz1zfSx7XCIuLi9jcmMzMlwiOjQsXCIuLi9zaWduYXR1cmVcIjoyMyxcIi4uL3N0cmVhbS9HZW5lcmljV29ya2VyXCI6MjgsXCIuLi91dGY4XCI6MzEsXCIuLi91dGlsc1wiOjMyfV0sOTpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciB1PWUoXCIuLi9jb21wcmVzc2lvbnNcIiksbj1lKFwiLi9aaXBGaWxlV29ya2VyXCIpO3IuZ2VuZXJhdGVXb3JrZXI9ZnVuY3Rpb24oZSxhLHQpe3ZhciBvPW5ldyBuKGEuc3RyZWFtRmlsZXMsdCxhLnBsYXRmb3JtLGEuZW5jb2RlRmlsZU5hbWUpLGg9MDt0cnl7ZS5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7aCsrO3ZhciByPWZ1bmN0aW9uKGUsdCl7dmFyIHI9ZXx8dCxuPXVbcl07aWYoIW4pdGhyb3cgbmV3IEVycm9yKHIrXCIgaXMgbm90IGEgdmFsaWQgY29tcHJlc3Npb24gbWV0aG9kICFcIik7cmV0dXJuIG59KHQub3B0aW9ucy5jb21wcmVzc2lvbixhLmNvbXByZXNzaW9uKSxuPXQub3B0aW9ucy5jb21wcmVzc2lvbk9wdGlvbnN8fGEuY29tcHJlc3Npb25PcHRpb25zfHx7fSxpPXQuZGlyLHM9dC5kYXRlO3QuX2NvbXByZXNzV29ya2VyKHIsbikud2l0aFN0cmVhbUluZm8oXCJmaWxlXCIse25hbWU6ZSxkaXI6aSxkYXRlOnMsY29tbWVudDp0LmNvbW1lbnR8fFwiXCIsdW5peFBlcm1pc3Npb25zOnQudW5peFBlcm1pc3Npb25zLGRvc1Blcm1pc3Npb25zOnQuZG9zUGVybWlzc2lvbnN9KS5waXBlKG8pfSksby5lbnRyaWVzQ291bnQ9aH1jYXRjaChlKXtvLmVycm9yKGUpfXJldHVybiBvfX0se1wiLi4vY29tcHJlc3Npb25zXCI6MyxcIi4vWmlwRmlsZVdvcmtlclwiOjh9XSwxMDpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG4oKXtpZighKHRoaXMgaW5zdGFuY2VvZiBuKSlyZXR1cm4gbmV3IG47aWYoYXJndW1lbnRzLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoXCJUaGUgY29uc3RydWN0b3Igd2l0aCBwYXJhbWV0ZXJzIGhhcyBiZWVuIHJlbW92ZWQgaW4gSlNaaXAgMy4wLCBwbGVhc2UgY2hlY2sgdGhlIHVwZ3JhZGUgZ3VpZGUuXCIpO3RoaXMuZmlsZXM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmNvbW1lbnQ9bnVsbCx0aGlzLnJvb3Q9XCJcIix0aGlzLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IG47Zm9yKHZhciB0IGluIHRoaXMpXCJmdW5jdGlvblwiIT10eXBlb2YgdGhpc1t0XSYmKGVbdF09dGhpc1t0XSk7cmV0dXJuIGV9fShuLnByb3RvdHlwZT1lKFwiLi9vYmplY3RcIikpLmxvYWRBc3luYz1lKFwiLi9sb2FkXCIpLG4uc3VwcG9ydD1lKFwiLi9zdXBwb3J0XCIpLG4uZGVmYXVsdHM9ZShcIi4vZGVmYXVsdHNcIiksbi52ZXJzaW9uPVwiMy4xMC4xXCIsbi5sb2FkQXN5bmM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4obmV3IG4pLmxvYWRBc3luYyhlLHQpfSxuLmV4dGVybmFsPWUoXCIuL2V4dGVybmFsXCIpLHQuZXhwb3J0cz1ufSx7XCIuL2RlZmF1bHRzXCI6NSxcIi4vZXh0ZXJuYWxcIjo2LFwiLi9sb2FkXCI6MTEsXCIuL29iamVjdFwiOjE1LFwiLi9zdXBwb3J0XCI6MzB9XSwxMTpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciB1PWUoXCIuL3V0aWxzXCIpLGk9ZShcIi4vZXh0ZXJuYWxcIiksbj1lKFwiLi91dGY4XCIpLHM9ZShcIi4vemlwRW50cmllc1wiKSxhPWUoXCIuL3N0cmVhbS9DcmMzMlByb2JlXCIpLGw9ZShcIi4vbm9kZWpzVXRpbHNcIik7ZnVuY3Rpb24gZihuKXtyZXR1cm4gbmV3IGkuUHJvbWlzZShmdW5jdGlvbihlLHQpe3ZhciByPW4uZGVjb21wcmVzc2VkLmdldENvbnRlbnRXb3JrZXIoKS5waXBlKG5ldyBhKTtyLm9uKFwiZXJyb3JcIixmdW5jdGlvbihlKXt0KGUpfSkub24oXCJlbmRcIixmdW5jdGlvbigpe3Iuc3RyZWFtSW5mby5jcmMzMiE9PW4uZGVjb21wcmVzc2VkLmNyYzMyP3QobmV3IEVycm9yKFwiQ29ycnVwdGVkIHppcCA6IENSQzMyIG1pc21hdGNoXCIpKTplKCl9KS5yZXN1bWUoKX0pfXQuZXhwb3J0cz1mdW5jdGlvbihlLG8pe3ZhciBoPXRoaXM7cmV0dXJuIG89dS5leHRlbmQob3x8e30se2Jhc2U2NDohMSxjaGVja0NSQzMyOiExLG9wdGltaXplZEJpbmFyeVN0cmluZzohMSxjcmVhdGVGb2xkZXJzOiExLGRlY29kZUZpbGVOYW1lOm4udXRmOGRlY29kZX0pLGwuaXNOb2RlJiZsLmlzU3RyZWFtKGUpP2kuUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKFwiSlNaaXAgY2FuJ3QgYWNjZXB0IGEgc3RyZWFtIHdoZW4gbG9hZGluZyBhIHppcCBmaWxlLlwiKSk6dS5wcmVwYXJlQ29udGVudChcInRoZSBsb2FkZWQgemlwIGZpbGVcIixlLCEwLG8ub3B0aW1pemVkQmluYXJ5U3RyaW5nLG8uYmFzZTY0KS50aGVuKGZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBzKG8pO3JldHVybiB0LmxvYWQoZSksdH0pLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9W2kuUHJvbWlzZS5yZXNvbHZlKGUpXSxyPWUuZmlsZXM7aWYoby5jaGVja0NSQzMyKWZvcih2YXIgbj0wO248ci5sZW5ndGg7bisrKXQucHVzaChmKHJbbl0pKTtyZXR1cm4gaS5Qcm9taXNlLmFsbCh0KX0pLnRoZW4oZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUuc2hpZnQoKSxyPXQuZmlsZXMsbj0wO248ci5sZW5ndGg7bisrKXt2YXIgaT1yW25dLHM9aS5maWxlTmFtZVN0cixhPXUucmVzb2x2ZShpLmZpbGVOYW1lU3RyKTtoLmZpbGUoYSxpLmRlY29tcHJlc3NlZCx7YmluYXJ5OiEwLG9wdGltaXplZEJpbmFyeVN0cmluZzohMCxkYXRlOmkuZGF0ZSxkaXI6aS5kaXIsY29tbWVudDppLmZpbGVDb21tZW50U3RyLmxlbmd0aD9pLmZpbGVDb21tZW50U3RyOm51bGwsdW5peFBlcm1pc3Npb25zOmkudW5peFBlcm1pc3Npb25zLGRvc1Blcm1pc3Npb25zOmkuZG9zUGVybWlzc2lvbnMsY3JlYXRlRm9sZGVyczpvLmNyZWF0ZUZvbGRlcnN9KSxpLmRpcnx8KGguZmlsZShhKS51bnNhZmVPcmlnaW5hbE5hbWU9cyl9cmV0dXJuIHQuemlwQ29tbWVudC5sZW5ndGgmJihoLmNvbW1lbnQ9dC56aXBDb21tZW50KSxofSl9fSx7XCIuL2V4dGVybmFsXCI6NixcIi4vbm9kZWpzVXRpbHNcIjoxNCxcIi4vc3RyZWFtL0NyYzMyUHJvYmVcIjoyNSxcIi4vdXRmOFwiOjMxLFwiLi91dGlsc1wiOjMyLFwiLi96aXBFbnRyaWVzXCI6MzN9XSwxMjpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBuPWUoXCIuLi91dGlsc1wiKSxpPWUoXCIuLi9zdHJlYW0vR2VuZXJpY1dvcmtlclwiKTtmdW5jdGlvbiBzKGUsdCl7aS5jYWxsKHRoaXMsXCJOb2RlanMgc3RyZWFtIGlucHV0IGFkYXB0ZXIgZm9yIFwiK2UpLHRoaXMuX3Vwc3RyZWFtRW5kZWQ9ITEsdGhpcy5fYmluZFN0cmVhbSh0KX1uLmluaGVyaXRzKHMsaSkscy5wcm90b3R5cGUuX2JpbmRTdHJlYW09ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczsodGhpcy5fc3RyZWFtPWUpLnBhdXNlKCksZS5vbihcImRhdGFcIixmdW5jdGlvbihlKXt0LnB1c2goe2RhdGE6ZSxtZXRhOntwZXJjZW50OjB9fSl9KS5vbihcImVycm9yXCIsZnVuY3Rpb24oZSl7dC5pc1BhdXNlZD90aGlzLmdlbmVyYXRlZEVycm9yPWU6dC5lcnJvcihlKX0pLm9uKFwiZW5kXCIsZnVuY3Rpb24oKXt0LmlzUGF1c2VkP3QuX3Vwc3RyZWFtRW5kZWQ9ITA6dC5lbmQoKX0pfSxzLnByb3RvdHlwZS5wYXVzZT1mdW5jdGlvbigpe3JldHVybiEhaS5wcm90b3R5cGUucGF1c2UuY2FsbCh0aGlzKSYmKHRoaXMuX3N0cmVhbS5wYXVzZSgpLCEwKX0scy5wcm90b3R5cGUucmVzdW1lPWZ1bmN0aW9uKCl7cmV0dXJuISFpLnByb3RvdHlwZS5yZXN1bWUuY2FsbCh0aGlzKSYmKHRoaXMuX3Vwc3RyZWFtRW5kZWQ/dGhpcy5lbmQoKTp0aGlzLl9zdHJlYW0ucmVzdW1lKCksITApfSx0LmV4cG9ydHM9c30se1wiLi4vc3RyZWFtL0dlbmVyaWNXb3JrZXJcIjoyOCxcIi4uL3V0aWxzXCI6MzJ9XSwxMzpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBpPWUoXCJyZWFkYWJsZS1zdHJlYW1cIikuUmVhZGFibGU7ZnVuY3Rpb24gbihlLHQscil7aS5jYWxsKHRoaXMsdCksdGhpcy5faGVscGVyPWU7dmFyIG49dGhpcztlLm9uKFwiZGF0YVwiLGZ1bmN0aW9uKGUsdCl7bi5wdXNoKGUpfHxuLl9oZWxwZXIucGF1c2UoKSxyJiZyKHQpfSkub24oXCJlcnJvclwiLGZ1bmN0aW9uKGUpe24uZW1pdChcImVycm9yXCIsZSl9KS5vbihcImVuZFwiLGZ1bmN0aW9uKCl7bi5wdXNoKG51bGwpfSl9ZShcIi4uL3V0aWxzXCIpLmluaGVyaXRzKG4saSksbi5wcm90b3R5cGUuX3JlYWQ9ZnVuY3Rpb24oKXt0aGlzLl9oZWxwZXIucmVzdW1lKCl9LHQuZXhwb3J0cz1ufSx7XCIuLi91dGlsc1wiOjMyLFwicmVhZGFibGUtc3RyZWFtXCI6MTZ9XSwxNDpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3QuZXhwb3J0cz17aXNOb2RlOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBCdWZmZXIsbmV3QnVmZmVyRnJvbTpmdW5jdGlvbihlLHQpe2lmKEJ1ZmZlci5mcm9tJiZCdWZmZXIuZnJvbSE9PVVpbnQ4QXJyYXkuZnJvbSlyZXR1cm4gQnVmZmVyLmZyb20oZSx0KTtpZihcIm51bWJlclwiPT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoJ1RoZSBcImRhdGFcIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBhIG51bWJlcicpO3JldHVybiBuZXcgQnVmZmVyKGUsdCl9LGFsbG9jQnVmZmVyOmZ1bmN0aW9uKGUpe2lmKEJ1ZmZlci5hbGxvYylyZXR1cm4gQnVmZmVyLmFsbG9jKGUpO3ZhciB0PW5ldyBCdWZmZXIoZSk7cmV0dXJuIHQuZmlsbCgwKSx0fSxpc0J1ZmZlcjpmdW5jdGlvbihlKXtyZXR1cm4gQnVmZmVyLmlzQnVmZmVyKGUpfSxpc1N0cmVhbTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgZS5vbiYmXCJmdW5jdGlvblwiPT10eXBlb2YgZS5wYXVzZSYmXCJmdW5jdGlvblwiPT10eXBlb2YgZS5yZXN1bWV9fX0se31dLDE1OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gcyhlLHQscil7dmFyIG4saT11LmdldFR5cGVPZih0KSxzPXUuZXh0ZW5kKHJ8fHt9LGYpO3MuZGF0ZT1zLmRhdGV8fG5ldyBEYXRlLG51bGwhPT1zLmNvbXByZXNzaW9uJiYocy5jb21wcmVzc2lvbj1zLmNvbXByZXNzaW9uLnRvVXBwZXJDYXNlKCkpLFwic3RyaW5nXCI9PXR5cGVvZiBzLnVuaXhQZXJtaXNzaW9ucyYmKHMudW5peFBlcm1pc3Npb25zPXBhcnNlSW50KHMudW5peFBlcm1pc3Npb25zLDgpKSxzLnVuaXhQZXJtaXNzaW9ucyYmMTYzODQmcy51bml4UGVybWlzc2lvbnMmJihzLmRpcj0hMCkscy5kb3NQZXJtaXNzaW9ucyYmMTYmcy5kb3NQZXJtaXNzaW9ucyYmKHMuZGlyPSEwKSxzLmRpciYmKGU9ZyhlKSkscy5jcmVhdGVGb2xkZXJzJiYobj1fKGUpKSYmYi5jYWxsKHRoaXMsbiwhMCk7dmFyIGE9XCJzdHJpbmdcIj09PWkmJiExPT09cy5iaW5hcnkmJiExPT09cy5iYXNlNjQ7ciYmdm9pZCAwIT09ci5iaW5hcnl8fChzLmJpbmFyeT0hYSksKHQgaW5zdGFuY2VvZiBjJiYwPT09dC51bmNvbXByZXNzZWRTaXplfHxzLmRpcnx8IXR8fDA9PT10Lmxlbmd0aCkmJihzLmJhc2U2ND0hMSxzLmJpbmFyeT0hMCx0PVwiXCIscy5jb21wcmVzc2lvbj1cIlNUT1JFXCIsaT1cInN0cmluZ1wiKTt2YXIgbz1udWxsO289dCBpbnN0YW5jZW9mIGN8fHQgaW5zdGFuY2VvZiBsP3Q6cC5pc05vZGUmJnAuaXNTdHJlYW0odCk/bmV3IG0oZSx0KTp1LnByZXBhcmVDb250ZW50KGUsdCxzLmJpbmFyeSxzLm9wdGltaXplZEJpbmFyeVN0cmluZyxzLmJhc2U2NCk7dmFyIGg9bmV3IGQoZSxvLHMpO3RoaXMuZmlsZXNbZV09aH12YXIgaT1lKFwiLi91dGY4XCIpLHU9ZShcIi4vdXRpbHNcIiksbD1lKFwiLi9zdHJlYW0vR2VuZXJpY1dvcmtlclwiKSxhPWUoXCIuL3N0cmVhbS9TdHJlYW1IZWxwZXJcIiksZj1lKFwiLi9kZWZhdWx0c1wiKSxjPWUoXCIuL2NvbXByZXNzZWRPYmplY3RcIiksZD1lKFwiLi96aXBPYmplY3RcIiksbz1lKFwiLi9nZW5lcmF0ZVwiKSxwPWUoXCIuL25vZGVqc1V0aWxzXCIpLG09ZShcIi4vbm9kZWpzL05vZGVqc1N0cmVhbUlucHV0QWRhcHRlclwiKSxfPWZ1bmN0aW9uKGUpe1wiL1wiPT09ZS5zbGljZSgtMSkmJihlPWUuc3Vic3RyaW5nKDAsZS5sZW5ndGgtMSkpO3ZhciB0PWUubGFzdEluZGV4T2YoXCIvXCIpO3JldHVybiAwPHQ/ZS5zdWJzdHJpbmcoMCx0KTpcIlwifSxnPWZ1bmN0aW9uKGUpe3JldHVyblwiL1wiIT09ZS5zbGljZSgtMSkmJihlKz1cIi9cIiksZX0sYj1mdW5jdGlvbihlLHQpe3JldHVybiB0PXZvaWQgMCE9PXQ/dDpmLmNyZWF0ZUZvbGRlcnMsZT1nKGUpLHRoaXMuZmlsZXNbZV18fHMuY2FsbCh0aGlzLGUsbnVsbCx7ZGlyOiEwLGNyZWF0ZUZvbGRlcnM6dH0pLHRoaXMuZmlsZXNbZV19O2Z1bmN0aW9uIGgoZSl7cmV0dXJuXCJbb2JqZWN0IFJlZ0V4cF1cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX12YXIgbj17bG9hZDpmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihcIlRoaXMgbWV0aG9kIGhhcyBiZWVuIHJlbW92ZWQgaW4gSlNaaXAgMy4wLCBwbGVhc2UgY2hlY2sgdGhlIHVwZ3JhZGUgZ3VpZGUuXCIpfSxmb3JFYWNoOmZ1bmN0aW9uKGUpe3ZhciB0LHIsbjtmb3IodCBpbiB0aGlzLmZpbGVzKW49dGhpcy5maWxlc1t0XSwocj10LnNsaWNlKHRoaXMucm9vdC5sZW5ndGgsdC5sZW5ndGgpKSYmdC5zbGljZSgwLHRoaXMucm9vdC5sZW5ndGgpPT09dGhpcy5yb290JiZlKHIsbil9LGZpbHRlcjpmdW5jdGlvbihyKXt2YXIgbj1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7cihlLHQpJiZuLnB1c2godCl9KSxufSxmaWxlOmZ1bmN0aW9uKGUsdCxyKXtpZigxIT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gZT10aGlzLnJvb3QrZSxzLmNhbGwodGhpcyxlLHQsciksdGhpcztpZihoKGUpKXt2YXIgbj1lO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbihlLHQpe3JldHVybiF0LmRpciYmbi50ZXN0KGUpfSl9dmFyIGk9dGhpcy5maWxlc1t0aGlzLnJvb3QrZV07cmV0dXJuIGkmJiFpLmRpcj9pOm51bGx9LGZvbGRlcjpmdW5jdGlvbihyKXtpZighcilyZXR1cm4gdGhpcztpZihoKHIpKXJldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbihlLHQpe3JldHVybiB0LmRpciYmci50ZXN0KGUpfSk7dmFyIGU9dGhpcy5yb290K3IsdD1iLmNhbGwodGhpcyxlKSxuPXRoaXMuY2xvbmUoKTtyZXR1cm4gbi5yb290PXQubmFtZSxufSxyZW1vdmU6ZnVuY3Rpb24ocil7cj10aGlzLnJvb3Qrcjt2YXIgZT10aGlzLmZpbGVzW3JdO2lmKGV8fChcIi9cIiE9PXIuc2xpY2UoLTEpJiYocis9XCIvXCIpLGU9dGhpcy5maWxlc1tyXSksZSYmIWUuZGlyKWRlbGV0ZSB0aGlzLmZpbGVzW3JdO2Vsc2UgZm9yKHZhciB0PXRoaXMuZmlsdGVyKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQubmFtZS5zbGljZSgwLHIubGVuZ3RoKT09PXJ9KSxuPTA7bjx0Lmxlbmd0aDtuKyspZGVsZXRlIHRoaXMuZmlsZXNbdFtuXS5uYW1lXTtyZXR1cm4gdGhpc30sZ2VuZXJhdGU6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoXCJUaGlzIG1ldGhvZCBoYXMgYmVlbiByZW1vdmVkIGluIEpTWmlwIDMuMCwgcGxlYXNlIGNoZWNrIHRoZSB1cGdyYWRlIGd1aWRlLlwiKX0sZ2VuZXJhdGVJbnRlcm5hbFN0cmVhbTpmdW5jdGlvbihlKXt2YXIgdCxyPXt9O3RyeXtpZigocj11LmV4dGVuZChlfHx7fSx7c3RyZWFtRmlsZXM6ITEsY29tcHJlc3Npb246XCJTVE9SRVwiLGNvbXByZXNzaW9uT3B0aW9uczpudWxsLHR5cGU6XCJcIixwbGF0Zm9ybTpcIkRPU1wiLGNvbW1lbnQ6bnVsbCxtaW1lVHlwZTpcImFwcGxpY2F0aW9uL3ppcFwiLGVuY29kZUZpbGVOYW1lOmkudXRmOGVuY29kZX0pKS50eXBlPXIudHlwZS50b0xvd2VyQ2FzZSgpLHIuY29tcHJlc3Npb249ci5jb21wcmVzc2lvbi50b1VwcGVyQ2FzZSgpLFwiYmluYXJ5c3RyaW5nXCI9PT1yLnR5cGUmJihyLnR5cGU9XCJzdHJpbmdcIiksIXIudHlwZSl0aHJvdyBuZXcgRXJyb3IoXCJObyBvdXRwdXQgdHlwZSBzcGVjaWZpZWQuXCIpO3UuY2hlY2tTdXBwb3J0KHIudHlwZSksXCJkYXJ3aW5cIiE9PXIucGxhdGZvcm0mJlwiZnJlZWJzZFwiIT09ci5wbGF0Zm9ybSYmXCJsaW51eFwiIT09ci5wbGF0Zm9ybSYmXCJzdW5vc1wiIT09ci5wbGF0Zm9ybXx8KHIucGxhdGZvcm09XCJVTklYXCIpLFwid2luMzJcIj09PXIucGxhdGZvcm0mJihyLnBsYXRmb3JtPVwiRE9TXCIpO3ZhciBuPXIuY29tbWVudHx8dGhpcy5jb21tZW50fHxcIlwiO3Q9by5nZW5lcmF0ZVdvcmtlcih0aGlzLHIsbil9Y2F0Y2goZSl7KHQ9bmV3IGwoXCJlcnJvclwiKSkuZXJyb3IoZSl9cmV0dXJuIG5ldyBhKHQsci50eXBlfHxcInN0cmluZ1wiLHIubWltZVR5cGUpfSxnZW5lcmF0ZUFzeW5jOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZ2VuZXJhdGVJbnRlcm5hbFN0cmVhbShlKS5hY2N1bXVsYXRlKHQpfSxnZW5lcmF0ZU5vZGVTdHJlYW06ZnVuY3Rpb24oZSx0KXtyZXR1cm4oZT1lfHx7fSkudHlwZXx8KGUudHlwZT1cIm5vZGVidWZmZXJcIiksdGhpcy5nZW5lcmF0ZUludGVybmFsU3RyZWFtKGUpLnRvTm9kZWpzU3RyZWFtKHQpfX07dC5leHBvcnRzPW59LHtcIi4vY29tcHJlc3NlZE9iamVjdFwiOjIsXCIuL2RlZmF1bHRzXCI6NSxcIi4vZ2VuZXJhdGVcIjo5LFwiLi9ub2RlanMvTm9kZWpzU3RyZWFtSW5wdXRBZGFwdGVyXCI6MTIsXCIuL25vZGVqc1V0aWxzXCI6MTQsXCIuL3N0cmVhbS9HZW5lcmljV29ya2VyXCI6MjgsXCIuL3N0cmVhbS9TdHJlYW1IZWxwZXJcIjoyOSxcIi4vdXRmOFwiOjMxLFwiLi91dGlsc1wiOjMyLFwiLi96aXBPYmplY3RcIjozNX1dLDE2OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dC5leHBvcnRzPWUoXCJzdHJlYW1cIil9LHtzdHJlYW06dm9pZCAwfV0sMTc6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgbj1lKFwiLi9EYXRhUmVhZGVyXCIpO2Z1bmN0aW9uIGkoZSl7bi5jYWxsKHRoaXMsZSk7Zm9yKHZhciB0PTA7dDx0aGlzLmRhdGEubGVuZ3RoO3QrKyllW3RdPTI1NSZlW3RdfWUoXCIuLi91dGlsc1wiKS5pbmhlcml0cyhpLG4pLGkucHJvdG90eXBlLmJ5dGVBdD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5kYXRhW3RoaXMuemVybytlXX0saS5wcm90b3R5cGUubGFzdEluZGV4T2ZTaWduYXR1cmU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUuY2hhckNvZGVBdCgwKSxyPWUuY2hhckNvZGVBdCgxKSxuPWUuY2hhckNvZGVBdCgyKSxpPWUuY2hhckNvZGVBdCgzKSxzPXRoaXMubGVuZ3RoLTQ7MDw9czstLXMpaWYodGhpcy5kYXRhW3NdPT09dCYmdGhpcy5kYXRhW3MrMV09PT1yJiZ0aGlzLmRhdGFbcysyXT09PW4mJnRoaXMuZGF0YVtzKzNdPT09aSlyZXR1cm4gcy10aGlzLnplcm87cmV0dXJuLTF9LGkucHJvdG90eXBlLnJlYWRBbmRDaGVja1NpZ25hdHVyZT1mdW5jdGlvbihlKXt2YXIgdD1lLmNoYXJDb2RlQXQoMCkscj1lLmNoYXJDb2RlQXQoMSksbj1lLmNoYXJDb2RlQXQoMiksaT1lLmNoYXJDb2RlQXQoMykscz10aGlzLnJlYWREYXRhKDQpO3JldHVybiB0PT09c1swXSYmcj09PXNbMV0mJm49PT1zWzJdJiZpPT09c1szXX0saS5wcm90b3R5cGUucmVhZERhdGE9ZnVuY3Rpb24oZSl7aWYodGhpcy5jaGVja09mZnNldChlKSwwPT09ZSlyZXR1cm5bXTt2YXIgdD10aGlzLmRhdGEuc2xpY2UodGhpcy56ZXJvK3RoaXMuaW5kZXgsdGhpcy56ZXJvK3RoaXMuaW5kZXgrZSk7cmV0dXJuIHRoaXMuaW5kZXgrPWUsdH0sdC5leHBvcnRzPWl9LHtcIi4uL3V0aWxzXCI6MzIsXCIuL0RhdGFSZWFkZXJcIjoxOH1dLDE4OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49ZShcIi4uL3V0aWxzXCIpO2Z1bmN0aW9uIGkoZSl7dGhpcy5kYXRhPWUsdGhpcy5sZW5ndGg9ZS5sZW5ndGgsdGhpcy5pbmRleD0wLHRoaXMuemVybz0wfWkucHJvdG90eXBlPXtjaGVja09mZnNldDpmdW5jdGlvbihlKXt0aGlzLmNoZWNrSW5kZXgodGhpcy5pbmRleCtlKX0sY2hlY2tJbmRleDpmdW5jdGlvbihlKXtpZih0aGlzLmxlbmd0aDx0aGlzLnplcm8rZXx8ZTwwKXRocm93IG5ldyBFcnJvcihcIkVuZCBvZiBkYXRhIHJlYWNoZWQgKGRhdGEgbGVuZ3RoID0gXCIrdGhpcy5sZW5ndGgrXCIsIGFza2VkIGluZGV4ID0gXCIrZStcIikuIENvcnJ1cHRlZCB6aXAgP1wiKX0sc2V0SW5kZXg6ZnVuY3Rpb24oZSl7dGhpcy5jaGVja0luZGV4KGUpLHRoaXMuaW5kZXg9ZX0sc2tpcDpmdW5jdGlvbihlKXt0aGlzLnNldEluZGV4KHRoaXMuaW5kZXgrZSl9LGJ5dGVBdDpmdW5jdGlvbigpe30scmVhZEludDpmdW5jdGlvbihlKXt2YXIgdCxyPTA7Zm9yKHRoaXMuY2hlY2tPZmZzZXQoZSksdD10aGlzLmluZGV4K2UtMTt0Pj10aGlzLmluZGV4O3QtLSlyPShyPDw4KSt0aGlzLmJ5dGVBdCh0KTtyZXR1cm4gdGhpcy5pbmRleCs9ZSxyfSxyZWFkU3RyaW5nOmZ1bmN0aW9uKGUpe3JldHVybiBuLnRyYW5zZm9ybVRvKFwic3RyaW5nXCIsdGhpcy5yZWFkRGF0YShlKSl9LHJlYWREYXRhOmZ1bmN0aW9uKCl7fSxsYXN0SW5kZXhPZlNpZ25hdHVyZTpmdW5jdGlvbigpe30scmVhZEFuZENoZWNrU2lnbmF0dXJlOmZ1bmN0aW9uKCl7fSxyZWFkRGF0ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMucmVhZEludCg0KTtyZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEMoMTk4MCsoZT4+MjUmMTI3KSwoZT4+MjEmMTUpLTEsZT4+MTYmMzEsZT4+MTEmMzEsZT4+NSY2MywoMzEmZSk8PDEpKX19LHQuZXhwb3J0cz1pfSx7XCIuLi91dGlsc1wiOjMyfV0sMTk6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgbj1lKFwiLi9VaW50OEFycmF5UmVhZGVyXCIpO2Z1bmN0aW9uIGkoZSl7bi5jYWxsKHRoaXMsZSl9ZShcIi4uL3V0aWxzXCIpLmluaGVyaXRzKGksbiksaS5wcm90b3R5cGUucmVhZERhdGE9ZnVuY3Rpb24oZSl7dGhpcy5jaGVja09mZnNldChlKTt2YXIgdD10aGlzLmRhdGEuc2xpY2UodGhpcy56ZXJvK3RoaXMuaW5kZXgsdGhpcy56ZXJvK3RoaXMuaW5kZXgrZSk7cmV0dXJuIHRoaXMuaW5kZXgrPWUsdH0sdC5leHBvcnRzPWl9LHtcIi4uL3V0aWxzXCI6MzIsXCIuL1VpbnQ4QXJyYXlSZWFkZXJcIjoyMX1dLDIwOltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49ZShcIi4vRGF0YVJlYWRlclwiKTtmdW5jdGlvbiBpKGUpe24uY2FsbCh0aGlzLGUpfWUoXCIuLi91dGlsc1wiKS5pbmhlcml0cyhpLG4pLGkucHJvdG90eXBlLmJ5dGVBdD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5kYXRhLmNoYXJDb2RlQXQodGhpcy56ZXJvK2UpfSxpLnByb3RvdHlwZS5sYXN0SW5kZXhPZlNpZ25hdHVyZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5kYXRhLmxhc3RJbmRleE9mKGUpLXRoaXMuemVyb30saS5wcm90b3R5cGUucmVhZEFuZENoZWNrU2lnbmF0dXJlPWZ1bmN0aW9uKGUpe3JldHVybiBlPT09dGhpcy5yZWFkRGF0YSg0KX0saS5wcm90b3R5cGUucmVhZERhdGE9ZnVuY3Rpb24oZSl7dGhpcy5jaGVja09mZnNldChlKTt2YXIgdD10aGlzLmRhdGEuc2xpY2UodGhpcy56ZXJvK3RoaXMuaW5kZXgsdGhpcy56ZXJvK3RoaXMuaW5kZXgrZSk7cmV0dXJuIHRoaXMuaW5kZXgrPWUsdH0sdC5leHBvcnRzPWl9LHtcIi4uL3V0aWxzXCI6MzIsXCIuL0RhdGFSZWFkZXJcIjoxOH1dLDIxOltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49ZShcIi4vQXJyYXlSZWFkZXJcIik7ZnVuY3Rpb24gaShlKXtuLmNhbGwodGhpcyxlKX1lKFwiLi4vdXRpbHNcIikuaW5oZXJpdHMoaSxuKSxpLnByb3RvdHlwZS5yZWFkRGF0YT1mdW5jdGlvbihlKXtpZih0aGlzLmNoZWNrT2Zmc2V0KGUpLDA9PT1lKXJldHVybiBuZXcgVWludDhBcnJheSgwKTt2YXIgdD10aGlzLmRhdGEuc3ViYXJyYXkodGhpcy56ZXJvK3RoaXMuaW5kZXgsdGhpcy56ZXJvK3RoaXMuaW5kZXgrZSk7cmV0dXJuIHRoaXMuaW5kZXgrPWUsdH0sdC5leHBvcnRzPWl9LHtcIi4uL3V0aWxzXCI6MzIsXCIuL0FycmF5UmVhZGVyXCI6MTd9XSwyMjpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBuPWUoXCIuLi91dGlsc1wiKSxpPWUoXCIuLi9zdXBwb3J0XCIpLHM9ZShcIi4vQXJyYXlSZWFkZXJcIiksYT1lKFwiLi9TdHJpbmdSZWFkZXJcIiksbz1lKFwiLi9Ob2RlQnVmZmVyUmVhZGVyXCIpLGg9ZShcIi4vVWludDhBcnJheVJlYWRlclwiKTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9bi5nZXRUeXBlT2YoZSk7cmV0dXJuIG4uY2hlY2tTdXBwb3J0KHQpLFwic3RyaW5nXCIhPT10fHxpLnVpbnQ4YXJyYXk/XCJub2RlYnVmZmVyXCI9PT10P25ldyBvKGUpOmkudWludDhhcnJheT9uZXcgaChuLnRyYW5zZm9ybVRvKFwidWludDhhcnJheVwiLGUpKTpuZXcgcyhuLnRyYW5zZm9ybVRvKFwiYXJyYXlcIixlKSk6bmV3IGEoZSl9fSx7XCIuLi9zdXBwb3J0XCI6MzAsXCIuLi91dGlsc1wiOjMyLFwiLi9BcnJheVJlYWRlclwiOjE3LFwiLi9Ob2RlQnVmZmVyUmVhZGVyXCI6MTksXCIuL1N0cmluZ1JlYWRlclwiOjIwLFwiLi9VaW50OEFycmF5UmVhZGVyXCI6MjF9XSwyMzpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3IuTE9DQUxfRklMRV9IRUFERVI9XCJQS1x1MDAwM1x1MDAwNFwiLHIuQ0VOVFJBTF9GSUxFX0hFQURFUj1cIlBLXHUwMDAxXHUwMDAyXCIsci5DRU5UUkFMX0RJUkVDVE9SWV9FTkQ9XCJQS1x1MDAwNVx1MDAwNlwiLHIuWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfTE9DQVRPUj1cIlBLXHUwMDA2XHUwMDA3XCIsci5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9FTkQ9XCJQS1x1MDAwNlx1MDAwNlwiLHIuREFUQV9ERVNDUklQVE9SPVwiUEtcdTAwMDdcXGJcIn0se31dLDI0OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49ZShcIi4vR2VuZXJpY1dvcmtlclwiKSxpPWUoXCIuLi91dGlsc1wiKTtmdW5jdGlvbiBzKGUpe24uY2FsbCh0aGlzLFwiQ29udmVydFdvcmtlciB0byBcIitlKSx0aGlzLmRlc3RUeXBlPWV9aS5pbmhlcml0cyhzLG4pLHMucHJvdG90eXBlLnByb2Nlc3NDaHVuaz1mdW5jdGlvbihlKXt0aGlzLnB1c2goe2RhdGE6aS50cmFuc2Zvcm1Ubyh0aGlzLmRlc3RUeXBlLGUuZGF0YSksbWV0YTplLm1ldGF9KX0sdC5leHBvcnRzPXN9LHtcIi4uL3V0aWxzXCI6MzIsXCIuL0dlbmVyaWNXb3JrZXJcIjoyOH1dLDI1OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49ZShcIi4vR2VuZXJpY1dvcmtlclwiKSxpPWUoXCIuLi9jcmMzMlwiKTtmdW5jdGlvbiBzKCl7bi5jYWxsKHRoaXMsXCJDcmMzMlByb2JlXCIpLHRoaXMud2l0aFN0cmVhbUluZm8oXCJjcmMzMlwiLDApfWUoXCIuLi91dGlsc1wiKS5pbmhlcml0cyhzLG4pLHMucHJvdG90eXBlLnByb2Nlc3NDaHVuaz1mdW5jdGlvbihlKXt0aGlzLnN0cmVhbUluZm8uY3JjMzI9aShlLmRhdGEsdGhpcy5zdHJlYW1JbmZvLmNyYzMyfHwwKSx0aGlzLnB1c2goZSl9LHQuZXhwb3J0cz1zfSx7XCIuLi9jcmMzMlwiOjQsXCIuLi91dGlsc1wiOjMyLFwiLi9HZW5lcmljV29ya2VyXCI6Mjh9XSwyNjpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBuPWUoXCIuLi91dGlsc1wiKSxpPWUoXCIuL0dlbmVyaWNXb3JrZXJcIik7ZnVuY3Rpb24gcyhlKXtpLmNhbGwodGhpcyxcIkRhdGFMZW5ndGhQcm9iZSBmb3IgXCIrZSksdGhpcy5wcm9wTmFtZT1lLHRoaXMud2l0aFN0cmVhbUluZm8oZSwwKX1uLmluaGVyaXRzKHMsaSkscy5wcm90b3R5cGUucHJvY2Vzc0NodW5rPWZ1bmN0aW9uKGUpe2lmKGUpe3ZhciB0PXRoaXMuc3RyZWFtSW5mb1t0aGlzLnByb3BOYW1lXXx8MDt0aGlzLnN0cmVhbUluZm9bdGhpcy5wcm9wTmFtZV09dCtlLmRhdGEubGVuZ3RofWkucHJvdG90eXBlLnByb2Nlc3NDaHVuay5jYWxsKHRoaXMsZSl9LHQuZXhwb3J0cz1zfSx7XCIuLi91dGlsc1wiOjMyLFwiLi9HZW5lcmljV29ya2VyXCI6Mjh9XSwyNzpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBuPWUoXCIuLi91dGlsc1wiKSxpPWUoXCIuL0dlbmVyaWNXb3JrZXJcIik7ZnVuY3Rpb24gcyhlKXtpLmNhbGwodGhpcyxcIkRhdGFXb3JrZXJcIik7dmFyIHQ9dGhpczt0aGlzLmRhdGFJc1JlYWR5PSExLHRoaXMuaW5kZXg9MCx0aGlzLm1heD0wLHRoaXMuZGF0YT1udWxsLHRoaXMudHlwZT1cIlwiLHRoaXMuX3RpY2tTY2hlZHVsZWQ9ITEsZS50aGVuKGZ1bmN0aW9uKGUpe3QuZGF0YUlzUmVhZHk9ITAsdC5kYXRhPWUsdC5tYXg9ZSYmZS5sZW5ndGh8fDAsdC50eXBlPW4uZ2V0VHlwZU9mKGUpLHQuaXNQYXVzZWR8fHQuX3RpY2tBbmRSZXBlYXQoKX0sZnVuY3Rpb24oZSl7dC5lcnJvcihlKX0pfW4uaW5oZXJpdHMocyxpKSxzLnByb3RvdHlwZS5jbGVhblVwPWZ1bmN0aW9uKCl7aS5wcm90b3R5cGUuY2xlYW5VcC5jYWxsKHRoaXMpLHRoaXMuZGF0YT1udWxsfSxzLnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXtyZXR1cm4hIWkucHJvdG90eXBlLnJlc3VtZS5jYWxsKHRoaXMpJiYoIXRoaXMuX3RpY2tTY2hlZHVsZWQmJnRoaXMuZGF0YUlzUmVhZHkmJih0aGlzLl90aWNrU2NoZWR1bGVkPSEwLG4uZGVsYXkodGhpcy5fdGlja0FuZFJlcGVhdCxbXSx0aGlzKSksITApfSxzLnByb3RvdHlwZS5fdGlja0FuZFJlcGVhdD1mdW5jdGlvbigpe3RoaXMuX3RpY2tTY2hlZHVsZWQ9ITEsdGhpcy5pc1BhdXNlZHx8dGhpcy5pc0ZpbmlzaGVkfHwodGhpcy5fdGljaygpLHRoaXMuaXNGaW5pc2hlZHx8KG4uZGVsYXkodGhpcy5fdGlja0FuZFJlcGVhdCxbXSx0aGlzKSx0aGlzLl90aWNrU2NoZWR1bGVkPSEwKSl9LHMucHJvdG90eXBlLl90aWNrPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1BhdXNlZHx8dGhpcy5pc0ZpbmlzaGVkKXJldHVybiExO3ZhciBlPW51bGwsdD1NYXRoLm1pbih0aGlzLm1heCx0aGlzLmluZGV4KzE2Mzg0KTtpZih0aGlzLmluZGV4Pj10aGlzLm1heClyZXR1cm4gdGhpcy5lbmQoKTtzd2l0Y2godGhpcy50eXBlKXtjYXNlXCJzdHJpbmdcIjplPXRoaXMuZGF0YS5zdWJzdHJpbmcodGhpcy5pbmRleCx0KTticmVhaztjYXNlXCJ1aW50OGFycmF5XCI6ZT10aGlzLmRhdGEuc3ViYXJyYXkodGhpcy5pbmRleCx0KTticmVhaztjYXNlXCJhcnJheVwiOmNhc2VcIm5vZGVidWZmZXJcIjplPXRoaXMuZGF0YS5zbGljZSh0aGlzLmluZGV4LHQpfXJldHVybiB0aGlzLmluZGV4PXQsdGhpcy5wdXNoKHtkYXRhOmUsbWV0YTp7cGVyY2VudDp0aGlzLm1heD90aGlzLmluZGV4L3RoaXMubWF4KjEwMDowfX0pfSx0LmV4cG9ydHM9c30se1wiLi4vdXRpbHNcIjozMixcIi4vR2VuZXJpY1dvcmtlclwiOjI4fV0sMjg6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiBuKGUpe3RoaXMubmFtZT1lfHxcImRlZmF1bHRcIix0aGlzLnN0cmVhbUluZm89e30sdGhpcy5nZW5lcmF0ZWRFcnJvcj1udWxsLHRoaXMuZXh0cmFTdHJlYW1JbmZvPXt9LHRoaXMuaXNQYXVzZWQ9ITAsdGhpcy5pc0ZpbmlzaGVkPSExLHRoaXMuaXNMb2NrZWQ9ITEsdGhpcy5fbGlzdGVuZXJzPXtkYXRhOltdLGVuZDpbXSxlcnJvcjpbXX0sdGhpcy5wcmV2aW91cz1udWxsfW4ucHJvdG90eXBlPXtwdXNoOmZ1bmN0aW9uKGUpe3RoaXMuZW1pdChcImRhdGFcIixlKX0sZW5kOmZ1bmN0aW9uKCl7aWYodGhpcy5pc0ZpbmlzaGVkKXJldHVybiExO3RoaXMuZmx1c2goKTt0cnl7dGhpcy5lbWl0KFwiZW5kXCIpLHRoaXMuY2xlYW5VcCgpLHRoaXMuaXNGaW5pc2hlZD0hMH1jYXRjaChlKXt0aGlzLmVtaXQoXCJlcnJvclwiLGUpfXJldHVybiEwfSxlcnJvcjpmdW5jdGlvbihlKXtyZXR1cm4hdGhpcy5pc0ZpbmlzaGVkJiYodGhpcy5pc1BhdXNlZD90aGlzLmdlbmVyYXRlZEVycm9yPWU6KHRoaXMuaXNGaW5pc2hlZD0hMCx0aGlzLmVtaXQoXCJlcnJvclwiLGUpLHRoaXMucHJldmlvdXMmJnRoaXMucHJldmlvdXMuZXJyb3IoZSksdGhpcy5jbGVhblVwKCkpLCEwKX0sb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fbGlzdGVuZXJzW2VdLnB1c2godCksdGhpc30sY2xlYW5VcDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtSW5mbz10aGlzLmdlbmVyYXRlZEVycm9yPXRoaXMuZXh0cmFTdHJlYW1JbmZvPW51bGwsdGhpcy5fbGlzdGVuZXJzPVtdfSxlbWl0OmZ1bmN0aW9uKGUsdCl7aWYodGhpcy5fbGlzdGVuZXJzW2VdKWZvcih2YXIgcj0wO3I8dGhpcy5fbGlzdGVuZXJzW2VdLmxlbmd0aDtyKyspdGhpcy5fbGlzdGVuZXJzW2VdW3JdLmNhbGwodGhpcyx0KX0scGlwZTpmdW5jdGlvbihlKXtyZXR1cm4gZS5yZWdpc3RlclByZXZpb3VzKHRoaXMpfSxyZWdpc3RlclByZXZpb3VzOmZ1bmN0aW9uKGUpe2lmKHRoaXMuaXNMb2NrZWQpdGhyb3cgbmV3IEVycm9yKFwiVGhlIHN0cmVhbSAnXCIrdGhpcytcIicgaGFzIGFscmVhZHkgYmVlbiB1c2VkLlwiKTt0aGlzLnN0cmVhbUluZm89ZS5zdHJlYW1JbmZvLHRoaXMubWVyZ2VTdHJlYW1JbmZvKCksdGhpcy5wcmV2aW91cz1lO3ZhciB0PXRoaXM7cmV0dXJuIGUub24oXCJkYXRhXCIsZnVuY3Rpb24oZSl7dC5wcm9jZXNzQ2h1bmsoZSl9KSxlLm9uKFwiZW5kXCIsZnVuY3Rpb24oKXt0LmVuZCgpfSksZS5vbihcImVycm9yXCIsZnVuY3Rpb24oZSl7dC5lcnJvcihlKX0pLHRoaXN9LHBhdXNlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNQYXVzZWQmJiF0aGlzLmlzRmluaXNoZWQmJih0aGlzLmlzUGF1c2VkPSEwLHRoaXMucHJldmlvdXMmJnRoaXMucHJldmlvdXMucGF1c2UoKSwhMCl9LHJlc3VtZTpmdW5jdGlvbigpe2lmKCF0aGlzLmlzUGF1c2VkfHx0aGlzLmlzRmluaXNoZWQpcmV0dXJuITE7dmFyIGU9dGhpcy5pc1BhdXNlZD0hMTtyZXR1cm4gdGhpcy5nZW5lcmF0ZWRFcnJvciYmKHRoaXMuZXJyb3IodGhpcy5nZW5lcmF0ZWRFcnJvciksZT0hMCksdGhpcy5wcmV2aW91cyYmdGhpcy5wcmV2aW91cy5yZXN1bWUoKSwhZX0sZmx1c2g6ZnVuY3Rpb24oKXt9LHByb2Nlc3NDaHVuazpmdW5jdGlvbihlKXt0aGlzLnB1c2goZSl9LHdpdGhTdHJlYW1JbmZvOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZXh0cmFTdHJlYW1JbmZvW2VdPXQsdGhpcy5tZXJnZVN0cmVhbUluZm8oKSx0aGlzfSxtZXJnZVN0cmVhbUluZm86ZnVuY3Rpb24oKXtmb3IodmFyIGUgaW4gdGhpcy5leHRyYVN0cmVhbUluZm8pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuZXh0cmFTdHJlYW1JbmZvLGUpJiYodGhpcy5zdHJlYW1JbmZvW2VdPXRoaXMuZXh0cmFTdHJlYW1JbmZvW2VdKX0sbG9jazpmdW5jdGlvbigpe2lmKHRoaXMuaXNMb2NrZWQpdGhyb3cgbmV3IEVycm9yKFwiVGhlIHN0cmVhbSAnXCIrdGhpcytcIicgaGFzIGFscmVhZHkgYmVlbiB1c2VkLlwiKTt0aGlzLmlzTG9ja2VkPSEwLHRoaXMucHJldmlvdXMmJnRoaXMucHJldmlvdXMubG9jaygpfSx0b1N0cmluZzpmdW5jdGlvbigpe3ZhciBlPVwiV29ya2VyIFwiK3RoaXMubmFtZTtyZXR1cm4gdGhpcy5wcmV2aW91cz90aGlzLnByZXZpb3VzK1wiIC0+IFwiK2U6ZX19LHQuZXhwb3J0cz1ufSx7fV0sMjk6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaD1lKFwiLi4vdXRpbHNcIiksaT1lKFwiLi9Db252ZXJ0V29ya2VyXCIpLHM9ZShcIi4vR2VuZXJpY1dvcmtlclwiKSx1PWUoXCIuLi9iYXNlNjRcIiksbj1lKFwiLi4vc3VwcG9ydFwiKSxhPWUoXCIuLi9leHRlcm5hbFwiKSxvPW51bGw7aWYobi5ub2Rlc3RyZWFtKXRyeXtvPWUoXCIuLi9ub2RlanMvTm9kZWpzU3RyZWFtT3V0cHV0QWRhcHRlclwiKX1jYXRjaChlKXt9ZnVuY3Rpb24gbChlLG8pe3JldHVybiBuZXcgYS5Qcm9taXNlKGZ1bmN0aW9uKHQscil7dmFyIG49W10saT1lLl9pbnRlcm5hbFR5cGUscz1lLl9vdXRwdXRUeXBlLGE9ZS5fbWltZVR5cGU7ZS5vbihcImRhdGFcIixmdW5jdGlvbihlLHQpe24ucHVzaChlKSxvJiZvKHQpfSkub24oXCJlcnJvclwiLGZ1bmN0aW9uKGUpe249W10scihlKX0pLm9uKFwiZW5kXCIsZnVuY3Rpb24oKXt0cnl7dmFyIGU9ZnVuY3Rpb24oZSx0LHIpe3N3aXRjaChlKXtjYXNlXCJibG9iXCI6cmV0dXJuIGgubmV3QmxvYihoLnRyYW5zZm9ybVRvKFwiYXJyYXlidWZmZXJcIix0KSxyKTtjYXNlXCJiYXNlNjRcIjpyZXR1cm4gdS5lbmNvZGUodCk7ZGVmYXVsdDpyZXR1cm4gaC50cmFuc2Zvcm1UbyhlLHQpfX0ocyxmdW5jdGlvbihlLHQpe3ZhciByLG49MCxpPW51bGwscz0wO2ZvcihyPTA7cjx0Lmxlbmd0aDtyKyspcys9dFtyXS5sZW5ndGg7c3dpdGNoKGUpe2Nhc2VcInN0cmluZ1wiOnJldHVybiB0LmpvaW4oXCJcIik7Y2FzZVwiYXJyYXlcIjpyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSx0KTtjYXNlXCJ1aW50OGFycmF5XCI6Zm9yKGk9bmV3IFVpbnQ4QXJyYXkocykscj0wO3I8dC5sZW5ndGg7cisrKWkuc2V0KHRbcl0sbiksbis9dFtyXS5sZW5ndGg7cmV0dXJuIGk7Y2FzZVwibm9kZWJ1ZmZlclwiOnJldHVybiBCdWZmZXIuY29uY2F0KHQpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKFwiY29uY2F0IDogdW5zdXBwb3J0ZWQgdHlwZSAnXCIrZStcIidcIil9fShpLG4pLGEpO3QoZSl9Y2F0Y2goZSl7cihlKX1uPVtdfSkucmVzdW1lKCl9KX1mdW5jdGlvbiBmKGUsdCxyKXt2YXIgbj10O3N3aXRjaCh0KXtjYXNlXCJibG9iXCI6Y2FzZVwiYXJyYXlidWZmZXJcIjpuPVwidWludDhhcnJheVwiO2JyZWFrO2Nhc2VcImJhc2U2NFwiOm49XCJzdHJpbmdcIn10cnl7dGhpcy5faW50ZXJuYWxUeXBlPW4sdGhpcy5fb3V0cHV0VHlwZT10LHRoaXMuX21pbWVUeXBlPXIsaC5jaGVja1N1cHBvcnQobiksdGhpcy5fd29ya2VyPWUucGlwZShuZXcgaShuKSksZS5sb2NrKCl9Y2F0Y2goZSl7dGhpcy5fd29ya2VyPW5ldyBzKFwiZXJyb3JcIiksdGhpcy5fd29ya2VyLmVycm9yKGUpfX1mLnByb3RvdHlwZT17YWNjdW11bGF0ZTpmdW5jdGlvbihlKXtyZXR1cm4gbCh0aGlzLGUpfSxvbjpmdW5jdGlvbihlLHQpe3ZhciByPXRoaXM7cmV0dXJuXCJkYXRhXCI9PT1lP3RoaXMuX3dvcmtlci5vbihlLGZ1bmN0aW9uKGUpe3QuY2FsbChyLGUuZGF0YSxlLm1ldGEpfSk6dGhpcy5fd29ya2VyLm9uKGUsZnVuY3Rpb24oKXtoLmRlbGF5KHQsYXJndW1lbnRzLHIpfSksdGhpc30scmVzdW1lOmZ1bmN0aW9uKCl7cmV0dXJuIGguZGVsYXkodGhpcy5fd29ya2VyLnJlc3VtZSxbXSx0aGlzLl93b3JrZXIpLHRoaXN9LHBhdXNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dvcmtlci5wYXVzZSgpLHRoaXN9LHRvTm9kZWpzU3RyZWFtOmZ1bmN0aW9uKGUpe2lmKGguY2hlY2tTdXBwb3J0KFwibm9kZXN0cmVhbVwiKSxcIm5vZGVidWZmZXJcIiE9PXRoaXMuX291dHB1dFR5cGUpdGhyb3cgbmV3IEVycm9yKHRoaXMuX291dHB1dFR5cGUrXCIgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIG1ldGhvZFwiKTtyZXR1cm4gbmV3IG8odGhpcyx7b2JqZWN0TW9kZTpcIm5vZGVidWZmZXJcIiE9PXRoaXMuX291dHB1dFR5cGV9LGUpfX0sdC5leHBvcnRzPWZ9LHtcIi4uL2Jhc2U2NFwiOjEsXCIuLi9leHRlcm5hbFwiOjYsXCIuLi9ub2RlanMvTm9kZWpzU3RyZWFtT3V0cHV0QWRhcHRlclwiOjEzLFwiLi4vc3VwcG9ydFwiOjMwLFwiLi4vdXRpbHNcIjozMixcIi4vQ29udmVydFdvcmtlclwiOjI0LFwiLi9HZW5lcmljV29ya2VyXCI6Mjh9XSwzMDpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO2lmKHIuYmFzZTY0PSEwLHIuYXJyYXk9ITAsci5zdHJpbmc9ITAsci5hcnJheWJ1ZmZlcj1cInVuZGVmaW5lZFwiIT10eXBlb2YgQXJyYXlCdWZmZXImJlwidW5kZWZpbmVkXCIhPXR5cGVvZiBVaW50OEFycmF5LHIubm9kZWJ1ZmZlcj1cInVuZGVmaW5lZFwiIT10eXBlb2YgQnVmZmVyLHIudWludDhhcnJheT1cInVuZGVmaW5lZFwiIT10eXBlb2YgVWludDhBcnJheSxcInVuZGVmaW5lZFwiPT10eXBlb2YgQXJyYXlCdWZmZXIpci5ibG9iPSExO2Vsc2V7dmFyIG49bmV3IEFycmF5QnVmZmVyKDApO3RyeXtyLmJsb2I9MD09PW5ldyBCbG9iKFtuXSx7dHlwZTpcImFwcGxpY2F0aW9uL3ppcFwifSkuc2l6ZX1jYXRjaChlKXt0cnl7dmFyIGk9bmV3KHNlbGYuQmxvYkJ1aWxkZXJ8fHNlbGYuV2ViS2l0QmxvYkJ1aWxkZXJ8fHNlbGYuTW96QmxvYkJ1aWxkZXJ8fHNlbGYuTVNCbG9iQnVpbGRlcik7aS5hcHBlbmQobiksci5ibG9iPTA9PT1pLmdldEJsb2IoXCJhcHBsaWNhdGlvbi96aXBcIikuc2l6ZX1jYXRjaChlKXtyLmJsb2I9ITF9fX10cnl7ci5ub2Rlc3RyZWFtPSEhZShcInJlYWRhYmxlLXN0cmVhbVwiKS5SZWFkYWJsZX1jYXRjaChlKXtyLm5vZGVzdHJlYW09ITF9fSx7XCJyZWFkYWJsZS1zdHJlYW1cIjoxNn1dLDMxOltmdW5jdGlvbihlLHQscyl7XCJ1c2Ugc3RyaWN0XCI7Zm9yKHZhciBvPWUoXCIuL3V0aWxzXCIpLGg9ZShcIi4vc3VwcG9ydFwiKSxyPWUoXCIuL25vZGVqc1V0aWxzXCIpLG49ZShcIi4vc3RyZWFtL0dlbmVyaWNXb3JrZXJcIiksdT1uZXcgQXJyYXkoMjU2KSxpPTA7aTwyNTY7aSsrKXVbaV09MjUyPD1pPzY6MjQ4PD1pPzU6MjQwPD1pPzQ6MjI0PD1pPzM6MTkyPD1pPzI6MTt1WzI1NF09dVsyNTRdPTE7ZnVuY3Rpb24gYSgpe24uY2FsbCh0aGlzLFwidXRmLTggZGVjb2RlXCIpLHRoaXMubGVmdE92ZXI9bnVsbH1mdW5jdGlvbiBsKCl7bi5jYWxsKHRoaXMsXCJ1dGYtOCBlbmNvZGVcIil9cy51dGY4ZW5jb2RlPWZ1bmN0aW9uKGUpe3JldHVybiBoLm5vZGVidWZmZXI/ci5uZXdCdWZmZXJGcm9tKGUsXCJ1dGYtOFwiKTpmdW5jdGlvbihlKXt2YXIgdCxyLG4saSxzLGE9ZS5sZW5ndGgsbz0wO2ZvcihpPTA7aTxhO2krKyk1NTI5Nj09KDY0NTEyJihyPWUuY2hhckNvZGVBdChpKSkpJiZpKzE8YSYmNTYzMjA9PSg2NDUxMiYobj1lLmNoYXJDb2RlQXQoaSsxKSkpJiYocj02NTUzNisoci01NTI5Njw8MTApKyhuLTU2MzIwKSxpKyspLG8rPXI8MTI4PzE6cjwyMDQ4PzI6cjw2NTUzNj8zOjQ7Zm9yKHQ9aC51aW50OGFycmF5P25ldyBVaW50OEFycmF5KG8pOm5ldyBBcnJheShvKSxpPXM9MDtzPG87aSsrKTU1Mjk2PT0oNjQ1MTImKHI9ZS5jaGFyQ29kZUF0KGkpKSkmJmkrMTxhJiY1NjMyMD09KDY0NTEyJihuPWUuY2hhckNvZGVBdChpKzEpKSkmJihyPTY1NTM2KyhyLTU1Mjk2PDwxMCkrKG4tNTYzMjApLGkrKykscjwxMjg/dFtzKytdPXI6KHI8MjA0OD90W3MrK109MTkyfHI+Pj42OihyPDY1NTM2P3RbcysrXT0yMjR8cj4+PjEyOih0W3MrK109MjQwfHI+Pj4xOCx0W3MrK109MTI4fHI+Pj4xMiY2MyksdFtzKytdPTEyOHxyPj4+NiY2MyksdFtzKytdPTEyOHw2MyZyKTtyZXR1cm4gdH0oZSl9LHMudXRmOGRlY29kZT1mdW5jdGlvbihlKXtyZXR1cm4gaC5ub2RlYnVmZmVyP28udHJhbnNmb3JtVG8oXCJub2RlYnVmZmVyXCIsZSkudG9TdHJpbmcoXCJ1dGYtOFwiKTpmdW5jdGlvbihlKXt2YXIgdCxyLG4saSxzPWUubGVuZ3RoLGE9bmV3IEFycmF5KDIqcyk7Zm9yKHQ9cj0wO3Q8czspaWYoKG49ZVt0KytdKTwxMjgpYVtyKytdPW47ZWxzZSBpZig0PChpPXVbbl0pKWFbcisrXT02NTUzMyx0Kz1pLTE7ZWxzZXtmb3IobiY9Mj09PWk/MzE6Mz09PWk/MTU6NzsxPGkmJnQ8czspbj1uPDw2fDYzJmVbdCsrXSxpLS07MTxpP2FbcisrXT02NTUzMzpuPDY1NTM2P2FbcisrXT1uOihuLT02NTUzNixhW3IrK109NTUyOTZ8bj4+MTAmMTAyMyxhW3IrK109NTYzMjB8MTAyMyZuKX1yZXR1cm4gYS5sZW5ndGghPT1yJiYoYS5zdWJhcnJheT9hPWEuc3ViYXJyYXkoMCxyKTphLmxlbmd0aD1yKSxvLmFwcGx5RnJvbUNoYXJDb2RlKGEpfShlPW8udHJhbnNmb3JtVG8oaC51aW50OGFycmF5P1widWludDhhcnJheVwiOlwiYXJyYXlcIixlKSl9LG8uaW5oZXJpdHMoYSxuKSxhLnByb3RvdHlwZS5wcm9jZXNzQ2h1bms9ZnVuY3Rpb24oZSl7dmFyIHQ9by50cmFuc2Zvcm1UbyhoLnVpbnQ4YXJyYXk/XCJ1aW50OGFycmF5XCI6XCJhcnJheVwiLGUuZGF0YSk7aWYodGhpcy5sZWZ0T3ZlciYmdGhpcy5sZWZ0T3Zlci5sZW5ndGgpe2lmKGgudWludDhhcnJheSl7dmFyIHI9dDsodD1uZXcgVWludDhBcnJheShyLmxlbmd0aCt0aGlzLmxlZnRPdmVyLmxlbmd0aCkpLnNldCh0aGlzLmxlZnRPdmVyLDApLHQuc2V0KHIsdGhpcy5sZWZ0T3Zlci5sZW5ndGgpfWVsc2UgdD10aGlzLmxlZnRPdmVyLmNvbmNhdCh0KTt0aGlzLmxlZnRPdmVyPW51bGx9dmFyIG49ZnVuY3Rpb24oZSx0KXt2YXIgcjtmb3IoKHQ9dHx8ZS5sZW5ndGgpPmUubGVuZ3RoJiYodD1lLmxlbmd0aCkscj10LTE7MDw9ciYmMTI4PT0oMTkyJmVbcl0pOylyLS07cmV0dXJuIHI8MD90OjA9PT1yP3Q6cit1W2Vbcl1dPnQ/cjp0fSh0KSxpPXQ7biE9PXQubGVuZ3RoJiYoaC51aW50OGFycmF5PyhpPXQuc3ViYXJyYXkoMCxuKSx0aGlzLmxlZnRPdmVyPXQuc3ViYXJyYXkobix0Lmxlbmd0aCkpOihpPXQuc2xpY2UoMCxuKSx0aGlzLmxlZnRPdmVyPXQuc2xpY2Uobix0Lmxlbmd0aCkpKSx0aGlzLnB1c2goe2RhdGE6cy51dGY4ZGVjb2RlKGkpLG1ldGE6ZS5tZXRhfSl9LGEucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7dGhpcy5sZWZ0T3ZlciYmdGhpcy5sZWZ0T3Zlci5sZW5ndGgmJih0aGlzLnB1c2goe2RhdGE6cy51dGY4ZGVjb2RlKHRoaXMubGVmdE92ZXIpLG1ldGE6e319KSx0aGlzLmxlZnRPdmVyPW51bGwpfSxzLlV0ZjhEZWNvZGVXb3JrZXI9YSxvLmluaGVyaXRzKGwsbiksbC5wcm90b3R5cGUucHJvY2Vzc0NodW5rPWZ1bmN0aW9uKGUpe3RoaXMucHVzaCh7ZGF0YTpzLnV0ZjhlbmNvZGUoZS5kYXRhKSxtZXRhOmUubWV0YX0pfSxzLlV0ZjhFbmNvZGVXb3JrZXI9bH0se1wiLi9ub2RlanNVdGlsc1wiOjE0LFwiLi9zdHJlYW0vR2VuZXJpY1dvcmtlclwiOjI4LFwiLi9zdXBwb3J0XCI6MzAsXCIuL3V0aWxzXCI6MzJ9XSwzMjpbZnVuY3Rpb24oZSx0LGEpe1widXNlIHN0cmljdFwiO3ZhciBvPWUoXCIuL3N1cHBvcnRcIiksaD1lKFwiLi9iYXNlNjRcIikscj1lKFwiLi9ub2RlanNVdGlsc1wiKSx1PWUoXCIuL2V4dGVybmFsXCIpO2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGV9ZnVuY3Rpb24gbChlLHQpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7KytyKXRbcl09MjU1JmUuY2hhckNvZGVBdChyKTtyZXR1cm4gdH1lKFwic2V0aW1tZWRpYXRlXCIpLGEubmV3QmxvYj1mdW5jdGlvbih0LHIpe2EuY2hlY2tTdXBwb3J0KFwiYmxvYlwiKTt0cnl7cmV0dXJuIG5ldyBCbG9iKFt0XSx7dHlwZTpyfSl9Y2F0Y2goZSl7dHJ5e3ZhciBuPW5ldyhzZWxmLkJsb2JCdWlsZGVyfHxzZWxmLldlYktpdEJsb2JCdWlsZGVyfHxzZWxmLk1vekJsb2JCdWlsZGVyfHxzZWxmLk1TQmxvYkJ1aWxkZXIpO3JldHVybiBuLmFwcGVuZCh0KSxuLmdldEJsb2Iocil9Y2F0Y2goZSl7dGhyb3cgbmV3IEVycm9yKFwiQnVnIDogY2FuJ3QgY29uc3RydWN0IHRoZSBCbG9iLlwiKX19fTt2YXIgaT17c3RyaW5naWZ5QnlDaHVuazpmdW5jdGlvbihlLHQscil7dmFyIG49W10saT0wLHM9ZS5sZW5ndGg7aWYoczw9cilyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGUpO2Zvcig7aTxzOylcImFycmF5XCI9PT10fHxcIm5vZGVidWZmZXJcIj09PXQ/bi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxlLnNsaWNlKGksTWF0aC5taW4oaStyLHMpKSkpOm4ucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsZS5zdWJhcnJheShpLE1hdGgubWluKGkrcixzKSkpKSxpKz1yO3JldHVybiBuLmpvaW4oXCJcIil9LHN0cmluZ2lmeUJ5Q2hhcjpmdW5jdGlvbihlKXtmb3IodmFyIHQ9XCJcIixyPTA7cjxlLmxlbmd0aDtyKyspdCs9U3RyaW5nLmZyb21DaGFyQ29kZShlW3JdKTtyZXR1cm4gdH0sYXBwbHlDYW5CZVVzZWQ6e3VpbnQ4YXJyYXk6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG8udWludDhhcnJheSYmMT09PVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxuZXcgVWludDhBcnJheSgxKSkubGVuZ3RofWNhdGNoKGUpe3JldHVybiExfX0oKSxub2RlYnVmZmVyOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiBvLm5vZGVidWZmZXImJjE9PT1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsci5hbGxvY0J1ZmZlcigxKSkubGVuZ3RofWNhdGNoKGUpe3JldHVybiExfX0oKX19O2Z1bmN0aW9uIHMoZSl7dmFyIHQ9NjU1MzYscj1hLmdldFR5cGVPZihlKSxuPSEwO2lmKFwidWludDhhcnJheVwiPT09cj9uPWkuYXBwbHlDYW5CZVVzZWQudWludDhhcnJheTpcIm5vZGVidWZmZXJcIj09PXImJihuPWkuYXBwbHlDYW5CZVVzZWQubm9kZWJ1ZmZlciksbilmb3IoOzE8dDspdHJ5e3JldHVybiBpLnN0cmluZ2lmeUJ5Q2h1bmsoZSxyLHQpfWNhdGNoKGUpe3Q9TWF0aC5mbG9vcih0LzIpfXJldHVybiBpLnN0cmluZ2lmeUJ5Q2hhcihlKX1mdW5jdGlvbiBmKGUsdCl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspdFtyXT1lW3JdO3JldHVybiB0fWEuYXBwbHlGcm9tQ2hhckNvZGU9czt2YXIgYz17fTtjLnN0cmluZz17c3RyaW5nOm4sYXJyYXk6ZnVuY3Rpb24oZSl7cmV0dXJuIGwoZSxuZXcgQXJyYXkoZS5sZW5ndGgpKX0sYXJyYXlidWZmZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGMuc3RyaW5nLnVpbnQ4YXJyYXkoZSkuYnVmZmVyfSx1aW50OGFycmF5OmZ1bmN0aW9uKGUpe3JldHVybiBsKGUsbmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgpKX0sbm9kZWJ1ZmZlcjpmdW5jdGlvbihlKXtyZXR1cm4gbChlLHIuYWxsb2NCdWZmZXIoZS5sZW5ndGgpKX19LGMuYXJyYXk9e3N0cmluZzpzLGFycmF5Om4sYXJyYXlidWZmZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBVaW50OEFycmF5KGUpLmJ1ZmZlcn0sdWludDhhcnJheTpmdW5jdGlvbihlKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZSl9LG5vZGVidWZmZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHIubmV3QnVmZmVyRnJvbShlKX19LGMuYXJyYXlidWZmZXI9e3N0cmluZzpmdW5jdGlvbihlKXtyZXR1cm4gcyhuZXcgVWludDhBcnJheShlKSl9LGFycmF5OmZ1bmN0aW9uKGUpe3JldHVybiBmKG5ldyBVaW50OEFycmF5KGUpLG5ldyBBcnJheShlLmJ5dGVMZW5ndGgpKX0sYXJyYXlidWZmZXI6bix1aW50OGFycmF5OmZ1bmN0aW9uKGUpe3JldHVybiBuZXcgVWludDhBcnJheShlKX0sbm9kZWJ1ZmZlcjpmdW5jdGlvbihlKXtyZXR1cm4gci5uZXdCdWZmZXJGcm9tKG5ldyBVaW50OEFycmF5KGUpKX19LGMudWludDhhcnJheT17c3RyaW5nOnMsYXJyYXk6ZnVuY3Rpb24oZSl7cmV0dXJuIGYoZSxuZXcgQXJyYXkoZS5sZW5ndGgpKX0sYXJyYXlidWZmZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuYnVmZmVyfSx1aW50OGFycmF5Om4sbm9kZWJ1ZmZlcjpmdW5jdGlvbihlKXtyZXR1cm4gci5uZXdCdWZmZXJGcm9tKGUpfX0sYy5ub2RlYnVmZmVyPXtzdHJpbmc6cyxhcnJheTpmdW5jdGlvbihlKXtyZXR1cm4gZihlLG5ldyBBcnJheShlLmxlbmd0aCkpfSxhcnJheWJ1ZmZlcjpmdW5jdGlvbihlKXtyZXR1cm4gYy5ub2RlYnVmZmVyLnVpbnQ4YXJyYXkoZSkuYnVmZmVyfSx1aW50OGFycmF5OmZ1bmN0aW9uKGUpe3JldHVybiBmKGUsbmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgpKX0sbm9kZWJ1ZmZlcjpufSxhLnRyYW5zZm9ybVRvPWZ1bmN0aW9uKGUsdCl7aWYodD10fHxcIlwiLCFlKXJldHVybiB0O2EuY2hlY2tTdXBwb3J0KGUpO3ZhciByPWEuZ2V0VHlwZU9mKHQpO3JldHVybiBjW3JdW2VdKHQpfSxhLnJlc29sdmU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUuc3BsaXQoXCIvXCIpLHI9W10sbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO1wiLlwiPT09aXx8XCJcIj09PWkmJjAhPT1uJiZuIT09dC5sZW5ndGgtMXx8KFwiLi5cIj09PWk/ci5wb3AoKTpyLnB1c2goaSkpfXJldHVybiByLmpvaW4oXCIvXCIpfSxhLmdldFR5cGVPZj1mdW5jdGlvbihlKXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZT9cInN0cmluZ1wiOlwiW29iamVjdCBBcnJheV1cIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKT9cImFycmF5XCI6by5ub2RlYnVmZmVyJiZyLmlzQnVmZmVyKGUpP1wibm9kZWJ1ZmZlclwiOm8udWludDhhcnJheSYmZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/XCJ1aW50OGFycmF5XCI6by5hcnJheWJ1ZmZlciYmZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyP1wiYXJyYXlidWZmZXJcIjp2b2lkIDB9LGEuY2hlY2tTdXBwb3J0PWZ1bmN0aW9uKGUpe2lmKCFvW2UudG9Mb3dlckNhc2UoKV0pdGhyb3cgbmV3IEVycm9yKGUrXCIgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIHBsYXRmb3JtXCIpfSxhLk1BWF9WQUxVRV8xNkJJVFM9NjU1MzUsYS5NQVhfVkFMVUVfMzJCSVRTPS0xLGEucHJldHR5PWZ1bmN0aW9uKGUpe3ZhciB0LHIsbj1cIlwiO2ZvcihyPTA7cjwoZXx8XCJcIikubGVuZ3RoO3IrKyluKz1cIlxcXFx4XCIrKCh0PWUuY2hhckNvZGVBdChyKSk8MTY/XCIwXCI6XCJcIikrdC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtyZXR1cm4gbn0sYS5kZWxheT1mdW5jdGlvbihlLHQscil7c2V0SW1tZWRpYXRlKGZ1bmN0aW9uKCl7ZS5hcHBseShyfHxudWxsLHR8fFtdKX0pfSxhLmluaGVyaXRzPWZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gcigpe31yLnByb3RvdHlwZT10LnByb3RvdHlwZSxlLnByb3RvdHlwZT1uZXcgcn0sYS5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgZSx0LHI9e307Zm9yKGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKWZvcih0IGluIGFyZ3VtZW50c1tlXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYXJndW1lbnRzW2VdLHQpJiZ2b2lkIDA9PT1yW3RdJiYoclt0XT1hcmd1bWVudHNbZV1bdF0pO3JldHVybiByfSxhLnByZXBhcmVDb250ZW50PWZ1bmN0aW9uKHIsZSxuLGkscyl7cmV0dXJuIHUuUHJvbWlzZS5yZXNvbHZlKGUpLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG8uYmxvYiYmKG4gaW5zdGFuY2VvZiBCbG9ifHwtMSE9PVtcIltvYmplY3QgRmlsZV1cIixcIltvYmplY3QgQmxvYl1cIl0uaW5kZXhPZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobikpKSYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIEZpbGVSZWFkZXI/bmV3IHUuUHJvbWlzZShmdW5jdGlvbih0LHIpe3ZhciBlPW5ldyBGaWxlUmVhZGVyO2Uub25sb2FkPWZ1bmN0aW9uKGUpe3QoZS50YXJnZXQucmVzdWx0KX0sZS5vbmVycm9yPWZ1bmN0aW9uKGUpe3IoZS50YXJnZXQuZXJyb3IpfSxlLnJlYWRBc0FycmF5QnVmZmVyKG4pfSk6bn0pLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ9YS5nZXRUeXBlT2YoZSk7cmV0dXJuIHQ/KFwiYXJyYXlidWZmZXJcIj09PXQ/ZT1hLnRyYW5zZm9ybVRvKFwidWludDhhcnJheVwiLGUpOlwic3RyaW5nXCI9PT10JiYocz9lPWguZGVjb2RlKGUpOm4mJiEwIT09aSYmKGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGwoZSxvLnVpbnQ4YXJyYXk/bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgpOm5ldyBBcnJheShlLmxlbmd0aCkpfShlKSkpLGUpOnUuUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKFwiQ2FuJ3QgcmVhZCB0aGUgZGF0YSBvZiAnXCIrcitcIicuIElzIGl0IGluIGEgc3VwcG9ydGVkIEphdmFTY3JpcHQgdHlwZSAoU3RyaW5nLCBCbG9iLCBBcnJheUJ1ZmZlciwgZXRjKSA/XCIpKX0pfX0se1wiLi9iYXNlNjRcIjoxLFwiLi9leHRlcm5hbFwiOjYsXCIuL25vZGVqc1V0aWxzXCI6MTQsXCIuL3N1cHBvcnRcIjozMCxzZXRpbW1lZGlhdGU6NTR9XSwzMzpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBuPWUoXCIuL3JlYWRlci9yZWFkZXJGb3JcIiksaT1lKFwiLi91dGlsc1wiKSxzPWUoXCIuL3NpZ25hdHVyZVwiKSxhPWUoXCIuL3ppcEVudHJ5XCIpLG89ZShcIi4vc3VwcG9ydFwiKTtmdW5jdGlvbiBoKGUpe3RoaXMuZmlsZXM9W10sdGhpcy5sb2FkT3B0aW9ucz1lfWgucHJvdG90eXBlPXtjaGVja1NpZ25hdHVyZTpmdW5jdGlvbihlKXtpZighdGhpcy5yZWFkZXIucmVhZEFuZENoZWNrU2lnbmF0dXJlKGUpKXt0aGlzLnJlYWRlci5pbmRleC09NDt2YXIgdD10aGlzLnJlYWRlci5yZWFkU3RyaW5nKDQpO3Rocm93IG5ldyBFcnJvcihcIkNvcnJ1cHRlZCB6aXAgb3IgYnVnOiB1bmV4cGVjdGVkIHNpZ25hdHVyZSAoXCIraS5wcmV0dHkodCkrXCIsIGV4cGVjdGVkIFwiK2kucHJldHR5KGUpK1wiKVwiKX19LGlzU2lnbmF0dXJlOmZ1bmN0aW9uKGUsdCl7dmFyIHI9dGhpcy5yZWFkZXIuaW5kZXg7dGhpcy5yZWFkZXIuc2V0SW5kZXgoZSk7dmFyIG49dGhpcy5yZWFkZXIucmVhZFN0cmluZyg0KT09PXQ7cmV0dXJuIHRoaXMucmVhZGVyLnNldEluZGV4KHIpLG59LHJlYWRCbG9ja0VuZE9mQ2VudHJhbDpmdW5jdGlvbigpe3RoaXMuZGlza051bWJlcj10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuZGlza1dpdGhDZW50cmFsRGlyU3RhcnQ9dGhpcy5yZWFkZXIucmVhZEludCgyKSx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzT25UaGlzRGlzaz10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuY2VudHJhbERpclJlY29yZHM9dGhpcy5yZWFkZXIucmVhZEludCgyKSx0aGlzLmNlbnRyYWxEaXJTaXplPXRoaXMucmVhZGVyLnJlYWRJbnQoNCksdGhpcy5jZW50cmFsRGlyT2Zmc2V0PXRoaXMucmVhZGVyLnJlYWRJbnQoNCksdGhpcy56aXBDb21tZW50TGVuZ3RoPXRoaXMucmVhZGVyLnJlYWRJbnQoMik7dmFyIGU9dGhpcy5yZWFkZXIucmVhZERhdGEodGhpcy56aXBDb21tZW50TGVuZ3RoKSx0PW8udWludDhhcnJheT9cInVpbnQ4YXJyYXlcIjpcImFycmF5XCIscj1pLnRyYW5zZm9ybVRvKHQsZSk7dGhpcy56aXBDb21tZW50PXRoaXMubG9hZE9wdGlvbnMuZGVjb2RlRmlsZU5hbWUocil9LHJlYWRCbG9ja1ppcDY0RW5kT2ZDZW50cmFsOmZ1bmN0aW9uKCl7dGhpcy56aXA2NEVuZE9mQ2VudHJhbFNpemU9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLnJlYWRlci5za2lwKDQpLHRoaXMuZGlza051bWJlcj10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuZGlza1dpdGhDZW50cmFsRGlyU3RhcnQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzT25UaGlzRGlzaz10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuY2VudHJhbERpclJlY29yZHM9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLmNlbnRyYWxEaXJTaXplPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy5jZW50cmFsRGlyT2Zmc2V0PXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy56aXA2NEV4dGVuc2libGVEYXRhPXt9O2Zvcih2YXIgZSx0LHIsbj10aGlzLnppcDY0RW5kT2ZDZW50cmFsU2l6ZS00NDswPG47KWU9dGhpcy5yZWFkZXIucmVhZEludCgyKSx0PXRoaXMucmVhZGVyLnJlYWRJbnQoNCkscj10aGlzLnJlYWRlci5yZWFkRGF0YSh0KSx0aGlzLnppcDY0RXh0ZW5zaWJsZURhdGFbZV09e2lkOmUsbGVuZ3RoOnQsdmFsdWU6cn19LHJlYWRCbG9ja1ppcDY0RW5kT2ZDZW50cmFsTG9jYXRvcjpmdW5jdGlvbigpe2lmKHRoaXMuZGlza1dpdGhaaXA2NENlbnRyYWxEaXJTdGFydD10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMucmVsYXRpdmVPZmZzZXRFbmRPZlppcDY0Q2VudHJhbERpcj10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuZGlza3NDb3VudD10aGlzLnJlYWRlci5yZWFkSW50KDQpLDE8dGhpcy5kaXNrc0NvdW50KXRocm93IG5ldyBFcnJvcihcIk11bHRpLXZvbHVtZXMgemlwIGFyZSBub3Qgc3VwcG9ydGVkXCIpfSxyZWFkTG9jYWxGaWxlczpmdW5jdGlvbigpe3ZhciBlLHQ7Zm9yKGU9MDtlPHRoaXMuZmlsZXMubGVuZ3RoO2UrKyl0PXRoaXMuZmlsZXNbZV0sdGhpcy5yZWFkZXIuc2V0SW5kZXgodC5sb2NhbEhlYWRlck9mZnNldCksdGhpcy5jaGVja1NpZ25hdHVyZShzLkxPQ0FMX0ZJTEVfSEVBREVSKSx0LnJlYWRMb2NhbFBhcnQodGhpcy5yZWFkZXIpLHQuaGFuZGxlVVRGOCgpLHQucHJvY2Vzc0F0dHJpYnV0ZXMoKX0scmVhZENlbnRyYWxEaXI6ZnVuY3Rpb24oKXt2YXIgZTtmb3IodGhpcy5yZWFkZXIuc2V0SW5kZXgodGhpcy5jZW50cmFsRGlyT2Zmc2V0KTt0aGlzLnJlYWRlci5yZWFkQW5kQ2hlY2tTaWduYXR1cmUocy5DRU5UUkFMX0ZJTEVfSEVBREVSKTspKGU9bmV3IGEoe3ppcDY0OnRoaXMuemlwNjR9LHRoaXMubG9hZE9wdGlvbnMpKS5yZWFkQ2VudHJhbFBhcnQodGhpcy5yZWFkZXIpLHRoaXMuZmlsZXMucHVzaChlKTtpZih0aGlzLmNlbnRyYWxEaXJSZWNvcmRzIT09dGhpcy5maWxlcy5sZW5ndGgmJjAhPT10aGlzLmNlbnRyYWxEaXJSZWNvcmRzJiYwPT09dGhpcy5maWxlcy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKFwiQ29ycnVwdGVkIHppcCBvciBidWc6IGV4cGVjdGVkIFwiK3RoaXMuY2VudHJhbERpclJlY29yZHMrXCIgcmVjb3JkcyBpbiBjZW50cmFsIGRpciwgZ290IFwiK3RoaXMuZmlsZXMubGVuZ3RoKX0scmVhZEVuZE9mQ2VudHJhbDpmdW5jdGlvbigpe3ZhciBlPXRoaXMucmVhZGVyLmxhc3RJbmRleE9mU2lnbmF0dXJlKHMuQ0VOVFJBTF9ESVJFQ1RPUllfRU5EKTtpZihlPDApdGhyb3chdGhpcy5pc1NpZ25hdHVyZSgwLHMuTE9DQUxfRklMRV9IRUFERVIpP25ldyBFcnJvcihcIkNhbid0IGZpbmQgZW5kIG9mIGNlbnRyYWwgZGlyZWN0b3J5IDogaXMgdGhpcyBhIHppcCBmaWxlID8gSWYgaXQgaXMsIHNlZSBodHRwczovL3N0dWsuZ2l0aHViLmlvL2pzemlwL2RvY3VtZW50YXRpb24vaG93dG8vcmVhZF96aXAuaHRtbFwiKTpuZXcgRXJyb3IoXCJDb3JydXB0ZWQgemlwOiBjYW4ndCBmaW5kIGVuZCBvZiBjZW50cmFsIGRpcmVjdG9yeVwiKTt0aGlzLnJlYWRlci5zZXRJbmRleChlKTt2YXIgdD1lO2lmKHRoaXMuY2hlY2tTaWduYXR1cmUocy5DRU5UUkFMX0RJUkVDVE9SWV9FTkQpLHRoaXMucmVhZEJsb2NrRW5kT2ZDZW50cmFsKCksdGhpcy5kaXNrTnVtYmVyPT09aS5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmRpc2tXaXRoQ2VudHJhbERpclN0YXJ0PT09aS5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzT25UaGlzRGlzaz09PWkuTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5jZW50cmFsRGlyUmVjb3Jkcz09PWkuTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5jZW50cmFsRGlyU2l6ZT09PWkuTUFYX1ZBTFVFXzMyQklUU3x8dGhpcy5jZW50cmFsRGlyT2Zmc2V0PT09aS5NQVhfVkFMVUVfMzJCSVRTKXtpZih0aGlzLnppcDY0PSEwLChlPXRoaXMucmVhZGVyLmxhc3RJbmRleE9mU2lnbmF0dXJlKHMuWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfTE9DQVRPUikpPDApdGhyb3cgbmV3IEVycm9yKFwiQ29ycnVwdGVkIHppcDogY2FuJ3QgZmluZCB0aGUgWklQNjQgZW5kIG9mIGNlbnRyYWwgZGlyZWN0b3J5IGxvY2F0b3JcIik7aWYodGhpcy5yZWFkZXIuc2V0SW5kZXgoZSksdGhpcy5jaGVja1NpZ25hdHVyZShzLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0xPQ0FUT1IpLHRoaXMucmVhZEJsb2NrWmlwNjRFbmRPZkNlbnRyYWxMb2NhdG9yKCksIXRoaXMuaXNTaWduYXR1cmUodGhpcy5yZWxhdGl2ZU9mZnNldEVuZE9mWmlwNjRDZW50cmFsRGlyLHMuWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfRU5EKSYmKHRoaXMucmVsYXRpdmVPZmZzZXRFbmRPZlppcDY0Q2VudHJhbERpcj10aGlzLnJlYWRlci5sYXN0SW5kZXhPZlNpZ25hdHVyZShzLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0VORCksdGhpcy5yZWxhdGl2ZU9mZnNldEVuZE9mWmlwNjRDZW50cmFsRGlyPDApKXRocm93IG5ldyBFcnJvcihcIkNvcnJ1cHRlZCB6aXA6IGNhbid0IGZpbmQgdGhlIFpJUDY0IGVuZCBvZiBjZW50cmFsIGRpcmVjdG9yeVwiKTt0aGlzLnJlYWRlci5zZXRJbmRleCh0aGlzLnJlbGF0aXZlT2Zmc2V0RW5kT2ZaaXA2NENlbnRyYWxEaXIpLHRoaXMuY2hlY2tTaWduYXR1cmUocy5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9FTkQpLHRoaXMucmVhZEJsb2NrWmlwNjRFbmRPZkNlbnRyYWwoKX12YXIgcj10aGlzLmNlbnRyYWxEaXJPZmZzZXQrdGhpcy5jZW50cmFsRGlyU2l6ZTt0aGlzLnppcDY0JiYocis9MjAscis9MTIrdGhpcy56aXA2NEVuZE9mQ2VudHJhbFNpemUpO3ZhciBuPXQtcjtpZigwPG4pdGhpcy5pc1NpZ25hdHVyZSh0LHMuQ0VOVFJBTF9GSUxFX0hFQURFUil8fCh0aGlzLnJlYWRlci56ZXJvPW4pO2Vsc2UgaWYobjwwKXRocm93IG5ldyBFcnJvcihcIkNvcnJ1cHRlZCB6aXA6IG1pc3NpbmcgXCIrTWF0aC5hYnMobikrXCIgYnl0ZXMuXCIpfSxwcmVwYXJlUmVhZGVyOmZ1bmN0aW9uKGUpe3RoaXMucmVhZGVyPW4oZSl9LGxvYWQ6ZnVuY3Rpb24oZSl7dGhpcy5wcmVwYXJlUmVhZGVyKGUpLHRoaXMucmVhZEVuZE9mQ2VudHJhbCgpLHRoaXMucmVhZENlbnRyYWxEaXIoKSx0aGlzLnJlYWRMb2NhbEZpbGVzKCl9fSx0LmV4cG9ydHM9aH0se1wiLi9yZWFkZXIvcmVhZGVyRm9yXCI6MjIsXCIuL3NpZ25hdHVyZVwiOjIzLFwiLi9zdXBwb3J0XCI6MzAsXCIuL3V0aWxzXCI6MzIsXCIuL3ppcEVudHJ5XCI6MzR9XSwzNDpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBuPWUoXCIuL3JlYWRlci9yZWFkZXJGb3JcIikscz1lKFwiLi91dGlsc1wiKSxpPWUoXCIuL2NvbXByZXNzZWRPYmplY3RcIiksYT1lKFwiLi9jcmMzMlwiKSxvPWUoXCIuL3V0ZjhcIiksaD1lKFwiLi9jb21wcmVzc2lvbnNcIiksdT1lKFwiLi9zdXBwb3J0XCIpO2Z1bmN0aW9uIGwoZSx0KXt0aGlzLm9wdGlvbnM9ZSx0aGlzLmxvYWRPcHRpb25zPXR9bC5wcm90b3R5cGU9e2lzRW5jcnlwdGVkOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMuYml0RmxhZyl9LHVzZVVURjg6ZnVuY3Rpb24oKXtyZXR1cm4gMjA0OD09KDIwNDgmdGhpcy5iaXRGbGFnKX0scmVhZExvY2FsUGFydDpmdW5jdGlvbihlKXt2YXIgdCxyO2lmKGUuc2tpcCgyMiksdGhpcy5maWxlTmFtZUxlbmd0aD1lLnJlYWRJbnQoMikscj1lLnJlYWRJbnQoMiksdGhpcy5maWxlTmFtZT1lLnJlYWREYXRhKHRoaXMuZmlsZU5hbWVMZW5ndGgpLGUuc2tpcChyKSwtMT09PXRoaXMuY29tcHJlc3NlZFNpemV8fC0xPT09dGhpcy51bmNvbXByZXNzZWRTaXplKXRocm93IG5ldyBFcnJvcihcIkJ1ZyBvciBjb3JydXB0ZWQgemlwIDogZGlkbid0IGdldCBlbm91Z2ggaW5mb3JtYXRpb24gZnJvbSB0aGUgY2VudHJhbCBkaXJlY3RvcnkgKGNvbXByZXNzZWRTaXplID09PSAtMSB8fCB1bmNvbXByZXNzZWRTaXplID09PSAtMSlcIik7aWYobnVsbD09PSh0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCBpbiBoKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChoLHQpJiZoW3RdLm1hZ2ljPT09ZSlyZXR1cm4gaFt0XTtyZXR1cm4gbnVsbH0odGhpcy5jb21wcmVzc2lvbk1ldGhvZCkpKXRocm93IG5ldyBFcnJvcihcIkNvcnJ1cHRlZCB6aXAgOiBjb21wcmVzc2lvbiBcIitzLnByZXR0eSh0aGlzLmNvbXByZXNzaW9uTWV0aG9kKStcIiB1bmtub3duIChpbm5lciBmaWxlIDogXCIrcy50cmFuc2Zvcm1UbyhcInN0cmluZ1wiLHRoaXMuZmlsZU5hbWUpK1wiKVwiKTt0aGlzLmRlY29tcHJlc3NlZD1uZXcgaSh0aGlzLmNvbXByZXNzZWRTaXplLHRoaXMudW5jb21wcmVzc2VkU2l6ZSx0aGlzLmNyYzMyLHQsZS5yZWFkRGF0YSh0aGlzLmNvbXByZXNzZWRTaXplKSl9LHJlYWRDZW50cmFsUGFydDpmdW5jdGlvbihlKXt0aGlzLnZlcnNpb25NYWRlQnk9ZS5yZWFkSW50KDIpLGUuc2tpcCgyKSx0aGlzLmJpdEZsYWc9ZS5yZWFkSW50KDIpLHRoaXMuY29tcHJlc3Npb25NZXRob2Q9ZS5yZWFkU3RyaW5nKDIpLHRoaXMuZGF0ZT1lLnJlYWREYXRlKCksdGhpcy5jcmMzMj1lLnJlYWRJbnQoNCksdGhpcy5jb21wcmVzc2VkU2l6ZT1lLnJlYWRJbnQoNCksdGhpcy51bmNvbXByZXNzZWRTaXplPWUucmVhZEludCg0KTt2YXIgdD1lLnJlYWRJbnQoMik7aWYodGhpcy5leHRyYUZpZWxkc0xlbmd0aD1lLnJlYWRJbnQoMiksdGhpcy5maWxlQ29tbWVudExlbmd0aD1lLnJlYWRJbnQoMiksdGhpcy5kaXNrTnVtYmVyU3RhcnQ9ZS5yZWFkSW50KDIpLHRoaXMuaW50ZXJuYWxGaWxlQXR0cmlidXRlcz1lLnJlYWRJbnQoMiksdGhpcy5leHRlcm5hbEZpbGVBdHRyaWJ1dGVzPWUucmVhZEludCg0KSx0aGlzLmxvY2FsSGVhZGVyT2Zmc2V0PWUucmVhZEludCg0KSx0aGlzLmlzRW5jcnlwdGVkKCkpdGhyb3cgbmV3IEVycm9yKFwiRW5jcnlwdGVkIHppcCBhcmUgbm90IHN1cHBvcnRlZFwiKTtlLnNraXAodCksdGhpcy5yZWFkRXh0cmFGaWVsZHMoZSksdGhpcy5wYXJzZVpJUDY0RXh0cmFGaWVsZChlKSx0aGlzLmZpbGVDb21tZW50PWUucmVhZERhdGEodGhpcy5maWxlQ29tbWVudExlbmd0aCl9LHByb2Nlc3NBdHRyaWJ1dGVzOmZ1bmN0aW9uKCl7dGhpcy51bml4UGVybWlzc2lvbnM9bnVsbCx0aGlzLmRvc1Blcm1pc3Npb25zPW51bGw7dmFyIGU9dGhpcy52ZXJzaW9uTWFkZUJ5Pj44O3RoaXMuZGlyPSEhKDE2JnRoaXMuZXh0ZXJuYWxGaWxlQXR0cmlidXRlcyksMD09ZSYmKHRoaXMuZG9zUGVybWlzc2lvbnM9NjMmdGhpcy5leHRlcm5hbEZpbGVBdHRyaWJ1dGVzKSwzPT1lJiYodGhpcy51bml4UGVybWlzc2lvbnM9dGhpcy5leHRlcm5hbEZpbGVBdHRyaWJ1dGVzPj4xNiY2NTUzNSksdGhpcy5kaXJ8fFwiL1wiIT09dGhpcy5maWxlTmFtZVN0ci5zbGljZSgtMSl8fCh0aGlzLmRpcj0hMCl9LHBhcnNlWklQNjRFeHRyYUZpZWxkOmZ1bmN0aW9uKCl7aWYodGhpcy5leHRyYUZpZWxkc1sxXSl7dmFyIGU9bih0aGlzLmV4dHJhRmllbGRzWzFdLnZhbHVlKTt0aGlzLnVuY29tcHJlc3NlZFNpemU9PT1zLk1BWF9WQUxVRV8zMkJJVFMmJih0aGlzLnVuY29tcHJlc3NlZFNpemU9ZS5yZWFkSW50KDgpKSx0aGlzLmNvbXByZXNzZWRTaXplPT09cy5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy5jb21wcmVzc2VkU2l6ZT1lLnJlYWRJbnQoOCkpLHRoaXMubG9jYWxIZWFkZXJPZmZzZXQ9PT1zLk1BWF9WQUxVRV8zMkJJVFMmJih0aGlzLmxvY2FsSGVhZGVyT2Zmc2V0PWUucmVhZEludCg4KSksdGhpcy5kaXNrTnVtYmVyU3RhcnQ9PT1zLk1BWF9WQUxVRV8zMkJJVFMmJih0aGlzLmRpc2tOdW1iZXJTdGFydD1lLnJlYWRJbnQoNCkpfX0scmVhZEV4dHJhRmllbGRzOmZ1bmN0aW9uKGUpe3ZhciB0LHIsbixpPWUuaW5kZXgrdGhpcy5leHRyYUZpZWxkc0xlbmd0aDtmb3IodGhpcy5leHRyYUZpZWxkc3x8KHRoaXMuZXh0cmFGaWVsZHM9e30pO2UuaW5kZXgrNDxpOyl0PWUucmVhZEludCgyKSxyPWUucmVhZEludCgyKSxuPWUucmVhZERhdGEociksdGhpcy5leHRyYUZpZWxkc1t0XT17aWQ6dCxsZW5ndGg6cix2YWx1ZTpufTtlLnNldEluZGV4KGkpfSxoYW5kbGVVVEY4OmZ1bmN0aW9uKCl7dmFyIGU9dS51aW50OGFycmF5P1widWludDhhcnJheVwiOlwiYXJyYXlcIjtpZih0aGlzLnVzZVVURjgoKSl0aGlzLmZpbGVOYW1lU3RyPW8udXRmOGRlY29kZSh0aGlzLmZpbGVOYW1lKSx0aGlzLmZpbGVDb21tZW50U3RyPW8udXRmOGRlY29kZSh0aGlzLmZpbGVDb21tZW50KTtlbHNle3ZhciB0PXRoaXMuZmluZEV4dHJhRmllbGRVbmljb2RlUGF0aCgpO2lmKG51bGwhPT10KXRoaXMuZmlsZU5hbWVTdHI9dDtlbHNle3ZhciByPXMudHJhbnNmb3JtVG8oZSx0aGlzLmZpbGVOYW1lKTt0aGlzLmZpbGVOYW1lU3RyPXRoaXMubG9hZE9wdGlvbnMuZGVjb2RlRmlsZU5hbWUocil9dmFyIG49dGhpcy5maW5kRXh0cmFGaWVsZFVuaWNvZGVDb21tZW50KCk7aWYobnVsbCE9PW4pdGhpcy5maWxlQ29tbWVudFN0cj1uO2Vsc2V7dmFyIGk9cy50cmFuc2Zvcm1UbyhlLHRoaXMuZmlsZUNvbW1lbnQpO3RoaXMuZmlsZUNvbW1lbnRTdHI9dGhpcy5sb2FkT3B0aW9ucy5kZWNvZGVGaWxlTmFtZShpKX19fSxmaW5kRXh0cmFGaWVsZFVuaWNvZGVQYXRoOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5leHRyYUZpZWxkc1syODc4OV07aWYoZSl7dmFyIHQ9bihlLnZhbHVlKTtyZXR1cm4gMSE9PXQucmVhZEludCgxKT9udWxsOmEodGhpcy5maWxlTmFtZSkhPT10LnJlYWRJbnQoNCk/bnVsbDpvLnV0ZjhkZWNvZGUodC5yZWFkRGF0YShlLmxlbmd0aC01KSl9cmV0dXJuIG51bGx9LGZpbmRFeHRyYUZpZWxkVW5pY29kZUNvbW1lbnQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmV4dHJhRmllbGRzWzI1NDYxXTtpZihlKXt2YXIgdD1uKGUudmFsdWUpO3JldHVybiAxIT09dC5yZWFkSW50KDEpP251bGw6YSh0aGlzLmZpbGVDb21tZW50KSE9PXQucmVhZEludCg0KT9udWxsOm8udXRmOGRlY29kZSh0LnJlYWREYXRhKGUubGVuZ3RoLTUpKX1yZXR1cm4gbnVsbH19LHQuZXhwb3J0cz1sfSx7XCIuL2NvbXByZXNzZWRPYmplY3RcIjoyLFwiLi9jb21wcmVzc2lvbnNcIjozLFwiLi9jcmMzMlwiOjQsXCIuL3JlYWRlci9yZWFkZXJGb3JcIjoyMixcIi4vc3VwcG9ydFwiOjMwLFwiLi91dGY4XCI6MzEsXCIuL3V0aWxzXCI6MzJ9XSwzNTpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIG4oZSx0LHIpe3RoaXMubmFtZT1lLHRoaXMuZGlyPXIuZGlyLHRoaXMuZGF0ZT1yLmRhdGUsdGhpcy5jb21tZW50PXIuY29tbWVudCx0aGlzLnVuaXhQZXJtaXNzaW9ucz1yLnVuaXhQZXJtaXNzaW9ucyx0aGlzLmRvc1Blcm1pc3Npb25zPXIuZG9zUGVybWlzc2lvbnMsdGhpcy5fZGF0YT10LHRoaXMuX2RhdGFCaW5hcnk9ci5iaW5hcnksdGhpcy5vcHRpb25zPXtjb21wcmVzc2lvbjpyLmNvbXByZXNzaW9uLGNvbXByZXNzaW9uT3B0aW9uczpyLmNvbXByZXNzaW9uT3B0aW9uc319dmFyIHM9ZShcIi4vc3RyZWFtL1N0cmVhbUhlbHBlclwiKSxpPWUoXCIuL3N0cmVhbS9EYXRhV29ya2VyXCIpLGE9ZShcIi4vdXRmOFwiKSxvPWUoXCIuL2NvbXByZXNzZWRPYmplY3RcIiksaD1lKFwiLi9zdHJlYW0vR2VuZXJpY1dvcmtlclwiKTtuLnByb3RvdHlwZT17aW50ZXJuYWxTdHJlYW06ZnVuY3Rpb24oZSl7dmFyIHQ9bnVsbCxyPVwic3RyaW5nXCI7dHJ5e2lmKCFlKXRocm93IG5ldyBFcnJvcihcIk5vIG91dHB1dCB0eXBlIHNwZWNpZmllZC5cIik7dmFyIG49XCJzdHJpbmdcIj09PShyPWUudG9Mb3dlckNhc2UoKSl8fFwidGV4dFwiPT09cjtcImJpbmFyeXN0cmluZ1wiIT09ciYmXCJ0ZXh0XCIhPT1yfHwocj1cInN0cmluZ1wiKSx0PXRoaXMuX2RlY29tcHJlc3NXb3JrZXIoKTt2YXIgaT0hdGhpcy5fZGF0YUJpbmFyeTtpJiYhbiYmKHQ9dC5waXBlKG5ldyBhLlV0ZjhFbmNvZGVXb3JrZXIpKSwhaSYmbiYmKHQ9dC5waXBlKG5ldyBhLlV0ZjhEZWNvZGVXb3JrZXIpKX1jYXRjaChlKXsodD1uZXcgaChcImVycm9yXCIpKS5lcnJvcihlKX1yZXR1cm4gbmV3IHModCxyLFwiXCIpfSxhc3luYzpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLmludGVybmFsU3RyZWFtKGUpLmFjY3VtdWxhdGUodCl9LG5vZGVTdHJlYW06ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5pbnRlcm5hbFN0cmVhbShlfHxcIm5vZGVidWZmZXJcIikudG9Ob2RlanNTdHJlYW0odCl9LF9jb21wcmVzc1dvcmtlcjpmdW5jdGlvbihlLHQpe2lmKHRoaXMuX2RhdGEgaW5zdGFuY2VvZiBvJiZ0aGlzLl9kYXRhLmNvbXByZXNzaW9uLm1hZ2ljPT09ZS5tYWdpYylyZXR1cm4gdGhpcy5fZGF0YS5nZXRDb21wcmVzc2VkV29ya2VyKCk7dmFyIHI9dGhpcy5fZGVjb21wcmVzc1dvcmtlcigpO3JldHVybiB0aGlzLl9kYXRhQmluYXJ5fHwocj1yLnBpcGUobmV3IGEuVXRmOEVuY29kZVdvcmtlcikpLG8uY3JlYXRlV29ya2VyRnJvbShyLGUsdCl9LF9kZWNvbXByZXNzV29ya2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RhdGEgaW5zdGFuY2VvZiBvP3RoaXMuX2RhdGEuZ2V0Q29udGVudFdvcmtlcigpOnRoaXMuX2RhdGEgaW5zdGFuY2VvZiBoP3RoaXMuX2RhdGE6bmV3IGkodGhpcy5fZGF0YSl9fTtmb3IodmFyIHU9W1wiYXNUZXh0XCIsXCJhc0JpbmFyeVwiLFwiYXNOb2RlQnVmZmVyXCIsXCJhc1VpbnQ4QXJyYXlcIixcImFzQXJyYXlCdWZmZXJcIl0sbD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcihcIlRoaXMgbWV0aG9kIGhhcyBiZWVuIHJlbW92ZWQgaW4gSlNaaXAgMy4wLCBwbGVhc2UgY2hlY2sgdGhlIHVwZ3JhZGUgZ3VpZGUuXCIpfSxmPTA7Zjx1Lmxlbmd0aDtmKyspbi5wcm90b3R5cGVbdVtmXV09bDt0LmV4cG9ydHM9bn0se1wiLi9jb21wcmVzc2VkT2JqZWN0XCI6MixcIi4vc3RyZWFtL0RhdGFXb3JrZXJcIjoyNyxcIi4vc3RyZWFtL0dlbmVyaWNXb3JrZXJcIjoyOCxcIi4vc3RyZWFtL1N0cmVhbUhlbHBlclwiOjI5LFwiLi91dGY4XCI6MzF9XSwzNjpbZnVuY3Rpb24oZSxsLHQpeyhmdW5jdGlvbih0KXtcInVzZSBzdHJpY3RcIjt2YXIgcixuLGU9dC5NdXRhdGlvbk9ic2VydmVyfHx0LldlYktpdE11dGF0aW9uT2JzZXJ2ZXI7aWYoZSl7dmFyIGk9MCxzPW5ldyBlKHUpLGE9dC5kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShcIlwiKTtzLm9ic2VydmUoYSx7Y2hhcmFjdGVyRGF0YTohMH0pLHI9ZnVuY3Rpb24oKXthLmRhdGE9aT0rK2klMn19ZWxzZSBpZih0LnNldEltbWVkaWF0ZXx8dm9pZCAwPT09dC5NZXNzYWdlQ2hhbm5lbClyPVwiZG9jdW1lbnRcImluIHQmJlwib25yZWFkeXN0YXRlY2hhbmdlXCJpbiB0LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik/ZnVuY3Rpb24oKXt2YXIgZT10LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7ZS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXt1KCksZS5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCxlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSksZT1udWxsfSx0LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChlKX06ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KHUsMCl9O2Vsc2V7dmFyIG89bmV3IHQuTWVzc2FnZUNoYW5uZWw7by5wb3J0MS5vbm1lc3NhZ2U9dSxyPWZ1bmN0aW9uKCl7by5wb3J0Mi5wb3N0TWVzc2FnZSgwKX19dmFyIGg9W107ZnVuY3Rpb24gdSgpe3ZhciBlLHQ7bj0hMDtmb3IodmFyIHI9aC5sZW5ndGg7cjspe2Zvcih0PWgsaD1bXSxlPS0xOysrZTxyOyl0W2VdKCk7cj1oLmxlbmd0aH1uPSExfWwuZXhwb3J0cz1mdW5jdGlvbihlKXsxIT09aC5wdXNoKGUpfHxufHxyKCl9fSkuY2FsbCh0aGlzLFwidW5kZWZpbmVkXCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZWxmP3NlbGY6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7fV0sMzc6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaT1lKFwiaW1tZWRpYXRlXCIpO2Z1bmN0aW9uIHUoKXt9dmFyIGw9e30scz1bXCJSRUpFQ1RFRFwiXSxhPVtcIkZVTEZJTExFRFwiXSxuPVtcIlBFTkRJTkdcIl07ZnVuY3Rpb24gbyhlKXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoXCJyZXNvbHZlciBtdXN0IGJlIGEgZnVuY3Rpb25cIik7dGhpcy5zdGF0ZT1uLHRoaXMucXVldWU9W10sdGhpcy5vdXRjb21lPXZvaWQgMCxlIT09dSYmZCh0aGlzLGUpfWZ1bmN0aW9uIGgoZSx0LHIpe3RoaXMucHJvbWlzZT1lLFwiZnVuY3Rpb25cIj09dHlwZW9mIHQmJih0aGlzLm9uRnVsZmlsbGVkPXQsdGhpcy5jYWxsRnVsZmlsbGVkPXRoaXMub3RoZXJDYWxsRnVsZmlsbGVkKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiByJiYodGhpcy5vblJlamVjdGVkPXIsdGhpcy5jYWxsUmVqZWN0ZWQ9dGhpcy5vdGhlckNhbGxSZWplY3RlZCl9ZnVuY3Rpb24gZih0LHIsbil7aShmdW5jdGlvbigpe3ZhciBlO3RyeXtlPXIobil9Y2F0Y2goZSl7cmV0dXJuIGwucmVqZWN0KHQsZSl9ZT09PXQ/bC5yZWplY3QodCxuZXcgVHlwZUVycm9yKFwiQ2Fubm90IHJlc29sdmUgcHJvbWlzZSB3aXRoIGl0c2VsZlwiKSk6bC5yZXNvbHZlKHQsZSl9KX1mdW5jdGlvbiBjKGUpe3ZhciB0PWUmJmUudGhlbjtpZihlJiYoXCJvYmplY3RcIj09dHlwZW9mIGV8fFwiZnVuY3Rpb25cIj09dHlwZW9mIGUpJiZcImZ1bmN0aW9uXCI9PXR5cGVvZiB0KXJldHVybiBmdW5jdGlvbigpe3QuYXBwbHkoZSxhcmd1bWVudHMpfX1mdW5jdGlvbiBkKHQsZSl7dmFyIHI9ITE7ZnVuY3Rpb24gbihlKXtyfHwocj0hMCxsLnJlamVjdCh0LGUpKX1mdW5jdGlvbiBpKGUpe3J8fChyPSEwLGwucmVzb2x2ZSh0LGUpKX12YXIgcz1wKGZ1bmN0aW9uKCl7ZShpLG4pfSk7XCJlcnJvclwiPT09cy5zdGF0dXMmJm4ocy52YWx1ZSl9ZnVuY3Rpb24gcChlLHQpe3ZhciByPXt9O3RyeXtyLnZhbHVlPWUodCksci5zdGF0dXM9XCJzdWNjZXNzXCJ9Y2F0Y2goZSl7ci5zdGF0dXM9XCJlcnJvclwiLHIudmFsdWU9ZX1yZXR1cm4gcn0odC5leHBvcnRzPW8pLnByb3RvdHlwZS5maW5hbGx5PWZ1bmN0aW9uKHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpcmV0dXJuIHRoaXM7dmFyIHI9dGhpcy5jb25zdHJ1Y3RvcjtyZXR1cm4gdGhpcy50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiByLnJlc29sdmUodCgpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGV9KX0sZnVuY3Rpb24oZSl7cmV0dXJuIHIucmVzb2x2ZSh0KCkpLnRoZW4oZnVuY3Rpb24oKXt0aHJvdyBlfSl9KX0sby5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudGhlbihudWxsLGUpfSxvLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKGUsdCl7aWYoXCJmdW5jdGlvblwiIT10eXBlb2YgZSYmdGhpcy5zdGF0ZT09PWF8fFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQmJnRoaXMuc3RhdGU9PT1zKXJldHVybiB0aGlzO3ZhciByPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHUpO3RoaXMuc3RhdGUhPT1uP2Yocix0aGlzLnN0YXRlPT09YT9lOnQsdGhpcy5vdXRjb21lKTp0aGlzLnF1ZXVlLnB1c2gobmV3IGgocixlLHQpKTtyZXR1cm4gcn0saC5wcm90b3R5cGUuY2FsbEZ1bGZpbGxlZD1mdW5jdGlvbihlKXtsLnJlc29sdmUodGhpcy5wcm9taXNlLGUpfSxoLnByb3RvdHlwZS5vdGhlckNhbGxGdWxmaWxsZWQ9ZnVuY3Rpb24oZSl7Zih0aGlzLnByb21pc2UsdGhpcy5vbkZ1bGZpbGxlZCxlKX0saC5wcm90b3R5cGUuY2FsbFJlamVjdGVkPWZ1bmN0aW9uKGUpe2wucmVqZWN0KHRoaXMucHJvbWlzZSxlKX0saC5wcm90b3R5cGUub3RoZXJDYWxsUmVqZWN0ZWQ9ZnVuY3Rpb24oZSl7Zih0aGlzLnByb21pc2UsdGhpcy5vblJlamVjdGVkLGUpfSxsLnJlc29sdmU9ZnVuY3Rpb24oZSx0KXt2YXIgcj1wKGMsdCk7aWYoXCJlcnJvclwiPT09ci5zdGF0dXMpcmV0dXJuIGwucmVqZWN0KGUsci52YWx1ZSk7dmFyIG49ci52YWx1ZTtpZihuKWQoZSxuKTtlbHNle2Uuc3RhdGU9YSxlLm91dGNvbWU9dDtmb3IodmFyIGk9LTEscz1lLnF1ZXVlLmxlbmd0aDsrK2k8czspZS5xdWV1ZVtpXS5jYWxsRnVsZmlsbGVkKHQpfXJldHVybiBlfSxsLnJlamVjdD1mdW5jdGlvbihlLHQpe2Uuc3RhdGU9cyxlLm91dGNvbWU9dDtmb3IodmFyIHI9LTEsbj1lLnF1ZXVlLmxlbmd0aDsrK3I8bjspZS5xdWV1ZVtyXS5jYWxsUmVqZWN0ZWQodCk7cmV0dXJuIGV9LG8ucmVzb2x2ZT1mdW5jdGlvbihlKXtpZihlIGluc3RhbmNlb2YgdGhpcylyZXR1cm4gZTtyZXR1cm4gbC5yZXNvbHZlKG5ldyB0aGlzKHUpLGUpfSxvLnJlamVjdD1mdW5jdGlvbihlKXt2YXIgdD1uZXcgdGhpcyh1KTtyZXR1cm4gbC5yZWplY3QodCxlKX0sby5hbGw9ZnVuY3Rpb24oZSl7dmFyIHI9dGhpcztpZihcIltvYmplY3QgQXJyYXldXCIhPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkpcmV0dXJuIHRoaXMucmVqZWN0KG5ldyBUeXBlRXJyb3IoXCJtdXN0IGJlIGFuIGFycmF5XCIpKTt2YXIgbj1lLmxlbmd0aCxpPSExO2lmKCFuKXJldHVybiB0aGlzLnJlc29sdmUoW10pO3ZhciBzPW5ldyBBcnJheShuKSxhPTAsdD0tMSxvPW5ldyB0aGlzKHUpO2Zvcig7Kyt0PG47KWgoZVt0XSx0KTtyZXR1cm4gbztmdW5jdGlvbiBoKGUsdCl7ci5yZXNvbHZlKGUpLnRoZW4oZnVuY3Rpb24oZSl7c1t0XT1lLCsrYSE9PW58fGl8fChpPSEwLGwucmVzb2x2ZShvLHMpKX0sZnVuY3Rpb24oZSl7aXx8KGk9ITAsbC5yZWplY3QobyxlKSl9KX19LG8ucmFjZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzO2lmKFwiW29iamVjdCBBcnJheV1cIiE9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSlyZXR1cm4gdGhpcy5yZWplY3QobmV3IFR5cGVFcnJvcihcIm11c3QgYmUgYW4gYXJyYXlcIikpO3ZhciByPWUubGVuZ3RoLG49ITE7aWYoIXIpcmV0dXJuIHRoaXMucmVzb2x2ZShbXSk7dmFyIGk9LTEscz1uZXcgdGhpcyh1KTtmb3IoOysraTxyOylhPWVbaV0sdC5yZXNvbHZlKGEpLnRoZW4oZnVuY3Rpb24oZSl7bnx8KG49ITAsbC5yZXNvbHZlKHMsZSkpfSxmdW5jdGlvbihlKXtufHwobj0hMCxsLnJlamVjdChzLGUpKX0pO3ZhciBhO3JldHVybiBzfX0se2ltbWVkaWF0ZTozNn1dLDM4OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG49e307KDAsZShcIi4vbGliL3V0aWxzL2NvbW1vblwiKS5hc3NpZ24pKG4sZShcIi4vbGliL2RlZmxhdGVcIiksZShcIi4vbGliL2luZmxhdGVcIiksZShcIi4vbGliL3psaWIvY29uc3RhbnRzXCIpKSx0LmV4cG9ydHM9bn0se1wiLi9saWIvZGVmbGF0ZVwiOjM5LFwiLi9saWIvaW5mbGF0ZVwiOjQwLFwiLi9saWIvdXRpbHMvY29tbW9uXCI6NDEsXCIuL2xpYi96bGliL2NvbnN0YW50c1wiOjQ0fV0sMzk6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgYT1lKFwiLi96bGliL2RlZmxhdGVcIiksbz1lKFwiLi91dGlscy9jb21tb25cIiksaD1lKFwiLi91dGlscy9zdHJpbmdzXCIpLGk9ZShcIi4vemxpYi9tZXNzYWdlc1wiKSxzPWUoXCIuL3psaWIvenN0cmVhbVwiKSx1PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsbD0wLGY9LTEsYz0wLGQ9ODtmdW5jdGlvbiBwKGUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHApKXJldHVybiBuZXcgcChlKTt0aGlzLm9wdGlvbnM9by5hc3NpZ24oe2xldmVsOmYsbWV0aG9kOmQsY2h1bmtTaXplOjE2Mzg0LHdpbmRvd0JpdHM6MTUsbWVtTGV2ZWw6OCxzdHJhdGVneTpjLHRvOlwiXCJ9LGV8fHt9KTt2YXIgdD10aGlzLm9wdGlvbnM7dC5yYXcmJjA8dC53aW5kb3dCaXRzP3Qud2luZG93Qml0cz0tdC53aW5kb3dCaXRzOnQuZ3ppcCYmMDx0LndpbmRvd0JpdHMmJnQud2luZG93Qml0czwxNiYmKHQud2luZG93Qml0cys9MTYpLHRoaXMuZXJyPTAsdGhpcy5tc2c9XCJcIix0aGlzLmVuZGVkPSExLHRoaXMuY2h1bmtzPVtdLHRoaXMuc3RybT1uZXcgcyx0aGlzLnN0cm0uYXZhaWxfb3V0PTA7dmFyIHI9YS5kZWZsYXRlSW5pdDIodGhpcy5zdHJtLHQubGV2ZWwsdC5tZXRob2QsdC53aW5kb3dCaXRzLHQubWVtTGV2ZWwsdC5zdHJhdGVneSk7aWYociE9PWwpdGhyb3cgbmV3IEVycm9yKGlbcl0pO2lmKHQuaGVhZGVyJiZhLmRlZmxhdGVTZXRIZWFkZXIodGhpcy5zdHJtLHQuaGVhZGVyKSx0LmRpY3Rpb25hcnkpe3ZhciBuO2lmKG49XCJzdHJpbmdcIj09dHlwZW9mIHQuZGljdGlvbmFyeT9oLnN0cmluZzJidWYodC5kaWN0aW9uYXJ5KTpcIltvYmplY3QgQXJyYXlCdWZmZXJdXCI9PT11LmNhbGwodC5kaWN0aW9uYXJ5KT9uZXcgVWludDhBcnJheSh0LmRpY3Rpb25hcnkpOnQuZGljdGlvbmFyeSwocj1hLmRlZmxhdGVTZXREaWN0aW9uYXJ5KHRoaXMuc3RybSxuKSkhPT1sKXRocm93IG5ldyBFcnJvcihpW3JdKTt0aGlzLl9kaWN0X3NldD0hMH19ZnVuY3Rpb24gbihlLHQpe3ZhciByPW5ldyBwKHQpO2lmKHIucHVzaChlLCEwKSxyLmVycil0aHJvdyByLm1zZ3x8aVtyLmVycl07cmV0dXJuIHIucmVzdWx0fXAucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oZSx0KXt2YXIgcixuLGk9dGhpcy5zdHJtLHM9dGhpcy5vcHRpb25zLmNodW5rU2l6ZTtpZih0aGlzLmVuZGVkKXJldHVybiExO249dD09PX5+dD90OiEwPT09dD80OjAsXCJzdHJpbmdcIj09dHlwZW9mIGU/aS5pbnB1dD1oLnN0cmluZzJidWYoZSk6XCJbb2JqZWN0IEFycmF5QnVmZmVyXVwiPT09dS5jYWxsKGUpP2kuaW5wdXQ9bmV3IFVpbnQ4QXJyYXkoZSk6aS5pbnB1dD1lLGkubmV4dF9pbj0wLGkuYXZhaWxfaW49aS5pbnB1dC5sZW5ndGg7ZG97aWYoMD09PWkuYXZhaWxfb3V0JiYoaS5vdXRwdXQ9bmV3IG8uQnVmOChzKSxpLm5leHRfb3V0PTAsaS5hdmFpbF9vdXQ9cyksMSE9PShyPWEuZGVmbGF0ZShpLG4pKSYmciE9PWwpcmV0dXJuIHRoaXMub25FbmQociksISh0aGlzLmVuZGVkPSEwKTswIT09aS5hdmFpbF9vdXQmJigwIT09aS5hdmFpbF9pbnx8NCE9PW4mJjIhPT1uKXx8KFwic3RyaW5nXCI9PT10aGlzLm9wdGlvbnMudG8/dGhpcy5vbkRhdGEoaC5idWYyYmluc3RyaW5nKG8uc2hyaW5rQnVmKGkub3V0cHV0LGkubmV4dF9vdXQpKSk6dGhpcy5vbkRhdGEoby5zaHJpbmtCdWYoaS5vdXRwdXQsaS5uZXh0X291dCkpKX13aGlsZSgoMDxpLmF2YWlsX2lufHwwPT09aS5hdmFpbF9vdXQpJiYxIT09cik7cmV0dXJuIDQ9PT1uPyhyPWEuZGVmbGF0ZUVuZCh0aGlzLnN0cm0pLHRoaXMub25FbmQociksdGhpcy5lbmRlZD0hMCxyPT09bCk6MiE9PW58fCh0aGlzLm9uRW5kKGwpLCEoaS5hdmFpbF9vdXQ9MCkpfSxwLnByb3RvdHlwZS5vbkRhdGE9ZnVuY3Rpb24oZSl7dGhpcy5jaHVua3MucHVzaChlKX0scC5wcm90b3R5cGUub25FbmQ9ZnVuY3Rpb24oZSl7ZT09PWwmJihcInN0cmluZ1wiPT09dGhpcy5vcHRpb25zLnRvP3RoaXMucmVzdWx0PXRoaXMuY2h1bmtzLmpvaW4oXCJcIik6dGhpcy5yZXN1bHQ9by5mbGF0dGVuQ2h1bmtzKHRoaXMuY2h1bmtzKSksdGhpcy5jaHVua3M9W10sdGhpcy5lcnI9ZSx0aGlzLm1zZz10aGlzLnN0cm0ubXNnfSxyLkRlZmxhdGU9cCxyLmRlZmxhdGU9bixyLmRlZmxhdGVSYXc9ZnVuY3Rpb24oZSx0KXtyZXR1cm4odD10fHx7fSkucmF3PSEwLG4oZSx0KX0sci5nemlwPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKHQ9dHx8e30pLmd6aXA9ITAsbihlLHQpfX0se1wiLi91dGlscy9jb21tb25cIjo0MSxcIi4vdXRpbHMvc3RyaW5nc1wiOjQyLFwiLi96bGliL2RlZmxhdGVcIjo0NixcIi4vemxpYi9tZXNzYWdlc1wiOjUxLFwiLi96bGliL3pzdHJlYW1cIjo1M31dLDQwOltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIGM9ZShcIi4vemxpYi9pbmZsYXRlXCIpLGQ9ZShcIi4vdXRpbHMvY29tbW9uXCIpLHA9ZShcIi4vdXRpbHMvc3RyaW5nc1wiKSxtPWUoXCIuL3psaWIvY29uc3RhbnRzXCIpLG49ZShcIi4vemxpYi9tZXNzYWdlc1wiKSxpPWUoXCIuL3psaWIvenN0cmVhbVwiKSxzPWUoXCIuL3psaWIvZ3poZWFkZXJcIiksXz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIGEoZSl7aWYoISh0aGlzIGluc3RhbmNlb2YgYSkpcmV0dXJuIG5ldyBhKGUpO3RoaXMub3B0aW9ucz1kLmFzc2lnbih7Y2h1bmtTaXplOjE2Mzg0LHdpbmRvd0JpdHM6MCx0bzpcIlwifSxlfHx7fSk7dmFyIHQ9dGhpcy5vcHRpb25zO3QucmF3JiYwPD10LndpbmRvd0JpdHMmJnQud2luZG93Qml0czwxNiYmKHQud2luZG93Qml0cz0tdC53aW5kb3dCaXRzLDA9PT10LndpbmRvd0JpdHMmJih0LndpbmRvd0JpdHM9LTE1KSksISgwPD10LndpbmRvd0JpdHMmJnQud2luZG93Qml0czwxNil8fGUmJmUud2luZG93Qml0c3x8KHQud2luZG93Qml0cys9MzIpLDE1PHQud2luZG93Qml0cyYmdC53aW5kb3dCaXRzPDQ4JiYwPT0oMTUmdC53aW5kb3dCaXRzKSYmKHQud2luZG93Qml0c3w9MTUpLHRoaXMuZXJyPTAsdGhpcy5tc2c9XCJcIix0aGlzLmVuZGVkPSExLHRoaXMuY2h1bmtzPVtdLHRoaXMuc3RybT1uZXcgaSx0aGlzLnN0cm0uYXZhaWxfb3V0PTA7dmFyIHI9Yy5pbmZsYXRlSW5pdDIodGhpcy5zdHJtLHQud2luZG93Qml0cyk7aWYociE9PW0uWl9PSyl0aHJvdyBuZXcgRXJyb3IobltyXSk7dGhpcy5oZWFkZXI9bmV3IHMsYy5pbmZsYXRlR2V0SGVhZGVyKHRoaXMuc3RybSx0aGlzLmhlYWRlcil9ZnVuY3Rpb24gbyhlLHQpe3ZhciByPW5ldyBhKHQpO2lmKHIucHVzaChlLCEwKSxyLmVycil0aHJvdyByLm1zZ3x8bltyLmVycl07cmV0dXJuIHIucmVzdWx0fWEucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oZSx0KXt2YXIgcixuLGkscyxhLG8saD10aGlzLnN0cm0sdT10aGlzLm9wdGlvbnMuY2h1bmtTaXplLGw9dGhpcy5vcHRpb25zLmRpY3Rpb25hcnksZj0hMTtpZih0aGlzLmVuZGVkKXJldHVybiExO249dD09PX5+dD90OiEwPT09dD9tLlpfRklOSVNIOm0uWl9OT19GTFVTSCxcInN0cmluZ1wiPT10eXBlb2YgZT9oLmlucHV0PXAuYmluc3RyaW5nMmJ1ZihlKTpcIltvYmplY3QgQXJyYXlCdWZmZXJdXCI9PT1fLmNhbGwoZSk/aC5pbnB1dD1uZXcgVWludDhBcnJheShlKTpoLmlucHV0PWUsaC5uZXh0X2luPTAsaC5hdmFpbF9pbj1oLmlucHV0Lmxlbmd0aDtkb3tpZigwPT09aC5hdmFpbF9vdXQmJihoLm91dHB1dD1uZXcgZC5CdWY4KHUpLGgubmV4dF9vdXQ9MCxoLmF2YWlsX291dD11KSwocj1jLmluZmxhdGUoaCxtLlpfTk9fRkxVU0gpKT09PW0uWl9ORUVEX0RJQ1QmJmwmJihvPVwic3RyaW5nXCI9PXR5cGVvZiBsP3Auc3RyaW5nMmJ1ZihsKTpcIltvYmplY3QgQXJyYXlCdWZmZXJdXCI9PT1fLmNhbGwobCk/bmV3IFVpbnQ4QXJyYXkobCk6bCxyPWMuaW5mbGF0ZVNldERpY3Rpb25hcnkodGhpcy5zdHJtLG8pKSxyPT09bS5aX0JVRl9FUlJPUiYmITA9PT1mJiYocj1tLlpfT0ssZj0hMSksciE9PW0uWl9TVFJFQU1fRU5EJiZyIT09bS5aX09LKXJldHVybiB0aGlzLm9uRW5kKHIpLCEodGhpcy5lbmRlZD0hMCk7aC5uZXh0X291dCYmKDAhPT1oLmF2YWlsX291dCYmciE9PW0uWl9TVFJFQU1fRU5EJiYoMCE9PWguYXZhaWxfaW58fG4hPT1tLlpfRklOSVNIJiZuIT09bS5aX1NZTkNfRkxVU0gpfHwoXCJzdHJpbmdcIj09PXRoaXMub3B0aW9ucy50bz8oaT1wLnV0Zjhib3JkZXIoaC5vdXRwdXQsaC5uZXh0X291dCkscz1oLm5leHRfb3V0LWksYT1wLmJ1ZjJzdHJpbmcoaC5vdXRwdXQsaSksaC5uZXh0X291dD1zLGguYXZhaWxfb3V0PXUtcyxzJiZkLmFycmF5U2V0KGgub3V0cHV0LGgub3V0cHV0LGkscywwKSx0aGlzLm9uRGF0YShhKSk6dGhpcy5vbkRhdGEoZC5zaHJpbmtCdWYoaC5vdXRwdXQsaC5uZXh0X291dCkpKSksMD09PWguYXZhaWxfaW4mJjA9PT1oLmF2YWlsX291dCYmKGY9ITApfXdoaWxlKCgwPGguYXZhaWxfaW58fDA9PT1oLmF2YWlsX291dCkmJnIhPT1tLlpfU1RSRUFNX0VORCk7cmV0dXJuIHI9PT1tLlpfU1RSRUFNX0VORCYmKG49bS5aX0ZJTklTSCksbj09PW0uWl9GSU5JU0g/KHI9Yy5pbmZsYXRlRW5kKHRoaXMuc3RybSksdGhpcy5vbkVuZChyKSx0aGlzLmVuZGVkPSEwLHI9PT1tLlpfT0spOm4hPT1tLlpfU1lOQ19GTFVTSHx8KHRoaXMub25FbmQobS5aX09LKSwhKGguYXZhaWxfb3V0PTApKX0sYS5wcm90b3R5cGUub25EYXRhPWZ1bmN0aW9uKGUpe3RoaXMuY2h1bmtzLnB1c2goZSl9LGEucHJvdG90eXBlLm9uRW5kPWZ1bmN0aW9uKGUpe2U9PT1tLlpfT0smJihcInN0cmluZ1wiPT09dGhpcy5vcHRpb25zLnRvP3RoaXMucmVzdWx0PXRoaXMuY2h1bmtzLmpvaW4oXCJcIik6dGhpcy5yZXN1bHQ9ZC5mbGF0dGVuQ2h1bmtzKHRoaXMuY2h1bmtzKSksdGhpcy5jaHVua3M9W10sdGhpcy5lcnI9ZSx0aGlzLm1zZz10aGlzLnN0cm0ubXNnfSxyLkluZmxhdGU9YSxyLmluZmxhdGU9byxyLmluZmxhdGVSYXc9ZnVuY3Rpb24oZSx0KXtyZXR1cm4odD10fHx7fSkucmF3PSEwLG8oZSx0KX0sci51bmd6aXA9b30se1wiLi91dGlscy9jb21tb25cIjo0MSxcIi4vdXRpbHMvc3RyaW5nc1wiOjQyLFwiLi96bGliL2NvbnN0YW50c1wiOjQ0LFwiLi96bGliL2d6aGVhZGVyXCI6NDcsXCIuL3psaWIvaW5mbGF0ZVwiOjQ5LFwiLi96bGliL21lc3NhZ2VzXCI6NTEsXCIuL3psaWIvenN0cmVhbVwiOjUzfV0sNDE6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgbj1cInVuZGVmaW5lZFwiIT10eXBlb2YgVWludDhBcnJheSYmXCJ1bmRlZmluZWRcIiE9dHlwZW9mIFVpbnQxNkFycmF5JiZcInVuZGVmaW5lZFwiIT10eXBlb2YgSW50MzJBcnJheTtyLmFzc2lnbj1mdW5jdGlvbihlKXtmb3IodmFyIHQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3QubGVuZ3RoOyl7dmFyIHI9dC5zaGlmdCgpO2lmKHIpe2lmKFwib2JqZWN0XCIhPXR5cGVvZiByKXRocm93IG5ldyBUeXBlRXJyb3IocitcIm11c3QgYmUgbm9uLW9iamVjdFwiKTtmb3IodmFyIG4gaW4gcilyLmhhc093blByb3BlcnR5KG4pJiYoZVtuXT1yW25dKX19cmV0dXJuIGV9LHIuc2hyaW5rQnVmPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUubGVuZ3RoPT09dD9lOmUuc3ViYXJyYXk/ZS5zdWJhcnJheSgwLHQpOihlLmxlbmd0aD10LGUpfTt2YXIgaT17YXJyYXlTZXQ6ZnVuY3Rpb24oZSx0LHIsbixpKXtpZih0LnN1YmFycmF5JiZlLnN1YmFycmF5KWUuc2V0KHQuc3ViYXJyYXkocixyK24pLGkpO2Vsc2UgZm9yKHZhciBzPTA7czxuO3MrKyllW2krc109dFtyK3NdfSxmbGF0dGVuQ2h1bmtzOmZ1bmN0aW9uKGUpe3ZhciB0LHIsbixpLHMsYTtmb3IodD1uPTAscj1lLmxlbmd0aDt0PHI7dCsrKW4rPWVbdF0ubGVuZ3RoO2ZvcihhPW5ldyBVaW50OEFycmF5KG4pLHQ9aT0wLHI9ZS5sZW5ndGg7dDxyO3QrKylzPWVbdF0sYS5zZXQocyxpKSxpKz1zLmxlbmd0aDtyZXR1cm4gYX19LHM9e2FycmF5U2V0OmZ1bmN0aW9uKGUsdCxyLG4saSl7Zm9yKHZhciBzPTA7czxuO3MrKyllW2krc109dFtyK3NdfSxmbGF0dGVuQ2h1bmtzOmZ1bmN0aW9uKGUpe3JldHVybltdLmNvbmNhdC5hcHBseShbXSxlKX19O3Iuc2V0VHlwZWQ9ZnVuY3Rpb24oZSl7ZT8oci5CdWY4PVVpbnQ4QXJyYXksci5CdWYxNj1VaW50MTZBcnJheSxyLkJ1ZjMyPUludDMyQXJyYXksci5hc3NpZ24ocixpKSk6KHIuQnVmOD1BcnJheSxyLkJ1ZjE2PUFycmF5LHIuQnVmMzI9QXJyYXksci5hc3NpZ24ocixzKSl9LHIuc2V0VHlwZWQobil9LHt9XSw0MjpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBoPWUoXCIuL2NvbW1vblwiKSxpPSEwLHM9ITA7dHJ5e1N0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxbMF0pfWNhdGNoKGUpe2k9ITF9dHJ5e1N0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxuZXcgVWludDhBcnJheSgxKSl9Y2F0Y2goZSl7cz0hMX1mb3IodmFyIHU9bmV3IGguQnVmOCgyNTYpLG49MDtuPDI1NjtuKyspdVtuXT0yNTI8PW4/NjoyNDg8PW4/NToyNDA8PW4/NDoyMjQ8PW4/MzoxOTI8PW4/MjoxO2Z1bmN0aW9uIGwoZSx0KXtpZih0PDY1NTM3JiYoZS5zdWJhcnJheSYmc3x8IWUuc3ViYXJyYXkmJmkpKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsaC5zaHJpbmtCdWYoZSx0KSk7Zm9yKHZhciByPVwiXCIsbj0wO248dDtuKyspcis9U3RyaW5nLmZyb21DaGFyQ29kZShlW25dKTtyZXR1cm4gcn11WzI1NF09dVsyNTRdPTEsci5zdHJpbmcyYnVmPWZ1bmN0aW9uKGUpe3ZhciB0LHIsbixpLHMsYT1lLmxlbmd0aCxvPTA7Zm9yKGk9MDtpPGE7aSsrKTU1Mjk2PT0oNjQ1MTImKHI9ZS5jaGFyQ29kZUF0KGkpKSkmJmkrMTxhJiY1NjMyMD09KDY0NTEyJihuPWUuY2hhckNvZGVBdChpKzEpKSkmJihyPTY1NTM2KyhyLTU1Mjk2PDwxMCkrKG4tNTYzMjApLGkrKyksbys9cjwxMjg/MTpyPDIwNDg/MjpyPDY1NTM2PzM6NDtmb3IodD1uZXcgaC5CdWY4KG8pLGk9cz0wO3M8bztpKyspNTUyOTY9PSg2NDUxMiYocj1lLmNoYXJDb2RlQXQoaSkpKSYmaSsxPGEmJjU2MzIwPT0oNjQ1MTImKG49ZS5jaGFyQ29kZUF0KGkrMSkpKSYmKHI9NjU1MzYrKHItNTUyOTY8PDEwKSsobi01NjMyMCksaSsrKSxyPDEyOD90W3MrK109cjoocjwyMDQ4P3RbcysrXT0xOTJ8cj4+PjY6KHI8NjU1MzY/dFtzKytdPTIyNHxyPj4+MTI6KHRbcysrXT0yNDB8cj4+PjE4LHRbcysrXT0xMjh8cj4+PjEyJjYzKSx0W3MrK109MTI4fHI+Pj42JjYzKSx0W3MrK109MTI4fDYzJnIpO3JldHVybiB0fSxyLmJ1ZjJiaW5zdHJpbmc9ZnVuY3Rpb24oZSl7cmV0dXJuIGwoZSxlLmxlbmd0aCl9LHIuYmluc3RyaW5nMmJ1Zj1mdW5jdGlvbihlKXtmb3IodmFyIHQ9bmV3IGguQnVmOChlLmxlbmd0aCkscj0wLG49dC5sZW5ndGg7cjxuO3IrKyl0W3JdPWUuY2hhckNvZGVBdChyKTtyZXR1cm4gdH0sci5idWYyc3RyaW5nPWZ1bmN0aW9uKGUsdCl7dmFyIHIsbixpLHMsYT10fHxlLmxlbmd0aCxvPW5ldyBBcnJheSgyKmEpO2ZvcihyPW49MDtyPGE7KWlmKChpPWVbcisrXSk8MTI4KW9bbisrXT1pO2Vsc2UgaWYoNDwocz11W2ldKSlvW24rK109NjU1MzMscis9cy0xO2Vsc2V7Zm9yKGkmPTI9PT1zPzMxOjM9PT1zPzE1Ojc7MTxzJiZyPGE7KWk9aTw8Nnw2MyZlW3IrK10scy0tOzE8cz9vW24rK109NjU1MzM6aTw2NTUzNj9vW24rK109aTooaS09NjU1MzYsb1tuKytdPTU1Mjk2fGk+PjEwJjEwMjMsb1tuKytdPTU2MzIwfDEwMjMmaSl9cmV0dXJuIGwobyxuKX0sci51dGY4Ym9yZGVyPWZ1bmN0aW9uKGUsdCl7dmFyIHI7Zm9yKCh0PXR8fGUubGVuZ3RoKT5lLmxlbmd0aCYmKHQ9ZS5sZW5ndGgpLHI9dC0xOzA8PXImJjEyOD09KDE5MiZlW3JdKTspci0tO3JldHVybiByPDA/dDowPT09cj90OnIrdVtlW3JdXT50P3I6dH19LHtcIi4vY29tbW9uXCI6NDF9XSw0MzpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3QuZXhwb3J0cz1mdW5jdGlvbihlLHQscixuKXtmb3IodmFyIGk9NjU1MzUmZXwwLHM9ZT4+PjE2JjY1NTM1fDAsYT0wOzAhPT1yOyl7Zm9yKHItPWE9MmUzPHI/MmUzOnI7cz1zKyhpPWkrdFtuKytdfDApfDAsLS1hOyk7aSU9NjU1MjEscyU9NjU1MjF9cmV0dXJuIGl8czw8MTZ8MH19LHt9XSw0NDpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3QuZXhwb3J0cz17Wl9OT19GTFVTSDowLFpfUEFSVElBTF9GTFVTSDoxLFpfU1lOQ19GTFVTSDoyLFpfRlVMTF9GTFVTSDozLFpfRklOSVNIOjQsWl9CTE9DSzo1LFpfVFJFRVM6NixaX09LOjAsWl9TVFJFQU1fRU5EOjEsWl9ORUVEX0RJQ1Q6MixaX0VSUk5POi0xLFpfU1RSRUFNX0VSUk9SOi0yLFpfREFUQV9FUlJPUjotMyxaX0JVRl9FUlJPUjotNSxaX05PX0NPTVBSRVNTSU9OOjAsWl9CRVNUX1NQRUVEOjEsWl9CRVNUX0NPTVBSRVNTSU9OOjksWl9ERUZBVUxUX0NPTVBSRVNTSU9OOi0xLFpfRklMVEVSRUQ6MSxaX0hVRkZNQU5fT05MWToyLFpfUkxFOjMsWl9GSVhFRDo0LFpfREVGQVVMVF9TVFJBVEVHWTowLFpfQklOQVJZOjAsWl9URVhUOjEsWl9VTktOT1dOOjIsWl9ERUZMQVRFRDo4fX0se31dLDQ1OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIG89ZnVuY3Rpb24oKXtmb3IodmFyIGUsdD1bXSxyPTA7cjwyNTY7cisrKXtlPXI7Zm9yKHZhciBuPTA7bjw4O24rKyllPTEmZT8zOTg4MjkyMzg0XmU+Pj4xOmU+Pj4xO3Rbcl09ZX1yZXR1cm4gdH0oKTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0LHIsbil7dmFyIGk9byxzPW4rcjtlXj0tMTtmb3IodmFyIGE9bjthPHM7YSsrKWU9ZT4+PjheaVsyNTUmKGVedFthXSldO3JldHVybi0xXmV9fSx7fV0sNDY6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaCxjPWUoXCIuLi91dGlscy9jb21tb25cIiksdT1lKFwiLi90cmVlc1wiKSxkPWUoXCIuL2FkbGVyMzJcIikscD1lKFwiLi9jcmMzMlwiKSxuPWUoXCIuL21lc3NhZ2VzXCIpLGw9MCxmPTQsbT0wLF89LTIsZz0tMSxiPTQsaT0yLHY9OCx5PTkscz0yODYsYT0zMCxvPTE5LHc9MipzKzEsaz0xNSx4PTMsUz0yNTgsej1TK3grMSxDPTQyLEU9MTEzLEE9MSxJPTIsTz0zLEI9NDtmdW5jdGlvbiBSKGUsdCl7cmV0dXJuIGUubXNnPW5bdF0sdH1mdW5jdGlvbiBUKGUpe3JldHVybihlPDwxKS0oNDxlPzk6MCl9ZnVuY3Rpb24gRChlKXtmb3IodmFyIHQ9ZS5sZW5ndGg7MDw9LS10OyllW3RdPTB9ZnVuY3Rpb24gRihlKXt2YXIgdD1lLnN0YXRlLHI9dC5wZW5kaW5nO3I+ZS5hdmFpbF9vdXQmJihyPWUuYXZhaWxfb3V0KSwwIT09ciYmKGMuYXJyYXlTZXQoZS5vdXRwdXQsdC5wZW5kaW5nX2J1Zix0LnBlbmRpbmdfb3V0LHIsZS5uZXh0X291dCksZS5uZXh0X291dCs9cix0LnBlbmRpbmdfb3V0Kz1yLGUudG90YWxfb3V0Kz1yLGUuYXZhaWxfb3V0LT1yLHQucGVuZGluZy09ciwwPT09dC5wZW5kaW5nJiYodC5wZW5kaW5nX291dD0wKSl9ZnVuY3Rpb24gTihlLHQpe3UuX3RyX2ZsdXNoX2Jsb2NrKGUsMDw9ZS5ibG9ja19zdGFydD9lLmJsb2NrX3N0YXJ0Oi0xLGUuc3Ryc3RhcnQtZS5ibG9ja19zdGFydCx0KSxlLmJsb2NrX3N0YXJ0PWUuc3Ryc3RhcnQsRihlLnN0cm0pfWZ1bmN0aW9uIFUoZSx0KXtlLnBlbmRpbmdfYnVmW2UucGVuZGluZysrXT10fWZ1bmN0aW9uIFAoZSx0KXtlLnBlbmRpbmdfYnVmW2UucGVuZGluZysrXT10Pj4+OCYyNTUsZS5wZW5kaW5nX2J1ZltlLnBlbmRpbmcrK109MjU1JnR9ZnVuY3Rpb24gTChlLHQpe3ZhciByLG4saT1lLm1heF9jaGFpbl9sZW5ndGgscz1lLnN0cnN0YXJ0LGE9ZS5wcmV2X2xlbmd0aCxvPWUubmljZV9tYXRjaCxoPWUuc3Ryc3RhcnQ+ZS53X3NpemUtej9lLnN0cnN0YXJ0LShlLndfc2l6ZS16KTowLHU9ZS53aW5kb3csbD1lLndfbWFzayxmPWUucHJldixjPWUuc3Ryc3RhcnQrUyxkPXVbcythLTFdLHA9dVtzK2FdO2UucHJldl9sZW5ndGg+PWUuZ29vZF9tYXRjaCYmKGk+Pj0yKSxvPmUubG9va2FoZWFkJiYobz1lLmxvb2thaGVhZCk7ZG97aWYodVsocj10KSthXT09PXAmJnVbcithLTFdPT09ZCYmdVtyXT09PXVbc10mJnVbKytyXT09PXVbcysxXSl7cys9MixyKys7ZG97fXdoaWxlKHVbKytzXT09PXVbKytyXSYmdVsrK3NdPT09dVsrK3JdJiZ1Wysrc109PT11Wysrcl0mJnVbKytzXT09PXVbKytyXSYmdVsrK3NdPT09dVsrK3JdJiZ1Wysrc109PT11Wysrcl0mJnVbKytzXT09PXVbKytyXSYmdVsrK3NdPT09dVsrK3JdJiZzPGMpO2lmKG49Uy0oYy1zKSxzPWMtUyxhPG4pe2lmKGUubWF0Y2hfc3RhcnQ9dCxvPD0oYT1uKSlicmVhaztkPXVbcythLTFdLHA9dVtzK2FdfX19d2hpbGUoKHQ9Zlt0JmxdKT5oJiYwIT0tLWkpO3JldHVybiBhPD1lLmxvb2thaGVhZD9hOmUubG9va2FoZWFkfWZ1bmN0aW9uIGooZSl7dmFyIHQscixuLGkscyxhLG8saCx1LGwsZj1lLndfc2l6ZTtkb3tpZihpPWUud2luZG93X3NpemUtZS5sb29rYWhlYWQtZS5zdHJzdGFydCxlLnN0cnN0YXJ0Pj1mKyhmLXopKXtmb3IoYy5hcnJheVNldChlLndpbmRvdyxlLndpbmRvdyxmLGYsMCksZS5tYXRjaF9zdGFydC09ZixlLnN0cnN0YXJ0LT1mLGUuYmxvY2tfc3RhcnQtPWYsdD1yPWUuaGFzaF9zaXplO249ZS5oZWFkWy0tdF0sZS5oZWFkW3RdPWY8PW4/bi1mOjAsLS1yOyk7Zm9yKHQ9cj1mO249ZS5wcmV2Wy0tdF0sZS5wcmV2W3RdPWY8PW4/bi1mOjAsLS1yOyk7aSs9Zn1pZigwPT09ZS5zdHJtLmF2YWlsX2luKWJyZWFrO2lmKGE9ZS5zdHJtLG89ZS53aW5kb3csaD1lLnN0cnN0YXJ0K2UubG9va2FoZWFkLHU9aSxsPXZvaWQgMCxsPWEuYXZhaWxfaW4sdTxsJiYobD11KSxyPTA9PT1sPzA6KGEuYXZhaWxfaW4tPWwsYy5hcnJheVNldChvLGEuaW5wdXQsYS5uZXh0X2luLGwsaCksMT09PWEuc3RhdGUud3JhcD9hLmFkbGVyPWQoYS5hZGxlcixvLGwsaCk6Mj09PWEuc3RhdGUud3JhcCYmKGEuYWRsZXI9cChhLmFkbGVyLG8sbCxoKSksYS5uZXh0X2luKz1sLGEudG90YWxfaW4rPWwsbCksZS5sb29rYWhlYWQrPXIsZS5sb29rYWhlYWQrZS5pbnNlcnQ+PXgpZm9yKHM9ZS5zdHJzdGFydC1lLmluc2VydCxlLmluc19oPWUud2luZG93W3NdLGUuaW5zX2g9KGUuaW5zX2g8PGUuaGFzaF9zaGlmdF5lLndpbmRvd1tzKzFdKSZlLmhhc2hfbWFzaztlLmluc2VydCYmKGUuaW5zX2g9KGUuaW5zX2g8PGUuaGFzaF9zaGlmdF5lLndpbmRvd1tzK3gtMV0pJmUuaGFzaF9tYXNrLGUucHJldltzJmUud19tYXNrXT1lLmhlYWRbZS5pbnNfaF0sZS5oZWFkW2UuaW5zX2hdPXMscysrLGUuaW5zZXJ0LS0sIShlLmxvb2thaGVhZCtlLmluc2VydDx4KSk7KTt9d2hpbGUoZS5sb29rYWhlYWQ8eiYmMCE9PWUuc3RybS5hdmFpbF9pbil9ZnVuY3Rpb24gWihlLHQpe2Zvcih2YXIgcixuOzspe2lmKGUubG9va2FoZWFkPHope2lmKGooZSksZS5sb29rYWhlYWQ8eiYmdD09PWwpcmV0dXJuIEE7aWYoMD09PWUubG9va2FoZWFkKWJyZWFrfWlmKHI9MCxlLmxvb2thaGVhZD49eCYmKGUuaW5zX2g9KGUuaW5zX2g8PGUuaGFzaF9zaGlmdF5lLndpbmRvd1tlLnN0cnN0YXJ0K3gtMV0pJmUuaGFzaF9tYXNrLHI9ZS5wcmV2W2Uuc3Ryc3RhcnQmZS53X21hc2tdPWUuaGVhZFtlLmluc19oXSxlLmhlYWRbZS5pbnNfaF09ZS5zdHJzdGFydCksMCE9PXImJmUuc3Ryc3RhcnQtcjw9ZS53X3NpemUteiYmKGUubWF0Y2hfbGVuZ3RoPUwoZSxyKSksZS5tYXRjaF9sZW5ndGg+PXgpaWYobj11Ll90cl90YWxseShlLGUuc3Ryc3RhcnQtZS5tYXRjaF9zdGFydCxlLm1hdGNoX2xlbmd0aC14KSxlLmxvb2thaGVhZC09ZS5tYXRjaF9sZW5ndGgsZS5tYXRjaF9sZW5ndGg8PWUubWF4X2xhenlfbWF0Y2gmJmUubG9va2FoZWFkPj14KXtmb3IoZS5tYXRjaF9sZW5ndGgtLTtlLnN0cnN0YXJ0KyssZS5pbnNfaD0oZS5pbnNfaDw8ZS5oYXNoX3NoaWZ0XmUud2luZG93W2Uuc3Ryc3RhcnQreC0xXSkmZS5oYXNoX21hc2sscj1lLnByZXZbZS5zdHJzdGFydCZlLndfbWFza109ZS5oZWFkW2UuaW5zX2hdLGUuaGVhZFtlLmluc19oXT1lLnN0cnN0YXJ0LDAhPS0tZS5tYXRjaF9sZW5ndGg7KTtlLnN0cnN0YXJ0Kyt9ZWxzZSBlLnN0cnN0YXJ0Kz1lLm1hdGNoX2xlbmd0aCxlLm1hdGNoX2xlbmd0aD0wLGUuaW5zX2g9ZS53aW5kb3dbZS5zdHJzdGFydF0sZS5pbnNfaD0oZS5pbnNfaDw8ZS5oYXNoX3NoaWZ0XmUud2luZG93W2Uuc3Ryc3RhcnQrMV0pJmUuaGFzaF9tYXNrO2Vsc2Ugbj11Ll90cl90YWxseShlLDAsZS53aW5kb3dbZS5zdHJzdGFydF0pLGUubG9va2FoZWFkLS0sZS5zdHJzdGFydCsrO2lmKG4mJihOKGUsITEpLDA9PT1lLnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4gQX1yZXR1cm4gZS5pbnNlcnQ9ZS5zdHJzdGFydDx4LTE/ZS5zdHJzdGFydDp4LTEsdD09PWY/KE4oZSwhMCksMD09PWUuc3RybS5hdmFpbF9vdXQ/TzpCKTplLmxhc3RfbGl0JiYoTihlLCExKSwwPT09ZS5zdHJtLmF2YWlsX291dCk/QTpJfWZ1bmN0aW9uIFcoZSx0KXtmb3IodmFyIHIsbixpOzspe2lmKGUubG9va2FoZWFkPHope2lmKGooZSksZS5sb29rYWhlYWQ8eiYmdD09PWwpcmV0dXJuIEE7aWYoMD09PWUubG9va2FoZWFkKWJyZWFrfWlmKHI9MCxlLmxvb2thaGVhZD49eCYmKGUuaW5zX2g9KGUuaW5zX2g8PGUuaGFzaF9zaGlmdF5lLndpbmRvd1tlLnN0cnN0YXJ0K3gtMV0pJmUuaGFzaF9tYXNrLHI9ZS5wcmV2W2Uuc3Ryc3RhcnQmZS53X21hc2tdPWUuaGVhZFtlLmluc19oXSxlLmhlYWRbZS5pbnNfaF09ZS5zdHJzdGFydCksZS5wcmV2X2xlbmd0aD1lLm1hdGNoX2xlbmd0aCxlLnByZXZfbWF0Y2g9ZS5tYXRjaF9zdGFydCxlLm1hdGNoX2xlbmd0aD14LTEsMCE9PXImJmUucHJldl9sZW5ndGg8ZS5tYXhfbGF6eV9tYXRjaCYmZS5zdHJzdGFydC1yPD1lLndfc2l6ZS16JiYoZS5tYXRjaF9sZW5ndGg9TChlLHIpLGUubWF0Y2hfbGVuZ3RoPD01JiYoMT09PWUuc3RyYXRlZ3l8fGUubWF0Y2hfbGVuZ3RoPT09eCYmNDA5NjxlLnN0cnN0YXJ0LWUubWF0Y2hfc3RhcnQpJiYoZS5tYXRjaF9sZW5ndGg9eC0xKSksZS5wcmV2X2xlbmd0aD49eCYmZS5tYXRjaF9sZW5ndGg8PWUucHJldl9sZW5ndGgpe2ZvcihpPWUuc3Ryc3RhcnQrZS5sb29rYWhlYWQteCxuPXUuX3RyX3RhbGx5KGUsZS5zdHJzdGFydC0xLWUucHJldl9tYXRjaCxlLnByZXZfbGVuZ3RoLXgpLGUubG9va2FoZWFkLT1lLnByZXZfbGVuZ3RoLTEsZS5wcmV2X2xlbmd0aC09MjsrK2Uuc3Ryc3RhcnQ8PWkmJihlLmluc19oPShlLmluc19oPDxlLmhhc2hfc2hpZnReZS53aW5kb3dbZS5zdHJzdGFydCt4LTFdKSZlLmhhc2hfbWFzayxyPWUucHJldltlLnN0cnN0YXJ0JmUud19tYXNrXT1lLmhlYWRbZS5pbnNfaF0sZS5oZWFkW2UuaW5zX2hdPWUuc3Ryc3RhcnQpLDAhPS0tZS5wcmV2X2xlbmd0aDspO2lmKGUubWF0Y2hfYXZhaWxhYmxlPTAsZS5tYXRjaF9sZW5ndGg9eC0xLGUuc3Ryc3RhcnQrKyxuJiYoTihlLCExKSwwPT09ZS5zdHJtLmF2YWlsX291dCkpcmV0dXJuIEF9ZWxzZSBpZihlLm1hdGNoX2F2YWlsYWJsZSl7aWYoKG49dS5fdHJfdGFsbHkoZSwwLGUud2luZG93W2Uuc3Ryc3RhcnQtMV0pKSYmTihlLCExKSxlLnN0cnN0YXJ0KyssZS5sb29rYWhlYWQtLSwwPT09ZS5zdHJtLmF2YWlsX291dClyZXR1cm4gQX1lbHNlIGUubWF0Y2hfYXZhaWxhYmxlPTEsZS5zdHJzdGFydCsrLGUubG9va2FoZWFkLS19cmV0dXJuIGUubWF0Y2hfYXZhaWxhYmxlJiYobj11Ll90cl90YWxseShlLDAsZS53aW5kb3dbZS5zdHJzdGFydC0xXSksZS5tYXRjaF9hdmFpbGFibGU9MCksZS5pbnNlcnQ9ZS5zdHJzdGFydDx4LTE/ZS5zdHJzdGFydDp4LTEsdD09PWY/KE4oZSwhMCksMD09PWUuc3RybS5hdmFpbF9vdXQ/TzpCKTplLmxhc3RfbGl0JiYoTihlLCExKSwwPT09ZS5zdHJtLmF2YWlsX291dCk/QTpJfWZ1bmN0aW9uIE0oZSx0LHIsbixpKXt0aGlzLmdvb2RfbGVuZ3RoPWUsdGhpcy5tYXhfbGF6eT10LHRoaXMubmljZV9sZW5ndGg9cix0aGlzLm1heF9jaGFpbj1uLHRoaXMuZnVuYz1pfWZ1bmN0aW9uIEgoKXt0aGlzLnN0cm09bnVsbCx0aGlzLnN0YXR1cz0wLHRoaXMucGVuZGluZ19idWY9bnVsbCx0aGlzLnBlbmRpbmdfYnVmX3NpemU9MCx0aGlzLnBlbmRpbmdfb3V0PTAsdGhpcy5wZW5kaW5nPTAsdGhpcy53cmFwPTAsdGhpcy5nemhlYWQ9bnVsbCx0aGlzLmd6aW5kZXg9MCx0aGlzLm1ldGhvZD12LHRoaXMubGFzdF9mbHVzaD0tMSx0aGlzLndfc2l6ZT0wLHRoaXMud19iaXRzPTAsdGhpcy53X21hc2s9MCx0aGlzLndpbmRvdz1udWxsLHRoaXMud2luZG93X3NpemU9MCx0aGlzLnByZXY9bnVsbCx0aGlzLmhlYWQ9bnVsbCx0aGlzLmluc19oPTAsdGhpcy5oYXNoX3NpemU9MCx0aGlzLmhhc2hfYml0cz0wLHRoaXMuaGFzaF9tYXNrPTAsdGhpcy5oYXNoX3NoaWZ0PTAsdGhpcy5ibG9ja19zdGFydD0wLHRoaXMubWF0Y2hfbGVuZ3RoPTAsdGhpcy5wcmV2X21hdGNoPTAsdGhpcy5tYXRjaF9hdmFpbGFibGU9MCx0aGlzLnN0cnN0YXJ0PTAsdGhpcy5tYXRjaF9zdGFydD0wLHRoaXMubG9va2FoZWFkPTAsdGhpcy5wcmV2X2xlbmd0aD0wLHRoaXMubWF4X2NoYWluX2xlbmd0aD0wLHRoaXMubWF4X2xhenlfbWF0Y2g9MCx0aGlzLmxldmVsPTAsdGhpcy5zdHJhdGVneT0wLHRoaXMuZ29vZF9tYXRjaD0wLHRoaXMubmljZV9tYXRjaD0wLHRoaXMuZHluX2x0cmVlPW5ldyBjLkJ1ZjE2KDIqdyksdGhpcy5keW5fZHRyZWU9bmV3IGMuQnVmMTYoMiooMiphKzEpKSx0aGlzLmJsX3RyZWU9bmV3IGMuQnVmMTYoMiooMipvKzEpKSxEKHRoaXMuZHluX2x0cmVlKSxEKHRoaXMuZHluX2R0cmVlKSxEKHRoaXMuYmxfdHJlZSksdGhpcy5sX2Rlc2M9bnVsbCx0aGlzLmRfZGVzYz1udWxsLHRoaXMuYmxfZGVzYz1udWxsLHRoaXMuYmxfY291bnQ9bmV3IGMuQnVmMTYoaysxKSx0aGlzLmhlYXA9bmV3IGMuQnVmMTYoMipzKzEpLEQodGhpcy5oZWFwKSx0aGlzLmhlYXBfbGVuPTAsdGhpcy5oZWFwX21heD0wLHRoaXMuZGVwdGg9bmV3IGMuQnVmMTYoMipzKzEpLEQodGhpcy5kZXB0aCksdGhpcy5sX2J1Zj0wLHRoaXMubGl0X2J1ZnNpemU9MCx0aGlzLmxhc3RfbGl0PTAsdGhpcy5kX2J1Zj0wLHRoaXMub3B0X2xlbj0wLHRoaXMuc3RhdGljX2xlbj0wLHRoaXMubWF0Y2hlcz0wLHRoaXMuaW5zZXJ0PTAsdGhpcy5iaV9idWY9MCx0aGlzLmJpX3ZhbGlkPTB9ZnVuY3Rpb24gRyhlKXt2YXIgdDtyZXR1cm4gZSYmZS5zdGF0ZT8oZS50b3RhbF9pbj1lLnRvdGFsX291dD0wLGUuZGF0YV90eXBlPWksKHQ9ZS5zdGF0ZSkucGVuZGluZz0wLHQucGVuZGluZ19vdXQ9MCx0LndyYXA8MCYmKHQud3JhcD0tdC53cmFwKSx0LnN0YXR1cz10LndyYXA/QzpFLGUuYWRsZXI9Mj09PXQud3JhcD8wOjEsdC5sYXN0X2ZsdXNoPWwsdS5fdHJfaW5pdCh0KSxtKTpSKGUsXyl9ZnVuY3Rpb24gSyhlKXt2YXIgdD1HKGUpO3JldHVybiB0PT09bSYmZnVuY3Rpb24oZSl7ZS53aW5kb3dfc2l6ZT0yKmUud19zaXplLEQoZS5oZWFkKSxlLm1heF9sYXp5X21hdGNoPWhbZS5sZXZlbF0ubWF4X2xhenksZS5nb29kX21hdGNoPWhbZS5sZXZlbF0uZ29vZF9sZW5ndGgsZS5uaWNlX21hdGNoPWhbZS5sZXZlbF0ubmljZV9sZW5ndGgsZS5tYXhfY2hhaW5fbGVuZ3RoPWhbZS5sZXZlbF0ubWF4X2NoYWluLGUuc3Ryc3RhcnQ9MCxlLmJsb2NrX3N0YXJ0PTAsZS5sb29rYWhlYWQ9MCxlLmluc2VydD0wLGUubWF0Y2hfbGVuZ3RoPWUucHJldl9sZW5ndGg9eC0xLGUubWF0Y2hfYXZhaWxhYmxlPTAsZS5pbnNfaD0wfShlLnN0YXRlKSx0fWZ1bmN0aW9uIFkoZSx0LHIsbixpLHMpe2lmKCFlKXJldHVybiBfO3ZhciBhPTE7aWYodD09PWcmJih0PTYpLG48MD8oYT0wLG49LW4pOjE1PG4mJihhPTIsbi09MTYpLGk8MXx8eTxpfHxyIT09dnx8bjw4fHwxNTxufHx0PDB8fDk8dHx8czwwfHxiPHMpcmV0dXJuIFIoZSxfKTs4PT09biYmKG49OSk7dmFyIG89bmV3IEg7cmV0dXJuKGUuc3RhdGU9bykuc3RybT1lLG8ud3JhcD1hLG8uZ3poZWFkPW51bGwsby53X2JpdHM9bixvLndfc2l6ZT0xPDxvLndfYml0cyxvLndfbWFzaz1vLndfc2l6ZS0xLG8uaGFzaF9iaXRzPWkrNyxvLmhhc2hfc2l6ZT0xPDxvLmhhc2hfYml0cyxvLmhhc2hfbWFzaz1vLmhhc2hfc2l6ZS0xLG8uaGFzaF9zaGlmdD1+figoby5oYXNoX2JpdHMreC0xKS94KSxvLndpbmRvdz1uZXcgYy5CdWY4KDIqby53X3NpemUpLG8uaGVhZD1uZXcgYy5CdWYxNihvLmhhc2hfc2l6ZSksby5wcmV2PW5ldyBjLkJ1ZjE2KG8ud19zaXplKSxvLmxpdF9idWZzaXplPTE8PGkrNixvLnBlbmRpbmdfYnVmX3NpemU9NCpvLmxpdF9idWZzaXplLG8ucGVuZGluZ19idWY9bmV3IGMuQnVmOChvLnBlbmRpbmdfYnVmX3NpemUpLG8uZF9idWY9MSpvLmxpdF9idWZzaXplLG8ubF9idWY9MypvLmxpdF9idWZzaXplLG8ubGV2ZWw9dCxvLnN0cmF0ZWd5PXMsby5tZXRob2Q9cixLKGUpfWg9W25ldyBNKDAsMCwwLDAsZnVuY3Rpb24oZSx0KXt2YXIgcj02NTUzNTtmb3Iocj5lLnBlbmRpbmdfYnVmX3NpemUtNSYmKHI9ZS5wZW5kaW5nX2J1Zl9zaXplLTUpOzspe2lmKGUubG9va2FoZWFkPD0xKXtpZihqKGUpLDA9PT1lLmxvb2thaGVhZCYmdD09PWwpcmV0dXJuIEE7aWYoMD09PWUubG9va2FoZWFkKWJyZWFrfWUuc3Ryc3RhcnQrPWUubG9va2FoZWFkLGUubG9va2FoZWFkPTA7dmFyIG49ZS5ibG9ja19zdGFydCtyO2lmKCgwPT09ZS5zdHJzdGFydHx8ZS5zdHJzdGFydD49bikmJihlLmxvb2thaGVhZD1lLnN0cnN0YXJ0LW4sZS5zdHJzdGFydD1uLE4oZSwhMSksMD09PWUuc3RybS5hdmFpbF9vdXQpKXJldHVybiBBO2lmKGUuc3Ryc3RhcnQtZS5ibG9ja19zdGFydD49ZS53X3NpemUteiYmKE4oZSwhMSksMD09PWUuc3RybS5hdmFpbF9vdXQpKXJldHVybiBBfXJldHVybiBlLmluc2VydD0wLHQ9PT1mPyhOKGUsITApLDA9PT1lLnN0cm0uYXZhaWxfb3V0P086Qik6KGUuc3Ryc3RhcnQ+ZS5ibG9ja19zdGFydCYmKE4oZSwhMSksZS5zdHJtLmF2YWlsX291dCksQSl9KSxuZXcgTSg0LDQsOCw0LFopLG5ldyBNKDQsNSwxNiw4LFopLG5ldyBNKDQsNiwzMiwzMixaKSxuZXcgTSg0LDQsMTYsMTYsVyksbmV3IE0oOCwxNiwzMiwzMixXKSxuZXcgTSg4LDE2LDEyOCwxMjgsVyksbmV3IE0oOCwzMiwxMjgsMjU2LFcpLG5ldyBNKDMyLDEyOCwyNTgsMTAyNCxXKSxuZXcgTSgzMiwyNTgsMjU4LDQwOTYsVyldLHIuZGVmbGF0ZUluaXQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gWShlLHQsdiwxNSw4LDApfSxyLmRlZmxhdGVJbml0Mj1ZLHIuZGVmbGF0ZVJlc2V0PUssci5kZWZsYXRlUmVzZXRLZWVwPUcsci5kZWZsYXRlU2V0SGVhZGVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJmUuc3RhdGU/MiE9PWUuc3RhdGUud3JhcD9fOihlLnN0YXRlLmd6aGVhZD10LG0pOl99LHIuZGVmbGF0ZT1mdW5jdGlvbihlLHQpe3ZhciByLG4saSxzO2lmKCFlfHwhZS5zdGF0ZXx8NTx0fHx0PDApcmV0dXJuIGU/UihlLF8pOl87aWYobj1lLnN0YXRlLCFlLm91dHB1dHx8IWUuaW5wdXQmJjAhPT1lLmF2YWlsX2lufHw2NjY9PT1uLnN0YXR1cyYmdCE9PWYpcmV0dXJuIFIoZSwwPT09ZS5hdmFpbF9vdXQ/LTU6Xyk7aWYobi5zdHJtPWUscj1uLmxhc3RfZmx1c2gsbi5sYXN0X2ZsdXNoPXQsbi5zdGF0dXM9PT1DKWlmKDI9PT1uLndyYXApZS5hZGxlcj0wLFUobiwzMSksVShuLDEzOSksVShuLDgpLG4uZ3poZWFkPyhVKG4sKG4uZ3poZWFkLnRleHQ/MTowKSsobi5nemhlYWQuaGNyYz8yOjApKyhuLmd6aGVhZC5leHRyYT80OjApKyhuLmd6aGVhZC5uYW1lPzg6MCkrKG4uZ3poZWFkLmNvbW1lbnQ/MTY6MCkpLFUobiwyNTUmbi5nemhlYWQudGltZSksVShuLG4uZ3poZWFkLnRpbWU+PjgmMjU1KSxVKG4sbi5nemhlYWQudGltZT4+MTYmMjU1KSxVKG4sbi5nemhlYWQudGltZT4+MjQmMjU1KSxVKG4sOT09PW4ubGV2ZWw/MjoyPD1uLnN0cmF0ZWd5fHxuLmxldmVsPDI/NDowKSxVKG4sMjU1Jm4uZ3poZWFkLm9zKSxuLmd6aGVhZC5leHRyYSYmbi5nemhlYWQuZXh0cmEubGVuZ3RoJiYoVShuLDI1NSZuLmd6aGVhZC5leHRyYS5sZW5ndGgpLFUobixuLmd6aGVhZC5leHRyYS5sZW5ndGg+PjgmMjU1KSksbi5nemhlYWQuaGNyYyYmKGUuYWRsZXI9cChlLmFkbGVyLG4ucGVuZGluZ19idWYsbi5wZW5kaW5nLDApKSxuLmd6aW5kZXg9MCxuLnN0YXR1cz02OSk6KFUobiwwKSxVKG4sMCksVShuLDApLFUobiwwKSxVKG4sMCksVShuLDk9PT1uLmxldmVsPzI6Mjw9bi5zdHJhdGVneXx8bi5sZXZlbDwyPzQ6MCksVShuLDMpLG4uc3RhdHVzPUUpO2Vsc2V7dmFyIGE9disobi53X2JpdHMtODw8NCk8PDg7YXw9KDI8PW4uc3RyYXRlZ3l8fG4ubGV2ZWw8Mj8wOm4ubGV2ZWw8Nj8xOjY9PT1uLmxldmVsPzI6Myk8PDYsMCE9PW4uc3Ryc3RhcnQmJihhfD0zMiksYSs9MzEtYSUzMSxuLnN0YXR1cz1FLFAobixhKSwwIT09bi5zdHJzdGFydCYmKFAobixlLmFkbGVyPj4+MTYpLFAobiw2NTUzNSZlLmFkbGVyKSksZS5hZGxlcj0xfWlmKDY5PT09bi5zdGF0dXMpaWYobi5nemhlYWQuZXh0cmEpe2ZvcihpPW4ucGVuZGluZztuLmd6aW5kZXg8KDY1NTM1Jm4uZ3poZWFkLmV4dHJhLmxlbmd0aCkmJihuLnBlbmRpbmchPT1uLnBlbmRpbmdfYnVmX3NpemV8fChuLmd6aGVhZC5oY3JjJiZuLnBlbmRpbmc+aSYmKGUuYWRsZXI9cChlLmFkbGVyLG4ucGVuZGluZ19idWYsbi5wZW5kaW5nLWksaSkpLEYoZSksaT1uLnBlbmRpbmcsbi5wZW5kaW5nIT09bi5wZW5kaW5nX2J1Zl9zaXplKSk7KVUobiwyNTUmbi5nemhlYWQuZXh0cmFbbi5nemluZGV4XSksbi5nemluZGV4Kys7bi5nemhlYWQuaGNyYyYmbi5wZW5kaW5nPmkmJihlLmFkbGVyPXAoZS5hZGxlcixuLnBlbmRpbmdfYnVmLG4ucGVuZGluZy1pLGkpKSxuLmd6aW5kZXg9PT1uLmd6aGVhZC5leHRyYS5sZW5ndGgmJihuLmd6aW5kZXg9MCxuLnN0YXR1cz03Myl9ZWxzZSBuLnN0YXR1cz03MztpZig3Mz09PW4uc3RhdHVzKWlmKG4uZ3poZWFkLm5hbWUpe2k9bi5wZW5kaW5nO2Rve2lmKG4ucGVuZGluZz09PW4ucGVuZGluZ19idWZfc2l6ZSYmKG4uZ3poZWFkLmhjcmMmJm4ucGVuZGluZz5pJiYoZS5hZGxlcj1wKGUuYWRsZXIsbi5wZW5kaW5nX2J1ZixuLnBlbmRpbmctaSxpKSksRihlKSxpPW4ucGVuZGluZyxuLnBlbmRpbmc9PT1uLnBlbmRpbmdfYnVmX3NpemUpKXtzPTE7YnJlYWt9cz1uLmd6aW5kZXg8bi5nemhlYWQubmFtZS5sZW5ndGg/MjU1Jm4uZ3poZWFkLm5hbWUuY2hhckNvZGVBdChuLmd6aW5kZXgrKyk6MCxVKG4scyl9d2hpbGUoMCE9PXMpO24uZ3poZWFkLmhjcmMmJm4ucGVuZGluZz5pJiYoZS5hZGxlcj1wKGUuYWRsZXIsbi5wZW5kaW5nX2J1ZixuLnBlbmRpbmctaSxpKSksMD09PXMmJihuLmd6aW5kZXg9MCxuLnN0YXR1cz05MSl9ZWxzZSBuLnN0YXR1cz05MTtpZig5MT09PW4uc3RhdHVzKWlmKG4uZ3poZWFkLmNvbW1lbnQpe2k9bi5wZW5kaW5nO2Rve2lmKG4ucGVuZGluZz09PW4ucGVuZGluZ19idWZfc2l6ZSYmKG4uZ3poZWFkLmhjcmMmJm4ucGVuZGluZz5pJiYoZS5hZGxlcj1wKGUuYWRsZXIsbi5wZW5kaW5nX2J1ZixuLnBlbmRpbmctaSxpKSksRihlKSxpPW4ucGVuZGluZyxuLnBlbmRpbmc9PT1uLnBlbmRpbmdfYnVmX3NpemUpKXtzPTE7YnJlYWt9cz1uLmd6aW5kZXg8bi5nemhlYWQuY29tbWVudC5sZW5ndGg/MjU1Jm4uZ3poZWFkLmNvbW1lbnQuY2hhckNvZGVBdChuLmd6aW5kZXgrKyk6MCxVKG4scyl9d2hpbGUoMCE9PXMpO24uZ3poZWFkLmhjcmMmJm4ucGVuZGluZz5pJiYoZS5hZGxlcj1wKGUuYWRsZXIsbi5wZW5kaW5nX2J1ZixuLnBlbmRpbmctaSxpKSksMD09PXMmJihuLnN0YXR1cz0xMDMpfWVsc2Ugbi5zdGF0dXM9MTAzO2lmKDEwMz09PW4uc3RhdHVzJiYobi5nemhlYWQuaGNyYz8obi5wZW5kaW5nKzI+bi5wZW5kaW5nX2J1Zl9zaXplJiZGKGUpLG4ucGVuZGluZysyPD1uLnBlbmRpbmdfYnVmX3NpemUmJihVKG4sMjU1JmUuYWRsZXIpLFUobixlLmFkbGVyPj44JjI1NSksZS5hZGxlcj0wLG4uc3RhdHVzPUUpKTpuLnN0YXR1cz1FKSwwIT09bi5wZW5kaW5nKXtpZihGKGUpLDA9PT1lLmF2YWlsX291dClyZXR1cm4gbi5sYXN0X2ZsdXNoPS0xLG19ZWxzZSBpZigwPT09ZS5hdmFpbF9pbiYmVCh0KTw9VChyKSYmdCE9PWYpcmV0dXJuIFIoZSwtNSk7aWYoNjY2PT09bi5zdGF0dXMmJjAhPT1lLmF2YWlsX2luKXJldHVybiBSKGUsLTUpO2lmKDAhPT1lLmF2YWlsX2lufHwwIT09bi5sb29rYWhlYWR8fHQhPT1sJiY2NjYhPT1uLnN0YXR1cyl7dmFyIG89Mj09PW4uc3RyYXRlZ3k/ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHI7Oyl7aWYoMD09PWUubG9va2FoZWFkJiYoaihlKSwwPT09ZS5sb29rYWhlYWQpKXtpZih0PT09bClyZXR1cm4gQTticmVha31pZihlLm1hdGNoX2xlbmd0aD0wLHI9dS5fdHJfdGFsbHkoZSwwLGUud2luZG93W2Uuc3Ryc3RhcnRdKSxlLmxvb2thaGVhZC0tLGUuc3Ryc3RhcnQrKyxyJiYoTihlLCExKSwwPT09ZS5zdHJtLmF2YWlsX291dCkpcmV0dXJuIEF9cmV0dXJuIGUuaW5zZXJ0PTAsdD09PWY/KE4oZSwhMCksMD09PWUuc3RybS5hdmFpbF9vdXQ/TzpCKTplLmxhc3RfbGl0JiYoTihlLCExKSwwPT09ZS5zdHJtLmF2YWlsX291dCk/QTpJfShuLHQpOjM9PT1uLnN0cmF0ZWd5P2Z1bmN0aW9uKGUsdCl7Zm9yKHZhciByLG4saSxzLGE9ZS53aW5kb3c7Oyl7aWYoZS5sb29rYWhlYWQ8PVMpe2lmKGooZSksZS5sb29rYWhlYWQ8PVMmJnQ9PT1sKXJldHVybiBBO2lmKDA9PT1lLmxvb2thaGVhZClicmVha31pZihlLm1hdGNoX2xlbmd0aD0wLGUubG9va2FoZWFkPj14JiYwPGUuc3Ryc3RhcnQmJihuPWFbaT1lLnN0cnN0YXJ0LTFdKT09PWFbKytpXSYmbj09PWFbKytpXSYmbj09PWFbKytpXSl7cz1lLnN0cnN0YXJ0K1M7ZG97fXdoaWxlKG49PT1hWysraV0mJm49PT1hWysraV0mJm49PT1hWysraV0mJm49PT1hWysraV0mJm49PT1hWysraV0mJm49PT1hWysraV0mJm49PT1hWysraV0mJm49PT1hWysraV0mJmk8cyk7ZS5tYXRjaF9sZW5ndGg9Uy0ocy1pKSxlLm1hdGNoX2xlbmd0aD5lLmxvb2thaGVhZCYmKGUubWF0Y2hfbGVuZ3RoPWUubG9va2FoZWFkKX1pZihlLm1hdGNoX2xlbmd0aD49eD8ocj11Ll90cl90YWxseShlLDEsZS5tYXRjaF9sZW5ndGgteCksZS5sb29rYWhlYWQtPWUubWF0Y2hfbGVuZ3RoLGUuc3Ryc3RhcnQrPWUubWF0Y2hfbGVuZ3RoLGUubWF0Y2hfbGVuZ3RoPTApOihyPXUuX3RyX3RhbGx5KGUsMCxlLndpbmRvd1tlLnN0cnN0YXJ0XSksZS5sb29rYWhlYWQtLSxlLnN0cnN0YXJ0KyspLHImJihOKGUsITEpLDA9PT1lLnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4gQX1yZXR1cm4gZS5pbnNlcnQ9MCx0PT09Zj8oTihlLCEwKSwwPT09ZS5zdHJtLmF2YWlsX291dD9POkIpOmUubGFzdF9saXQmJihOKGUsITEpLDA9PT1lLnN0cm0uYXZhaWxfb3V0KT9BOkl9KG4sdCk6aFtuLmxldmVsXS5mdW5jKG4sdCk7aWYobyE9PU8mJm8hPT1CfHwobi5zdGF0dXM9NjY2KSxvPT09QXx8bz09PU8pcmV0dXJuIDA9PT1lLmF2YWlsX291dCYmKG4ubGFzdF9mbHVzaD0tMSksbTtpZihvPT09SSYmKDE9PT10P3UuX3RyX2FsaWduKG4pOjUhPT10JiYodS5fdHJfc3RvcmVkX2Jsb2NrKG4sMCwwLCExKSwzPT09dCYmKEQobi5oZWFkKSwwPT09bi5sb29rYWhlYWQmJihuLnN0cnN0YXJ0PTAsbi5ibG9ja19zdGFydD0wLG4uaW5zZXJ0PTApKSksRihlKSwwPT09ZS5hdmFpbF9vdXQpKXJldHVybiBuLmxhc3RfZmx1c2g9LTEsbX1yZXR1cm4gdCE9PWY/bTpuLndyYXA8PTA/MTooMj09PW4ud3JhcD8oVShuLDI1NSZlLmFkbGVyKSxVKG4sZS5hZGxlcj4+OCYyNTUpLFUobixlLmFkbGVyPj4xNiYyNTUpLFUobixlLmFkbGVyPj4yNCYyNTUpLFUobiwyNTUmZS50b3RhbF9pbiksVShuLGUudG90YWxfaW4+PjgmMjU1KSxVKG4sZS50b3RhbF9pbj4+MTYmMjU1KSxVKG4sZS50b3RhbF9pbj4+MjQmMjU1KSk6KFAobixlLmFkbGVyPj4+MTYpLFAobiw2NTUzNSZlLmFkbGVyKSksRihlKSwwPG4ud3JhcCYmKG4ud3JhcD0tbi53cmFwKSwwIT09bi5wZW5kaW5nP206MSl9LHIuZGVmbGF0ZUVuZD1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gZSYmZS5zdGF0ZT8odD1lLnN0YXRlLnN0YXR1cykhPT1DJiY2OSE9PXQmJjczIT09dCYmOTEhPT10JiYxMDMhPT10JiZ0IT09RSYmNjY2IT09dD9SKGUsXyk6KGUuc3RhdGU9bnVsbCx0PT09RT9SKGUsLTMpOm0pOl99LHIuZGVmbGF0ZVNldERpY3Rpb25hcnk9ZnVuY3Rpb24oZSx0KXt2YXIgcixuLGkscyxhLG8saCx1LGw9dC5sZW5ndGg7aWYoIWV8fCFlLnN0YXRlKXJldHVybiBfO2lmKDI9PT0ocz0ocj1lLnN0YXRlKS53cmFwKXx8MT09PXMmJnIuc3RhdHVzIT09Q3x8ci5sb29rYWhlYWQpcmV0dXJuIF87Zm9yKDE9PT1zJiYoZS5hZGxlcj1kKGUuYWRsZXIsdCxsLDApKSxyLndyYXA9MCxsPj1yLndfc2l6ZSYmKDA9PT1zJiYoRChyLmhlYWQpLHIuc3Ryc3RhcnQ9MCxyLmJsb2NrX3N0YXJ0PTAsci5pbnNlcnQ9MCksdT1uZXcgYy5CdWY4KHIud19zaXplKSxjLmFycmF5U2V0KHUsdCxsLXIud19zaXplLHIud19zaXplLDApLHQ9dSxsPXIud19zaXplKSxhPWUuYXZhaWxfaW4sbz1lLm5leHRfaW4saD1lLmlucHV0LGUuYXZhaWxfaW49bCxlLm5leHRfaW49MCxlLmlucHV0PXQsaihyKTtyLmxvb2thaGVhZD49eDspe2ZvcihuPXIuc3Ryc3RhcnQsaT1yLmxvb2thaGVhZC0oeC0xKTtyLmluc19oPShyLmluc19oPDxyLmhhc2hfc2hpZnReci53aW5kb3dbbit4LTFdKSZyLmhhc2hfbWFzayxyLnByZXZbbiZyLndfbWFza109ci5oZWFkW3IuaW5zX2hdLHIuaGVhZFtyLmluc19oXT1uLG4rKywtLWk7KTtyLnN0cnN0YXJ0PW4sci5sb29rYWhlYWQ9eC0xLGoocil9cmV0dXJuIHIuc3Ryc3RhcnQrPXIubG9va2FoZWFkLHIuYmxvY2tfc3RhcnQ9ci5zdHJzdGFydCxyLmluc2VydD1yLmxvb2thaGVhZCxyLmxvb2thaGVhZD0wLHIubWF0Y2hfbGVuZ3RoPXIucHJldl9sZW5ndGg9eC0xLHIubWF0Y2hfYXZhaWxhYmxlPTAsZS5uZXh0X2luPW8sZS5pbnB1dD1oLGUuYXZhaWxfaW49YSxyLndyYXA9cyxtfSxyLmRlZmxhdGVJbmZvPVwicGFrbyBkZWZsYXRlIChmcm9tIE5vZGVjYSBwcm9qZWN0KVwifSx7XCIuLi91dGlscy9jb21tb25cIjo0MSxcIi4vYWRsZXIzMlwiOjQzLFwiLi9jcmMzMlwiOjQ1LFwiLi9tZXNzYWdlc1wiOjUxLFwiLi90cmVlc1wiOjUyfV0sNDc6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt0LmV4cG9ydHM9ZnVuY3Rpb24oKXt0aGlzLnRleHQ9MCx0aGlzLnRpbWU9MCx0aGlzLnhmbGFncz0wLHRoaXMub3M9MCx0aGlzLmV4dHJhPW51bGwsdGhpcy5leHRyYV9sZW49MCx0aGlzLm5hbWU9XCJcIix0aGlzLmNvbW1lbnQ9XCJcIix0aGlzLmhjcmM9MCx0aGlzLmRvbmU9ITF9fSx7fV0sNDg6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgcixuLGkscyxhLG8saCx1LGwsZixjLGQscCxtLF8sZyxiLHYseSx3LGsseCxTLHosQztyPWUuc3RhdGUsbj1lLm5leHRfaW4sej1lLmlucHV0LGk9bisoZS5hdmFpbF9pbi01KSxzPWUubmV4dF9vdXQsQz1lLm91dHB1dCxhPXMtKHQtZS5hdmFpbF9vdXQpLG89cysoZS5hdmFpbF9vdXQtMjU3KSxoPXIuZG1heCx1PXIud3NpemUsbD1yLndoYXZlLGY9ci53bmV4dCxjPXIud2luZG93LGQ9ci5ob2xkLHA9ci5iaXRzLG09ci5sZW5jb2RlLF89ci5kaXN0Y29kZSxnPSgxPDxyLmxlbmJpdHMpLTEsYj0oMTw8ci5kaXN0Yml0cyktMTtlOmRve3A8MTUmJihkKz16W24rK108PHAscCs9OCxkKz16W24rK108PHAscCs9OCksdj1tW2QmZ107dDpmb3IoOzspe2lmKGQ+Pj49eT12Pj4+MjQscC09eSwwPT09KHk9dj4+PjE2JjI1NSkpQ1tzKytdPTY1NTM1JnY7ZWxzZXtpZighKDE2JnkpKXtpZigwPT0oNjQmeSkpe3Y9bVsoNjU1MzUmdikrKGQmKDE8PHkpLTEpXTtjb250aW51ZSB0fWlmKDMyJnkpe3IubW9kZT0xMjticmVhayBlfWUubXNnPVwiaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlXCIsci5tb2RlPTMwO2JyZWFrIGV9dz02NTUzNSZ2LCh5Jj0xNSkmJihwPHkmJihkKz16W24rK108PHAscCs9OCksdys9ZCYoMTw8eSktMSxkPj4+PXkscC09eSkscDwxNSYmKGQrPXpbbisrXTw8cCxwKz04LGQrPXpbbisrXTw8cCxwKz04KSx2PV9bZCZiXTtyOmZvcig7Oyl7aWYoZD4+Pj15PXY+Pj4yNCxwLT15LCEoMTYmKHk9dj4+PjE2JjI1NSkpKXtpZigwPT0oNjQmeSkpe3Y9X1soNjU1MzUmdikrKGQmKDE8PHkpLTEpXTtjb250aW51ZSByfWUubXNnPVwiaW52YWxpZCBkaXN0YW5jZSBjb2RlXCIsci5tb2RlPTMwO2JyZWFrIGV9aWYoaz02NTUzNSZ2LHA8KHkmPTE1KSYmKGQrPXpbbisrXTw8cCwocCs9OCk8eSYmKGQrPXpbbisrXTw8cCxwKz04KSksaDwoays9ZCYoMTw8eSktMSkpe2UubXNnPVwiaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2tcIixyLm1vZGU9MzA7YnJlYWsgZX1pZihkPj4+PXkscC09eSwoeT1zLWEpPGspe2lmKGw8KHk9ay15KSYmci5zYW5lKXtlLm1zZz1cImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrXCIsci5tb2RlPTMwO2JyZWFrIGV9aWYoUz1jLCh4PTApPT09Zil7aWYoeCs9dS15LHk8dyl7Zm9yKHctPXk7Q1tzKytdPWNbeCsrXSwtLXk7KTt4PXMtayxTPUN9fWVsc2UgaWYoZjx5KXtpZih4Kz11K2YteSwoeS09Zik8dyl7Zm9yKHctPXk7Q1tzKytdPWNbeCsrXSwtLXk7KTtpZih4PTAsZjx3KXtmb3Iody09eT1mO0NbcysrXT1jW3grK10sLS15Oyk7eD1zLWssUz1DfX19ZWxzZSBpZih4Kz1mLXkseTx3KXtmb3Iody09eTtDW3MrK109Y1t4KytdLC0teTspO3g9cy1rLFM9Q31mb3IoOzI8dzspQ1tzKytdPVNbeCsrXSxDW3MrK109U1t4KytdLENbcysrXT1TW3grK10sdy09Mzt3JiYoQ1tzKytdPVNbeCsrXSwxPHcmJihDW3MrK109U1t4KytdKSl9ZWxzZXtmb3IoeD1zLWs7Q1tzKytdPUNbeCsrXSxDW3MrK109Q1t4KytdLENbcysrXT1DW3grK10sMjwody09Myk7KTt3JiYoQ1tzKytdPUNbeCsrXSwxPHcmJihDW3MrK109Q1t4KytdKSl9YnJlYWt9fWJyZWFrfX13aGlsZShuPGkmJnM8byk7bi09dz1wPj4zLGQmPSgxPDwocC09dzw8MykpLTEsZS5uZXh0X2luPW4sZS5uZXh0X291dD1zLGUuYXZhaWxfaW49bjxpP2ktbis1OjUtKG4taSksZS5hdmFpbF9vdXQ9czxvP28tcysyNTc6MjU3LShzLW8pLHIuaG9sZD1kLHIuYml0cz1wfX0se31dLDQ5OltmdW5jdGlvbihlLHQscil7XCJ1c2Ugc3RyaWN0XCI7dmFyIEk9ZShcIi4uL3V0aWxzL2NvbW1vblwiKSxPPWUoXCIuL2FkbGVyMzJcIiksQj1lKFwiLi9jcmMzMlwiKSxSPWUoXCIuL2luZmZhc3RcIiksVD1lKFwiLi9pbmZ0cmVlc1wiKSxEPTEsRj0yLE49MCxVPS0yLFA9MSxuPTg1MixpPTU5MjtmdW5jdGlvbiBMKGUpe3JldHVybihlPj4+MjQmMjU1KSsoZT4+PjgmNjUyODApKygoNjUyODAmZSk8PDgpKygoMjU1JmUpPDwyNCl9ZnVuY3Rpb24gcygpe3RoaXMubW9kZT0wLHRoaXMubGFzdD0hMSx0aGlzLndyYXA9MCx0aGlzLmhhdmVkaWN0PSExLHRoaXMuZmxhZ3M9MCx0aGlzLmRtYXg9MCx0aGlzLmNoZWNrPTAsdGhpcy50b3RhbD0wLHRoaXMuaGVhZD1udWxsLHRoaXMud2JpdHM9MCx0aGlzLndzaXplPTAsdGhpcy53aGF2ZT0wLHRoaXMud25leHQ9MCx0aGlzLndpbmRvdz1udWxsLHRoaXMuaG9sZD0wLHRoaXMuYml0cz0wLHRoaXMubGVuZ3RoPTAsdGhpcy5vZmZzZXQ9MCx0aGlzLmV4dHJhPTAsdGhpcy5sZW5jb2RlPW51bGwsdGhpcy5kaXN0Y29kZT1udWxsLHRoaXMubGVuYml0cz0wLHRoaXMuZGlzdGJpdHM9MCx0aGlzLm5jb2RlPTAsdGhpcy5ubGVuPTAsdGhpcy5uZGlzdD0wLHRoaXMuaGF2ZT0wLHRoaXMubmV4dD1udWxsLHRoaXMubGVucz1uZXcgSS5CdWYxNigzMjApLHRoaXMud29yaz1uZXcgSS5CdWYxNigyODgpLHRoaXMubGVuZHluPW51bGwsdGhpcy5kaXN0ZHluPW51bGwsdGhpcy5zYW5lPTAsdGhpcy5iYWNrPTAsdGhpcy53YXM9MH1mdW5jdGlvbiBhKGUpe3ZhciB0O3JldHVybiBlJiZlLnN0YXRlPyh0PWUuc3RhdGUsZS50b3RhbF9pbj1lLnRvdGFsX291dD10LnRvdGFsPTAsZS5tc2c9XCJcIix0LndyYXAmJihlLmFkbGVyPTEmdC53cmFwKSx0Lm1vZGU9UCx0Lmxhc3Q9MCx0LmhhdmVkaWN0PTAsdC5kbWF4PTMyNzY4LHQuaGVhZD1udWxsLHQuaG9sZD0wLHQuYml0cz0wLHQubGVuY29kZT10LmxlbmR5bj1uZXcgSS5CdWYzMihuKSx0LmRpc3Rjb2RlPXQuZGlzdGR5bj1uZXcgSS5CdWYzMihpKSx0LnNhbmU9MSx0LmJhY2s9LTEsTik6VX1mdW5jdGlvbiBvKGUpe3ZhciB0O3JldHVybiBlJiZlLnN0YXRlPygodD1lLnN0YXRlKS53c2l6ZT0wLHQud2hhdmU9MCx0LnduZXh0PTAsYShlKSk6VX1mdW5jdGlvbiBoKGUsdCl7dmFyIHIsbjtyZXR1cm4gZSYmZS5zdGF0ZT8obj1lLnN0YXRlLHQ8MD8ocj0wLHQ9LXQpOihyPTErKHQ+PjQpLHQ8NDgmJih0Jj0xNSkpLHQmJih0PDh8fDE1PHQpP1U6KG51bGwhPT1uLndpbmRvdyYmbi53Yml0cyE9PXQmJihuLndpbmRvdz1udWxsKSxuLndyYXA9cixuLndiaXRzPXQsbyhlKSkpOlV9ZnVuY3Rpb24gdShlLHQpe3ZhciByLG47cmV0dXJuIGU/KG49bmV3IHMsKGUuc3RhdGU9bikud2luZG93PW51bGwsKHI9aChlLHQpKSE9PU4mJihlLnN0YXRlPW51bGwpLHIpOlV9dmFyIGwsZixjPSEwO2Z1bmN0aW9uIGooZSl7aWYoYyl7dmFyIHQ7Zm9yKGw9bmV3IEkuQnVmMzIoNTEyKSxmPW5ldyBJLkJ1ZjMyKDMyKSx0PTA7dDwxNDQ7KWUubGVuc1t0KytdPTg7Zm9yKDt0PDI1NjspZS5sZW5zW3QrK109OTtmb3IoO3Q8MjgwOyllLmxlbnNbdCsrXT03O2Zvcig7dDwyODg7KWUubGVuc1t0KytdPTg7Zm9yKFQoRCxlLmxlbnMsMCwyODgsbCwwLGUud29yayx7Yml0czo5fSksdD0wO3Q8MzI7KWUubGVuc1t0KytdPTU7VChGLGUubGVucywwLDMyLGYsMCxlLndvcmsse2JpdHM6NX0pLGM9ITF9ZS5sZW5jb2RlPWwsZS5sZW5iaXRzPTksZS5kaXN0Y29kZT1mLGUuZGlzdGJpdHM9NX1mdW5jdGlvbiBaKGUsdCxyLG4pe3ZhciBpLHM9ZS5zdGF0ZTtyZXR1cm4gbnVsbD09PXMud2luZG93JiYocy53c2l6ZT0xPDxzLndiaXRzLHMud25leHQ9MCxzLndoYXZlPTAscy53aW5kb3c9bmV3IEkuQnVmOChzLndzaXplKSksbj49cy53c2l6ZT8oSS5hcnJheVNldChzLndpbmRvdyx0LHItcy53c2l6ZSxzLndzaXplLDApLHMud25leHQ9MCxzLndoYXZlPXMud3NpemUpOihuPChpPXMud3NpemUtcy53bmV4dCkmJihpPW4pLEkuYXJyYXlTZXQocy53aW5kb3csdCxyLW4saSxzLnduZXh0KSwobi09aSk/KEkuYXJyYXlTZXQocy53aW5kb3csdCxyLW4sbiwwKSxzLnduZXh0PW4scy53aGF2ZT1zLndzaXplKToocy53bmV4dCs9aSxzLnduZXh0PT09cy53c2l6ZSYmKHMud25leHQ9MCkscy53aGF2ZTxzLndzaXplJiYocy53aGF2ZSs9aSkpKSwwfXIuaW5mbGF0ZVJlc2V0PW8sci5pbmZsYXRlUmVzZXQyPWgsci5pbmZsYXRlUmVzZXRLZWVwPWEsci5pbmZsYXRlSW5pdD1mdW5jdGlvbihlKXtyZXR1cm4gdShlLDE1KX0sci5pbmZsYXRlSW5pdDI9dSxyLmluZmxhdGU9ZnVuY3Rpb24oZSx0KXt2YXIgcixuLGkscyxhLG8saCx1LGwsZixjLGQscCxtLF8sZyxiLHYseSx3LGsseCxTLHosQz0wLEU9bmV3IEkuQnVmOCg0KSxBPVsxNiwxNywxOCwwLDgsNyw5LDYsMTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XTtpZighZXx8IWUuc3RhdGV8fCFlLm91dHB1dHx8IWUuaW5wdXQmJjAhPT1lLmF2YWlsX2luKXJldHVybiBVOzEyPT09KHI9ZS5zdGF0ZSkubW9kZSYmKHIubW9kZT0xMyksYT1lLm5leHRfb3V0LGk9ZS5vdXRwdXQsaD1lLmF2YWlsX291dCxzPWUubmV4dF9pbixuPWUuaW5wdXQsbz1lLmF2YWlsX2luLHU9ci5ob2xkLGw9ci5iaXRzLGY9byxjPWgseD1OO2U6Zm9yKDs7KXN3aXRjaChyLm1vZGUpe2Nhc2UgUDppZigwPT09ci53cmFwKXtyLm1vZGU9MTM7YnJlYWt9Zm9yKDtsPDE2Oyl7aWYoMD09PW8pYnJlYWsgZTtvLS0sdSs9bltzKytdPDxsLGwrPTh9aWYoMiZyLndyYXAmJjM1NjE1PT09dSl7RVtyLmNoZWNrPTBdPTI1NSZ1LEVbMV09dT4+PjgmMjU1LHIuY2hlY2s9QihyLmNoZWNrLEUsMiwwKSxsPXU9MCxyLm1vZGU9MjticmVha31pZihyLmZsYWdzPTAsci5oZWFkJiYoci5oZWFkLmRvbmU9ITEpLCEoMSZyLndyYXApfHwoKCgyNTUmdSk8PDgpKyh1Pj44KSklMzEpe2UubXNnPVwiaW5jb3JyZWN0IGhlYWRlciBjaGVja1wiLHIubW9kZT0zMDticmVha31pZig4IT0oMTUmdSkpe2UubXNnPVwidW5rbm93biBjb21wcmVzc2lvbiBtZXRob2RcIixyLm1vZGU9MzA7YnJlYWt9aWYobC09NCxrPTgrKDE1Jih1Pj4+PTQpKSwwPT09ci53Yml0cylyLndiaXRzPWs7ZWxzZSBpZihrPnIud2JpdHMpe2UubXNnPVwiaW52YWxpZCB3aW5kb3cgc2l6ZVwiLHIubW9kZT0zMDticmVha31yLmRtYXg9MTw8ayxlLmFkbGVyPXIuY2hlY2s9MSxyLm1vZGU9NTEyJnU/MTA6MTIsbD11PTA7YnJlYWs7Y2FzZSAyOmZvcig7bDwxNjspe2lmKDA9PT1vKWJyZWFrIGU7by0tLHUrPW5bcysrXTw8bCxsKz04fWlmKHIuZmxhZ3M9dSw4IT0oMjU1JnIuZmxhZ3MpKXtlLm1zZz1cInVua25vd24gY29tcHJlc3Npb24gbWV0aG9kXCIsci5tb2RlPTMwO2JyZWFrfWlmKDU3MzQ0JnIuZmxhZ3Mpe2UubXNnPVwidW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0XCIsci5tb2RlPTMwO2JyZWFrfXIuaGVhZCYmKHIuaGVhZC50ZXh0PXU+PjgmMSksNTEyJnIuZmxhZ3MmJihFWzBdPTI1NSZ1LEVbMV09dT4+PjgmMjU1LHIuY2hlY2s9QihyLmNoZWNrLEUsMiwwKSksbD11PTAsci5tb2RlPTM7Y2FzZSAzOmZvcig7bDwzMjspe2lmKDA9PT1vKWJyZWFrIGU7by0tLHUrPW5bcysrXTw8bCxsKz04fXIuaGVhZCYmKHIuaGVhZC50aW1lPXUpLDUxMiZyLmZsYWdzJiYoRVswXT0yNTUmdSxFWzFdPXU+Pj44JjI1NSxFWzJdPXU+Pj4xNiYyNTUsRVszXT11Pj4+MjQmMjU1LHIuY2hlY2s9QihyLmNoZWNrLEUsNCwwKSksbD11PTAsci5tb2RlPTQ7Y2FzZSA0OmZvcig7bDwxNjspe2lmKDA9PT1vKWJyZWFrIGU7by0tLHUrPW5bcysrXTw8bCxsKz04fXIuaGVhZCYmKHIuaGVhZC54ZmxhZ3M9MjU1JnUsci5oZWFkLm9zPXU+PjgpLDUxMiZyLmZsYWdzJiYoRVswXT0yNTUmdSxFWzFdPXU+Pj44JjI1NSxyLmNoZWNrPUIoci5jaGVjayxFLDIsMCkpLGw9dT0wLHIubW9kZT01O2Nhc2UgNTppZigxMDI0JnIuZmxhZ3Mpe2Zvcig7bDwxNjspe2lmKDA9PT1vKWJyZWFrIGU7by0tLHUrPW5bcysrXTw8bCxsKz04fXIubGVuZ3RoPXUsci5oZWFkJiYoci5oZWFkLmV4dHJhX2xlbj11KSw1MTImci5mbGFncyYmKEVbMF09MjU1JnUsRVsxXT11Pj4+OCYyNTUsci5jaGVjaz1CKHIuY2hlY2ssRSwyLDApKSxsPXU9MH1lbHNlIHIuaGVhZCYmKHIuaGVhZC5leHRyYT1udWxsKTtyLm1vZGU9NjtjYXNlIDY6aWYoMTAyNCZyLmZsYWdzJiYobzwoZD1yLmxlbmd0aCkmJihkPW8pLGQmJihyLmhlYWQmJihrPXIuaGVhZC5leHRyYV9sZW4tci5sZW5ndGgsci5oZWFkLmV4dHJhfHwoci5oZWFkLmV4dHJhPW5ldyBBcnJheShyLmhlYWQuZXh0cmFfbGVuKSksSS5hcnJheVNldChyLmhlYWQuZXh0cmEsbixzLGQsaykpLDUxMiZyLmZsYWdzJiYoci5jaGVjaz1CKHIuY2hlY2ssbixkLHMpKSxvLT1kLHMrPWQsci5sZW5ndGgtPWQpLHIubGVuZ3RoKSlicmVhayBlO3IubGVuZ3RoPTAsci5tb2RlPTc7Y2FzZSA3OmlmKDIwNDgmci5mbGFncyl7aWYoMD09PW8pYnJlYWsgZTtmb3IoZD0wO2s9bltzK2QrK10sci5oZWFkJiZrJiZyLmxlbmd0aDw2NTUzNiYmKHIuaGVhZC5uYW1lKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGspKSxrJiZkPG87KTtpZig1MTImci5mbGFncyYmKHIuY2hlY2s9QihyLmNoZWNrLG4sZCxzKSksby09ZCxzKz1kLGspYnJlYWsgZX1lbHNlIHIuaGVhZCYmKHIuaGVhZC5uYW1lPW51bGwpO3IubGVuZ3RoPTAsci5tb2RlPTg7Y2FzZSA4OmlmKDQwOTYmci5mbGFncyl7aWYoMD09PW8pYnJlYWsgZTtmb3IoZD0wO2s9bltzK2QrK10sci5oZWFkJiZrJiZyLmxlbmd0aDw2NTUzNiYmKHIuaGVhZC5jb21tZW50Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKGspKSxrJiZkPG87KTtpZig1MTImci5mbGFncyYmKHIuY2hlY2s9QihyLmNoZWNrLG4sZCxzKSksby09ZCxzKz1kLGspYnJlYWsgZX1lbHNlIHIuaGVhZCYmKHIuaGVhZC5jb21tZW50PW51bGwpO3IubW9kZT05O2Nhc2UgOTppZig1MTImci5mbGFncyl7Zm9yKDtsPDE2Oyl7aWYoMD09PW8pYnJlYWsgZTtvLS0sdSs9bltzKytdPDxsLGwrPTh9aWYodSE9PSg2NTUzNSZyLmNoZWNrKSl7ZS5tc2c9XCJoZWFkZXIgY3JjIG1pc21hdGNoXCIsci5tb2RlPTMwO2JyZWFrfWw9dT0wfXIuaGVhZCYmKHIuaGVhZC5oY3JjPXIuZmxhZ3M+PjkmMSxyLmhlYWQuZG9uZT0hMCksZS5hZGxlcj1yLmNoZWNrPTAsci5tb2RlPTEyO2JyZWFrO2Nhc2UgMTA6Zm9yKDtsPDMyOyl7aWYoMD09PW8pYnJlYWsgZTtvLS0sdSs9bltzKytdPDxsLGwrPTh9ZS5hZGxlcj1yLmNoZWNrPUwodSksbD11PTAsci5tb2RlPTExO2Nhc2UgMTE6aWYoMD09PXIuaGF2ZWRpY3QpcmV0dXJuIGUubmV4dF9vdXQ9YSxlLmF2YWlsX291dD1oLGUubmV4dF9pbj1zLGUuYXZhaWxfaW49byxyLmhvbGQ9dSxyLmJpdHM9bCwyO2UuYWRsZXI9ci5jaGVjaz0xLHIubW9kZT0xMjtjYXNlIDEyOmlmKDU9PT10fHw2PT09dClicmVhayBlO2Nhc2UgMTM6aWYoci5sYXN0KXt1Pj4+PTcmbCxsLT03Jmwsci5tb2RlPTI3O2JyZWFrfWZvcig7bDwzOyl7aWYoMD09PW8pYnJlYWsgZTtvLS0sdSs9bltzKytdPDxsLGwrPTh9c3dpdGNoKHIubGFzdD0xJnUsbC09MSwzJih1Pj4+PTEpKXtjYXNlIDA6ci5tb2RlPTE0O2JyZWFrO2Nhc2UgMTppZihqKHIpLHIubW9kZT0yMCw2IT09dClicmVhazt1Pj4+PTIsbC09MjticmVhayBlO2Nhc2UgMjpyLm1vZGU9MTc7YnJlYWs7Y2FzZSAzOmUubXNnPVwiaW52YWxpZCBibG9jayB0eXBlXCIsci5tb2RlPTMwfXU+Pj49MixsLT0yO2JyZWFrO2Nhc2UgMTQ6Zm9yKHU+Pj49NyZsLGwtPTcmbDtsPDMyOyl7aWYoMD09PW8pYnJlYWsgZTtvLS0sdSs9bltzKytdPDxsLGwrPTh9aWYoKDY1NTM1JnUpIT0odT4+PjE2XjY1NTM1KSl7ZS5tc2c9XCJpbnZhbGlkIHN0b3JlZCBibG9jayBsZW5ndGhzXCIsci5tb2RlPTMwO2JyZWFrfWlmKHIubGVuZ3RoPTY1NTM1JnUsbD11PTAsci5tb2RlPTE1LDY9PT10KWJyZWFrIGU7Y2FzZSAxNTpyLm1vZGU9MTY7Y2FzZSAxNjppZihkPXIubGVuZ3RoKXtpZihvPGQmJihkPW8pLGg8ZCYmKGQ9aCksMD09PWQpYnJlYWsgZTtJLmFycmF5U2V0KGksbixzLGQsYSksby09ZCxzKz1kLGgtPWQsYSs9ZCxyLmxlbmd0aC09ZDticmVha31yLm1vZGU9MTI7YnJlYWs7Y2FzZSAxNzpmb3IoO2w8MTQ7KXtpZigwPT09bylicmVhayBlO28tLSx1Kz1uW3MrK108PGwsbCs9OH1pZihyLm5sZW49MjU3KygzMSZ1KSx1Pj4+PTUsbC09NSxyLm5kaXN0PTErKDMxJnUpLHU+Pj49NSxsLT01LHIubmNvZGU9NCsoMTUmdSksdT4+Pj00LGwtPTQsMjg2PHIubmxlbnx8MzA8ci5uZGlzdCl7ZS5tc2c9XCJ0b28gbWFueSBsZW5ndGggb3IgZGlzdGFuY2Ugc3ltYm9sc1wiLHIubW9kZT0zMDticmVha31yLmhhdmU9MCxyLm1vZGU9MTg7Y2FzZSAxODpmb3IoO3IuaGF2ZTxyLm5jb2RlOyl7Zm9yKDtsPDM7KXtpZigwPT09bylicmVhayBlO28tLSx1Kz1uW3MrK108PGwsbCs9OH1yLmxlbnNbQVtyLmhhdmUrK11dPTcmdSx1Pj4+PTMsbC09M31mb3IoO3IuaGF2ZTwxOTspci5sZW5zW0Fbci5oYXZlKytdXT0wO2lmKHIubGVuY29kZT1yLmxlbmR5bixyLmxlbmJpdHM9NyxTPXtiaXRzOnIubGVuYml0c30seD1UKDAsci5sZW5zLDAsMTksci5sZW5jb2RlLDAsci53b3JrLFMpLHIubGVuYml0cz1TLmJpdHMseCl7ZS5tc2c9XCJpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXRcIixyLm1vZGU9MzA7YnJlYWt9ci5oYXZlPTAsci5tb2RlPTE5O2Nhc2UgMTk6Zm9yKDtyLmhhdmU8ci5ubGVuK3IubmRpc3Q7KXtmb3IoO2c9KEM9ci5sZW5jb2RlW3UmKDE8PHIubGVuYml0cyktMV0pPj4+MTYmMjU1LGI9NjU1MzUmQywhKChfPUM+Pj4yNCk8PWwpOyl7aWYoMD09PW8pYnJlYWsgZTtvLS0sdSs9bltzKytdPDxsLGwrPTh9aWYoYjwxNil1Pj4+PV8sbC09XyxyLmxlbnNbci5oYXZlKytdPWI7ZWxzZXtpZigxNj09PWIpe2Zvcih6PV8rMjtsPHo7KXtpZigwPT09bylicmVhayBlO28tLSx1Kz1uW3MrK108PGwsbCs9OH1pZih1Pj4+PV8sbC09XywwPT09ci5oYXZlKXtlLm1zZz1cImludmFsaWQgYml0IGxlbmd0aCByZXBlYXRcIixyLm1vZGU9MzA7YnJlYWt9az1yLmxlbnNbci5oYXZlLTFdLGQ9MysoMyZ1KSx1Pj4+PTIsbC09Mn1lbHNlIGlmKDE3PT09Yil7Zm9yKHo9XyszO2w8ejspe2lmKDA9PT1vKWJyZWFrIGU7by0tLHUrPW5bcysrXTw8bCxsKz04fWwtPV8saz0wLGQ9MysoNyYodT4+Pj1fKSksdT4+Pj0zLGwtPTN9ZWxzZXtmb3Ioej1fKzc7bDx6Oyl7aWYoMD09PW8pYnJlYWsgZTtvLS0sdSs9bltzKytdPDxsLGwrPTh9bC09XyxrPTAsZD0xMSsoMTI3Jih1Pj4+PV8pKSx1Pj4+PTcsbC09N31pZihyLmhhdmUrZD5yLm5sZW4rci5uZGlzdCl7ZS5tc2c9XCJpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0XCIsci5tb2RlPTMwO2JyZWFrfWZvcig7ZC0tOylyLmxlbnNbci5oYXZlKytdPWt9fWlmKDMwPT09ci5tb2RlKWJyZWFrO2lmKDA9PT1yLmxlbnNbMjU2XSl7ZS5tc2c9XCJpbnZhbGlkIGNvZGUgLS0gbWlzc2luZyBlbmQtb2YtYmxvY2tcIixyLm1vZGU9MzA7YnJlYWt9aWYoci5sZW5iaXRzPTksUz17Yml0czpyLmxlbmJpdHN9LHg9VChELHIubGVucywwLHIubmxlbixyLmxlbmNvZGUsMCxyLndvcmssUyksci5sZW5iaXRzPVMuYml0cyx4KXtlLm1zZz1cImludmFsaWQgbGl0ZXJhbC9sZW5ndGhzIHNldFwiLHIubW9kZT0zMDticmVha31pZihyLmRpc3RiaXRzPTYsci5kaXN0Y29kZT1yLmRpc3RkeW4sUz17Yml0czpyLmRpc3RiaXRzfSx4PVQoRixyLmxlbnMsci5ubGVuLHIubmRpc3Qsci5kaXN0Y29kZSwwLHIud29yayxTKSxyLmRpc3RiaXRzPVMuYml0cyx4KXtlLm1zZz1cImludmFsaWQgZGlzdGFuY2VzIHNldFwiLHIubW9kZT0zMDticmVha31pZihyLm1vZGU9MjAsNj09PXQpYnJlYWsgZTtjYXNlIDIwOnIubW9kZT0yMTtjYXNlIDIxOmlmKDY8PW8mJjI1ODw9aCl7ZS5uZXh0X291dD1hLGUuYXZhaWxfb3V0PWgsZS5uZXh0X2luPXMsZS5hdmFpbF9pbj1vLHIuaG9sZD11LHIuYml0cz1sLFIoZSxjKSxhPWUubmV4dF9vdXQsaT1lLm91dHB1dCxoPWUuYXZhaWxfb3V0LHM9ZS5uZXh0X2luLG49ZS5pbnB1dCxvPWUuYXZhaWxfaW4sdT1yLmhvbGQsbD1yLmJpdHMsMTI9PT1yLm1vZGUmJihyLmJhY2s9LTEpO2JyZWFrfWZvcihyLmJhY2s9MDtnPShDPXIubGVuY29kZVt1JigxPDxyLmxlbmJpdHMpLTFdKT4+PjE2JjI1NSxiPTY1NTM1JkMsISgoXz1DPj4+MjQpPD1sKTspe2lmKDA9PT1vKWJyZWFrIGU7by0tLHUrPW5bcysrXTw8bCxsKz04fWlmKGcmJjA9PSgyNDAmZykpe2Zvcih2PV8seT1nLHc9YjtnPShDPXIubGVuY29kZVt3KygodSYoMTw8dit5KS0xKT4+dildKT4+PjE2JjI1NSxiPTY1NTM1JkMsISh2KyhfPUM+Pj4yNCk8PWwpOyl7aWYoMD09PW8pYnJlYWsgZTtvLS0sdSs9bltzKytdPDxsLGwrPTh9dT4+Pj12LGwtPXYsci5iYWNrKz12fWlmKHU+Pj49XyxsLT1fLHIuYmFjays9XyxyLmxlbmd0aD1iLDA9PT1nKXtyLm1vZGU9MjY7YnJlYWt9aWYoMzImZyl7ci5iYWNrPS0xLHIubW9kZT0xMjticmVha31pZig2NCZnKXtlLm1zZz1cImludmFsaWQgbGl0ZXJhbC9sZW5ndGggY29kZVwiLHIubW9kZT0zMDticmVha31yLmV4dHJhPTE1Jmcsci5tb2RlPTIyO2Nhc2UgMjI6aWYoci5leHRyYSl7Zm9yKHo9ci5leHRyYTtsPHo7KXtpZigwPT09bylicmVhayBlO28tLSx1Kz1uW3MrK108PGwsbCs9OH1yLmxlbmd0aCs9dSYoMTw8ci5leHRyYSktMSx1Pj4+PXIuZXh0cmEsbC09ci5leHRyYSxyLmJhY2srPXIuZXh0cmF9ci53YXM9ci5sZW5ndGgsci5tb2RlPTIzO2Nhc2UgMjM6Zm9yKDtnPShDPXIuZGlzdGNvZGVbdSYoMTw8ci5kaXN0Yml0cyktMV0pPj4+MTYmMjU1LGI9NjU1MzUmQywhKChfPUM+Pj4yNCk8PWwpOyl7aWYoMD09PW8pYnJlYWsgZTtvLS0sdSs9bltzKytdPDxsLGwrPTh9aWYoMD09KDI0MCZnKSl7Zm9yKHY9Xyx5PWcsdz1iO2c9KEM9ci5kaXN0Y29kZVt3KygodSYoMTw8dit5KS0xKT4+dildKT4+PjE2JjI1NSxiPTY1NTM1JkMsISh2KyhfPUM+Pj4yNCk8PWwpOyl7aWYoMD09PW8pYnJlYWsgZTtvLS0sdSs9bltzKytdPDxsLGwrPTh9dT4+Pj12LGwtPXYsci5iYWNrKz12fWlmKHU+Pj49XyxsLT1fLHIuYmFjays9Xyw2NCZnKXtlLm1zZz1cImludmFsaWQgZGlzdGFuY2UgY29kZVwiLHIubW9kZT0zMDticmVha31yLm9mZnNldD1iLHIuZXh0cmE9MTUmZyxyLm1vZGU9MjQ7Y2FzZSAyNDppZihyLmV4dHJhKXtmb3Ioej1yLmV4dHJhO2w8ejspe2lmKDA9PT1vKWJyZWFrIGU7by0tLHUrPW5bcysrXTw8bCxsKz04fXIub2Zmc2V0Kz11JigxPDxyLmV4dHJhKS0xLHU+Pj49ci5leHRyYSxsLT1yLmV4dHJhLHIuYmFjays9ci5leHRyYX1pZihyLm9mZnNldD5yLmRtYXgpe2UubXNnPVwiaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2tcIixyLm1vZGU9MzA7YnJlYWt9ci5tb2RlPTI1O2Nhc2UgMjU6aWYoMD09PWgpYnJlYWsgZTtpZihkPWMtaCxyLm9mZnNldD5kKXtpZigoZD1yLm9mZnNldC1kKT5yLndoYXZlJiZyLnNhbmUpe2UubXNnPVwiaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2tcIixyLm1vZGU9MzA7YnJlYWt9cD1kPnIud25leHQ/KGQtPXIud25leHQsci53c2l6ZS1kKTpyLnduZXh0LWQsZD5yLmxlbmd0aCYmKGQ9ci5sZW5ndGgpLG09ci53aW5kb3d9ZWxzZSBtPWkscD1hLXIub2Zmc2V0LGQ9ci5sZW5ndGg7Zm9yKGg8ZCYmKGQ9aCksaC09ZCxyLmxlbmd0aC09ZDtpW2ErK109bVtwKytdLC0tZDspOzA9PT1yLmxlbmd0aCYmKHIubW9kZT0yMSk7YnJlYWs7Y2FzZSAyNjppZigwPT09aClicmVhayBlO2lbYSsrXT1yLmxlbmd0aCxoLS0sci5tb2RlPTIxO2JyZWFrO2Nhc2UgMjc6aWYoci53cmFwKXtmb3IoO2w8MzI7KXtpZigwPT09bylicmVhayBlO28tLSx1fD1uW3MrK108PGwsbCs9OH1pZihjLT1oLGUudG90YWxfb3V0Kz1jLHIudG90YWwrPWMsYyYmKGUuYWRsZXI9ci5jaGVjaz1yLmZsYWdzP0Ioci5jaGVjayxpLGMsYS1jKTpPKHIuY2hlY2ssaSxjLGEtYykpLGM9aCwoci5mbGFncz91OkwodSkpIT09ci5jaGVjayl7ZS5tc2c9XCJpbmNvcnJlY3QgZGF0YSBjaGVja1wiLHIubW9kZT0zMDticmVha31sPXU9MH1yLm1vZGU9Mjg7Y2FzZSAyODppZihyLndyYXAmJnIuZmxhZ3Mpe2Zvcig7bDwzMjspe2lmKDA9PT1vKWJyZWFrIGU7by0tLHUrPW5bcysrXTw8bCxsKz04fWlmKHUhPT0oNDI5NDk2NzI5NSZyLnRvdGFsKSl7ZS5tc2c9XCJpbmNvcnJlY3QgbGVuZ3RoIGNoZWNrXCIsci5tb2RlPTMwO2JyZWFrfWw9dT0wfXIubW9kZT0yOTtjYXNlIDI5Ong9MTticmVhayBlO2Nhc2UgMzA6eD0tMzticmVhayBlO2Nhc2UgMzE6cmV0dXJuLTQ7Y2FzZSAzMjpkZWZhdWx0OnJldHVybiBVfXJldHVybiBlLm5leHRfb3V0PWEsZS5hdmFpbF9vdXQ9aCxlLm5leHRfaW49cyxlLmF2YWlsX2luPW8sci5ob2xkPXUsci5iaXRzPWwsKHIud3NpemV8fGMhPT1lLmF2YWlsX291dCYmci5tb2RlPDMwJiYoci5tb2RlPDI3fHw0IT09dCkpJiZaKGUsZS5vdXRwdXQsZS5uZXh0X291dCxjLWUuYXZhaWxfb3V0KT8oci5tb2RlPTMxLC00KTooZi09ZS5hdmFpbF9pbixjLT1lLmF2YWlsX291dCxlLnRvdGFsX2luKz1mLGUudG90YWxfb3V0Kz1jLHIudG90YWwrPWMsci53cmFwJiZjJiYoZS5hZGxlcj1yLmNoZWNrPXIuZmxhZ3M/QihyLmNoZWNrLGksYyxlLm5leHRfb3V0LWMpOk8oci5jaGVjayxpLGMsZS5uZXh0X291dC1jKSksZS5kYXRhX3R5cGU9ci5iaXRzKyhyLmxhc3Q/NjQ6MCkrKDEyPT09ci5tb2RlPzEyODowKSsoMjA9PT1yLm1vZGV8fDE1PT09ci5tb2RlPzI1NjowKSwoMD09ZiYmMD09PWN8fDQ9PT10KSYmeD09PU4mJih4PS01KSx4KX0sci5pbmZsYXRlRW5kPWZ1bmN0aW9uKGUpe2lmKCFlfHwhZS5zdGF0ZSlyZXR1cm4gVTt2YXIgdD1lLnN0YXRlO3JldHVybiB0LndpbmRvdyYmKHQud2luZG93PW51bGwpLGUuc3RhdGU9bnVsbCxOfSxyLmluZmxhdGVHZXRIZWFkZXI9ZnVuY3Rpb24oZSx0KXt2YXIgcjtyZXR1cm4gZSYmZS5zdGF0ZT8wPT0oMiYocj1lLnN0YXRlKS53cmFwKT9VOigoci5oZWFkPXQpLmRvbmU9ITEsTik6VX0sci5pbmZsYXRlU2V0RGljdGlvbmFyeT1mdW5jdGlvbihlLHQpe3ZhciByLG49dC5sZW5ndGg7cmV0dXJuIGUmJmUuc3RhdGU/MCE9PShyPWUuc3RhdGUpLndyYXAmJjExIT09ci5tb2RlP1U6MTE9PT1yLm1vZGUmJk8oMSx0LG4sMCkhPT1yLmNoZWNrPy0zOlooZSx0LG4sbik/KHIubW9kZT0zMSwtNCk6KHIuaGF2ZWRpY3Q9MSxOKTpVfSxyLmluZmxhdGVJbmZvPVwicGFrbyBpbmZsYXRlIChmcm9tIE5vZGVjYSBwcm9qZWN0KVwifSx7XCIuLi91dGlscy9jb21tb25cIjo0MSxcIi4vYWRsZXIzMlwiOjQzLFwiLi9jcmMzMlwiOjQ1LFwiLi9pbmZmYXN0XCI6NDgsXCIuL2luZnRyZWVzXCI6NTB9XSw1MDpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3ZhciBEPWUoXCIuLi91dGlscy9jb21tb25cIiksRj1bMyw0LDUsNiw3LDgsOSwxMCwxMSwxMywxNSwxNywxOSwyMywyNywzMSwzNSw0Myw1MSw1OSw2Nyw4Myw5OSwxMTUsMTMxLDE2MywxOTUsMjI3LDI1OCwwLDBdLE49WzE2LDE2LDE2LDE2LDE2LDE2LDE2LDE2LDE3LDE3LDE3LDE3LDE4LDE4LDE4LDE4LDE5LDE5LDE5LDE5LDIwLDIwLDIwLDIwLDIxLDIxLDIxLDIxLDE2LDcyLDc4XSxVPVsxLDIsMyw0LDUsNyw5LDEzLDE3LDI1LDMzLDQ5LDY1LDk3LDEyOSwxOTMsMjU3LDM4NSw1MTMsNzY5LDEwMjUsMTUzNywyMDQ5LDMwNzMsNDA5Nyw2MTQ1LDgxOTMsMTIyODksMTYzODUsMjQ1NzcsMCwwXSxQPVsxNiwxNiwxNiwxNiwxNywxNywxOCwxOCwxOSwxOSwyMCwyMCwyMSwyMSwyMiwyMiwyMywyMywyNCwyNCwyNSwyNSwyNiwyNiwyNywyNywyOCwyOCwyOSwyOSw2NCw2NF07dC5leHBvcnRzPWZ1bmN0aW9uKGUsdCxyLG4saSxzLGEsbyl7dmFyIGgsdSxsLGYsYyxkLHAsbSxfLGc9by5iaXRzLGI9MCx2PTAseT0wLHc9MCxrPTAseD0wLFM9MCx6PTAsQz0wLEU9MCxBPW51bGwsST0wLE89bmV3IEQuQnVmMTYoMTYpLEI9bmV3IEQuQnVmMTYoMTYpLFI9bnVsbCxUPTA7Zm9yKGI9MDtiPD0xNTtiKyspT1tiXT0wO2Zvcih2PTA7djxuO3YrKylPW3Rbcit2XV0rKztmb3Ioaz1nLHc9MTU7MTw9dyYmMD09PU9bd107dy0tKTtpZih3PGsmJihrPXcpLDA9PT13KXJldHVybiBpW3MrK109MjA5NzE1MjAsaVtzKytdPTIwOTcxNTIwLG8uYml0cz0xLDA7Zm9yKHk9MTt5PHcmJjA9PT1PW3ldO3krKyk7Zm9yKGs8eSYmKGs9eSksYj16PTE7Yjw9MTU7YisrKWlmKHo8PD0xLCh6LT1PW2JdKTwwKXJldHVybi0xO2lmKDA8eiYmKDA9PT1lfHwxIT09dykpcmV0dXJuLTE7Zm9yKEJbMV09MCxiPTE7YjwxNTtiKyspQltiKzFdPUJbYl0rT1tiXTtmb3Iodj0wO3Y8bjt2KyspMCE9PXRbcit2XSYmKGFbQlt0W3Irdl1dKytdPXYpO2lmKGQ9MD09PWU/KEE9Uj1hLDE5KToxPT09ZT8oQT1GLEktPTI1NyxSPU4sVC09MjU3LDI1Nik6KEE9VSxSPVAsLTEpLGI9eSxjPXMsUz12PUU9MCxsPS0xLGY9KEM9MTw8KHg9aykpLTEsMT09PWUmJjg1MjxDfHwyPT09ZSYmNTkyPEMpcmV0dXJuIDE7Zm9yKDs7KXtmb3IocD1iLVMsXz1hW3ZdPGQ/KG09MCxhW3ZdKTphW3ZdPmQ/KG09UltUK2Fbdl1dLEFbSSthW3ZdXSk6KG09OTYsMCksaD0xPDxiLVMseT11PTE8PHg7aVtjKyhFPj5TKSsodS09aCldPXA8PDI0fG08PDE2fF98MCwwIT09dTspO2ZvcihoPTE8PGItMTtFJmg7KWg+Pj0xO2lmKDAhPT1oPyhFJj1oLTEsRSs9aCk6RT0wLHYrKywwPT0tLU9bYl0pe2lmKGI9PT13KWJyZWFrO2I9dFtyK2Fbdl1dfWlmKGs8YiYmKEUmZikhPT1sKXtmb3IoMD09PVMmJihTPWspLGMrPXksej0xPDwoeD1iLVMpO3grUzx3JiYhKCh6LT1PW3grU10pPD0wKTspeCsrLHo8PD0xO2lmKEMrPTE8PHgsMT09PWUmJjg1MjxDfHwyPT09ZSYmNTkyPEMpcmV0dXJuIDE7aVtsPUUmZl09azw8MjR8eDw8MTZ8Yy1zfDB9fXJldHVybiAwIT09RSYmKGlbYytFXT1iLVM8PDI0fDY0PDwxNnwwKSxvLmJpdHM9aywwfX0se1wiLi4vdXRpbHMvY29tbW9uXCI6NDF9XSw1MTpbZnVuY3Rpb24oZSx0LHIpe1widXNlIHN0cmljdFwiO3QuZXhwb3J0cz17MjpcIm5lZWQgZGljdGlvbmFyeVwiLDE6XCJzdHJlYW0gZW5kXCIsMDpcIlwiLFwiLTFcIjpcImZpbGUgZXJyb3JcIixcIi0yXCI6XCJzdHJlYW0gZXJyb3JcIixcIi0zXCI6XCJkYXRhIGVycm9yXCIsXCItNFwiOlwiaW5zdWZmaWNpZW50IG1lbW9yeVwiLFwiLTVcIjpcImJ1ZmZlciBlcnJvclwiLFwiLTZcIjpcImluY29tcGF0aWJsZSB2ZXJzaW9uXCJ9fSx7fV0sNTI6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt2YXIgaT1lKFwiLi4vdXRpbHMvY29tbW9uXCIpLG89MCxoPTE7ZnVuY3Rpb24gbihlKXtmb3IodmFyIHQ9ZS5sZW5ndGg7MDw9LS10OyllW3RdPTB9dmFyIHM9MCxhPTI5LHU9MjU2LGw9dSsxK2EsZj0zMCxjPTE5LF89MipsKzEsZz0xNSxkPTE2LHA9NyxtPTI1NixiPTE2LHY9MTcseT0xOCx3PVswLDAsMCwwLDAsMCwwLDAsMSwxLDEsMSwyLDIsMiwyLDMsMywzLDMsNCw0LDQsNCw1LDUsNSw1LDBdLGs9WzAsMCwwLDAsMSwxLDIsMiwzLDMsNCw0LDUsNSw2LDYsNyw3LDgsOCw5LDksMTAsMTAsMTEsMTEsMTIsMTIsMTMsMTNdLHg9WzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMiwzLDddLFM9WzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdLHo9bmV3IEFycmF5KDIqKGwrMikpO24oeik7dmFyIEM9bmV3IEFycmF5KDIqZik7bihDKTt2YXIgRT1uZXcgQXJyYXkoNTEyKTtuKEUpO3ZhciBBPW5ldyBBcnJheSgyNTYpO24oQSk7dmFyIEk9bmV3IEFycmF5KGEpO24oSSk7dmFyIE8sQixSLFQ9bmV3IEFycmF5KGYpO2Z1bmN0aW9uIEQoZSx0LHIsbixpKXt0aGlzLnN0YXRpY190cmVlPWUsdGhpcy5leHRyYV9iaXRzPXQsdGhpcy5leHRyYV9iYXNlPXIsdGhpcy5lbGVtcz1uLHRoaXMubWF4X2xlbmd0aD1pLHRoaXMuaGFzX3N0cmVlPWUmJmUubGVuZ3RofWZ1bmN0aW9uIEYoZSx0KXt0aGlzLmR5bl90cmVlPWUsdGhpcy5tYXhfY29kZT0wLHRoaXMuc3RhdF9kZXNjPXR9ZnVuY3Rpb24gTihlKXtyZXR1cm4gZTwyNTY/RVtlXTpFWzI1NisoZT4+PjcpXX1mdW5jdGlvbiBVKGUsdCl7ZS5wZW5kaW5nX2J1ZltlLnBlbmRpbmcrK109MjU1JnQsZS5wZW5kaW5nX2J1ZltlLnBlbmRpbmcrK109dD4+PjgmMjU1fWZ1bmN0aW9uIFAoZSx0LHIpe2UuYmlfdmFsaWQ+ZC1yPyhlLmJpX2J1Znw9dDw8ZS5iaV92YWxpZCY2NTUzNSxVKGUsZS5iaV9idWYpLGUuYmlfYnVmPXQ+PmQtZS5iaV92YWxpZCxlLmJpX3ZhbGlkKz1yLWQpOihlLmJpX2J1Znw9dDw8ZS5iaV92YWxpZCY2NTUzNSxlLmJpX3ZhbGlkKz1yKX1mdW5jdGlvbiBMKGUsdCxyKXtQKGUsclsyKnRdLHJbMip0KzFdKX1mdW5jdGlvbiBqKGUsdCl7Zm9yKHZhciByPTA7cnw9MSZlLGU+Pj49MSxyPDw9MSwwPC0tdDspO3JldHVybiByPj4+MX1mdW5jdGlvbiBaKGUsdCxyKXt2YXIgbixpLHM9bmV3IEFycmF5KGcrMSksYT0wO2ZvcihuPTE7bjw9ZztuKyspc1tuXT1hPWErcltuLTFdPDwxO2ZvcihpPTA7aTw9dDtpKyspe3ZhciBvPWVbMippKzFdOzAhPT1vJiYoZVsyKmldPWooc1tvXSsrLG8pKX19ZnVuY3Rpb24gVyhlKXt2YXIgdDtmb3IodD0wO3Q8bDt0KyspZS5keW5fbHRyZWVbMip0XT0wO2Zvcih0PTA7dDxmO3QrKyllLmR5bl9kdHJlZVsyKnRdPTA7Zm9yKHQ9MDt0PGM7dCsrKWUuYmxfdHJlZVsyKnRdPTA7ZS5keW5fbHRyZWVbMiptXT0xLGUub3B0X2xlbj1lLnN0YXRpY19sZW49MCxlLmxhc3RfbGl0PWUubWF0Y2hlcz0wfWZ1bmN0aW9uIE0oZSl7ODxlLmJpX3ZhbGlkP1UoZSxlLmJpX2J1Zik6MDxlLmJpX3ZhbGlkJiYoZS5wZW5kaW5nX2J1ZltlLnBlbmRpbmcrK109ZS5iaV9idWYpLGUuYmlfYnVmPTAsZS5iaV92YWxpZD0wfWZ1bmN0aW9uIEgoZSx0LHIsbil7dmFyIGk9Mip0LHM9MipyO3JldHVybiBlW2ldPGVbc118fGVbaV09PT1lW3NdJiZuW3RdPD1uW3JdfWZ1bmN0aW9uIEcoZSx0LHIpe2Zvcih2YXIgbj1lLmhlYXBbcl0saT1yPDwxO2k8PWUuaGVhcF9sZW4mJihpPGUuaGVhcF9sZW4mJkgodCxlLmhlYXBbaSsxXSxlLmhlYXBbaV0sZS5kZXB0aCkmJmkrKywhSCh0LG4sZS5oZWFwW2ldLGUuZGVwdGgpKTspZS5oZWFwW3JdPWUuaGVhcFtpXSxyPWksaTw8PTE7ZS5oZWFwW3JdPW59ZnVuY3Rpb24gSyhlLHQscil7dmFyIG4saSxzLGEsbz0wO2lmKDAhPT1lLmxhc3RfbGl0KWZvcig7bj1lLnBlbmRpbmdfYnVmW2UuZF9idWYrMipvXTw8OHxlLnBlbmRpbmdfYnVmW2UuZF9idWYrMipvKzFdLGk9ZS5wZW5kaW5nX2J1ZltlLmxfYnVmK29dLG8rKywwPT09bj9MKGUsaSx0KTooTChlLChzPUFbaV0pK3UrMSx0KSwwIT09KGE9d1tzXSkmJlAoZSxpLT1JW3NdLGEpLEwoZSxzPU4oLS1uKSxyKSwwIT09KGE9a1tzXSkmJlAoZSxuLT1UW3NdLGEpKSxvPGUubGFzdF9saXQ7KTtMKGUsbSx0KX1mdW5jdGlvbiBZKGUsdCl7dmFyIHIsbixpLHM9dC5keW5fdHJlZSxhPXQuc3RhdF9kZXNjLnN0YXRpY190cmVlLG89dC5zdGF0X2Rlc2MuaGFzX3N0cmVlLGg9dC5zdGF0X2Rlc2MuZWxlbXMsdT0tMTtmb3IoZS5oZWFwX2xlbj0wLGUuaGVhcF9tYXg9XyxyPTA7cjxoO3IrKykwIT09c1syKnJdPyhlLmhlYXBbKytlLmhlYXBfbGVuXT11PXIsZS5kZXB0aFtyXT0wKTpzWzIqcisxXT0wO2Zvcig7ZS5oZWFwX2xlbjwyOylzWzIqKGk9ZS5oZWFwWysrZS5oZWFwX2xlbl09dTwyPysrdTowKV09MSxlLmRlcHRoW2ldPTAsZS5vcHRfbGVuLS0sbyYmKGUuc3RhdGljX2xlbi09YVsyKmkrMV0pO2Zvcih0Lm1heF9jb2RlPXUscj1lLmhlYXBfbGVuPj4xOzE8PXI7ci0tKUcoZSxzLHIpO2ZvcihpPWg7cj1lLmhlYXBbMV0sZS5oZWFwWzFdPWUuaGVhcFtlLmhlYXBfbGVuLS1dLEcoZSxzLDEpLG49ZS5oZWFwWzFdLGUuaGVhcFstLWUuaGVhcF9tYXhdPXIsZS5oZWFwWy0tZS5oZWFwX21heF09bixzWzIqaV09c1syKnJdK3NbMipuXSxlLmRlcHRoW2ldPShlLmRlcHRoW3JdPj1lLmRlcHRoW25dP2UuZGVwdGhbcl06ZS5kZXB0aFtuXSkrMSxzWzIqcisxXT1zWzIqbisxXT1pLGUuaGVhcFsxXT1pKyssRyhlLHMsMSksMjw9ZS5oZWFwX2xlbjspO2UuaGVhcFstLWUuaGVhcF9tYXhdPWUuaGVhcFsxXSxmdW5jdGlvbihlLHQpe3ZhciByLG4saSxzLGEsbyxoPXQuZHluX3RyZWUsdT10Lm1heF9jb2RlLGw9dC5zdGF0X2Rlc2Muc3RhdGljX3RyZWUsZj10LnN0YXRfZGVzYy5oYXNfc3RyZWUsYz10LnN0YXRfZGVzYy5leHRyYV9iaXRzLGQ9dC5zdGF0X2Rlc2MuZXh0cmFfYmFzZSxwPXQuc3RhdF9kZXNjLm1heF9sZW5ndGgsbT0wO2ZvcihzPTA7czw9ZztzKyspZS5ibF9jb3VudFtzXT0wO2ZvcihoWzIqZS5oZWFwW2UuaGVhcF9tYXhdKzFdPTAscj1lLmhlYXBfbWF4KzE7cjxfO3IrKylwPChzPWhbMipoWzIqKG49ZS5oZWFwW3JdKSsxXSsxXSsxKSYmKHM9cCxtKyspLGhbMipuKzFdPXMsdTxufHwoZS5ibF9jb3VudFtzXSsrLGE9MCxkPD1uJiYoYT1jW24tZF0pLG89aFsyKm5dLGUub3B0X2xlbis9byoocythKSxmJiYoZS5zdGF0aWNfbGVuKz1vKihsWzIqbisxXSthKSkpO2lmKDAhPT1tKXtkb3tmb3Iocz1wLTE7MD09PWUuYmxfY291bnRbc107KXMtLTtlLmJsX2NvdW50W3NdLS0sZS5ibF9jb3VudFtzKzFdKz0yLGUuYmxfY291bnRbcF0tLSxtLT0yfXdoaWxlKDA8bSk7Zm9yKHM9cDswIT09cztzLS0pZm9yKG49ZS5ibF9jb3VudFtzXTswIT09bjspdTwoaT1lLmhlYXBbLS1yXSl8fChoWzIqaSsxXSE9PXMmJihlLm9wdF9sZW4rPShzLWhbMippKzFdKSpoWzIqaV0saFsyKmkrMV09cyksbi0tKX19KGUsdCksWihzLHUsZS5ibF9jb3VudCl9ZnVuY3Rpb24gWChlLHQscil7dmFyIG4saSxzPS0xLGE9dFsxXSxvPTAsaD03LHU9NDtmb3IoMD09PWEmJihoPTEzOCx1PTMpLHRbMioocisxKSsxXT02NTUzNSxuPTA7bjw9cjtuKyspaT1hLGE9dFsyKihuKzEpKzFdLCsrbzxoJiZpPT09YXx8KG88dT9lLmJsX3RyZWVbMippXSs9bzowIT09aT8oaSE9PXMmJmUuYmxfdHJlZVsyKmldKyssZS5ibF90cmVlWzIqYl0rKyk6bzw9MTA/ZS5ibF90cmVlWzIqdl0rKzplLmJsX3RyZWVbMip5XSsrLHM9aSx1PShvPTApPT09YT8oaD0xMzgsMyk6aT09PWE/KGg9NiwzKTooaD03LDQpKX1mdW5jdGlvbiBWKGUsdCxyKXt2YXIgbixpLHM9LTEsYT10WzFdLG89MCxoPTcsdT00O2ZvcigwPT09YSYmKGg9MTM4LHU9Myksbj0wO248PXI7bisrKWlmKGk9YSxhPXRbMioobisxKSsxXSwhKCsrbzxoJiZpPT09YSkpe2lmKG88dSlmb3IoO0woZSxpLGUuYmxfdHJlZSksMCE9LS1vOyk7ZWxzZSAwIT09aT8oaSE9PXMmJihMKGUsaSxlLmJsX3RyZWUpLG8tLSksTChlLGIsZS5ibF90cmVlKSxQKGUsby0zLDIpKTpvPD0xMD8oTChlLHYsZS5ibF90cmVlKSxQKGUsby0zLDMpKTooTChlLHksZS5ibF90cmVlKSxQKGUsby0xMSw3KSk7cz1pLHU9KG89MCk9PT1hPyhoPTEzOCwzKTppPT09YT8oaD02LDMpOihoPTcsNCl9fW4oVCk7dmFyIHE9ITE7ZnVuY3Rpb24gSihlLHQscixuKXtQKGUsKHM8PDEpKyhuPzE6MCksMyksZnVuY3Rpb24oZSx0LHIsbil7TShlKSxuJiYoVShlLHIpLFUoZSx+cikpLGkuYXJyYXlTZXQoZS5wZW5kaW5nX2J1ZixlLndpbmRvdyx0LHIsZS5wZW5kaW5nKSxlLnBlbmRpbmcrPXJ9KGUsdCxyLCEwKX1yLl90cl9pbml0PWZ1bmN0aW9uKGUpe3F8fChmdW5jdGlvbigpe3ZhciBlLHQscixuLGkscz1uZXcgQXJyYXkoZysxKTtmb3Iobj1yPTA7bjxhLTE7bisrKWZvcihJW25dPXIsZT0wO2U8MTw8d1tuXTtlKyspQVtyKytdPW47Zm9yKEFbci0xXT1uLG49aT0wO248MTY7bisrKWZvcihUW25dPWksZT0wO2U8MTw8a1tuXTtlKyspRVtpKytdPW47Zm9yKGk+Pj03O248ZjtuKyspZm9yKFRbbl09aTw8NyxlPTA7ZTwxPDxrW25dLTc7ZSsrKUVbMjU2K2krK109bjtmb3IodD0wO3Q8PWc7dCsrKXNbdF09MDtmb3IoZT0wO2U8PTE0MzspelsyKmUrMV09OCxlKyssc1s4XSsrO2Zvcig7ZTw9MjU1Oyl6WzIqZSsxXT05LGUrKyxzWzldKys7Zm9yKDtlPD0yNzk7KXpbMiplKzFdPTcsZSsrLHNbN10rKztmb3IoO2U8PTI4NzspelsyKmUrMV09OCxlKyssc1s4XSsrO2ZvcihaKHosbCsxLHMpLGU9MDtlPGY7ZSsrKUNbMiplKzFdPTUsQ1syKmVdPWooZSw1KTtPPW5ldyBEKHosdyx1KzEsbCxnKSxCPW5ldyBEKEMsaywwLGYsZyksUj1uZXcgRChuZXcgQXJyYXkoMCkseCwwLGMscCl9KCkscT0hMCksZS5sX2Rlc2M9bmV3IEYoZS5keW5fbHRyZWUsTyksZS5kX2Rlc2M9bmV3IEYoZS5keW5fZHRyZWUsQiksZS5ibF9kZXNjPW5ldyBGKGUuYmxfdHJlZSxSKSxlLmJpX2J1Zj0wLGUuYmlfdmFsaWQ9MCxXKGUpfSxyLl90cl9zdG9yZWRfYmxvY2s9SixyLl90cl9mbHVzaF9ibG9jaz1mdW5jdGlvbihlLHQscixuKXt2YXIgaSxzLGE9MDswPGUubGV2ZWw/KDI9PT1lLnN0cm0uZGF0YV90eXBlJiYoZS5zdHJtLmRhdGFfdHlwZT1mdW5jdGlvbihlKXt2YXIgdCxyPTQwOTM2MjQ0NDc7Zm9yKHQ9MDt0PD0zMTt0Kysscj4+Pj0xKWlmKDEmciYmMCE9PWUuZHluX2x0cmVlWzIqdF0pcmV0dXJuIG87aWYoMCE9PWUuZHluX2x0cmVlWzE4XXx8MCE9PWUuZHluX2x0cmVlWzIwXXx8MCE9PWUuZHluX2x0cmVlWzI2XSlyZXR1cm4gaDtmb3IodD0zMjt0PHU7dCsrKWlmKDAhPT1lLmR5bl9sdHJlZVsyKnRdKXJldHVybiBoO3JldHVybiBvfShlKSksWShlLGUubF9kZXNjKSxZKGUsZS5kX2Rlc2MpLGE9ZnVuY3Rpb24oZSl7dmFyIHQ7Zm9yKFgoZSxlLmR5bl9sdHJlZSxlLmxfZGVzYy5tYXhfY29kZSksWChlLGUuZHluX2R0cmVlLGUuZF9kZXNjLm1heF9jb2RlKSxZKGUsZS5ibF9kZXNjKSx0PWMtMTszPD10JiYwPT09ZS5ibF90cmVlWzIqU1t0XSsxXTt0LS0pO3JldHVybiBlLm9wdF9sZW4rPTMqKHQrMSkrNSs1KzQsdH0oZSksaT1lLm9wdF9sZW4rMys3Pj4+Mywocz1lLnN0YXRpY19sZW4rMys3Pj4+Myk8PWkmJihpPXMpKTppPXM9cis1LHIrNDw9aSYmLTEhPT10P0ooZSx0LHIsbik6ND09PWUuc3RyYXRlZ3l8fHM9PT1pPyhQKGUsMisobj8xOjApLDMpLEsoZSx6LEMpKTooUChlLDQrKG4/MTowKSwzKSxmdW5jdGlvbihlLHQscixuKXt2YXIgaTtmb3IoUChlLHQtMjU3LDUpLFAoZSxyLTEsNSksUChlLG4tNCw0KSxpPTA7aTxuO2krKylQKGUsZS5ibF90cmVlWzIqU1tpXSsxXSwzKTtWKGUsZS5keW5fbHRyZWUsdC0xKSxWKGUsZS5keW5fZHRyZWUsci0xKX0oZSxlLmxfZGVzYy5tYXhfY29kZSsxLGUuZF9kZXNjLm1heF9jb2RlKzEsYSsxKSxLKGUsZS5keW5fbHRyZWUsZS5keW5fZHRyZWUpKSxXKGUpLG4mJk0oZSl9LHIuX3RyX3RhbGx5PWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZS5wZW5kaW5nX2J1ZltlLmRfYnVmKzIqZS5sYXN0X2xpdF09dD4+PjgmMjU1LGUucGVuZGluZ19idWZbZS5kX2J1ZisyKmUubGFzdF9saXQrMV09MjU1JnQsZS5wZW5kaW5nX2J1ZltlLmxfYnVmK2UubGFzdF9saXRdPTI1NSZyLGUubGFzdF9saXQrKywwPT09dD9lLmR5bl9sdHJlZVsyKnJdKys6KGUubWF0Y2hlcysrLHQtLSxlLmR5bl9sdHJlZVsyKihBW3JdK3UrMSldKyssZS5keW5fZHRyZWVbMipOKHQpXSsrKSxlLmxhc3RfbGl0PT09ZS5saXRfYnVmc2l6ZS0xfSxyLl90cl9hbGlnbj1mdW5jdGlvbihlKXtQKGUsMiwzKSxMKGUsbSx6KSxmdW5jdGlvbihlKXsxNj09PWUuYmlfdmFsaWQ/KFUoZSxlLmJpX2J1ZiksZS5iaV9idWY9MCxlLmJpX3ZhbGlkPTApOjg8PWUuYmlfdmFsaWQmJihlLnBlbmRpbmdfYnVmW2UucGVuZGluZysrXT0yNTUmZS5iaV9idWYsZS5iaV9idWY+Pj04LGUuYmlfdmFsaWQtPTgpfShlKX19LHtcIi4uL3V0aWxzL2NvbW1vblwiOjQxfV0sNTM6W2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjt0LmV4cG9ydHM9ZnVuY3Rpb24oKXt0aGlzLmlucHV0PW51bGwsdGhpcy5uZXh0X2luPTAsdGhpcy5hdmFpbF9pbj0wLHRoaXMudG90YWxfaW49MCx0aGlzLm91dHB1dD1udWxsLHRoaXMubmV4dF9vdXQ9MCx0aGlzLmF2YWlsX291dD0wLHRoaXMudG90YWxfb3V0PTAsdGhpcy5tc2c9XCJcIix0aGlzLnN0YXRlPW51bGwsdGhpcy5kYXRhX3R5cGU9Mix0aGlzLmFkbGVyPTB9fSx7fV0sNTQ6W2Z1bmN0aW9uKGUsdCxyKXsoZnVuY3Rpb24oZSl7IWZ1bmN0aW9uKHIsbil7XCJ1c2Ugc3RyaWN0XCI7aWYoIXIuc2V0SW1tZWRpYXRlKXt2YXIgaSxzLHQsYSxvPTEsaD17fSx1PSExLGw9ci5kb2N1bWVudCxlPU9iamVjdC5nZXRQcm90b3R5cGVPZiYmT2JqZWN0LmdldFByb3RvdHlwZU9mKHIpO2U9ZSYmZS5zZXRUaW1lb3V0P2U6cixpPVwiW29iamVjdCBwcm9jZXNzXVwiPT09e30udG9TdHJpbmcuY2FsbChyLnByb2Nlc3MpP2Z1bmN0aW9uKGUpe3Byb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24oKXtjKGUpfSl9OmZ1bmN0aW9uKCl7aWYoci5wb3N0TWVzc2FnZSYmIXIuaW1wb3J0U2NyaXB0cyl7dmFyIGU9ITAsdD1yLm9ubWVzc2FnZTtyZXR1cm4gci5vbm1lc3NhZ2U9ZnVuY3Rpb24oKXtlPSExfSxyLnBvc3RNZXNzYWdlKFwiXCIsXCIqXCIpLHIub25tZXNzYWdlPXQsZX19KCk/KGE9XCJzZXRJbW1lZGlhdGUkXCIrTWF0aC5yYW5kb20oKStcIiRcIixyLmFkZEV2ZW50TGlzdGVuZXI/ci5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLGQsITEpOnIuYXR0YWNoRXZlbnQoXCJvbm1lc3NhZ2VcIixkKSxmdW5jdGlvbihlKXtyLnBvc3RNZXNzYWdlKGErZSxcIipcIil9KTpyLk1lc3NhZ2VDaGFubmVsPygodD1uZXcgTWVzc2FnZUNoYW5uZWwpLnBvcnQxLm9ubWVzc2FnZT1mdW5jdGlvbihlKXtjKGUuZGF0YSl9LGZ1bmN0aW9uKGUpe3QucG9ydDIucG9zdE1lc3NhZ2UoZSl9KTpsJiZcIm9ucmVhZHlzdGF0ZWNoYW5nZVwiaW4gbC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpPyhzPWwuZG9jdW1lbnRFbGVtZW50LGZ1bmN0aW9uKGUpe3ZhciB0PWwuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTt0Lm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2MoZSksdC5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCxzLnJlbW92ZUNoaWxkKHQpLHQ9bnVsbH0scy5hcHBlbmRDaGlsZCh0KX0pOmZ1bmN0aW9uKGUpe3NldFRpbWVvdXQoYywwLGUpfSxlLnNldEltbWVkaWF0ZT1mdW5jdGlvbihlKXtcImZ1bmN0aW9uXCIhPXR5cGVvZiBlJiYoZT1uZXcgRnVuY3Rpb24oXCJcIitlKSk7Zm9yKHZhciB0PW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoLTEpLHI9MDtyPHQubGVuZ3RoO3IrKyl0W3JdPWFyZ3VtZW50c1tyKzFdO3ZhciBuPXtjYWxsYmFjazplLGFyZ3M6dH07cmV0dXJuIGhbb109bixpKG8pLG8rK30sZS5jbGVhckltbWVkaWF0ZT1mfWZ1bmN0aW9uIGYoZSl7ZGVsZXRlIGhbZV19ZnVuY3Rpb24gYyhlKXtpZih1KXNldFRpbWVvdXQoYywwLGUpO2Vsc2V7dmFyIHQ9aFtlXTtpZih0KXt1PSEwO3RyeXshZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jYWxsYmFjayxyPWUuYXJncztzd2l0Y2goci5sZW5ndGgpe2Nhc2UgMDp0KCk7YnJlYWs7Y2FzZSAxOnQoclswXSk7YnJlYWs7Y2FzZSAyOnQoclswXSxyWzFdKTticmVhaztjYXNlIDM6dChyWzBdLHJbMV0sclsyXSk7YnJlYWs7ZGVmYXVsdDp0LmFwcGx5KG4scil9fSh0KX1maW5hbGx5e2YoZSksdT0hMX19fX1mdW5jdGlvbiBkKGUpe2Uuc291cmNlPT09ciYmXCJzdHJpbmdcIj09dHlwZW9mIGUuZGF0YSYmMD09PWUuZGF0YS5pbmRleE9mKGEpJiZjKCtlLmRhdGEuc2xpY2UoYS5sZW5ndGgpKX19KFwidW5kZWZpbmVkXCI9PXR5cGVvZiBzZWxmP3ZvaWQgMD09PWU/dGhpczplOnNlbGYpfSkuY2FsbCh0aGlzLFwidW5kZWZpbmVkXCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOlwidW5kZWZpbmVkXCIhPXR5cGVvZiBzZWxmP3NlbGY6XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7fV19LHt9LFsxMF0pKDEwKX0pOyIsIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHJlYWN0LWRvbS5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAndXNlIHN0cmljdCc7XG5cbi8qIGdsb2JhbCBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gKi9cbmlmIChcbiAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RhcnQgPT09XG4gICAgJ2Z1bmN0aW9uJ1xuKSB7XG4gIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RhcnQobmV3IEVycm9yKCkpO1xufVxuICAgICAgICAgIHZhciBSZWFjdCA9IHJlcXVpcmUoJ3JlYWN0Jyk7XG52YXIgU2NoZWR1bGVyID0gcmVxdWlyZSgnc2NoZWR1bGVyJyk7XG5cbnZhciBSZWFjdFNoYXJlZEludGVybmFscyA9IFJlYWN0Ll9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEO1xuXG52YXIgc3VwcHJlc3NXYXJuaW5nID0gZmFsc2U7XG5mdW5jdGlvbiBzZXRTdXBwcmVzc1dhcm5pbmcobmV3U3VwcHJlc3NXYXJuaW5nKSB7XG4gIHtcbiAgICBzdXBwcmVzc1dhcm5pbmcgPSBuZXdTdXBwcmVzc1dhcm5pbmc7XG4gIH1cbn0gLy8gSW4gREVWLCBjYWxscyB0byBjb25zb2xlLndhcm4gYW5kIGNvbnNvbGUuZXJyb3IgZ2V0IHJlcGxhY2VkXG4vLyBieSBjYWxscyB0byB0aGVzZSBtZXRob2RzIGJ5IGEgQmFiZWwgcGx1Z2luLlxuLy9cbi8vIEluIFBST0QgKG9yIGluIHBhY2thZ2VzIHdpdGhvdXQgYWNjZXNzIHRvIFJlYWN0IGludGVybmFscyksXG4vLyB0aGV5IGFyZSBsZWZ0IGFzIHRoZXkgYXJlIGluc3RlYWQuXG5cbmZ1bmN0aW9uIHdhcm4oZm9ybWF0KSB7XG4gIHtcbiAgICBpZiAoIXN1cHByZXNzV2FybmluZykge1xuICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgICBhcmdzW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgIH1cblxuICAgICAgcHJpbnRXYXJuaW5nKCd3YXJuJywgZm9ybWF0LCBhcmdzKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGVycm9yKGZvcm1hdCkge1xuICB7XG4gICAgaWYgKCFzdXBwcmVzc1dhcm5pbmcpIHtcbiAgICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiA+IDEgPyBfbGVuMiAtIDEgOiAwKSwgX2tleTIgPSAxOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICAgIGFyZ3NbX2tleTIgLSAxXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgICB9XG5cbiAgICAgIHByaW50V2FybmluZygnZXJyb3InLCBmb3JtYXQsIGFyZ3MpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwcmludFdhcm5pbmcobGV2ZWwsIGZvcm1hdCwgYXJncykge1xuICAvLyBXaGVuIGNoYW5naW5nIHRoaXMgbG9naWMsIHlvdSBtaWdodCB3YW50IHRvIGFsc29cbiAgLy8gdXBkYXRlIGNvbnNvbGVXaXRoU3RhY2tEZXYud3d3LmpzIGFzIHdlbGwuXG4gIHtcbiAgICB2YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0RGVidWdDdXJyZW50RnJhbWU7XG4gICAgdmFyIHN0YWNrID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5nZXRTdGFja0FkZGVuZHVtKCk7XG5cbiAgICBpZiAoc3RhY2sgIT09ICcnKSB7XG4gICAgICBmb3JtYXQgKz0gJyVzJztcbiAgICAgIGFyZ3MgPSBhcmdzLmNvbmNhdChbc3RhY2tdKTtcbiAgICB9IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuXG5cbiAgICB2YXIgYXJnc1dpdGhGb3JtYXQgPSBhcmdzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgcmV0dXJuIFN0cmluZyhpdGVtKTtcbiAgICB9KTsgLy8gQ2FyZWZ1bDogUk4gY3VycmVudGx5IGRlcGVuZHMgb24gdGhpcyBwcmVmaXhcblxuICAgIGFyZ3NXaXRoRm9ybWF0LnVuc2hpZnQoJ1dhcm5pbmc6ICcgKyBmb3JtYXQpOyAvLyBXZSBpbnRlbnRpb25hbGx5IGRvbid0IHVzZSBzcHJlYWQgKG9yIC5hcHBseSkgZGlyZWN0bHkgYmVjYXVzZSBpdFxuICAgIC8vIGJyZWFrcyBJRTk6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTM2MTBcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nXG5cbiAgICBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjb25zb2xlW2xldmVsXSwgY29uc29sZSwgYXJnc1dpdGhGb3JtYXQpO1xuICB9XG59XG5cbnZhciBGdW5jdGlvbkNvbXBvbmVudCA9IDA7XG52YXIgQ2xhc3NDb21wb25lbnQgPSAxO1xudmFyIEluZGV0ZXJtaW5hdGVDb21wb25lbnQgPSAyOyAvLyBCZWZvcmUgd2Uga25vdyB3aGV0aGVyIGl0IGlzIGZ1bmN0aW9uIG9yIGNsYXNzXG5cbnZhciBIb3N0Um9vdCA9IDM7IC8vIFJvb3Qgb2YgYSBob3N0IHRyZWUuIENvdWxkIGJlIG5lc3RlZCBpbnNpZGUgYW5vdGhlciBub2RlLlxuXG52YXIgSG9zdFBvcnRhbCA9IDQ7IC8vIEEgc3VidHJlZS4gQ291bGQgYmUgYW4gZW50cnkgcG9pbnQgdG8gYSBkaWZmZXJlbnQgcmVuZGVyZXIuXG5cbnZhciBIb3N0Q29tcG9uZW50ID0gNTtcbnZhciBIb3N0VGV4dCA9IDY7XG52YXIgRnJhZ21lbnQgPSA3O1xudmFyIE1vZGUgPSA4O1xudmFyIENvbnRleHRDb25zdW1lciA9IDk7XG52YXIgQ29udGV4dFByb3ZpZGVyID0gMTA7XG52YXIgRm9yd2FyZFJlZiA9IDExO1xudmFyIFByb2ZpbGVyID0gMTI7XG52YXIgU3VzcGVuc2VDb21wb25lbnQgPSAxMztcbnZhciBNZW1vQ29tcG9uZW50ID0gMTQ7XG52YXIgU2ltcGxlTWVtb0NvbXBvbmVudCA9IDE1O1xudmFyIExhenlDb21wb25lbnQgPSAxNjtcbnZhciBJbmNvbXBsZXRlQ2xhc3NDb21wb25lbnQgPSAxNztcbnZhciBEZWh5ZHJhdGVkRnJhZ21lbnQgPSAxODtcbnZhciBTdXNwZW5zZUxpc3RDb21wb25lbnQgPSAxOTtcbnZhciBTY29wZUNvbXBvbmVudCA9IDIxO1xudmFyIE9mZnNjcmVlbkNvbXBvbmVudCA9IDIyO1xudmFyIExlZ2FjeUhpZGRlbkNvbXBvbmVudCA9IDIzO1xudmFyIENhY2hlQ29tcG9uZW50ID0gMjQ7XG52YXIgVHJhY2luZ01hcmtlckNvbXBvbmVudCA9IDI1O1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG52YXIgZW5hYmxlQ2xpZW50UmVuZGVyRmFsbGJhY2tPblRleHRNaXNtYXRjaCA9IHRydWU7IC8vIFRPRE86IE5lZWQgdG8gcmV2aWV3IHRoaXMgY29kZSBvbmUgbW9yZSB0aW1lIGJlZm9yZSBsYW5kaW5nXG4vLyB0aGUgcmVhY3QtcmVjb25jaWxlciBwYWNrYWdlLlxuXG52YXIgZW5hYmxlTmV3UmVjb25jaWxlciA9IGZhbHNlOyAvLyBTdXBwb3J0IGxlZ2FjeSBQcmltZXIgc3VwcG9ydCBvbiBpbnRlcm5hbCBGQiB3d3dcblxudmFyIGVuYWJsZUxhenlDb250ZXh0UHJvcGFnYXRpb24gPSBmYWxzZTsgLy8gRkItb25seSB1c2FnZS4gVGhlIG5ldyBBUEkgaGFzIGRpZmZlcmVudCBzZW1hbnRpY3MuXG5cbnZhciBlbmFibGVMZWdhY3lIaWRkZW4gPSBmYWxzZTsgLy8gRW5hYmxlcyB1bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFjayBmZWF0dXJlIGluIEZpYmVyXG5cbnZhciBlbmFibGVTdXNwZW5zZUF2b2lkVGhpc0ZhbGxiYWNrID0gZmFsc2U7IC8vIEVuYWJsZXMgdW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2sgZmVhdHVyZSBpbiBGaXp6XG4vLyBSZWFjdCBET00gQ2hvcHBpbmcgQmxvY2tcbi8vXG4vLyBTaW1pbGFyIHRvIG1haW4gQ2hvcHBpbmcgQmxvY2sgYnV0IG9ubHkgZmxhZ3MgcmVsYXRlZCB0byBSZWFjdCBET00uIFRoZXNlIGFyZVxuLy8gZ3JvdXBlZCBiZWNhdXNlIHdlIHdpbGwgbGlrZWx5IGJhdGNoIGFsbCBvZiB0aGVtIGludG8gYSBzaW5nbGUgbWFqb3IgcmVsZWFzZS5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBEaXNhYmxlIHN1cHBvcnQgZm9yIGNvbW1lbnQgbm9kZXMgYXMgUmVhY3QgRE9NIGNvbnRhaW5lcnMuIEFscmVhZHkgZGlzYWJsZWRcbi8vIGluIG9wZW4gc291cmNlLCBidXQgd3d3IGNvZGViYXNlIHN0aWxsIHJlbGllcyBvbiBpdC4gTmVlZCB0byByZW1vdmUuXG5cbnZhciBkaXNhYmxlQ29tbWVudHNBc0RPTUNvbnRhaW5lcnMgPSB0cnVlOyAvLyBEaXNhYmxlIGphdmFzY3JpcHQ6IFVSTCBzdHJpbmdzIGluIGhyZWYgZm9yIFhTUyBwcm90ZWN0aW9uLlxuLy8gYW5kIGNsaWVudCByZW5kZXJpbmcsIG1vc3RseSB0byBhbGxvdyBKU1ggYXR0cmlidXRlcyB0byBhcHBseSB0byB0aGUgY3VzdG9tXG4vLyBlbGVtZW50J3Mgb2JqZWN0IHByb3BlcnRpZXMgaW5zdGVhZCBvZiBvbmx5IEhUTUwgYXR0cmlidXRlcy5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTEzNDdcblxudmFyIGVuYWJsZUN1c3RvbUVsZW1lbnRQcm9wZXJ0eVN1cHBvcnQgPSBmYWxzZTsgLy8gRGlzYWJsZXMgY2hpbGRyZW4gZm9yIDx0ZXh0YXJlYT4gZWxlbWVudHNcbnZhciB3YXJuQWJvdXRTdHJpbmdSZWZzID0gZmFsc2U7IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBEZWJ1Z2dpbmcgYW5kIERldlRvb2xzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQWRkcyB1c2VyIHRpbWluZyBtYXJrcyBmb3IgZS5nLiBzdGF0ZSB1cGRhdGVzLCBzdXNwZW5zZSwgYW5kIHdvcmsgbG9vcCBzdHVmZixcbi8vIGZvciBhbiBleHBlcmltZW50YWwgdGltZWxpbmUgdG9vbC5cblxudmFyIGVuYWJsZVNjaGVkdWxpbmdQcm9maWxlciA9IHRydWU7IC8vIEhlbHBzIGlkZW50aWZ5IHNpZGUgZWZmZWN0cyBpbiByZW5kZXItcGhhc2UgbGlmZWN5Y2xlIGhvb2tzIGFuZCBzZXRTdGF0ZVxuXG52YXIgZW5hYmxlUHJvZmlsZXJUaW1lciA9IHRydWU7IC8vIFJlY29yZCBkdXJhdGlvbnMgZm9yIGNvbW1pdCBhbmQgcGFzc2l2ZSBlZmZlY3RzIHBoYXNlcy5cblxudmFyIGVuYWJsZVByb2ZpbGVyQ29tbWl0SG9va3MgPSB0cnVlOyAvLyBQaGFzZSBwYXJhbSBwYXNzZWQgdG8gb25SZW5kZXIgY2FsbGJhY2sgZGlmZmVyZW50aWF0ZXMgYmV0d2VlbiBhbiBcInVwZGF0ZVwiIGFuZCBhIFwiY2FzY2FkaW5nLXVwZGF0ZVwiLlxuXG52YXIgYWxsTmF0aXZlRXZlbnRzID0gbmV3IFNldCgpO1xuLyoqXG4gKiBNYXBwaW5nIGZyb20gcmVnaXN0cmF0aW9uIG5hbWUgdG8gZXZlbnQgbmFtZVxuICovXG5cblxudmFyIHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMgPSB7fTtcbi8qKlxuICogTWFwcGluZyBmcm9tIGxvd2VyY2FzZSByZWdpc3RyYXRpb24gbmFtZXMgdG8gdGhlIHByb3Blcmx5IGNhc2VkIHZlcnNpb24sXG4gKiB1c2VkIHRvIHdhcm4gaW4gdGhlIGNhc2Ugb2YgbWlzc2luZyBldmVudCBoYW5kbGVycy4gQXZhaWxhYmxlXG4gKiBvbmx5IGluIHRydWUuXG4gKiBAdHlwZSB7T2JqZWN0fVxuICovXG5cbnZhciBwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzID0gIHt9IDsgLy8gVHJ1c3QgdGhlIGRldmVsb3BlciB0byBvbmx5IHVzZSBwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzIGluIHRydWVcblxuZnVuY3Rpb24gcmVnaXN0ZXJUd29QaGFzZUV2ZW50KHJlZ2lzdHJhdGlvbk5hbWUsIGRlcGVuZGVuY2llcykge1xuICByZWdpc3RlckRpcmVjdEV2ZW50KHJlZ2lzdHJhdGlvbk5hbWUsIGRlcGVuZGVuY2llcyk7XG4gIHJlZ2lzdGVyRGlyZWN0RXZlbnQocmVnaXN0cmF0aW9uTmFtZSArICdDYXB0dXJlJywgZGVwZW5kZW5jaWVzKTtcbn1cbmZ1bmN0aW9uIHJlZ2lzdGVyRGlyZWN0RXZlbnQocmVnaXN0cmF0aW9uTmFtZSwgZGVwZW5kZW5jaWVzKSB7XG4gIHtcbiAgICBpZiAocmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llc1tyZWdpc3RyYXRpb25OYW1lXSkge1xuICAgICAgZXJyb3IoJ0V2ZW50UmVnaXN0cnk6IE1vcmUgdGhhbiBvbmUgcGx1Z2luIGF0dGVtcHRlZCB0byBwdWJsaXNoIHRoZSBzYW1lICcgKyAncmVnaXN0cmF0aW9uIG5hbWUsIGAlc2AuJywgcmVnaXN0cmF0aW9uTmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llc1tyZWdpc3RyYXRpb25OYW1lXSA9IGRlcGVuZGVuY2llcztcblxuICB7XG4gICAgdmFyIGxvd2VyQ2FzZWROYW1lID0gcmVnaXN0cmF0aW9uTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIHBvc3NpYmxlUmVnaXN0cmF0aW9uTmFtZXNbbG93ZXJDYXNlZE5hbWVdID0gcmVnaXN0cmF0aW9uTmFtZTtcblxuICAgIGlmIChyZWdpc3RyYXRpb25OYW1lID09PSAnb25Eb3VibGVDbGljaycpIHtcbiAgICAgIHBvc3NpYmxlUmVnaXN0cmF0aW9uTmFtZXMub25kYmxjbGljayA9IHJlZ2lzdHJhdGlvbk5hbWU7XG4gICAgfVxuICB9XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBkZXBlbmRlbmNpZXMubGVuZ3RoOyBpKyspIHtcbiAgICBhbGxOYXRpdmVFdmVudHMuYWRkKGRlcGVuZGVuY2llc1tpXSk7XG4gIH1cbn1cblxudmFyIGNhblVzZURPTSA9ICEhKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB3aW5kb3cuZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCAhPT0gJ3VuZGVmaW5lZCcpO1xuXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG4vKlxuICogVGhlIGAnJyArIHZhbHVlYCBwYXR0ZXJuICh1c2VkIGluIGluIHBlcmYtc2Vuc2l0aXZlIGNvZGUpIHRocm93cyBmb3IgU3ltYm9sXG4gKiBhbmQgVGVtcG9yYWwuKiB0eXBlcy4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9wdWxsLzIyMDY0LlxuICpcbiAqIFRoZSBmdW5jdGlvbnMgaW4gdGhpcyBtb2R1bGUgd2lsbCB0aHJvdyBhbiBlYXNpZXItdG8tdW5kZXJzdGFuZCxcbiAqIGVhc2llci10by1kZWJ1ZyBleGNlcHRpb24gd2l0aCBhIGNsZWFyIGVycm9ycyBtZXNzYWdlIG1lc3NhZ2UgZXhwbGFpbmluZyB0aGVcbiAqIHByb2JsZW0uIChJbnN0ZWFkIG9mIGEgY29uZnVzaW5nIGV4Y2VwdGlvbiB0aHJvd24gaW5zaWRlIHRoZSBpbXBsZW1lbnRhdGlvblxuICogb2YgdGhlIGB2YWx1ZWAgb2JqZWN0KS5cbiAqL1xuLy8gJEZsb3dGaXhNZSBvbmx5IGNhbGxlZCBpbiBERVYsIHNvIHZvaWQgcmV0dXJuIGlzIG5vdCBwb3NzaWJsZS5cbmZ1bmN0aW9uIHR5cGVOYW1lKHZhbHVlKSB7XG4gIHtcbiAgICAvLyB0b1N0cmluZ1RhZyBpcyBuZWVkZWQgZm9yIG5hbWVzcGFjZWQgdHlwZXMgbGlrZSBUZW1wb3JhbC5JbnN0YW50XG4gICAgdmFyIGhhc1RvU3RyaW5nVGFnID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wudG9TdHJpbmdUYWc7XG4gICAgdmFyIHR5cGUgPSBoYXNUb1N0cmluZ1RhZyAmJiB2YWx1ZVtTeW1ib2wudG9TdHJpbmdUYWddIHx8IHZhbHVlLmNvbnN0cnVjdG9yLm5hbWUgfHwgJ09iamVjdCc7XG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cbn0gLy8gJEZsb3dGaXhNZSBvbmx5IGNhbGxlZCBpbiBERVYsIHNvIHZvaWQgcmV0dXJuIGlzIG5vdCBwb3NzaWJsZS5cblxuXG5mdW5jdGlvbiB3aWxsQ29lcmNpb25UaHJvdyh2YWx1ZSkge1xuICB7XG4gICAgdHJ5IHtcbiAgICAgIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICAvLyBJZiB5b3UgZW5kZWQgdXAgaGVyZSBieSBmb2xsb3dpbmcgYW4gZXhjZXB0aW9uIGNhbGwgc3RhY2ssIGhlcmUncyB3aGF0J3NcbiAgLy8gaGFwcGVuZWQ6IHlvdSBzdXBwbGllZCBhbiBvYmplY3Qgb3Igc3ltYm9sIHZhbHVlIHRvIFJlYWN0IChhcyBhIHByb3AsIGtleSxcbiAgLy8gRE9NIGF0dHJpYnV0ZSwgQ1NTIHByb3BlcnR5LCBzdHJpbmcgcmVmLCBldGMuKSBhbmQgd2hlbiBSZWFjdCB0cmllZCB0b1xuICAvLyBjb2VyY2UgaXQgdG8gYSBzdHJpbmcgdXNpbmcgYCcnICsgdmFsdWVgLCBhbiBleGNlcHRpb24gd2FzIHRocm93bi5cbiAgLy9cbiAgLy8gVGhlIG1vc3QgY29tbW9uIHR5cGVzIHRoYXQgd2lsbCBjYXVzZSB0aGlzIGV4Y2VwdGlvbiBhcmUgYFN5bWJvbGAgaW5zdGFuY2VzXG4gIC8vIGFuZCBUZW1wb3JhbCBvYmplY3RzIGxpa2UgYFRlbXBvcmFsLkluc3RhbnRgLiBCdXQgYW55IG9iamVjdCB0aGF0IGhhcyBhXG4gIC8vIGB2YWx1ZU9mYCBvciBgW1N5bWJvbC50b1ByaW1pdGl2ZV1gIG1ldGhvZCB0aGF0IHRocm93cyB3aWxsIGFsc28gY2F1c2UgdGhpc1xuICAvLyBleGNlcHRpb24uIChMaWJyYXJ5IGF1dGhvcnMgZG8gdGhpcyB0byBwcmV2ZW50IHVzZXJzIGZyb20gdXNpbmcgYnVpbHQtaW5cbiAgLy8gbnVtZXJpYyBvcGVyYXRvcnMgbGlrZSBgK2Agb3IgY29tcGFyaXNvbiBvcGVyYXRvcnMgbGlrZSBgPj1gIGJlY2F1c2UgY3VzdG9tXG4gIC8vIG1ldGhvZHMgYXJlIG5lZWRlZCB0byBwZXJmb3JtIGFjY3VyYXRlIGFyaXRobWV0aWMgb3IgY29tcGFyaXNvbi4pXG4gIC8vXG4gIC8vIFRvIGZpeCB0aGUgcHJvYmxlbSwgY29lcmNlIHRoaXMgb2JqZWN0IG9yIHN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZyBiZWZvcmVcbiAgLy8gcGFzc2luZyBpdCB0byBSZWFjdC4gVGhlIG1vc3QgcmVsaWFibGUgd2F5IGlzIHVzdWFsbHkgYFN0cmluZyh2YWx1ZSlgLlxuICAvL1xuICAvLyBUbyBmaW5kIHdoaWNoIHZhbHVlIGlzIHRocm93aW5nLCBjaGVjayB0aGUgYnJvd3NlciBvciBkZWJ1Z2dlciBjb25zb2xlLlxuICAvLyBCZWZvcmUgdGhpcyBleGNlcHRpb24gd2FzIHRocm93biwgdGhlcmUgc2hvdWxkIGJlIGBjb25zb2xlLmVycm9yYCBvdXRwdXRcbiAgLy8gdGhhdCBzaG93cyB0aGUgdHlwZSAoU3ltYm9sLCBUZW1wb3JhbC5QbGFpbkRhdGUsIGV0Yy4pIHRoYXQgY2F1c2VkIHRoZVxuICAvLyBwcm9ibGVtIGFuZCBob3cgdGhhdCB0eXBlIHdhcyB1c2VkOiBrZXksIGF0cnJpYnV0ZSwgaW5wdXQgdmFsdWUgcHJvcCwgZXRjLlxuICAvLyBJbiBtb3N0IGNhc2VzLCB0aGlzIGNvbnNvbGUgb3V0cHV0IGFsc28gc2hvd3MgdGhlIGNvbXBvbmVudCBhbmQgaXRzXG4gIC8vIGFuY2VzdG9yIGNvbXBvbmVudHMgd2hlcmUgdGhlIGV4Y2VwdGlvbiBoYXBwZW5lZC5cbiAgLy9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG4gIHJldHVybiAnJyArIHZhbHVlO1xufVxuXG5mdW5jdGlvbiBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBhdHRyaWJ1dGVOYW1lKSB7XG4gIHtcbiAgICBpZiAod2lsbENvZXJjaW9uVGhyb3codmFsdWUpKSB7XG4gICAgICBlcnJvcignVGhlIHByb3ZpZGVkIGAlc2AgYXR0cmlidXRlIGlzIGFuIHVuc3VwcG9ydGVkIHR5cGUgJXMuJyArICcgVGhpcyB2YWx1ZSBtdXN0IGJlIGNvZXJjZWQgdG8gYSBzdHJpbmcgYmVmb3JlIGJlZm9yZSB1c2luZyBpdCBoZXJlLicsIGF0dHJpYnV0ZU5hbWUsIHR5cGVOYW1lKHZhbHVlKSk7XG5cbiAgICAgIHJldHVybiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpOyAvLyB0aHJvdyAodG8gaGVscCBjYWxsZXJzIGZpbmQgdHJvdWJsZXNob290aW5nIGNvbW1lbnRzKVxuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gY2hlY2tLZXlTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICB7XG4gICAgaWYgKHdpbGxDb2VyY2lvblRocm93KHZhbHVlKSkge1xuICAgICAgZXJyb3IoJ1RoZSBwcm92aWRlZCBrZXkgaXMgYW4gdW5zdXBwb3J0ZWQgdHlwZSAlcy4nICsgJyBUaGlzIHZhbHVlIG11c3QgYmUgY29lcmNlZCB0byBhIHN0cmluZyBiZWZvcmUgYmVmb3JlIHVzaW5nIGl0IGhlcmUuJywgdHlwZU5hbWUodmFsdWUpKTtcblxuICAgICAgcmV0dXJuIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSk7IC8vIHRocm93ICh0byBoZWxwIGNhbGxlcnMgZmluZCB0cm91Ymxlc2hvb3RpbmcgY29tbWVudHMpXG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBjaGVja1Byb3BTdHJpbmdDb2VyY2lvbih2YWx1ZSwgcHJvcE5hbWUpIHtcbiAge1xuICAgIGlmICh3aWxsQ29lcmNpb25UaHJvdyh2YWx1ZSkpIHtcbiAgICAgIGVycm9yKCdUaGUgcHJvdmlkZWQgYCVzYCBwcm9wIGlzIGFuIHVuc3VwcG9ydGVkIHR5cGUgJXMuJyArICcgVGhpcyB2YWx1ZSBtdXN0IGJlIGNvZXJjZWQgdG8gYSBzdHJpbmcgYmVmb3JlIGJlZm9yZSB1c2luZyBpdCBoZXJlLicsIHByb3BOYW1lLCB0eXBlTmFtZSh2YWx1ZSkpO1xuXG4gICAgICByZXR1cm4gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTsgLy8gdGhyb3cgKHRvIGhlbHAgY2FsbGVycyBmaW5kIHRyb3VibGVzaG9vdGluZyBjb21tZW50cylcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGNoZWNrQ1NTUHJvcGVydHlTdHJpbmdDb2VyY2lvbih2YWx1ZSwgcHJvcE5hbWUpIHtcbiAge1xuICAgIGlmICh3aWxsQ29lcmNpb25UaHJvdyh2YWx1ZSkpIHtcbiAgICAgIGVycm9yKCdUaGUgcHJvdmlkZWQgYCVzYCBDU1MgcHJvcGVydHkgaXMgYW4gdW5zdXBwb3J0ZWQgdHlwZSAlcy4nICsgJyBUaGlzIHZhbHVlIG11c3QgYmUgY29lcmNlZCB0byBhIHN0cmluZyBiZWZvcmUgYmVmb3JlIHVzaW5nIGl0IGhlcmUuJywgcHJvcE5hbWUsIHR5cGVOYW1lKHZhbHVlKSk7XG5cbiAgICAgIHJldHVybiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpOyAvLyB0aHJvdyAodG8gaGVscCBjYWxsZXJzIGZpbmQgdHJvdWJsZXNob290aW5nIGNvbW1lbnRzKVxuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gY2hlY2tIdG1sU3RyaW5nQ29lcmNpb24odmFsdWUpIHtcbiAge1xuICAgIGlmICh3aWxsQ29lcmNpb25UaHJvdyh2YWx1ZSkpIHtcbiAgICAgIGVycm9yKCdUaGUgcHJvdmlkZWQgSFRNTCBtYXJrdXAgdXNlcyBhIHZhbHVlIG9mIHVuc3VwcG9ydGVkIHR5cGUgJXMuJyArICcgVGhpcyB2YWx1ZSBtdXN0IGJlIGNvZXJjZWQgdG8gYSBzdHJpbmcgYmVmb3JlIGJlZm9yZSB1c2luZyBpdCBoZXJlLicsIHR5cGVOYW1lKHZhbHVlKSk7XG5cbiAgICAgIHJldHVybiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpOyAvLyB0aHJvdyAodG8gaGVscCBjYWxsZXJzIGZpbmQgdHJvdWJsZXNob290aW5nIGNvbW1lbnRzKVxuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gY2hlY2tGb3JtRmllbGRWYWx1ZVN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gIHtcbiAgICBpZiAod2lsbENvZXJjaW9uVGhyb3codmFsdWUpKSB7XG4gICAgICBlcnJvcignRm9ybSBmaWVsZCB2YWx1ZXMgKHZhbHVlLCBjaGVja2VkLCBkZWZhdWx0VmFsdWUsIG9yIGRlZmF1bHRDaGVja2VkIHByb3BzKScgKyAnIG11c3QgYmUgc3RyaW5ncywgbm90ICVzLicgKyAnIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSBiZWZvcmUgdXNpbmcgaXQgaGVyZS4nLCB0eXBlTmFtZSh2YWx1ZSkpO1xuXG4gICAgICByZXR1cm4gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTsgLy8gdGhyb3cgKHRvIGhlbHAgY2FsbGVycyBmaW5kIHRyb3VibGVzaG9vdGluZyBjb21tZW50cylcbiAgICB9XG4gIH1cbn1cblxuLy8gQSByZXNlcnZlZCBhdHRyaWJ1dGUuXG4vLyBJdCBpcyBoYW5kbGVkIGJ5IFJlYWN0IHNlcGFyYXRlbHkgYW5kIHNob3VsZG4ndCBiZSB3cml0dGVuIHRvIHRoZSBET00uXG52YXIgUkVTRVJWRUQgPSAwOyAvLyBBIHNpbXBsZSBzdHJpbmcgYXR0cmlidXRlLlxuLy8gQXR0cmlidXRlcyB0aGF0IGFyZW4ndCBpbiB0aGUgZmlsdGVyIGFyZSBwcmVzdW1lZCB0byBoYXZlIHRoaXMgdHlwZS5cblxudmFyIFNUUklORyA9IDE7IC8vIEEgc3RyaW5nIGF0dHJpYnV0ZSB0aGF0IGFjY2VwdHMgYm9vbGVhbnMgaW4gUmVhY3QuIEluIEhUTUwsIHRoZXNlIGFyZSBjYWxsZWRcbi8vIFwiZW51bWVyYXRlZFwiIGF0dHJpYnV0ZXMgd2l0aCBcInRydWVcIiBhbmQgXCJmYWxzZVwiIGFzIHBvc3NpYmxlIHZhbHVlcy5cbi8vIFdoZW4gdHJ1ZSwgaXQgc2hvdWxkIGJlIHNldCB0byBhIFwidHJ1ZVwiIHN0cmluZy5cbi8vIFdoZW4gZmFsc2UsIGl0IHNob3VsZCBiZSBzZXQgdG8gYSBcImZhbHNlXCIgc3RyaW5nLlxuXG52YXIgQk9PTEVBTklTSF9TVFJJTkcgPSAyOyAvLyBBIHJlYWwgYm9vbGVhbiBhdHRyaWJ1dGUuXG4vLyBXaGVuIHRydWUsIGl0IHNob3VsZCBiZSBwcmVzZW50IChzZXQgZWl0aGVyIHRvIGFuIGVtcHR5IHN0cmluZyBvciBpdHMgbmFtZSkuXG4vLyBXaGVuIGZhbHNlLCBpdCBzaG91bGQgYmUgb21pdHRlZC5cblxudmFyIEJPT0xFQU4gPSAzOyAvLyBBbiBhdHRyaWJ1dGUgdGhhdCBjYW4gYmUgdXNlZCBhcyBhIGZsYWcgYXMgd2VsbCBhcyB3aXRoIGEgdmFsdWUuXG4vLyBXaGVuIHRydWUsIGl0IHNob3VsZCBiZSBwcmVzZW50IChzZXQgZWl0aGVyIHRvIGFuIGVtcHR5IHN0cmluZyBvciBpdHMgbmFtZSkuXG4vLyBXaGVuIGZhbHNlLCBpdCBzaG91bGQgYmUgb21pdHRlZC5cbi8vIEZvciBhbnkgb3RoZXIgdmFsdWUsIHNob3VsZCBiZSBwcmVzZW50IHdpdGggdGhhdCB2YWx1ZS5cblxudmFyIE9WRVJMT0FERURfQk9PTEVBTiA9IDQ7IC8vIEFuIGF0dHJpYnV0ZSB0aGF0IG11c3QgYmUgbnVtZXJpYyBvciBwYXJzZSBhcyBhIG51bWVyaWMuXG4vLyBXaGVuIGZhbHN5LCBpdCBzaG91bGQgYmUgcmVtb3ZlZC5cblxudmFyIE5VTUVSSUMgPSA1OyAvLyBBbiBhdHRyaWJ1dGUgdGhhdCBtdXN0IGJlIHBvc2l0aXZlIG51bWVyaWMgb3IgcGFyc2UgYXMgYSBwb3NpdGl2ZSBudW1lcmljLlxuLy8gV2hlbiBmYWxzeSwgaXQgc2hvdWxkIGJlIHJlbW92ZWQuXG5cbnZhciBQT1NJVElWRV9OVU1FUklDID0gNjtcblxuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xudmFyIEFUVFJJQlVURV9OQU1FX1NUQVJUX0NIQVIgPSBcIjpBLVpfYS16XFxcXHUwMEMwLVxcXFx1MDBENlxcXFx1MDBEOC1cXFxcdTAwRjZcXFxcdTAwRjgtXFxcXHUwMkZGXFxcXHUwMzcwLVxcXFx1MDM3RFxcXFx1MDM3Ri1cXFxcdTFGRkZcXFxcdTIwMEMtXFxcXHUyMDBEXFxcXHUyMDcwLVxcXFx1MjE4RlxcXFx1MkMwMC1cXFxcdTJGRUZcXFxcdTMwMDEtXFxcXHVEN0ZGXFxcXHVGOTAwLVxcXFx1RkRDRlxcXFx1RkRGMC1cXFxcdUZGRkRcIjtcbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiAqL1xuXG52YXIgQVRUUklCVVRFX05BTUVfQ0hBUiA9IEFUVFJJQlVURV9OQU1FX1NUQVJUX0NIQVIgKyBcIlxcXFwtLjAtOVxcXFx1MDBCN1xcXFx1MDMwMC1cXFxcdTAzNkZcXFxcdTIwM0YtXFxcXHUyMDQwXCI7XG52YXIgVkFMSURfQVRUUklCVVRFX05BTUVfUkVHRVggPSBuZXcgUmVnRXhwKCdeWycgKyBBVFRSSUJVVEVfTkFNRV9TVEFSVF9DSEFSICsgJ11bJyArIEFUVFJJQlVURV9OQU1FX0NIQVIgKyAnXSokJyk7XG52YXIgaWxsZWdhbEF0dHJpYnV0ZU5hbWVDYWNoZSA9IHt9O1xudmFyIHZhbGlkYXRlZEF0dHJpYnV0ZU5hbWVDYWNoZSA9IHt9O1xuZnVuY3Rpb24gaXNBdHRyaWJ1dGVOYW1lU2FmZShhdHRyaWJ1dGVOYW1lKSB7XG4gIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbGlkYXRlZEF0dHJpYnV0ZU5hbWVDYWNoZSwgYXR0cmlidXRlTmFtZSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGlsbGVnYWxBdHRyaWJ1dGVOYW1lQ2FjaGUsIGF0dHJpYnV0ZU5hbWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKFZBTElEX0FUVFJJQlVURV9OQU1FX1JFR0VYLnRlc3QoYXR0cmlidXRlTmFtZSkpIHtcbiAgICB2YWxpZGF0ZWRBdHRyaWJ1dGVOYW1lQ2FjaGVbYXR0cmlidXRlTmFtZV0gPSB0cnVlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWxsZWdhbEF0dHJpYnV0ZU5hbWVDYWNoZVthdHRyaWJ1dGVOYW1lXSA9IHRydWU7XG5cbiAge1xuICAgIGVycm9yKCdJbnZhbGlkIGF0dHJpYnV0ZSBuYW1lOiBgJXNgJywgYXR0cmlidXRlTmFtZSk7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBzaG91bGRJZ25vcmVBdHRyaWJ1dGUobmFtZSwgcHJvcGVydHlJbmZvLCBpc0N1c3RvbUNvbXBvbmVudFRhZykge1xuICBpZiAocHJvcGVydHlJbmZvICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIHByb3BlcnR5SW5mby50eXBlID09PSBSRVNFUlZFRDtcbiAgfVxuXG4gIGlmIChpc0N1c3RvbUNvbXBvbmVudFRhZykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChuYW1lLmxlbmd0aCA+IDIgJiYgKG5hbWVbMF0gPT09ICdvJyB8fCBuYW1lWzBdID09PSAnTycpICYmIChuYW1lWzFdID09PSAnbicgfHwgbmFtZVsxXSA9PT0gJ04nKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gc2hvdWxkUmVtb3ZlQXR0cmlidXRlV2l0aFdhcm5pbmcobmFtZSwgdmFsdWUsIHByb3BlcnR5SW5mbywgaXNDdXN0b21Db21wb25lbnRUYWcpIHtcbiAgaWYgKHByb3BlcnR5SW5mbyAhPT0gbnVsbCAmJiBwcm9wZXJ0eUluZm8udHlwZSA9PT0gUkVTRVJWRUQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgIGNhc2UgJ2Z1bmN0aW9uJzogLy8gJEZsb3dJc3N1ZSBzeW1ib2wgaXMgcGVyZmVjdGx5IHZhbGlkIGhlcmVcblxuICAgIGNhc2UgJ3N5bWJvbCc6XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgICByZXR1cm4gdHJ1ZTtcblxuICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAge1xuICAgICAgICBpZiAoaXNDdXN0b21Db21wb25lbnRUYWcpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvcGVydHlJbmZvICE9PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuICFwcm9wZXJ0eUluZm8uYWNjZXB0c0Jvb2xlYW5zO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBwcmVmaXggPSBuYW1lLnRvTG93ZXJDYXNlKCkuc2xpY2UoMCwgNSk7XG4gICAgICAgICAgcmV0dXJuIHByZWZpeCAhPT0gJ2RhdGEtJyAmJiBwcmVmaXggIT09ICdhcmlhLSc7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbmZ1bmN0aW9uIHNob3VsZFJlbW92ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgcHJvcGVydHlJbmZvLCBpc0N1c3RvbUNvbXBvbmVudFRhZykge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHNob3VsZFJlbW92ZUF0dHJpYnV0ZVdpdGhXYXJuaW5nKG5hbWUsIHZhbHVlLCBwcm9wZXJ0eUluZm8sIGlzQ3VzdG9tQ29tcG9uZW50VGFnKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKGlzQ3VzdG9tQ29tcG9uZW50VGFnKSB7XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAocHJvcGVydHlJbmZvICE9PSBudWxsKSB7XG5cbiAgICBzd2l0Y2ggKHByb3BlcnR5SW5mby50eXBlKSB7XG4gICAgICBjYXNlIEJPT0xFQU46XG4gICAgICAgIHJldHVybiAhdmFsdWU7XG5cbiAgICAgIGNhc2UgT1ZFUkxPQURFRF9CT09MRUFOOlxuICAgICAgICByZXR1cm4gdmFsdWUgPT09IGZhbHNlO1xuXG4gICAgICBjYXNlIE5VTUVSSUM6XG4gICAgICAgIHJldHVybiBpc05hTih2YWx1ZSk7XG5cbiAgICAgIGNhc2UgUE9TSVRJVkVfTlVNRVJJQzpcbiAgICAgICAgcmV0dXJuIGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA8IDE7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gZ2V0UHJvcGVydHlJbmZvKG5hbWUpIHtcbiAgcmV0dXJuIHByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkobmFtZSkgPyBwcm9wZXJ0aWVzW25hbWVdIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gUHJvcGVydHlJbmZvUmVjb3JkKG5hbWUsIHR5cGUsIG11c3RVc2VQcm9wZXJ0eSwgYXR0cmlidXRlTmFtZSwgYXR0cmlidXRlTmFtZXNwYWNlLCBzYW5pdGl6ZVVSTCwgcmVtb3ZlRW1wdHlTdHJpbmcpIHtcbiAgdGhpcy5hY2NlcHRzQm9vbGVhbnMgPSB0eXBlID09PSBCT09MRUFOSVNIX1NUUklORyB8fCB0eXBlID09PSBCT09MRUFOIHx8IHR5cGUgPT09IE9WRVJMT0FERURfQk9PTEVBTjtcbiAgdGhpcy5hdHRyaWJ1dGVOYW1lID0gYXR0cmlidXRlTmFtZTtcbiAgdGhpcy5hdHRyaWJ1dGVOYW1lc3BhY2UgPSBhdHRyaWJ1dGVOYW1lc3BhY2U7XG4gIHRoaXMubXVzdFVzZVByb3BlcnR5ID0gbXVzdFVzZVByb3BlcnR5O1xuICB0aGlzLnByb3BlcnR5TmFtZSA9IG5hbWU7XG4gIHRoaXMudHlwZSA9IHR5cGU7XG4gIHRoaXMuc2FuaXRpemVVUkwgPSBzYW5pdGl6ZVVSTDtcbiAgdGhpcy5yZW1vdmVFbXB0eVN0cmluZyA9IHJlbW92ZUVtcHR5U3RyaW5nO1xufSAvLyBXaGVuIGFkZGluZyBhdHRyaWJ1dGVzIHRvIHRoaXMgbGlzdCwgYmUgc3VyZSB0byBhbHNvIGFkZCB0aGVtIHRvXG4vLyB0aGUgYHBvc3NpYmxlU3RhbmRhcmROYW1lc2AgbW9kdWxlIHRvIGVuc3VyZSBjYXNpbmcgYW5kIGluY29ycmVjdFxuLy8gbmFtZSB3YXJuaW5ncy5cblxuXG52YXIgcHJvcGVydGllcyA9IHt9OyAvLyBUaGVzZSBwcm9wcyBhcmUgcmVzZXJ2ZWQgYnkgUmVhY3QuIFRoZXkgc2hvdWxkbid0IGJlIHdyaXR0ZW4gdG8gdGhlIERPTS5cblxudmFyIHJlc2VydmVkUHJvcHMgPSBbJ2NoaWxkcmVuJywgJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJywgLy8gVE9ETzogVGhpcyBwcmV2ZW50cyB0aGUgYXNzaWdubWVudCBvZiBkZWZhdWx0VmFsdWUgdG8gcmVndWxhclxuLy8gZWxlbWVudHMgKG5vdCBqdXN0IGlucHV0cykuIE5vdyB0aGF0IFJlYWN0RE9NSW5wdXQgYXNzaWducyB0byB0aGVcbi8vIGRlZmF1bHRWYWx1ZSBwcm9wZXJ0eSAtLSBkbyB3ZSBuZWVkIHRoaXM/XG4nZGVmYXVsdFZhbHVlJywgJ2RlZmF1bHRDaGVja2VkJywgJ2lubmVySFRNTCcsICdzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmcnLCAnc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nJywgJ3N0eWxlJ107XG5cbnJlc2VydmVkUHJvcHMuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICBwcm9wZXJ0aWVzW25hbWVdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZChuYW1lLCBSRVNFUlZFRCwgZmFsc2UsIC8vIG11c3RVc2VQcm9wZXJ0eVxuICBuYW1lLCAvLyBhdHRyaWJ1dGVOYW1lXG4gIG51bGwsIC8vIGF0dHJpYnV0ZU5hbWVzcGFjZVxuICBmYWxzZSwgLy8gc2FuaXRpemVVUkxcbiAgZmFsc2UpO1xufSk7IC8vIEEgZmV3IFJlYWN0IHN0cmluZyBhdHRyaWJ1dGVzIGhhdmUgYSBkaWZmZXJlbnQgbmFtZS5cbi8vIFRoaXMgaXMgYSBtYXBwaW5nIGZyb20gUmVhY3QgcHJvcCBuYW1lcyB0byB0aGUgYXR0cmlidXRlIG5hbWVzLlxuXG5bWydhY2NlcHRDaGFyc2V0JywgJ2FjY2VwdC1jaGFyc2V0J10sIFsnY2xhc3NOYW1lJywgJ2NsYXNzJ10sIFsnaHRtbEZvcicsICdmb3InXSwgWydodHRwRXF1aXYnLCAnaHR0cC1lcXVpdiddXS5mb3JFYWNoKGZ1bmN0aW9uIChfcmVmKSB7XG4gIHZhciBuYW1lID0gX3JlZlswXSxcbiAgICAgIGF0dHJpYnV0ZU5hbWUgPSBfcmVmWzFdO1xuICBwcm9wZXJ0aWVzW25hbWVdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZChuYW1lLCBTVFJJTkcsIGZhbHNlLCAvLyBtdXN0VXNlUHJvcGVydHlcbiAgYXR0cmlidXRlTmFtZSwgLy8gYXR0cmlidXRlTmFtZVxuICBudWxsLCAvLyBhdHRyaWJ1dGVOYW1lc3BhY2VcbiAgZmFsc2UsIC8vIHNhbml0aXplVVJMXG4gIGZhbHNlKTtcbn0pOyAvLyBUaGVzZSBhcmUgXCJlbnVtZXJhdGVkXCIgSFRNTCBhdHRyaWJ1dGVzIHRoYXQgYWNjZXB0IFwidHJ1ZVwiIGFuZCBcImZhbHNlXCIuXG4vLyBJbiBSZWFjdCwgd2UgbGV0IHVzZXJzIHBhc3MgYHRydWVgIGFuZCBgZmFsc2VgIGV2ZW4gdGhvdWdoIHRlY2huaWNhbGx5XG4vLyB0aGVzZSBhcmVuJ3QgYm9vbGVhbiBhdHRyaWJ1dGVzICh0aGV5IGFyZSBjb2VyY2VkIHRvIHN0cmluZ3MpLlxuXG5bJ2NvbnRlbnRFZGl0YWJsZScsICdkcmFnZ2FibGUnLCAnc3BlbGxDaGVjaycsICd2YWx1ZSddLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgcHJvcGVydGllc1tuYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQobmFtZSwgQk9PTEVBTklTSF9TVFJJTkcsIGZhbHNlLCAvLyBtdXN0VXNlUHJvcGVydHlcbiAgbmFtZS50b0xvd2VyQ2FzZSgpLCAvLyBhdHRyaWJ1dGVOYW1lXG4gIG51bGwsIC8vIGF0dHJpYnV0ZU5hbWVzcGFjZVxuICBmYWxzZSwgLy8gc2FuaXRpemVVUkxcbiAgZmFsc2UpO1xufSk7IC8vIFRoZXNlIGFyZSBcImVudW1lcmF0ZWRcIiBTVkcgYXR0cmlidXRlcyB0aGF0IGFjY2VwdCBcInRydWVcIiBhbmQgXCJmYWxzZVwiLlxuLy8gSW4gUmVhY3QsIHdlIGxldCB1c2VycyBwYXNzIGB0cnVlYCBhbmQgYGZhbHNlYCBldmVuIHRob3VnaCB0ZWNobmljYWxseVxuLy8gdGhlc2UgYXJlbid0IGJvb2xlYW4gYXR0cmlidXRlcyAodGhleSBhcmUgY29lcmNlZCB0byBzdHJpbmdzKS5cbi8vIFNpbmNlIHRoZXNlIGFyZSBTVkcgYXR0cmlidXRlcywgdGhlaXIgYXR0cmlidXRlIG5hbWVzIGFyZSBjYXNlLXNlbnNpdGl2ZS5cblxuWydhdXRvUmV2ZXJzZScsICdleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkJywgJ2ZvY3VzYWJsZScsICdwcmVzZXJ2ZUFscGhhJ10uZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICBwcm9wZXJ0aWVzW25hbWVdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZChuYW1lLCBCT09MRUFOSVNIX1NUUklORywgZmFsc2UsIC8vIG11c3RVc2VQcm9wZXJ0eVxuICBuYW1lLCAvLyBhdHRyaWJ1dGVOYW1lXG4gIG51bGwsIC8vIGF0dHJpYnV0ZU5hbWVzcGFjZVxuICBmYWxzZSwgLy8gc2FuaXRpemVVUkxcbiAgZmFsc2UpO1xufSk7IC8vIFRoZXNlIGFyZSBIVE1MIGJvb2xlYW4gYXR0cmlidXRlcy5cblxuWydhbGxvd0Z1bGxTY3JlZW4nLCAnYXN5bmMnLCAvLyBOb3RlOiB0aGVyZSBpcyBhIHNwZWNpYWwgY2FzZSB0aGF0IHByZXZlbnRzIGl0IGZyb20gYmVpbmcgd3JpdHRlbiB0byB0aGUgRE9NXG4vLyBvbiB0aGUgY2xpZW50IHNpZGUgYmVjYXVzZSB0aGUgYnJvd3NlcnMgYXJlIGluY29uc2lzdGVudC4gSW5zdGVhZCB3ZSBjYWxsIGZvY3VzKCkuXG4nYXV0b0ZvY3VzJywgJ2F1dG9QbGF5JywgJ2NvbnRyb2xzJywgJ2RlZmF1bHQnLCAnZGVmZXInLCAnZGlzYWJsZWQnLCAnZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUnLCAnZGlzYWJsZVJlbW90ZVBsYXliYWNrJywgJ2Zvcm1Ob1ZhbGlkYXRlJywgJ2hpZGRlbicsICdsb29wJywgJ25vTW9kdWxlJywgJ25vVmFsaWRhdGUnLCAnb3BlbicsICdwbGF5c0lubGluZScsICdyZWFkT25seScsICdyZXF1aXJlZCcsICdyZXZlcnNlZCcsICdzY29wZWQnLCAnc2VhbWxlc3MnLCAvLyBNaWNyb2RhdGFcbidpdGVtU2NvcGUnXS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gIHByb3BlcnRpZXNbbmFtZV0gPSBuZXcgUHJvcGVydHlJbmZvUmVjb3JkKG5hbWUsIEJPT0xFQU4sIGZhbHNlLCAvLyBtdXN0VXNlUHJvcGVydHlcbiAgbmFtZS50b0xvd2VyQ2FzZSgpLCAvLyBhdHRyaWJ1dGVOYW1lXG4gIG51bGwsIC8vIGF0dHJpYnV0ZU5hbWVzcGFjZVxuICBmYWxzZSwgLy8gc2FuaXRpemVVUkxcbiAgZmFsc2UpO1xufSk7IC8vIFRoZXNlIGFyZSB0aGUgZmV3IFJlYWN0IHByb3BzIHRoYXQgd2Ugc2V0IGFzIERPTSBwcm9wZXJ0aWVzXG4vLyByYXRoZXIgdGhhbiBhdHRyaWJ1dGVzLiBUaGVzZSBhcmUgYWxsIGJvb2xlYW5zLlxuXG5bJ2NoZWNrZWQnLCAvLyBOb3RlOiBgb3B0aW9uLnNlbGVjdGVkYCBpcyBub3QgdXBkYXRlZCBpZiBgc2VsZWN0Lm11bHRpcGxlYCBpc1xuLy8gZGlzYWJsZWQgd2l0aCBgcmVtb3ZlQXR0cmlidXRlYC4gV2UgaGF2ZSBzcGVjaWFsIGxvZ2ljIGZvciBoYW5kbGluZyB0aGlzLlxuJ211bHRpcGxlJywgJ211dGVkJywgJ3NlbGVjdGVkJyAvLyBOT1RFOiBpZiB5b3UgYWRkIGEgY2FtZWxDYXNlZCBwcm9wIHRvIHRoaXMgbGlzdCxcbi8vIHlvdSdsbCBuZWVkIHRvIHNldCBhdHRyaWJ1dGVOYW1lIHRvIG5hbWUudG9Mb3dlckNhc2UoKVxuLy8gaW5zdGVhZCBpbiB0aGUgYXNzaWdubWVudCBiZWxvdy5cbl0uZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICBwcm9wZXJ0aWVzW25hbWVdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZChuYW1lLCBCT09MRUFOLCB0cnVlLCAvLyBtdXN0VXNlUHJvcGVydHlcbiAgbmFtZSwgLy8gYXR0cmlidXRlTmFtZVxuICBudWxsLCAvLyBhdHRyaWJ1dGVOYW1lc3BhY2VcbiAgZmFsc2UsIC8vIHNhbml0aXplVVJMXG4gIGZhbHNlKTtcbn0pOyAvLyBUaGVzZSBhcmUgSFRNTCBhdHRyaWJ1dGVzIHRoYXQgYXJlIFwib3ZlcmxvYWRlZCBib29sZWFuc1wiOiB0aGV5IGJlaGF2ZSBsaWtlXG4vLyBib29sZWFucywgYnV0IGNhbiBhbHNvIGFjY2VwdCBhIHN0cmluZyB2YWx1ZS5cblxuWydjYXB0dXJlJywgJ2Rvd25sb2FkJyAvLyBOT1RFOiBpZiB5b3UgYWRkIGEgY2FtZWxDYXNlZCBwcm9wIHRvIHRoaXMgbGlzdCxcbi8vIHlvdSdsbCBuZWVkIHRvIHNldCBhdHRyaWJ1dGVOYW1lIHRvIG5hbWUudG9Mb3dlckNhc2UoKVxuLy8gaW5zdGVhZCBpbiB0aGUgYXNzaWdubWVudCBiZWxvdy5cbl0uZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICBwcm9wZXJ0aWVzW25hbWVdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZChuYW1lLCBPVkVSTE9BREVEX0JPT0xFQU4sIGZhbHNlLCAvLyBtdXN0VXNlUHJvcGVydHlcbiAgbmFtZSwgLy8gYXR0cmlidXRlTmFtZVxuICBudWxsLCAvLyBhdHRyaWJ1dGVOYW1lc3BhY2VcbiAgZmFsc2UsIC8vIHNhbml0aXplVVJMXG4gIGZhbHNlKTtcbn0pOyAvLyBUaGVzZSBhcmUgSFRNTCBhdHRyaWJ1dGVzIHRoYXQgbXVzdCBiZSBwb3NpdGl2ZSBudW1iZXJzLlxuXG5bJ2NvbHMnLCAncm93cycsICdzaXplJywgJ3NwYW4nIC8vIE5PVEU6IGlmIHlvdSBhZGQgYSBjYW1lbENhc2VkIHByb3AgdG8gdGhpcyBsaXN0LFxuLy8geW91J2xsIG5lZWQgdG8gc2V0IGF0dHJpYnV0ZU5hbWUgdG8gbmFtZS50b0xvd2VyQ2FzZSgpXG4vLyBpbnN0ZWFkIGluIHRoZSBhc3NpZ25tZW50IGJlbG93LlxuXS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gIHByb3BlcnRpZXNbbmFtZV0gPSBuZXcgUHJvcGVydHlJbmZvUmVjb3JkKG5hbWUsIFBPU0lUSVZFX05VTUVSSUMsIGZhbHNlLCAvLyBtdXN0VXNlUHJvcGVydHlcbiAgbmFtZSwgLy8gYXR0cmlidXRlTmFtZVxuICBudWxsLCAvLyBhdHRyaWJ1dGVOYW1lc3BhY2VcbiAgZmFsc2UsIC8vIHNhbml0aXplVVJMXG4gIGZhbHNlKTtcbn0pOyAvLyBUaGVzZSBhcmUgSFRNTCBhdHRyaWJ1dGVzIHRoYXQgbXVzdCBiZSBudW1iZXJzLlxuXG5bJ3Jvd1NwYW4nLCAnc3RhcnQnXS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gIHByb3BlcnRpZXNbbmFtZV0gPSBuZXcgUHJvcGVydHlJbmZvUmVjb3JkKG5hbWUsIE5VTUVSSUMsIGZhbHNlLCAvLyBtdXN0VXNlUHJvcGVydHlcbiAgbmFtZS50b0xvd2VyQ2FzZSgpLCAvLyBhdHRyaWJ1dGVOYW1lXG4gIG51bGwsIC8vIGF0dHJpYnV0ZU5hbWVzcGFjZVxuICBmYWxzZSwgLy8gc2FuaXRpemVVUkxcbiAgZmFsc2UpO1xufSk7XG52YXIgQ0FNRUxJWkUgPSAvW1xcLVxcOl0oW2Etel0pL2c7XG5cbnZhciBjYXBpdGFsaXplID0gZnVuY3Rpb24gKHRva2VuKSB7XG4gIHJldHVybiB0b2tlblsxXS50b1VwcGVyQ2FzZSgpO1xufTsgLy8gVGhpcyBpcyBhIGxpc3Qgb2YgYWxsIFNWRyBhdHRyaWJ1dGVzIHRoYXQgbmVlZCBzcGVjaWFsIGNhc2luZywgbmFtZXNwYWNpbmcsXG4vLyBvciBib29sZWFuIHZhbHVlIGFzc2lnbm1lbnQuIFJlZ3VsYXIgYXR0cmlidXRlcyB0aGF0IGp1c3QgYWNjZXB0IHN0cmluZ3Ncbi8vIGFuZCBoYXZlIHRoZSBzYW1lIG5hbWVzIGFyZSBvbWl0dGVkLCBqdXN0IGxpa2UgaW4gdGhlIEhUTUwgYXR0cmlidXRlIGZpbHRlci5cbi8vIFNvbWUgb2YgdGhlc2UgYXR0cmlidXRlcyBjYW4gYmUgaGFyZCB0byBmaW5kLiBUaGlzIGxpc3Qgd2FzIGNyZWF0ZWQgYnlcbi8vIHNjcmFwaW5nIHRoZSBNRE4gZG9jdW1lbnRhdGlvbi5cblxuXG5bJ2FjY2VudC1oZWlnaHQnLCAnYWxpZ25tZW50LWJhc2VsaW5lJywgJ2FyYWJpYy1mb3JtJywgJ2Jhc2VsaW5lLXNoaWZ0JywgJ2NhcC1oZWlnaHQnLCAnY2xpcC1wYXRoJywgJ2NsaXAtcnVsZScsICdjb2xvci1pbnRlcnBvbGF0aW9uJywgJ2NvbG9yLWludGVycG9sYXRpb24tZmlsdGVycycsICdjb2xvci1wcm9maWxlJywgJ2NvbG9yLXJlbmRlcmluZycsICdkb21pbmFudC1iYXNlbGluZScsICdlbmFibGUtYmFja2dyb3VuZCcsICdmaWxsLW9wYWNpdHknLCAnZmlsbC1ydWxlJywgJ2Zsb29kLWNvbG9yJywgJ2Zsb29kLW9wYWNpdHknLCAnZm9udC1mYW1pbHknLCAnZm9udC1zaXplJywgJ2ZvbnQtc2l6ZS1hZGp1c3QnLCAnZm9udC1zdHJldGNoJywgJ2ZvbnQtc3R5bGUnLCAnZm9udC12YXJpYW50JywgJ2ZvbnQtd2VpZ2h0JywgJ2dseXBoLW5hbWUnLCAnZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCcsICdnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbCcsICdob3Jpei1hZHYteCcsICdob3Jpei1vcmlnaW4teCcsICdpbWFnZS1yZW5kZXJpbmcnLCAnbGV0dGVyLXNwYWNpbmcnLCAnbGlnaHRpbmctY29sb3InLCAnbWFya2VyLWVuZCcsICdtYXJrZXItbWlkJywgJ21hcmtlci1zdGFydCcsICdvdmVybGluZS1wb3NpdGlvbicsICdvdmVybGluZS10aGlja25lc3MnLCAncGFpbnQtb3JkZXInLCAncGFub3NlLTEnLCAncG9pbnRlci1ldmVudHMnLCAncmVuZGVyaW5nLWludGVudCcsICdzaGFwZS1yZW5kZXJpbmcnLCAnc3RvcC1jb2xvcicsICdzdG9wLW9wYWNpdHknLCAnc3RyaWtldGhyb3VnaC1wb3NpdGlvbicsICdzdHJpa2V0aHJvdWdoLXRoaWNrbmVzcycsICdzdHJva2UtZGFzaGFycmF5JywgJ3N0cm9rZS1kYXNob2Zmc2V0JywgJ3N0cm9rZS1saW5lY2FwJywgJ3N0cm9rZS1saW5lam9pbicsICdzdHJva2UtbWl0ZXJsaW1pdCcsICdzdHJva2Utb3BhY2l0eScsICdzdHJva2Utd2lkdGgnLCAndGV4dC1hbmNob3InLCAndGV4dC1kZWNvcmF0aW9uJywgJ3RleHQtcmVuZGVyaW5nJywgJ3VuZGVybGluZS1wb3NpdGlvbicsICd1bmRlcmxpbmUtdGhpY2tuZXNzJywgJ3VuaWNvZGUtYmlkaScsICd1bmljb2RlLXJhbmdlJywgJ3VuaXRzLXBlci1lbScsICd2LWFscGhhYmV0aWMnLCAndi1oYW5naW5nJywgJ3YtaWRlb2dyYXBoaWMnLCAndi1tYXRoZW1hdGljYWwnLCAndmVjdG9yLWVmZmVjdCcsICd2ZXJ0LWFkdi15JywgJ3ZlcnQtb3JpZ2luLXgnLCAndmVydC1vcmlnaW4teScsICd3b3JkLXNwYWNpbmcnLCAnd3JpdGluZy1tb2RlJywgJ3htbG5zOnhsaW5rJywgJ3gtaGVpZ2h0JyAvLyBOT1RFOiBpZiB5b3UgYWRkIGEgY2FtZWxDYXNlZCBwcm9wIHRvIHRoaXMgbGlzdCxcbi8vIHlvdSdsbCBuZWVkIHRvIHNldCBhdHRyaWJ1dGVOYW1lIHRvIG5hbWUudG9Mb3dlckNhc2UoKVxuLy8gaW5zdGVhZCBpbiB0aGUgYXNzaWdubWVudCBiZWxvdy5cbl0uZm9yRWFjaChmdW5jdGlvbiAoYXR0cmlidXRlTmFtZSkge1xuICB2YXIgbmFtZSA9IGF0dHJpYnV0ZU5hbWUucmVwbGFjZShDQU1FTElaRSwgY2FwaXRhbGl6ZSk7XG4gIHByb3BlcnRpZXNbbmFtZV0gPSBuZXcgUHJvcGVydHlJbmZvUmVjb3JkKG5hbWUsIFNUUklORywgZmFsc2UsIC8vIG11c3RVc2VQcm9wZXJ0eVxuICBhdHRyaWJ1dGVOYW1lLCBudWxsLCAvLyBhdHRyaWJ1dGVOYW1lc3BhY2VcbiAgZmFsc2UsIC8vIHNhbml0aXplVVJMXG4gIGZhbHNlKTtcbn0pOyAvLyBTdHJpbmcgU1ZHIGF0dHJpYnV0ZXMgd2l0aCB0aGUgeGxpbmsgbmFtZXNwYWNlLlxuXG5bJ3hsaW5rOmFjdHVhdGUnLCAneGxpbms6YXJjcm9sZScsICd4bGluazpyb2xlJywgJ3hsaW5rOnNob3cnLCAneGxpbms6dGl0bGUnLCAneGxpbms6dHlwZScgLy8gTk9URTogaWYgeW91IGFkZCBhIGNhbWVsQ2FzZWQgcHJvcCB0byB0aGlzIGxpc3QsXG4vLyB5b3UnbGwgbmVlZCB0byBzZXQgYXR0cmlidXRlTmFtZSB0byBuYW1lLnRvTG93ZXJDYXNlKClcbi8vIGluc3RlYWQgaW4gdGhlIGFzc2lnbm1lbnQgYmVsb3cuXG5dLmZvckVhY2goZnVuY3Rpb24gKGF0dHJpYnV0ZU5hbWUpIHtcbiAgdmFyIG5hbWUgPSBhdHRyaWJ1dGVOYW1lLnJlcGxhY2UoQ0FNRUxJWkUsIGNhcGl0YWxpemUpO1xuICBwcm9wZXJ0aWVzW25hbWVdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZChuYW1lLCBTVFJJTkcsIGZhbHNlLCAvLyBtdXN0VXNlUHJvcGVydHlcbiAgYXR0cmlidXRlTmFtZSwgJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnLCBmYWxzZSwgLy8gc2FuaXRpemVVUkxcbiAgZmFsc2UpO1xufSk7IC8vIFN0cmluZyBTVkcgYXR0cmlidXRlcyB3aXRoIHRoZSB4bWwgbmFtZXNwYWNlLlxuXG5bJ3htbDpiYXNlJywgJ3htbDpsYW5nJywgJ3htbDpzcGFjZScgLy8gTk9URTogaWYgeW91IGFkZCBhIGNhbWVsQ2FzZWQgcHJvcCB0byB0aGlzIGxpc3QsXG4vLyB5b3UnbGwgbmVlZCB0byBzZXQgYXR0cmlidXRlTmFtZSB0byBuYW1lLnRvTG93ZXJDYXNlKClcbi8vIGluc3RlYWQgaW4gdGhlIGFzc2lnbm1lbnQgYmVsb3cuXG5dLmZvckVhY2goZnVuY3Rpb24gKGF0dHJpYnV0ZU5hbWUpIHtcbiAgdmFyIG5hbWUgPSBhdHRyaWJ1dGVOYW1lLnJlcGxhY2UoQ0FNRUxJWkUsIGNhcGl0YWxpemUpO1xuICBwcm9wZXJ0aWVzW25hbWVdID0gbmV3IFByb3BlcnR5SW5mb1JlY29yZChuYW1lLCBTVFJJTkcsIGZhbHNlLCAvLyBtdXN0VXNlUHJvcGVydHlcbiAgYXR0cmlidXRlTmFtZSwgJ2h0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZScsIGZhbHNlLCAvLyBzYW5pdGl6ZVVSTFxuICBmYWxzZSk7XG59KTsgLy8gVGhlc2UgYXR0cmlidXRlIGV4aXN0cyBib3RoIGluIEhUTUwgYW5kIFNWRy5cbi8vIFRoZSBhdHRyaWJ1dGUgbmFtZSBpcyBjYXNlLXNlbnNpdGl2ZSBpbiBTVkcgc28gd2UgY2FuJ3QganVzdCB1c2Vcbi8vIHRoZSBSZWFjdCBuYW1lIGxpa2Ugd2UgZG8gZm9yIGF0dHJpYnV0ZXMgdGhhdCBleGlzdCBvbmx5IGluIEhUTUwuXG5cblsndGFiSW5kZXgnLCAnY3Jvc3NPcmlnaW4nXS5mb3JFYWNoKGZ1bmN0aW9uIChhdHRyaWJ1dGVOYW1lKSB7XG4gIHByb3BlcnRpZXNbYXR0cmlidXRlTmFtZV0gPSBuZXcgUHJvcGVydHlJbmZvUmVjb3JkKGF0dHJpYnV0ZU5hbWUsIFNUUklORywgZmFsc2UsIC8vIG11c3RVc2VQcm9wZXJ0eVxuICBhdHRyaWJ1dGVOYW1lLnRvTG93ZXJDYXNlKCksIC8vIGF0dHJpYnV0ZU5hbWVcbiAgbnVsbCwgLy8gYXR0cmlidXRlTmFtZXNwYWNlXG4gIGZhbHNlLCAvLyBzYW5pdGl6ZVVSTFxuICBmYWxzZSk7XG59KTsgLy8gVGhlc2UgYXR0cmlidXRlcyBhY2NlcHQgVVJMcy4gVGhlc2UgbXVzdCBub3QgYWxsb3cgamF2YXNjcmlwdDogVVJMUy5cbi8vIFRoZXNlIHdpbGwgYWxzbyBuZWVkIHRvIGFjY2VwdCBUcnVzdGVkIFR5cGVzIG9iamVjdCBpbiB0aGUgZnV0dXJlLlxuXG52YXIgeGxpbmtIcmVmID0gJ3hsaW5rSHJlZic7XG5wcm9wZXJ0aWVzW3hsaW5rSHJlZl0gPSBuZXcgUHJvcGVydHlJbmZvUmVjb3JkKCd4bGlua0hyZWYnLCBTVFJJTkcsIGZhbHNlLCAvLyBtdXN0VXNlUHJvcGVydHlcbid4bGluazpocmVmJywgJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnLCB0cnVlLCAvLyBzYW5pdGl6ZVVSTFxuZmFsc2UpO1xuWydzcmMnLCAnaHJlZicsICdhY3Rpb24nLCAnZm9ybUFjdGlvbiddLmZvckVhY2goZnVuY3Rpb24gKGF0dHJpYnV0ZU5hbWUpIHtcbiAgcHJvcGVydGllc1thdHRyaWJ1dGVOYW1lXSA9IG5ldyBQcm9wZXJ0eUluZm9SZWNvcmQoYXR0cmlidXRlTmFtZSwgU1RSSU5HLCBmYWxzZSwgLy8gbXVzdFVzZVByb3BlcnR5XG4gIGF0dHJpYnV0ZU5hbWUudG9Mb3dlckNhc2UoKSwgLy8gYXR0cmlidXRlTmFtZVxuICBudWxsLCAvLyBhdHRyaWJ1dGVOYW1lc3BhY2VcbiAgdHJ1ZSwgLy8gc2FuaXRpemVVUkxcbiAgdHJ1ZSk7XG59KTtcblxuLy8gYW5kIGFueSBuZXdsaW5lIG9yIHRhYiBhcmUgZmlsdGVyZWQgb3V0IGFzIGlmIHRoZXkncmUgbm90IHBhcnQgb2YgdGhlIFVSTC5cbi8vIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jdXJsLXBhcnNpbmdcbi8vIFRhYiBvciBuZXdsaW5lIGFyZSBkZWZpbmVkIGFzIFxcclxcblxcdDpcbi8vIGh0dHBzOi8vaW5mcmEuc3BlYy53aGF0d2cub3JnLyNhc2NpaS10YWItb3ItbmV3bGluZVxuLy8gQSBDMCBjb250cm9sIGlzIGEgY29kZSBwb2ludCBpbiB0aGUgcmFuZ2UgXFx1MDAwMCBOVUxMIHRvIFxcdTAwMUZcbi8vIElORk9STUFUSU9OIFNFUEFSQVRPUiBPTkUsIGluY2x1c2l2ZTpcbi8vIGh0dHBzOi8vaW5mcmEuc3BlYy53aGF0d2cub3JnLyNjMC1jb250cm9sLW9yLXNwYWNlXG5cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cblxudmFyIGlzSmF2YVNjcmlwdFByb3RvY29sID0gL15bXFx1MDAwMC1cXHUwMDFGIF0qaltcXHJcXG5cXHRdKmFbXFxyXFxuXFx0XSp2W1xcclxcblxcdF0qYVtcXHJcXG5cXHRdKnNbXFxyXFxuXFx0XSpjW1xcclxcblxcdF0qcltcXHJcXG5cXHRdKmlbXFxyXFxuXFx0XSpwW1xcclxcblxcdF0qdFtcXHJcXG5cXHRdKlxcOi9pO1xudmFyIGRpZFdhcm4gPSBmYWxzZTtcblxuZnVuY3Rpb24gc2FuaXRpemVVUkwodXJsKSB7XG4gIHtcbiAgICBpZiAoIWRpZFdhcm4gJiYgaXNKYXZhU2NyaXB0UHJvdG9jb2wudGVzdCh1cmwpKSB7XG4gICAgICBkaWRXYXJuID0gdHJ1ZTtcblxuICAgICAgZXJyb3IoJ0EgZnV0dXJlIHZlcnNpb24gb2YgUmVhY3Qgd2lsbCBibG9jayBqYXZhc2NyaXB0OiBVUkxzIGFzIGEgc2VjdXJpdHkgcHJlY2F1dGlvbi4gJyArICdVc2UgZXZlbnQgaGFuZGxlcnMgaW5zdGVhZCBpZiB5b3UgY2FuLiBJZiB5b3UgbmVlZCB0byBnZW5lcmF0ZSB1bnNhZmUgSFRNTCB0cnkgJyArICd1c2luZyBkYW5nZXJvdXNseVNldElubmVySFRNTCBpbnN0ZWFkLiBSZWFjdCB3YXMgcGFzc2VkICVzLicsIEpTT04uc3RyaW5naWZ5KHVybCkpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEdldCB0aGUgdmFsdWUgZm9yIGEgcHJvcGVydHkgb24gYSBub2RlLiBPbmx5IHVzZWQgaW4gREVWIGZvciBTU1IgdmFsaWRhdGlvbi5cbiAqIFRoZSBcImV4cGVjdGVkXCIgYXJndW1lbnQgaXMgdXNlZCBhcyBhIGhpbnQgb2Ygd2hhdCB0aGUgZXhwZWN0ZWQgdmFsdWUgaXMuXG4gKiBTb21lIHByb3BlcnRpZXMgaGF2ZSBtdWx0aXBsZSBlcXVpdmFsZW50IHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gZ2V0VmFsdWVGb3JQcm9wZXJ0eShub2RlLCBuYW1lLCBleHBlY3RlZCwgcHJvcGVydHlJbmZvKSB7XG4gIHtcbiAgICBpZiAocHJvcGVydHlJbmZvLm11c3RVc2VQcm9wZXJ0eSkge1xuICAgICAgdmFyIHByb3BlcnR5TmFtZSA9IHByb3BlcnR5SW5mby5wcm9wZXJ0eU5hbWU7XG4gICAgICByZXR1cm4gbm9kZVtwcm9wZXJ0eU5hbWVdO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGlzIGNoZWNrIHByb3RlY3RzIG11bHRpcGxlIHVzZXMgb2YgYGV4cGVjdGVkYCwgd2hpY2ggaXMgd2h5IHRoZVxuICAgICAgLy8gcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb24gcnVsZSBpcyBkaXNhYmxlZCBpbiBzZXZlcmFsIHNwb3RzXG4gICAgICAvLyBiZWxvdy5cbiAgICAgIHtcbiAgICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbihleHBlY3RlZCwgbmFtZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICggcHJvcGVydHlJbmZvLnNhbml0aXplVVJMKSB7XG4gICAgICAgIC8vIElmIHdlIGhhdmVuJ3QgZnVsbHkgZGlzYWJsZWQgamF2YXNjcmlwdDogVVJMcywgYW5kIGlmXG4gICAgICAgIC8vIHRoZSBoeWRyYXRpb24gaXMgc3VjY2Vzc2Z1bCBvZiBhIGphdmFzY3JpcHQ6IFVSTCwgd2VcbiAgICAgICAgLy8gc3RpbGwgd2FudCB0byB3YXJuIG9uIHRoZSBjbGllbnQuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuICAgICAgICBzYW5pdGl6ZVVSTCgnJyArIGV4cGVjdGVkKTtcbiAgICAgIH1cblxuICAgICAgdmFyIGF0dHJpYnV0ZU5hbWUgPSBwcm9wZXJ0eUluZm8uYXR0cmlidXRlTmFtZTtcbiAgICAgIHZhciBzdHJpbmdWYWx1ZSA9IG51bGw7XG5cbiAgICAgIGlmIChwcm9wZXJ0eUluZm8udHlwZSA9PT0gT1ZFUkxPQURFRF9CT09MRUFOKSB7XG4gICAgICAgIGlmIChub2RlLmhhc0F0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSkge1xuICAgICAgICAgIHZhciB2YWx1ZSA9IG5vZGUuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpO1xuXG4gICAgICAgICAgaWYgKHZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHNob3VsZFJlbW92ZUF0dHJpYnV0ZShuYW1lLCBleHBlY3RlZCwgcHJvcGVydHlJbmZvLCBmYWxzZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICB9IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuXG5cbiAgICAgICAgICBpZiAodmFsdWUgPT09ICcnICsgZXhwZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBleHBlY3RlZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAobm9kZS5oYXNBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkpIHtcbiAgICAgICAgaWYgKHNob3VsZFJlbW92ZUF0dHJpYnV0ZShuYW1lLCBleHBlY3RlZCwgcHJvcGVydHlJbmZvLCBmYWxzZSkpIHtcbiAgICAgICAgICAvLyBXZSBoYWQgYW4gYXR0cmlidXRlIGJ1dCBzaG91bGRuJ3QgaGF2ZSBoYWQgb25lLCBzbyByZWFkIGl0XG4gICAgICAgICAgLy8gZm9yIHRoZSBlcnJvciBtZXNzYWdlLlxuICAgICAgICAgIHJldHVybiBub2RlLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9wZXJ0eUluZm8udHlwZSA9PT0gQk9PTEVBTikge1xuICAgICAgICAgIC8vIElmIHRoaXMgd2FzIGEgYm9vbGVhbiwgaXQgZG9lc24ndCBtYXR0ZXIgd2hhdCB0aGUgdmFsdWUgaXNcbiAgICAgICAgICAvLyB0aGUgZmFjdCB0aGF0IHdlIGhhdmUgaXQgaXMgdGhlIHNhbWUgYXMgdGhlIGV4cGVjdGVkLlxuICAgICAgICAgIHJldHVybiBleHBlY3RlZDtcbiAgICAgICAgfSAvLyBFdmVuIGlmIHRoaXMgcHJvcGVydHkgdXNlcyBhIG5hbWVzcGFjZSB3ZSB1c2UgZ2V0QXR0cmlidXRlXG4gICAgICAgIC8vIGJlY2F1c2Ugd2UgYXNzdW1lIGl0cyBuYW1lc3BhY2VkIG5hbWUgaXMgdGhlIHNhbWUgYXMgb3VyIGNvbmZpZy5cbiAgICAgICAgLy8gVG8gdXNlIGdldEF0dHJpYnV0ZU5TIHdlIG5lZWQgdGhlIGxvY2FsIG5hbWUgd2hpY2ggd2UgZG9uJ3QgaGF2ZVxuICAgICAgICAvLyBpbiBvdXIgY29uZmlnIGF0bS5cblxuXG4gICAgICAgIHN0cmluZ1ZhbHVlID0gbm9kZS5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzaG91bGRSZW1vdmVBdHRyaWJ1dGUobmFtZSwgZXhwZWN0ZWQsIHByb3BlcnR5SW5mbywgZmFsc2UpKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmdWYWx1ZSA9PT0gbnVsbCA/IGV4cGVjdGVkIDogc3RyaW5nVmFsdWU7IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuICAgICAgfSBlbHNlIGlmIChzdHJpbmdWYWx1ZSA9PT0gJycgKyBleHBlY3RlZCkge1xuICAgICAgICByZXR1cm4gZXhwZWN0ZWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gc3RyaW5nVmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4vKipcbiAqIEdldCB0aGUgdmFsdWUgZm9yIGEgYXR0cmlidXRlIG9uIGEgbm9kZS4gT25seSB1c2VkIGluIERFViBmb3IgU1NSIHZhbGlkYXRpb24uXG4gKiBUaGUgdGhpcmQgYXJndW1lbnQgaXMgdXNlZCBhcyBhIGhpbnQgb2Ygd2hhdCB0aGUgZXhwZWN0ZWQgdmFsdWUgaXMuIFNvbWVcbiAqIGF0dHJpYnV0ZXMgaGF2ZSBtdWx0aXBsZSBlcXVpdmFsZW50IHZhbHVlcy5cbiAqL1xuXG5mdW5jdGlvbiBnZXRWYWx1ZUZvckF0dHJpYnV0ZShub2RlLCBuYW1lLCBleHBlY3RlZCwgaXNDdXN0b21Db21wb25lbnRUYWcpIHtcbiAge1xuICAgIGlmICghaXNBdHRyaWJ1dGVOYW1lU2FmZShuYW1lKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghbm9kZS5oYXNBdHRyaWJ1dGUobmFtZSkpIHtcbiAgICAgIHJldHVybiBleHBlY3RlZCA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogbnVsbDtcbiAgICB9XG5cbiAgICB2YXIgdmFsdWUgPSBub2RlLmdldEF0dHJpYnV0ZShuYW1lKTtcblxuICAgIHtcbiAgICAgIGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24oZXhwZWN0ZWQsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gJycgKyBleHBlY3RlZCkge1xuICAgICAgcmV0dXJuIGV4cGVjdGVkO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufVxuLyoqXG4gKiBTZXRzIHRoZSB2YWx1ZSBmb3IgYSBwcm9wZXJ0eSBvbiBhIG5vZGUuXG4gKlxuICogQHBhcmFtIHtET01FbGVtZW50fSBub2RlXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICogQHBhcmFtIHsqfSB2YWx1ZVxuICovXG5cbmZ1bmN0aW9uIHNldFZhbHVlRm9yUHJvcGVydHkobm9kZSwgbmFtZSwgdmFsdWUsIGlzQ3VzdG9tQ29tcG9uZW50VGFnKSB7XG4gIHZhciBwcm9wZXJ0eUluZm8gPSBnZXRQcm9wZXJ0eUluZm8obmFtZSk7XG5cbiAgaWYgKHNob3VsZElnbm9yZUF0dHJpYnV0ZShuYW1lLCBwcm9wZXJ0eUluZm8sIGlzQ3VzdG9tQ29tcG9uZW50VGFnKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChzaG91bGRSZW1vdmVBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHByb3BlcnR5SW5mbywgaXNDdXN0b21Db21wb25lbnRUYWcpKSB7XG4gICAgdmFsdWUgPSBudWxsO1xuICB9XG5cblxuICBpZiAoaXNDdXN0b21Db21wb25lbnRUYWcgfHwgcHJvcGVydHlJbmZvID09PSBudWxsKSB7XG4gICAgaWYgKGlzQXR0cmlidXRlTmFtZVNhZmUobmFtZSkpIHtcbiAgICAgIHZhciBfYXR0cmlidXRlTmFtZSA9IG5hbWU7XG5cbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICBub2RlLnJlbW92ZUF0dHJpYnV0ZShfYXR0cmlidXRlTmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB7XG4gICAgICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwgbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShfYXR0cmlidXRlTmFtZSwgICcnICsgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBtdXN0VXNlUHJvcGVydHkgPSBwcm9wZXJ0eUluZm8ubXVzdFVzZVByb3BlcnR5O1xuXG4gIGlmIChtdXN0VXNlUHJvcGVydHkpIHtcbiAgICB2YXIgcHJvcGVydHlOYW1lID0gcHJvcGVydHlJbmZvLnByb3BlcnR5TmFtZTtcblxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgdmFyIHR5cGUgPSBwcm9wZXJ0eUluZm8udHlwZTtcbiAgICAgIG5vZGVbcHJvcGVydHlOYW1lXSA9IHR5cGUgPT09IEJPT0xFQU4gPyBmYWxzZSA6ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDb250cmFyeSB0byBgc2V0QXR0cmlidXRlYCwgb2JqZWN0IHByb3BlcnRpZXMgYXJlIHByb3Blcmx5XG4gICAgICAvLyBgdG9TdHJpbmdgZWQgYnkgSUU4LzkuXG4gICAgICBub2RlW3Byb3BlcnR5TmFtZV0gPSB2YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH0gLy8gVGhlIHJlc3QgYXJlIHRyZWF0ZWQgYXMgYXR0cmlidXRlcyB3aXRoIHNwZWNpYWwgY2FzZXMuXG5cblxuICB2YXIgYXR0cmlidXRlTmFtZSA9IHByb3BlcnR5SW5mby5hdHRyaWJ1dGVOYW1lLFxuICAgICAgYXR0cmlidXRlTmFtZXNwYWNlID0gcHJvcGVydHlJbmZvLmF0dHJpYnV0ZU5hbWVzcGFjZTtcblxuICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICBub2RlLnJlbW92ZUF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgX3R5cGUgPSBwcm9wZXJ0eUluZm8udHlwZTtcbiAgICB2YXIgYXR0cmlidXRlVmFsdWU7XG5cbiAgICBpZiAoX3R5cGUgPT09IEJPT0xFQU4gfHwgX3R5cGUgPT09IE9WRVJMT0FERURfQk9PTEVBTiAmJiB2YWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgLy8gSWYgYXR0cmlidXRlIHR5cGUgaXMgYm9vbGVhbiwgd2Uga25vdyBmb3Igc3VyZSBpdCB3b24ndCBiZSBhbiBleGVjdXRpb24gc2lua1xuICAgICAgLy8gYW5kIHdlIHdvbid0IHJlcXVpcmUgVHJ1c3RlZCBUeXBlIGhlcmUuXG4gICAgICBhdHRyaWJ1dGVWYWx1ZSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBgc2V0QXR0cmlidXRlYCB3aXRoIG9iamVjdHMgYmVjb21lcyBvbmx5IGBbb2JqZWN0XWAgaW4gSUU4LzksXG4gICAgICAvLyAoJycgKyB2YWx1ZSkgbWFrZXMgaXQgb3V0cHV0IHRoZSBjb3JyZWN0IHRvU3RyaW5nKCktdmFsdWUuXG4gICAgICB7XG4gICAgICAgIHtcbiAgICAgICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBhdHRyaWJ1dGVOYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gJycgKyB2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb3BlcnR5SW5mby5zYW5pdGl6ZVVSTCkge1xuICAgICAgICBzYW5pdGl6ZVVSTChhdHRyaWJ1dGVWYWx1ZS50b1N0cmluZygpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoYXR0cmlidXRlTmFtZXNwYWNlKSB7XG4gICAgICBub2RlLnNldEF0dHJpYnV0ZU5TKGF0dHJpYnV0ZU5hbWVzcGFjZSwgYXR0cmlidXRlTmFtZSwgYXR0cmlidXRlVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBub2RlLnNldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lLCBhdHRyaWJ1dGVWYWx1ZSk7XG4gICAgfVxuICB9XG59XG5cbi8vIEFUVEVOVElPTlxuLy8gV2hlbiBhZGRpbmcgbmV3IHN5bWJvbHMgdG8gdGhpcyBmaWxlLFxuLy8gUGxlYXNlIGNvbnNpZGVyIGFsc28gYWRkaW5nIHRvICdyZWFjdC1kZXZ0b29scy1zaGFyZWQvc3JjL2JhY2tlbmQvUmVhY3RTeW1ib2xzJ1xuLy8gVGhlIFN5bWJvbCB1c2VkIHRvIHRhZyB0aGUgUmVhY3RFbGVtZW50LWxpa2UgdHlwZXMuXG52YXIgUkVBQ1RfRUxFTUVOVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZWxlbWVudCcpO1xudmFyIFJFQUNUX1BPUlRBTF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucG9ydGFsJyk7XG52YXIgUkVBQ1RfRlJBR01FTlRfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmZyYWdtZW50Jyk7XG52YXIgUkVBQ1RfU1RSSUNUX01PREVfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN0cmljdF9tb2RlJyk7XG52YXIgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnByb2ZpbGVyJyk7XG52YXIgUkVBQ1RfUFJPVklERVJfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnByb3ZpZGVyJyk7XG52YXIgUkVBQ1RfQ09OVEVYVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuY29udGV4dCcpO1xudmFyIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5mb3J3YXJkX3JlZicpO1xudmFyIFJFQUNUX1NVU1BFTlNFX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5zdXNwZW5zZScpO1xudmFyIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlX2xpc3QnKTtcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5tZW1vJyk7XG52YXIgUkVBQ1RfTEFaWV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QubGF6eScpO1xudmFyIFJFQUNUX1NDT1BFX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5zY29wZScpO1xudmFyIFJFQUNUX0RFQlVHX1RSQUNJTkdfTU9ERV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZGVidWdfdHJhY2VfbW9kZScpO1xudmFyIFJFQUNUX09GRlNDUkVFTl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Qub2Zmc2NyZWVuJyk7XG52YXIgUkVBQ1RfTEVHQUNZX0hJRERFTl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QubGVnYWN5X2hpZGRlbicpO1xudmFyIFJFQUNUX0NBQ0hFX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5jYWNoZScpO1xudmFyIFJFQUNUX1RSQUNJTkdfTUFSS0VSX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC50cmFjaW5nX21hcmtlcicpO1xudmFyIE1BWUJFX0lURVJBVE9SX1NZTUJPTCA9IFN5bWJvbC5pdGVyYXRvcjtcbnZhciBGQVVYX0lURVJBVE9SX1NZTUJPTCA9ICdAQGl0ZXJhdG9yJztcbmZ1bmN0aW9uIGdldEl0ZXJhdG9yRm4obWF5YmVJdGVyYWJsZSkge1xuICBpZiAobWF5YmVJdGVyYWJsZSA9PT0gbnVsbCB8fCB0eXBlb2YgbWF5YmVJdGVyYWJsZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHZhciBtYXliZUl0ZXJhdG9yID0gTUFZQkVfSVRFUkFUT1JfU1lNQk9MICYmIG1heWJlSXRlcmFibGVbTUFZQkVfSVRFUkFUT1JfU1lNQk9MXSB8fCBtYXliZUl0ZXJhYmxlW0ZBVVhfSVRFUkFUT1JfU1lNQk9MXTtcblxuICBpZiAodHlwZW9mIG1heWJlSXRlcmF0b3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gbWF5YmVJdGVyYXRvcjtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG52YXIgYXNzaWduID0gT2JqZWN0LmFzc2lnbjtcblxuLy8gSGVscGVycyB0byBwYXRjaCBjb25zb2xlLmxvZ3MgdG8gYXZvaWQgbG9nZ2luZyBkdXJpbmcgc2lkZS1lZmZlY3QgZnJlZVxuLy8gcmVwbGF5aW5nIG9uIHJlbmRlciBmdW5jdGlvbi4gVGhpcyBjdXJyZW50bHkgb25seSBwYXRjaGVzIHRoZSBvYmplY3Rcbi8vIGxhemlseSB3aGljaCB3b24ndCBjb3ZlciBpZiB0aGUgbG9nIGZ1bmN0aW9uIHdhcyBleHRyYWN0ZWQgZWFnZXJseS5cbi8vIFdlIGNvdWxkIGFsc28gZWFnZXJseSBwYXRjaCB0aGUgbWV0aG9kLlxudmFyIGRpc2FibGVkRGVwdGggPSAwO1xudmFyIHByZXZMb2c7XG52YXIgcHJldkluZm87XG52YXIgcHJldldhcm47XG52YXIgcHJldkVycm9yO1xudmFyIHByZXZHcm91cDtcbnZhciBwcmV2R3JvdXBDb2xsYXBzZWQ7XG52YXIgcHJldkdyb3VwRW5kO1xuXG5mdW5jdGlvbiBkaXNhYmxlZExvZygpIHt9XG5cbmRpc2FibGVkTG9nLl9fcmVhY3REaXNhYmxlZExvZyA9IHRydWU7XG5mdW5jdGlvbiBkaXNhYmxlTG9ncygpIHtcbiAge1xuICAgIGlmIChkaXNhYmxlZERlcHRoID09PSAwKSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICAgIHByZXZMb2cgPSBjb25zb2xlLmxvZztcbiAgICAgIHByZXZJbmZvID0gY29uc29sZS5pbmZvO1xuICAgICAgcHJldldhcm4gPSBjb25zb2xlLndhcm47XG4gICAgICBwcmV2RXJyb3IgPSBjb25zb2xlLmVycm9yO1xuICAgICAgcHJldkdyb3VwID0gY29uc29sZS5ncm91cDtcbiAgICAgIHByZXZHcm91cENvbGxhcHNlZCA9IGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQ7XG4gICAgICBwcmV2R3JvdXBFbmQgPSBjb25zb2xlLmdyb3VwRW5kOyAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE5MDk5XG5cbiAgICAgIHZhciBwcm9wcyA9IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICB2YWx1ZTogZGlzYWJsZWRMb2csXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lIEZsb3cgdGhpbmtzIGNvbnNvbGUgaXMgaW1tdXRhYmxlLlxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XG4gICAgICAgIGluZm86IHByb3BzLFxuICAgICAgICBsb2c6IHByb3BzLFxuICAgICAgICB3YXJuOiBwcm9wcyxcbiAgICAgICAgZXJyb3I6IHByb3BzLFxuICAgICAgICBncm91cDogcHJvcHMsXG4gICAgICAgIGdyb3VwQ29sbGFwc2VkOiBwcm9wcyxcbiAgICAgICAgZ3JvdXBFbmQ6IHByb3BzXG4gICAgICB9KTtcbiAgICAgIC8qIGVzbGludC1lbmFibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgfVxuXG4gICAgZGlzYWJsZWREZXB0aCsrO1xuICB9XG59XG5mdW5jdGlvbiByZWVuYWJsZUxvZ3MoKSB7XG4gIHtcbiAgICBkaXNhYmxlZERlcHRoLS07XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgICB2YXIgcHJvcHMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgIH07IC8vICRGbG93Rml4TWUgRmxvdyB0aGlua3MgY29uc29sZSBpcyBpbW11dGFibGUuXG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNvbnNvbGUsIHtcbiAgICAgICAgbG9nOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZMb2dcbiAgICAgICAgfSksXG4gICAgICAgIGluZm86IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkluZm9cbiAgICAgICAgfSksXG4gICAgICAgIHdhcm46IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldldhcm5cbiAgICAgICAgfSksXG4gICAgICAgIGVycm9yOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZFcnJvclxuICAgICAgICB9KSxcbiAgICAgICAgZ3JvdXA6IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cENvbGxhcHNlZDogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBDb2xsYXBzZWRcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwRW5kOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZHcm91cEVuZFxuICAgICAgICB9KVxuICAgICAgfSk7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgIH1cblxuICAgIGlmIChkaXNhYmxlZERlcHRoIDwgMCkge1xuICAgICAgZXJyb3IoJ2Rpc2FibGVkRGVwdGggZmVsbCBiZWxvdyB6ZXJvLiAnICsgJ1RoaXMgaXMgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXI7XG52YXIgcHJlZml4O1xuZnVuY3Rpb24gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICBpZiAocHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEV4dHJhY3QgdGhlIFZNIHNwZWNpZmljIHByZWZpeCB1c2VkIGJ5IGVhY2ggbGluZS5cbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIHZhciBtYXRjaCA9IHguc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLyk7XG4gICAgICAgIHByZWZpeCA9IG1hdGNoICYmIG1hdGNoWzFdIHx8ICcnO1xuICAgICAgfVxuICAgIH0gLy8gV2UgdXNlIHRoZSBwcmVmaXggdG8gZW5zdXJlIG91ciBzdGFja3MgbGluZSB1cCB3aXRoIG5hdGl2ZSBzdGFjayBmcmFtZXMuXG5cblxuICAgIHJldHVybiAnXFxuJyArIHByZWZpeCArIG5hbWU7XG4gIH1cbn1cbnZhciByZWVudHJ5ID0gZmFsc2U7XG52YXIgY29tcG9uZW50RnJhbWVDYWNoZTtcblxue1xuICB2YXIgUG9zc2libHlXZWFrTWFwID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgPyBXZWFrTWFwIDogTWFwO1xuICBjb21wb25lbnRGcmFtZUNhY2hlID0gbmV3IFBvc3NpYmx5V2Vha01hcCgpO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBjb25zdHJ1Y3QpIHtcbiAgLy8gSWYgc29tZXRoaW5nIGFza2VkIGZvciBhIHN0YWNrIGluc2lkZSBhIGZha2UgcmVuZGVyLCBpdCBzaG91bGQgZ2V0IGlnbm9yZWQuXG4gIGlmICggIWZuIHx8IHJlZW50cnkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICB7XG4gICAgdmFyIGZyYW1lID0gY29tcG9uZW50RnJhbWVDYWNoZS5nZXQoZm4pO1xuXG4gICAgaWYgKGZyYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmcmFtZTtcbiAgICB9XG4gIH1cblxuICB2YXIgY29udHJvbDtcbiAgcmVlbnRyeSA9IHRydWU7XG4gIHZhciBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlID0gRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7IC8vICRGbG93Rml4TWUgSXQgZG9lcyBhY2NlcHQgdW5kZWZpbmVkLlxuXG4gIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gdW5kZWZpbmVkO1xuICB2YXIgcHJldmlvdXNEaXNwYXRjaGVyO1xuXG4gIHtcbiAgICBwcmV2aW91c0Rpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQ7IC8vIFNldCB0aGUgZGlzcGF0Y2hlciBpbiBERVYgYmVjYXVzZSB0aGlzIG1pZ2h0IGJlIGNhbGwgaW4gdGhlIHJlbmRlciBmdW5jdGlvblxuICAgIC8vIGZvciB3YXJuaW5ncy5cblxuICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIuY3VycmVudCA9IG51bGw7XG4gICAgZGlzYWJsZUxvZ3MoKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgLy8gVGhpcyBzaG91bGQgdGhyb3cuXG4gICAgaWYgKGNvbnN0cnVjdCkge1xuICAgICAgLy8gU29tZXRoaW5nIHNob3VsZCBiZSBzZXR0aW5nIHRoZSBwcm9wcyBpbiB0aGUgY29uc3RydWN0b3IuXG4gICAgICB2YXIgRmFrZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgIH07IC8vICRGbG93Rml4TWVcblxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmFrZS5wcm90b3R5cGUsICdwcm9wcycsIHtcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgLy8gV2UgdXNlIGEgdGhyb3dpbmcgc2V0dGVyIGluc3RlYWQgb2YgZnJvemVuIG9yIG5vbi13cml0YWJsZSBwcm9wc1xuICAgICAgICAgIC8vIGJlY2F1c2UgdGhhdCB3b24ndCB0aHJvdyBpbiBhIG5vbi1zdHJpY3QgbW9kZSBmdW5jdGlvbi5cbiAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSAnb2JqZWN0JyAmJiBSZWZsZWN0LmNvbnN0cnVjdCkge1xuICAgICAgICAvLyBXZSBjb25zdHJ1Y3QgYSBkaWZmZXJlbnQgY29udHJvbCBmb3IgdGhpcyBjYXNlIHRvIGluY2x1ZGUgYW55IGV4dHJhXG4gICAgICAgIC8vIGZyYW1lcyBhZGRlZCBieSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoRmFrZSwgW10pO1xuICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgY29udHJvbCA9IHg7XG4gICAgICAgIH1cblxuICAgICAgICBSZWZsZWN0LmNvbnN0cnVjdChmbiwgW10sIEZha2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBGYWtlLmNhbGwoKTtcbiAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICB9XG5cbiAgICAgICAgZm4uY2FsbChGYWtlLnByb3RvdHlwZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgfVxuXG4gICAgICBmbigpO1xuICAgIH1cbiAgfSBjYXRjaCAoc2FtcGxlKSB7XG4gICAgLy8gVGhpcyBpcyBpbmxpbmVkIG1hbnVhbGx5IGJlY2F1c2UgY2xvc3VyZSBkb2Vzbid0IGRvIGl0IGZvciB1cy5cbiAgICBpZiAoc2FtcGxlICYmIGNvbnRyb2wgJiYgdHlwZW9mIHNhbXBsZS5zdGFjayA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIFRoaXMgZXh0cmFjdHMgdGhlIGZpcnN0IGZyYW1lIGZyb20gdGhlIHNhbXBsZSB0aGF0IGlzbid0IGFsc28gaW4gdGhlIGNvbnRyb2wuXG4gICAgICAvLyBTa2lwcGluZyBvbmUgZnJhbWUgdGhhdCB3ZSBhc3N1bWUgaXMgdGhlIGZyYW1lIHRoYXQgY2FsbHMgdGhlIHR3by5cbiAgICAgIHZhciBzYW1wbGVMaW5lcyA9IHNhbXBsZS5zdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgY29udHJvbExpbmVzID0gY29udHJvbC5zdGFjay5zcGxpdCgnXFxuJyk7XG4gICAgICB2YXIgcyA9IHNhbXBsZUxpbmVzLmxlbmd0aCAtIDE7XG4gICAgICB2YXIgYyA9IGNvbnRyb2xMaW5lcy5sZW5ndGggLSAxO1xuXG4gICAgICB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCAmJiBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgIC8vIFdlIGV4cGVjdCBhdCBsZWFzdCBvbmUgc3RhY2sgZnJhbWUgdG8gYmUgc2hhcmVkLlxuICAgICAgICAvLyBUeXBpY2FsbHkgdGhpcyB3aWxsIGJlIHRoZSByb290IG1vc3Qgb25lLiBIb3dldmVyLCBzdGFjayBmcmFtZXMgbWF5IGJlXG4gICAgICAgIC8vIGN1dCBvZmYgZHVlIHRvIG1heGltdW0gc3RhY2sgbGltaXRzLiBJbiB0aGlzIGNhc2UsIG9uZSBtYXliZSBjdXQgb2ZmXG4gICAgICAgIC8vIGVhcmxpZXIgdGhhbiB0aGUgb3RoZXIuIFdlIGFzc3VtZSB0aGF0IHRoZSBzYW1wbGUgaXMgbG9uZ2VyIG9yIHRoZSBzYW1lXG4gICAgICAgIC8vIGFuZCB0aGVyZSBmb3IgY3V0IG9mZiBlYXJsaWVyLiBTbyB3ZSBzaG91bGQgZmluZCB0aGUgcm9vdCBtb3N0IGZyYW1lIGluXG4gICAgICAgIC8vIHRoZSBzYW1wbGUgc29tZXdoZXJlIGluIHRoZSBjb250cm9sLlxuICAgICAgICBjLS07XG4gICAgICB9XG5cbiAgICAgIGZvciAoOyBzID49IDEgJiYgYyA+PSAwOyBzLS0sIGMtLSkge1xuICAgICAgICAvLyBOZXh0IHdlIGZpbmQgdGhlIGZpcnN0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHdoaWNoIHNob3VsZCBiZSB0aGVcbiAgICAgICAgLy8gZnJhbWUgdGhhdCBjYWxsZWQgb3VyIHNhbXBsZSBmdW5jdGlvbiBhbmQgdGhlIGNvbnRyb2wuXG4gICAgICAgIGlmIChzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgLy8gSW4gVjgsIHRoZSBmaXJzdCBsaW5lIGlzIGRlc2NyaWJpbmcgdGhlIG1lc3NhZ2UgYnV0IG90aGVyIFZNcyBkb24ndC5cbiAgICAgICAgICAvLyBJZiB3ZSdyZSBhYm91dCB0byByZXR1cm4gdGhlIGZpcnN0IGxpbmUsIGFuZCB0aGUgY29udHJvbCBpcyBhbHNvIG9uIHRoZSBzYW1lXG4gICAgICAgICAgLy8gbGluZSwgdGhhdCdzIGEgcHJldHR5IGdvb2QgaW5kaWNhdG9yIHRoYXQgb3VyIHNhbXBsZSB0aHJldyBhdCBzYW1lIGxpbmUgYXNcbiAgICAgICAgICAvLyB0aGUgY29udHJvbC4gSS5lLiBiZWZvcmUgd2UgZW50ZXJlZCB0aGUgc2FtcGxlIGZyYW1lLiBTbyB3ZSBpZ25vcmUgdGhpcyByZXN1bHQuXG4gICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHlvdSBwYXNzZWQgYSBjbGFzcyB0byBmdW5jdGlvbiBjb21wb25lbnQsIG9yIG5vbi1mdW5jdGlvbi5cbiAgICAgICAgICBpZiAocyAhPT0gMSB8fCBjICE9PSAxKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgIHMtLTtcbiAgICAgICAgICAgICAgYy0tOyAvLyBXZSBtYXkgc3RpbGwgaGF2ZSBzaW1pbGFyIGludGVybWVkaWF0ZSBmcmFtZXMgZnJvbSB0aGUgY29uc3RydWN0IGNhbGwuXG4gICAgICAgICAgICAgIC8vIFRoZSBuZXh0IG9uZSB0aGF0IGlzbid0IHRoZSBzYW1lIHNob3VsZCBiZSBvdXIgbWF0Y2ggdGhvdWdoLlxuXG4gICAgICAgICAgICAgIGlmIChjIDwgMCB8fCBzYW1wbGVMaW5lc1tzXSAhPT0gY29udHJvbExpbmVzW2NdKSB7XG4gICAgICAgICAgICAgICAgLy8gVjggYWRkcyBhIFwibmV3XCIgcHJlZml4IGZvciBuYXRpdmUgY2xhc3Nlcy4gTGV0J3MgcmVtb3ZlIGl0IHRvIG1ha2UgaXQgcHJldHRpZXIuXG4gICAgICAgICAgICAgICAgdmFyIF9mcmFtZSA9ICdcXG4nICsgc2FtcGxlTGluZXNbc10ucmVwbGFjZSgnIGF0IG5ldyAnLCAnIGF0ICcpOyAvLyBJZiBvdXIgY29tcG9uZW50IGZyYW1lIGlzIGxhYmVsZWQgXCI8YW5vbnltb3VzPlwiXG4gICAgICAgICAgICAgICAgLy8gYnV0IHdlIGhhdmUgYSB1c2VyLXByb3ZpZGVkIFwiZGlzcGxheU5hbWVcIlxuICAgICAgICAgICAgICAgIC8vIHNwbGljZSBpdCBpbiB0byBtYWtlIHRoZSBzdGFjayBtb3JlIHJlYWRhYmxlLlxuXG5cbiAgICAgICAgICAgICAgICBpZiAoZm4uZGlzcGxheU5hbWUgJiYgX2ZyYW1lLmluY2x1ZGVzKCc8YW5vbnltb3VzPicpKSB7XG4gICAgICAgICAgICAgICAgICBfZnJhbWUgPSBfZnJhbWUucmVwbGFjZSgnPGFub255bW91cz4nLCBmbi5kaXNwbGF5TmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgX2ZyYW1lKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IC8vIFJldHVybiB0aGUgbGluZSB3ZSBmb3VuZC5cblxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9mcmFtZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgcmVlbnRyeSA9IGZhbHNlO1xuXG4gICAge1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50ID0gcHJldmlvdXNEaXNwYXRjaGVyO1xuICAgICAgcmVlbmFibGVMb2dzKCk7XG4gICAgfVxuXG4gICAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlO1xuICB9IC8vIEZhbGxiYWNrIHRvIGp1c3QgdXNpbmcgdGhlIG5hbWUgaWYgd2UgY291bGRuJ3QgbWFrZSBpdCB0aHJvdy5cblxuXG4gIHZhciBuYW1lID0gZm4gPyBmbi5kaXNwbGF5TmFtZSB8fCBmbi5uYW1lIDogJyc7XG4gIHZhciBzeW50aGV0aWNGcmFtZSA9IG5hbWUgPyBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShuYW1lKSA6ICcnO1xuXG4gIHtcbiAgICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgc3ludGhldGljRnJhbWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzeW50aGV0aWNGcmFtZTtcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVDbGFzc0NvbXBvbmVudEZyYW1lKGN0b3IsIHNvdXJjZSwgb3duZXJGbikge1xuICB7XG4gICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUoY3RvciwgdHJ1ZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZShmbiwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmbiwgZmFsc2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNob3VsZENvbnN0cnVjdChDb21wb25lbnQpIHtcbiAgdmFyIHByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7XG4gIHJldHVybiAhIShwcm90b3R5cGUgJiYgcHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQpO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYodHlwZSwgc291cmNlLCBvd25lckZuKSB7XG5cbiAgaWYgKHR5cGUgPT0gbnVsbCkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHtcbiAgICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKHR5cGUsIHNob3VsZENvbnN0cnVjdCh0eXBlKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSh0eXBlKTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnU3VzcGVuc2UnKTtcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZUxpc3QnKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZSh0eXBlLnJlbmRlcik7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAvLyBNZW1vIG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICByZXR1cm4gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUudHlwZSwgc291cmNlLCBvd25lckZuKTtcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBMYXp5IG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihpbml0KHBheWxvYWQpLCBzb3VyY2UsIG93bmVyRm4pO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHt9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlRmliZXIoZmliZXIpIHtcbiAgdmFyIG93bmVyID0gIGZpYmVyLl9kZWJ1Z093bmVyID8gZmliZXIuX2RlYnVnT3duZXIudHlwZSA6IG51bGwgO1xuICB2YXIgc291cmNlID0gIGZpYmVyLl9kZWJ1Z1NvdXJjZSA7XG5cbiAgc3dpdGNoIChmaWJlci50YWcpIHtcbiAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoZmliZXIudHlwZSk7XG5cbiAgICBjYXNlIExhenlDb21wb25lbnQ6XG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoJ0xhenknKTtcblxuICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoJ1N1c3BlbnNlJyk7XG5cbiAgICBjYXNlIFN1c3BlbnNlTGlzdENvbXBvbmVudDpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnU3VzcGVuc2VMaXN0Jyk7XG5cbiAgICBjYXNlIEZ1bmN0aW9uQ29tcG9uZW50OlxuICAgIGNhc2UgSW5kZXRlcm1pbmF0ZUNvbXBvbmVudDpcbiAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICByZXR1cm4gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKGZpYmVyLnR5cGUpO1xuXG4gICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgICAgcmV0dXJuIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZShmaWJlci50eXBlLnJlbmRlcik7XG5cbiAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQ2xhc3NDb21wb25lbnRGcmFtZShmaWJlci50eXBlKTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJyc7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0U3RhY2tCeUZpYmVySW5EZXZBbmRQcm9kKHdvcmtJblByb2dyZXNzKSB7XG4gIHRyeSB7XG4gICAgdmFyIGluZm8gPSAnJztcbiAgICB2YXIgbm9kZSA9IHdvcmtJblByb2dyZXNzO1xuXG4gICAgZG8ge1xuICAgICAgaW5mbyArPSBkZXNjcmliZUZpYmVyKG5vZGUpO1xuICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgIH0gd2hpbGUgKG5vZGUpO1xuXG4gICAgcmV0dXJuIGluZm87XG4gIH0gY2F0Y2ggKHgpIHtcbiAgICByZXR1cm4gJ1xcbkVycm9yIGdlbmVyYXRpbmcgc3RhY2s6ICcgKyB4Lm1lc3NhZ2UgKyAnXFxuJyArIHguc3RhY2s7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0V3JhcHBlZE5hbWUob3V0ZXJUeXBlLCBpbm5lclR5cGUsIHdyYXBwZXJOYW1lKSB7XG4gIHZhciBkaXNwbGF5TmFtZSA9IG91dGVyVHlwZS5kaXNwbGF5TmFtZTtcblxuICBpZiAoZGlzcGxheU5hbWUpIHtcbiAgICByZXR1cm4gZGlzcGxheU5hbWU7XG4gIH1cblxuICB2YXIgZnVuY3Rpb25OYW1lID0gaW5uZXJUeXBlLmRpc3BsYXlOYW1lIHx8IGlubmVyVHlwZS5uYW1lIHx8ICcnO1xuICByZXR1cm4gZnVuY3Rpb25OYW1lICE9PSAnJyA/IHdyYXBwZXJOYW1lICsgXCIoXCIgKyBmdW5jdGlvbk5hbWUgKyBcIilcIiA6IHdyYXBwZXJOYW1lO1xufSAvLyBLZWVwIGluIHN5bmMgd2l0aCByZWFjdC1yZWNvbmNpbGVyL2dldENvbXBvbmVudE5hbWVGcm9tRmliZXJcblxuXG5mdW5jdGlvbiBnZXRDb250ZXh0TmFtZSh0eXBlKSB7XG4gIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8ICdDb250ZXh0Jztcbn0gLy8gTm90ZSB0aGF0IHRoZSByZWNvbmNpbGVyIHBhY2thZ2Ugc2hvdWxkIGdlbmVyYWxseSBwcmVmZXIgdG8gdXNlIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoKSBpbnN0ZWFkLlxuXG5cbmZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKSB7XG4gIGlmICh0eXBlID09IG51bGwpIHtcbiAgICAvLyBIb3N0IHJvb3QsIHRleHQgbm9kZSBvciBqdXN0IGludmFsaWQgdHlwZS5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHtcbiAgICBpZiAodHlwZW9mIHR5cGUudGFnID09PSAnbnVtYmVyJykge1xuICAgICAgZXJyb3IoJ1JlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgb2JqZWN0IGluIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSgpLiAnICsgJ1RoaXMgaXMgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgbnVsbDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgUkVBQ1RfRlJBR01FTlRfVFlQRTpcbiAgICAgIHJldHVybiAnRnJhZ21lbnQnO1xuXG4gICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgIHJldHVybiAnUG9ydGFsJztcblxuICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgIHJldHVybiAnUHJvZmlsZXInO1xuXG4gICAgY2FzZSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFOlxuICAgICAgcmV0dXJuICdTdHJpY3RNb2RlJztcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgIHJldHVybiAnU3VzcGVuc2UnO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICByZXR1cm4gJ1N1c3BlbnNlTGlzdCc7XG5cbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfQ09OVEVYVF9UWVBFOlxuICAgICAgICB2YXIgY29udGV4dCA9IHR5cGU7XG4gICAgICAgIHJldHVybiBnZXRDb250ZXh0TmFtZShjb250ZXh0KSArICcuQ29uc3VtZXInO1xuXG4gICAgICBjYXNlIFJFQUNUX1BST1ZJREVSX1RZUEU6XG4gICAgICAgIHZhciBwcm92aWRlciA9IHR5cGU7XG4gICAgICAgIHJldHVybiBnZXRDb250ZXh0TmFtZShwcm92aWRlci5fY29udGV4dCkgKyAnLlByb3ZpZGVyJztcblxuICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICByZXR1cm4gZ2V0V3JhcHBlZE5hbWUodHlwZSwgdHlwZS5yZW5kZXIsICdGb3J3YXJkUmVmJyk7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICB2YXIgb3V0ZXJOYW1lID0gdHlwZS5kaXNwbGF5TmFtZSB8fCBudWxsO1xuXG4gICAgICAgIGlmIChvdXRlck5hbWUgIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gb3V0ZXJOYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8ICdNZW1vJztcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGluaXQocGF5bG9hZCkpO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gZ2V0V3JhcHBlZE5hbWUkMShvdXRlclR5cGUsIGlubmVyVHlwZSwgd3JhcHBlck5hbWUpIHtcbiAgdmFyIGZ1bmN0aW9uTmFtZSA9IGlubmVyVHlwZS5kaXNwbGF5TmFtZSB8fCBpbm5lclR5cGUubmFtZSB8fCAnJztcbiAgcmV0dXJuIG91dGVyVHlwZS5kaXNwbGF5TmFtZSB8fCAoZnVuY3Rpb25OYW1lICE9PSAnJyA/IHdyYXBwZXJOYW1lICsgXCIoXCIgKyBmdW5jdGlvbk5hbWUgKyBcIilcIiA6IHdyYXBwZXJOYW1lKTtcbn0gLy8gS2VlcCBpbiBzeW5jIHdpdGggc2hhcmVkL2dldENvbXBvbmVudE5hbWVGcm9tVHlwZVxuXG5cbmZ1bmN0aW9uIGdldENvbnRleHROYW1lJDEodHlwZSkge1xuICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCAnQ29udGV4dCc7XG59XG5cbmZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHtcbiAgdmFyIHRhZyA9IGZpYmVyLnRhZyxcbiAgICAgIHR5cGUgPSBmaWJlci50eXBlO1xuXG4gIHN3aXRjaCAodGFnKSB7XG4gICAgY2FzZSBDYWNoZUNvbXBvbmVudDpcbiAgICAgIHJldHVybiAnQ2FjaGUnO1xuXG4gICAgY2FzZSBDb250ZXh0Q29uc3VtZXI6XG4gICAgICB2YXIgY29udGV4dCA9IHR5cGU7XG4gICAgICByZXR1cm4gZ2V0Q29udGV4dE5hbWUkMShjb250ZXh0KSArICcuQ29uc3VtZXInO1xuXG4gICAgY2FzZSBDb250ZXh0UHJvdmlkZXI6XG4gICAgICB2YXIgcHJvdmlkZXIgPSB0eXBlO1xuICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lJDEocHJvdmlkZXIuX2NvbnRleHQpICsgJy5Qcm92aWRlcic7XG5cbiAgICBjYXNlIERlaHlkcmF0ZWRGcmFnbWVudDpcbiAgICAgIHJldHVybiAnRGVoeWRyYXRlZEZyYWdtZW50JztcblxuICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgIHJldHVybiBnZXRXcmFwcGVkTmFtZSQxKHR5cGUsIHR5cGUucmVuZGVyLCAnRm9yd2FyZFJlZicpO1xuXG4gICAgY2FzZSBGcmFnbWVudDpcbiAgICAgIHJldHVybiAnRnJhZ21lbnQnO1xuXG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgLy8gSG9zdCBjb21wb25lbnQgdHlwZSBpcyB0aGUgZGlzcGxheSBuYW1lIChlLmcuIFwiZGl2XCIsIFwiVmlld1wiKVxuICAgICAgcmV0dXJuIHR5cGU7XG5cbiAgICBjYXNlIEhvc3RQb3J0YWw6XG4gICAgICByZXR1cm4gJ1BvcnRhbCc7XG5cbiAgICBjYXNlIEhvc3RSb290OlxuICAgICAgcmV0dXJuICdSb290JztcblxuICAgIGNhc2UgSG9zdFRleHQ6XG4gICAgICByZXR1cm4gJ1RleHQnO1xuXG4gICAgY2FzZSBMYXp5Q29tcG9uZW50OlxuICAgICAgLy8gTmFtZSBjb21lcyBmcm9tIHRoZSB0eXBlIGluIHRoaXMgY2FzZTsgd2UgZG9uJ3QgaGF2ZSBhIHRhZy5cbiAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSk7XG5cbiAgICBjYXNlIE1vZGU6XG4gICAgICBpZiAodHlwZSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRSkge1xuICAgICAgICAvLyBEb24ndCBiZSBsZXNzIHNwZWNpZmljIHRoYW4gc2hhcmVkL2dldENvbXBvbmVudE5hbWVGcm9tVHlwZVxuICAgICAgICByZXR1cm4gJ1N0cmljdE1vZGUnO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gJ01vZGUnO1xuXG4gICAgY2FzZSBPZmZzY3JlZW5Db21wb25lbnQ6XG4gICAgICByZXR1cm4gJ09mZnNjcmVlbic7XG5cbiAgICBjYXNlIFByb2ZpbGVyOlxuICAgICAgcmV0dXJuICdQcm9maWxlcic7XG5cbiAgICBjYXNlIFNjb3BlQ29tcG9uZW50OlxuICAgICAgcmV0dXJuICdTY29wZSc7XG5cbiAgICBjYXNlIFN1c3BlbnNlQ29tcG9uZW50OlxuICAgICAgcmV0dXJuICdTdXNwZW5zZSc7XG5cbiAgICBjYXNlIFN1c3BlbnNlTGlzdENvbXBvbmVudDpcbiAgICAgIHJldHVybiAnU3VzcGVuc2VMaXN0JztcblxuICAgIGNhc2UgVHJhY2luZ01hcmtlckNvbXBvbmVudDpcbiAgICAgIHJldHVybiAnVHJhY2luZ01hcmtlcic7XG4gICAgLy8gVGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhpcyB0YWdzIGNvbWUgZnJvbSB0aGUgdXNlci1wcm92aWRlZCB0eXBlOlxuXG4gICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICBjYXNlIEZ1bmN0aW9uQ29tcG9uZW50OlxuICAgIGNhc2UgSW5jb21wbGV0ZUNsYXNzQ29tcG9uZW50OlxuICAgIGNhc2UgSW5kZXRlcm1pbmF0ZUNvbXBvbmVudDpcbiAgICBjYXNlIE1lbW9Db21wb25lbnQ6XG4gICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgICAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBudWxsO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB0eXBlO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcblxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbnZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcbnZhciBjdXJyZW50ID0gbnVsbDtcbnZhciBpc1JlbmRlcmluZyA9IGZhbHNlO1xuZnVuY3Rpb24gZ2V0Q3VycmVudEZpYmVyT3duZXJOYW1lSW5EZXZPck51bGwoKSB7XG4gIHtcbiAgICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdmFyIG93bmVyID0gY3VycmVudC5fZGVidWdPd25lcjtcblxuICAgIGlmIChvd25lciAhPT0gbnVsbCAmJiB0eXBlb2Ygb3duZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihvd25lcik7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRGaWJlclN0YWNrSW5EZXYoKSB7XG4gIHtcbiAgICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH0gLy8gU2FmZSBiZWNhdXNlIGlmIGN1cnJlbnQgZmliZXIgZXhpc3RzLCB3ZSBhcmUgcmVjb25jaWxpbmcsXG4gICAgLy8gYW5kIGl0IGlzIGd1YXJhbnRlZWQgdG8gYmUgdGhlIHdvcmstaW4tcHJvZ3Jlc3MgdmVyc2lvbi5cblxuXG4gICAgcmV0dXJuIGdldFN0YWNrQnlGaWJlckluRGV2QW5kUHJvZChjdXJyZW50KTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXNldEN1cnJlbnRGaWJlcigpIHtcbiAge1xuICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0Q3VycmVudFN0YWNrID0gbnVsbDtcbiAgICBjdXJyZW50ID0gbnVsbDtcbiAgICBpc1JlbmRlcmluZyA9IGZhbHNlO1xuICB9XG59XG5mdW5jdGlvbiBzZXRDdXJyZW50RmliZXIoZmliZXIpIHtcbiAge1xuICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0Q3VycmVudFN0YWNrID0gZmliZXIgPT09IG51bGwgPyBudWxsIDogZ2V0Q3VycmVudEZpYmVyU3RhY2tJbkRldjtcbiAgICBjdXJyZW50ID0gZmliZXI7XG4gICAgaXNSZW5kZXJpbmcgPSBmYWxzZTtcbiAgfVxufVxuZnVuY3Rpb24gZ2V0Q3VycmVudEZpYmVyKCkge1xuICB7XG4gICAgcmV0dXJuIGN1cnJlbnQ7XG4gIH1cbn1cbmZ1bmN0aW9uIHNldElzUmVuZGVyaW5nKHJlbmRlcmluZykge1xuICB7XG4gICAgaXNSZW5kZXJpbmcgPSByZW5kZXJpbmc7XG4gIH1cbn1cblxuLy8gRmxvdyBkb2VzIG5vdCBhbGxvdyBzdHJpbmcgY29uY2F0ZW5hdGlvbiBvZiBtb3N0IG5vbi1zdHJpbmcgdHlwZXMuIFRvIHdvcmtcbi8vIGFyb3VuZCB0aGlzIGxpbWl0YXRpb24sIHdlIHVzZSBhbiBvcGFxdWUgdHlwZSB0aGF0IGNhbiBvbmx5IGJlIG9idGFpbmVkIGJ5XG4vLyBwYXNzaW5nIHRoZSB2YWx1ZSB0aHJvdWdoIGdldFRvU3RyaW5nVmFsdWUgZmlyc3QuXG5mdW5jdGlvbiB0b1N0cmluZyh2YWx1ZSkge1xuICAvLyBUaGUgY29lcmNpb24gc2FmZXR5IGNoZWNrIGlzIHBlcmZvcm1lZCBpbiBnZXRUb1N0cmluZ1ZhbHVlKCkuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9zYWZlLXN0cmluZy1jb2VyY2lvblxuICByZXR1cm4gJycgKyB2YWx1ZTtcbn1cbmZ1bmN0aW9uIGdldFRvU3RyaW5nVmFsdWUodmFsdWUpIHtcbiAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICBjYXNlICdib29sZWFuJzpcbiAgICBjYXNlICdudW1iZXInOlxuICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgY2FzZSAndW5kZWZpbmVkJzpcbiAgICAgIHJldHVybiB2YWx1ZTtcblxuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICB7XG4gICAgICAgIGNoZWNrRm9ybUZpZWxkVmFsdWVTdHJpbmdDb2VyY2lvbih2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB2YWx1ZTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICAvLyBmdW5jdGlvbiwgc3ltYm9sIGFyZSBhc3NpZ25lZCBhcyBlbXB0eSBzdHJpbmdzXG4gICAgICByZXR1cm4gJyc7XG4gIH1cbn1cblxudmFyIGhhc1JlYWRPbmx5VmFsdWUgPSB7XG4gIGJ1dHRvbjogdHJ1ZSxcbiAgY2hlY2tib3g6IHRydWUsXG4gIGltYWdlOiB0cnVlLFxuICBoaWRkZW46IHRydWUsXG4gIHJhZGlvOiB0cnVlLFxuICByZXNldDogdHJ1ZSxcbiAgc3VibWl0OiB0cnVlXG59O1xuZnVuY3Rpb24gY2hlY2tDb250cm9sbGVkVmFsdWVQcm9wcyh0YWdOYW1lLCBwcm9wcykge1xuICB7XG4gICAgaWYgKCEoaGFzUmVhZE9ubHlWYWx1ZVtwcm9wcy50eXBlXSB8fCBwcm9wcy5vbkNoYW5nZSB8fCBwcm9wcy5vbklucHV0IHx8IHByb3BzLnJlYWRPbmx5IHx8IHByb3BzLmRpc2FibGVkIHx8IHByb3BzLnZhbHVlID09IG51bGwpKSB7XG4gICAgICBlcnJvcignWW91IHByb3ZpZGVkIGEgYHZhbHVlYCBwcm9wIHRvIGEgZm9ybSBmaWVsZCB3aXRob3V0IGFuICcgKyAnYG9uQ2hhbmdlYCBoYW5kbGVyLiBUaGlzIHdpbGwgcmVuZGVyIGEgcmVhZC1vbmx5IGZpZWxkLiBJZiAnICsgJ3RoZSBmaWVsZCBzaG91bGQgYmUgbXV0YWJsZSB1c2UgYGRlZmF1bHRWYWx1ZWAuIE90aGVyd2lzZSwgJyArICdzZXQgZWl0aGVyIGBvbkNoYW5nZWAgb3IgYHJlYWRPbmx5YC4nKTtcbiAgICB9XG5cbiAgICBpZiAoIShwcm9wcy5vbkNoYW5nZSB8fCBwcm9wcy5yZWFkT25seSB8fCBwcm9wcy5kaXNhYmxlZCB8fCBwcm9wcy5jaGVja2VkID09IG51bGwpKSB7XG4gICAgICBlcnJvcignWW91IHByb3ZpZGVkIGEgYGNoZWNrZWRgIHByb3AgdG8gYSBmb3JtIGZpZWxkIHdpdGhvdXQgYW4gJyArICdgb25DaGFuZ2VgIGhhbmRsZXIuIFRoaXMgd2lsbCByZW5kZXIgYSByZWFkLW9ubHkgZmllbGQuIElmICcgKyAndGhlIGZpZWxkIHNob3VsZCBiZSBtdXRhYmxlIHVzZSBgZGVmYXVsdENoZWNrZWRgLiBPdGhlcndpc2UsICcgKyAnc2V0IGVpdGhlciBgb25DaGFuZ2VgIG9yIGByZWFkT25seWAuJyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGlzQ2hlY2thYmxlKGVsZW0pIHtcbiAgdmFyIHR5cGUgPSBlbGVtLnR5cGU7XG4gIHZhciBub2RlTmFtZSA9IGVsZW0ubm9kZU5hbWU7XG4gIHJldHVybiBub2RlTmFtZSAmJiBub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnaW5wdXQnICYmICh0eXBlID09PSAnY2hlY2tib3gnIHx8IHR5cGUgPT09ICdyYWRpbycpO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFja2VyKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUuX3ZhbHVlVHJhY2tlcjtcbn1cblxuZnVuY3Rpb24gZGV0YWNoVHJhY2tlcihub2RlKSB7XG4gIG5vZGUuX3ZhbHVlVHJhY2tlciA9IG51bGw7XG59XG5cbmZ1bmN0aW9uIGdldFZhbHVlRnJvbU5vZGUobm9kZSkge1xuICB2YXIgdmFsdWUgPSAnJztcblxuICBpZiAoIW5vZGUpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBpZiAoaXNDaGVja2FibGUobm9kZSkpIHtcbiAgICB2YWx1ZSA9IG5vZGUuY2hlY2tlZCA/ICd0cnVlJyA6ICdmYWxzZSc7XG4gIH0gZWxzZSB7XG4gICAgdmFsdWUgPSBub2RlLnZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5mdW5jdGlvbiB0cmFja1ZhbHVlT25Ob2RlKG5vZGUpIHtcbiAgdmFyIHZhbHVlRmllbGQgPSBpc0NoZWNrYWJsZShub2RlKSA/ICdjaGVja2VkJyA6ICd2YWx1ZSc7XG4gIHZhciBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihub2RlLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwgdmFsdWVGaWVsZCk7XG5cbiAge1xuICAgIGNoZWNrRm9ybUZpZWxkVmFsdWVTdHJpbmdDb2VyY2lvbihub2RlW3ZhbHVlRmllbGRdKTtcbiAgfVxuXG4gIHZhciBjdXJyZW50VmFsdWUgPSAnJyArIG5vZGVbdmFsdWVGaWVsZF07IC8vIGlmIHNvbWVvbmUgaGFzIGFscmVhZHkgZGVmaW5lZCBhIHZhbHVlIG9yIFNhZmFyaSwgdGhlbiBiYWlsXG4gIC8vIGFuZCBkb24ndCB0cmFjayB2YWx1ZSB3aWxsIGNhdXNlIG92ZXIgcmVwb3J0aW5nIG9mIGNoYW5nZXMsXG4gIC8vIGJ1dCBpdCdzIGJldHRlciB0aGVuIGEgaGFyZCBmYWlsdXJlXG4gIC8vIChuZWVkZWQgZm9yIGNlcnRhaW4gdGVzdHMgdGhhdCBzcHlPbiBpbnB1dCB2YWx1ZXMgYW5kIFNhZmFyaSlcblxuICBpZiAobm9kZS5oYXNPd25Qcm9wZXJ0eSh2YWx1ZUZpZWxkKSB8fCB0eXBlb2YgZGVzY3JpcHRvciA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIGRlc2NyaXB0b3IuZ2V0ICE9PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBkZXNjcmlwdG9yLnNldCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBnZXQgPSBkZXNjcmlwdG9yLmdldCxcbiAgICAgIHNldCA9IGRlc2NyaXB0b3Iuc2V0O1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkobm9kZSwgdmFsdWVGaWVsZCwge1xuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBnZXQuY2FsbCh0aGlzKTtcbiAgICB9LFxuICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICB7XG4gICAgICAgIGNoZWNrRm9ybUZpZWxkVmFsdWVTdHJpbmdDb2VyY2lvbih2YWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIGN1cnJlbnRWYWx1ZSA9ICcnICsgdmFsdWU7XG4gICAgICBzZXQuY2FsbCh0aGlzLCB2YWx1ZSk7XG4gICAgfVxuICB9KTsgLy8gV2UgY291bGQndmUgcGFzc2VkIHRoaXMgdGhlIGZpcnN0IHRpbWVcbiAgLy8gYnV0IGl0IHRyaWdnZXJzIGEgYnVnIGluIElFMTEgYW5kIEVkZ2UgMTQvMTUuXG4gIC8vIENhbGxpbmcgZGVmaW5lUHJvcGVydHkoKSBhZ2FpbiBzaG91bGQgYmUgZXF1aXZhbGVudC5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMTc2OFxuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShub2RlLCB2YWx1ZUZpZWxkLCB7XG4gICAgZW51bWVyYWJsZTogZGVzY3JpcHRvci5lbnVtZXJhYmxlXG4gIH0pO1xuICB2YXIgdHJhY2tlciA9IHtcbiAgICBnZXRWYWx1ZTogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGN1cnJlbnRWYWx1ZTtcbiAgICB9LFxuICAgIHNldFZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIHtcbiAgICAgICAgY2hlY2tGb3JtRmllbGRWYWx1ZVN0cmluZ0NvZXJjaW9uKHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgY3VycmVudFZhbHVlID0gJycgKyB2YWx1ZTtcbiAgICB9LFxuICAgIHN0b3BUcmFja2luZzogZnVuY3Rpb24gKCkge1xuICAgICAgZGV0YWNoVHJhY2tlcihub2RlKTtcbiAgICAgIGRlbGV0ZSBub2RlW3ZhbHVlRmllbGRdO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHRyYWNrZXI7XG59XG5cbmZ1bmN0aW9uIHRyYWNrKG5vZGUpIHtcbiAgaWYgKGdldFRyYWNrZXIobm9kZSkpIHtcbiAgICByZXR1cm47XG4gIH0gLy8gVE9ETzogT25jZSBpdCdzIGp1c3QgRmliZXIgd2UgY2FuIG1vdmUgdGhpcyB0byBub2RlLl93cmFwcGVyU3RhdGVcblxuXG4gIG5vZGUuX3ZhbHVlVHJhY2tlciA9IHRyYWNrVmFsdWVPbk5vZGUobm9kZSk7XG59XG5mdW5jdGlvbiB1cGRhdGVWYWx1ZUlmQ2hhbmdlZChub2RlKSB7XG4gIGlmICghbm9kZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciB0cmFja2VyID0gZ2V0VHJhY2tlcihub2RlKTsgLy8gaWYgdGhlcmUgaXMgbm8gdHJhY2tlciBhdCB0aGlzIHBvaW50IGl0J3MgdW5saWtlbHlcbiAgLy8gdGhhdCB0cnlpbmcgYWdhaW4gd2lsbCBzdWNjZWVkXG5cbiAgaWYgKCF0cmFja2VyKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB2YXIgbGFzdFZhbHVlID0gdHJhY2tlci5nZXRWYWx1ZSgpO1xuICB2YXIgbmV4dFZhbHVlID0gZ2V0VmFsdWVGcm9tTm9kZShub2RlKTtcblxuICBpZiAobmV4dFZhbHVlICE9PSBsYXN0VmFsdWUpIHtcbiAgICB0cmFja2VyLnNldFZhbHVlKG5leHRWYWx1ZSk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGdldEFjdGl2ZUVsZW1lbnQoZG9jKSB7XG4gIGRvYyA9IGRvYyB8fCAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyA/IGRvY3VtZW50IDogdW5kZWZpbmVkKTtcblxuICBpZiAodHlwZW9mIGRvYyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGRvYy5hY3RpdmVFbGVtZW50IHx8IGRvYy5ib2R5O1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGRvYy5ib2R5O1xuICB9XG59XG5cbnZhciBkaWRXYXJuVmFsdWVEZWZhdWx0VmFsdWUgPSBmYWxzZTtcbnZhciBkaWRXYXJuQ2hlY2tlZERlZmF1bHRDaGVja2VkID0gZmFsc2U7XG52YXIgZGlkV2FybkNvbnRyb2xsZWRUb1VuY29udHJvbGxlZCA9IGZhbHNlO1xudmFyIGRpZFdhcm5VbmNvbnRyb2xsZWRUb0NvbnRyb2xsZWQgPSBmYWxzZTtcblxuZnVuY3Rpb24gaXNDb250cm9sbGVkKHByb3BzKSB7XG4gIHZhciB1c2VzQ2hlY2tlZCA9IHByb3BzLnR5cGUgPT09ICdjaGVja2JveCcgfHwgcHJvcHMudHlwZSA9PT0gJ3JhZGlvJztcbiAgcmV0dXJuIHVzZXNDaGVja2VkID8gcHJvcHMuY2hlY2tlZCAhPSBudWxsIDogcHJvcHMudmFsdWUgIT0gbnVsbDtcbn1cbi8qKlxuICogSW1wbGVtZW50cyBhbiA8aW5wdXQ+IGhvc3QgY29tcG9uZW50IHRoYXQgYWxsb3dzIHNldHRpbmcgdGhlc2Ugb3B0aW9uYWxcbiAqIHByb3BzOiBgY2hlY2tlZGAsIGB2YWx1ZWAsIGBkZWZhdWx0Q2hlY2tlZGAsIGFuZCBgZGVmYXVsdFZhbHVlYC5cbiAqXG4gKiBJZiBgY2hlY2tlZGAgb3IgYHZhbHVlYCBhcmUgbm90IHN1cHBsaWVkIChvciBudWxsL3VuZGVmaW5lZCksIHVzZXIgYWN0aW9uc1xuICogdGhhdCBhZmZlY3QgdGhlIGNoZWNrZWQgc3RhdGUgb3IgdmFsdWUgd2lsbCB0cmlnZ2VyIHVwZGF0ZXMgdG8gdGhlIGVsZW1lbnQuXG4gKlxuICogSWYgdGhleSBhcmUgc3VwcGxpZWQgKGFuZCBub3QgbnVsbC91bmRlZmluZWQpLCB0aGUgcmVuZGVyZWQgZWxlbWVudCB3aWxsIG5vdFxuICogdHJpZ2dlciB1cGRhdGVzIHRvIHRoZSBlbGVtZW50LiBJbnN0ZWFkLCB0aGUgcHJvcHMgbXVzdCBjaGFuZ2UgaW4gb3JkZXIgZm9yXG4gKiB0aGUgcmVuZGVyZWQgZWxlbWVudCB0byBiZSB1cGRhdGVkLlxuICpcbiAqIFRoZSByZW5kZXJlZCBlbGVtZW50IHdpbGwgYmUgaW5pdGlhbGl6ZWQgYXMgdW5jaGVja2VkIChvciBgZGVmYXVsdENoZWNrZWRgKVxuICogd2l0aCBhbiBlbXB0eSB2YWx1ZSAob3IgYGRlZmF1bHRWYWx1ZWApLlxuICpcbiAqIFNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDEyL1dELWh0bWw1LTIwMTIxMDI1L3RoZS1pbnB1dC1lbGVtZW50Lmh0bWxcbiAqL1xuXG5cbmZ1bmN0aW9uIGdldEhvc3RQcm9wcyhlbGVtZW50LCBwcm9wcykge1xuICB2YXIgbm9kZSA9IGVsZW1lbnQ7XG4gIHZhciBjaGVja2VkID0gcHJvcHMuY2hlY2tlZDtcbiAgdmFyIGhvc3RQcm9wcyA9IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICBkZWZhdWx0Q2hlY2tlZDogdW5kZWZpbmVkLFxuICAgIGRlZmF1bHRWYWx1ZTogdW5kZWZpbmVkLFxuICAgIHZhbHVlOiB1bmRlZmluZWQsXG4gICAgY2hlY2tlZDogY2hlY2tlZCAhPSBudWxsID8gY2hlY2tlZCA6IG5vZGUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZFxuICB9KTtcbiAgcmV0dXJuIGhvc3RQcm9wcztcbn1cbmZ1bmN0aW9uIGluaXRXcmFwcGVyU3RhdGUoZWxlbWVudCwgcHJvcHMpIHtcbiAge1xuICAgIGNoZWNrQ29udHJvbGxlZFZhbHVlUHJvcHMoJ2lucHV0JywgcHJvcHMpO1xuXG4gICAgaWYgKHByb3BzLmNoZWNrZWQgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0Q2hlY2tlZCAhPT0gdW5kZWZpbmVkICYmICFkaWRXYXJuQ2hlY2tlZERlZmF1bHRDaGVja2VkKSB7XG4gICAgICBlcnJvcignJXMgY29udGFpbnMgYW4gaW5wdXQgb2YgdHlwZSAlcyB3aXRoIGJvdGggY2hlY2tlZCBhbmQgZGVmYXVsdENoZWNrZWQgcHJvcHMuICcgKyAnSW5wdXQgZWxlbWVudHMgbXVzdCBiZSBlaXRoZXIgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgJyArICcoc3BlY2lmeSBlaXRoZXIgdGhlIGNoZWNrZWQgcHJvcCwgb3IgdGhlIGRlZmF1bHRDaGVja2VkIHByb3AsIGJ1dCBub3QgJyArICdib3RoKS4gRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCBpbnB1dCAnICsgJ2VsZW1lbnQgYW5kIHJlbW92ZSBvbmUgb2YgdGhlc2UgcHJvcHMuIE1vcmUgaW5mbzogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvY29udHJvbGxlZC1jb21wb25lbnRzJywgZ2V0Q3VycmVudEZpYmVyT3duZXJOYW1lSW5EZXZPck51bGwoKSB8fCAnQSBjb21wb25lbnQnLCBwcm9wcy50eXBlKTtcblxuICAgICAgZGlkV2FybkNoZWNrZWREZWZhdWx0Q2hlY2tlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnZhbHVlICE9PSB1bmRlZmluZWQgJiYgcHJvcHMuZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQgJiYgIWRpZFdhcm5WYWx1ZURlZmF1bHRWYWx1ZSkge1xuICAgICAgZXJyb3IoJyVzIGNvbnRhaW5zIGFuIGlucHV0IG9mIHR5cGUgJXMgd2l0aCBib3RoIHZhbHVlIGFuZCBkZWZhdWx0VmFsdWUgcHJvcHMuICcgKyAnSW5wdXQgZWxlbWVudHMgbXVzdCBiZSBlaXRoZXIgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgJyArICcoc3BlY2lmeSBlaXRoZXIgdGhlIHZhbHVlIHByb3AsIG9yIHRoZSBkZWZhdWx0VmFsdWUgcHJvcCwgYnV0IG5vdCAnICsgJ2JvdGgpLiBEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIGlucHV0ICcgKyAnZWxlbWVudCBhbmQgcmVtb3ZlIG9uZSBvZiB0aGVzZSBwcm9wcy4gTW9yZSBpbmZvOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHMnLCBnZXRDdXJyZW50RmliZXJPd25lck5hbWVJbkRldk9yTnVsbCgpIHx8ICdBIGNvbXBvbmVudCcsIHByb3BzLnR5cGUpO1xuXG4gICAgICBkaWRXYXJuVmFsdWVEZWZhdWx0VmFsdWUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHZhciBub2RlID0gZWxlbWVudDtcbiAgdmFyIGRlZmF1bHRWYWx1ZSA9IHByb3BzLmRlZmF1bHRWYWx1ZSA9PSBudWxsID8gJycgOiBwcm9wcy5kZWZhdWx0VmFsdWU7XG4gIG5vZGUuX3dyYXBwZXJTdGF0ZSA9IHtcbiAgICBpbml0aWFsQ2hlY2tlZDogcHJvcHMuY2hlY2tlZCAhPSBudWxsID8gcHJvcHMuY2hlY2tlZCA6IHByb3BzLmRlZmF1bHRDaGVja2VkLFxuICAgIGluaXRpYWxWYWx1ZTogZ2V0VG9TdHJpbmdWYWx1ZShwcm9wcy52YWx1ZSAhPSBudWxsID8gcHJvcHMudmFsdWUgOiBkZWZhdWx0VmFsdWUpLFxuICAgIGNvbnRyb2xsZWQ6IGlzQ29udHJvbGxlZChwcm9wcylcbiAgfTtcbn1cbmZ1bmN0aW9uIHVwZGF0ZUNoZWNrZWQoZWxlbWVudCwgcHJvcHMpIHtcbiAgdmFyIG5vZGUgPSBlbGVtZW50O1xuICB2YXIgY2hlY2tlZCA9IHByb3BzLmNoZWNrZWQ7XG5cbiAgaWYgKGNoZWNrZWQgIT0gbnVsbCkge1xuICAgIHNldFZhbHVlRm9yUHJvcGVydHkobm9kZSwgJ2NoZWNrZWQnLCBjaGVja2VkLCBmYWxzZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIHVwZGF0ZVdyYXBwZXIoZWxlbWVudCwgcHJvcHMpIHtcbiAgdmFyIG5vZGUgPSBlbGVtZW50O1xuXG4gIHtcbiAgICB2YXIgY29udHJvbGxlZCA9IGlzQ29udHJvbGxlZChwcm9wcyk7XG5cbiAgICBpZiAoIW5vZGUuX3dyYXBwZXJTdGF0ZS5jb250cm9sbGVkICYmIGNvbnRyb2xsZWQgJiYgIWRpZFdhcm5VbmNvbnRyb2xsZWRUb0NvbnRyb2xsZWQpIHtcbiAgICAgIGVycm9yKCdBIGNvbXBvbmVudCBpcyBjaGFuZ2luZyBhbiB1bmNvbnRyb2xsZWQgaW5wdXQgdG8gYmUgY29udHJvbGxlZC4gJyArICdUaGlzIGlzIGxpa2VseSBjYXVzZWQgYnkgdGhlIHZhbHVlIGNoYW5naW5nIGZyb20gdW5kZWZpbmVkIHRvICcgKyAnYSBkZWZpbmVkIHZhbHVlLCB3aGljaCBzaG91bGQgbm90IGhhcHBlbi4gJyArICdEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIGlucHV0ICcgKyAnZWxlbWVudCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBjb21wb25lbnQuIE1vcmUgaW5mbzogaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2NvbnRyb2xsZWQtY29tcG9uZW50cycpO1xuXG4gICAgICBkaWRXYXJuVW5jb250cm9sbGVkVG9Db250cm9sbGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAobm9kZS5fd3JhcHBlclN0YXRlLmNvbnRyb2xsZWQgJiYgIWNvbnRyb2xsZWQgJiYgIWRpZFdhcm5Db250cm9sbGVkVG9VbmNvbnRyb2xsZWQpIHtcbiAgICAgIGVycm9yKCdBIGNvbXBvbmVudCBpcyBjaGFuZ2luZyBhIGNvbnRyb2xsZWQgaW5wdXQgdG8gYmUgdW5jb250cm9sbGVkLiAnICsgJ1RoaXMgaXMgbGlrZWx5IGNhdXNlZCBieSB0aGUgdmFsdWUgY2hhbmdpbmcgZnJvbSBhIGRlZmluZWQgdG8gJyArICd1bmRlZmluZWQsIHdoaWNoIHNob3VsZCBub3QgaGFwcGVuLiAnICsgJ0RlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgaW5wdXQgJyArICdlbGVtZW50IGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIGNvbXBvbmVudC4gTW9yZSBpbmZvOiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvY29udHJvbGxlZC1jb21wb25lbnRzJyk7XG5cbiAgICAgIGRpZFdhcm5Db250cm9sbGVkVG9VbmNvbnRyb2xsZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUNoZWNrZWQoZWxlbWVudCwgcHJvcHMpO1xuICB2YXIgdmFsdWUgPSBnZXRUb1N0cmluZ1ZhbHVlKHByb3BzLnZhbHVlKTtcbiAgdmFyIHR5cGUgPSBwcm9wcy50eXBlO1xuXG4gIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgaWYgKHR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICBpZiAodmFsdWUgPT09IDAgJiYgbm9kZS52YWx1ZSA9PT0gJycgfHwgLy8gV2UgZXhwbGljaXRseSB3YW50IHRvIGNvZXJjZSB0byBudW1iZXIgaGVyZSBpZiBwb3NzaWJsZS5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgbm9kZS52YWx1ZSAhPSB2YWx1ZSkge1xuICAgICAgICBub2RlLnZhbHVlID0gdG9TdHJpbmcodmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobm9kZS52YWx1ZSAhPT0gdG9TdHJpbmcodmFsdWUpKSB7XG4gICAgICBub2RlLnZhbHVlID0gdG9TdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlID09PSAnc3VibWl0JyB8fCB0eXBlID09PSAncmVzZXQnKSB7XG4gICAgLy8gU3VibWl0L3Jlc2V0IGlucHV0cyBuZWVkIHRoZSBhdHRyaWJ1dGUgcmVtb3ZlZCBjb21wbGV0ZWx5IHRvIGF2b2lkXG4gICAgLy8gYmxhbmstdGV4dCBidXR0b25zLlxuICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKCd2YWx1ZScpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHtcbiAgICAvLyBXaGVuIHN5bmNpbmcgdGhlIHZhbHVlIGF0dHJpYnV0ZSwgdGhlIHZhbHVlIGNvbWVzIGZyb20gYSBjYXNjYWRlIG9mXG4gICAgLy8gcHJvcGVydGllczpcbiAgICAvLyAgMS4gVGhlIHZhbHVlIFJlYWN0IHByb3BlcnR5XG4gICAgLy8gIDIuIFRoZSBkZWZhdWx0VmFsdWUgUmVhY3QgcHJvcGVydHlcbiAgICAvLyAgMy4gT3RoZXJ3aXNlIHRoZXJlIHNob3VsZCBiZSBubyBjaGFuZ2VcbiAgICBpZiAocHJvcHMuaGFzT3duUHJvcGVydHkoJ3ZhbHVlJykpIHtcbiAgICAgIHNldERlZmF1bHRWYWx1ZShub2RlLCBwcm9wcy50eXBlLCB2YWx1ZSk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5oYXNPd25Qcm9wZXJ0eSgnZGVmYXVsdFZhbHVlJykpIHtcbiAgICAgIHNldERlZmF1bHRWYWx1ZShub2RlLCBwcm9wcy50eXBlLCBnZXRUb1N0cmluZ1ZhbHVlKHByb3BzLmRlZmF1bHRWYWx1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIHtcbiAgICAvLyBXaGVuIHN5bmNpbmcgdGhlIGNoZWNrZWQgYXR0cmlidXRlLCBpdCBvbmx5IGNoYW5nZXMgd2hlbiBpdCBuZWVkc1xuICAgIC8vIHRvIGJlIHJlbW92ZWQsIHN1Y2ggYXMgdHJhbnNpdGlvbmluZyBmcm9tIGEgY2hlY2tib3ggaW50byBhIHRleHQgaW5wdXRcbiAgICBpZiAocHJvcHMuY2hlY2tlZCA9PSBudWxsICYmIHByb3BzLmRlZmF1bHRDaGVja2VkICE9IG51bGwpIHtcbiAgICAgIG5vZGUuZGVmYXVsdENoZWNrZWQgPSAhIXByb3BzLmRlZmF1bHRDaGVja2VkO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gcG9zdE1vdW50V3JhcHBlcihlbGVtZW50LCBwcm9wcywgaXNIeWRyYXRpbmcpIHtcbiAgdmFyIG5vZGUgPSBlbGVtZW50OyAvLyBEbyBub3QgYXNzaWduIHZhbHVlIGlmIGl0IGlzIGFscmVhZHkgc2V0LiBUaGlzIHByZXZlbnRzIHVzZXIgdGV4dCBpbnB1dFxuICAvLyBmcm9tIGJlaW5nIGxvc3QgZHVyaW5nIFNTUiBoeWRyYXRpb24uXG5cbiAgaWYgKHByb3BzLmhhc093blByb3BlcnR5KCd2YWx1ZScpIHx8IHByb3BzLmhhc093blByb3BlcnR5KCdkZWZhdWx0VmFsdWUnKSkge1xuICAgIHZhciB0eXBlID0gcHJvcHMudHlwZTtcbiAgICB2YXIgaXNCdXR0b24gPSB0eXBlID09PSAnc3VibWl0JyB8fCB0eXBlID09PSAncmVzZXQnOyAvLyBBdm9pZCBzZXR0aW5nIHZhbHVlIGF0dHJpYnV0ZSBvbiBzdWJtaXQvcmVzZXQgaW5wdXRzIGFzIGl0IG92ZXJyaWRlcyB0aGVcbiAgICAvLyBkZWZhdWx0IHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSBicm93c2VyLiBTZWU6ICMxMjg3MlxuXG4gICAgaWYgKGlzQnV0dG9uICYmIChwcm9wcy52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLnZhbHVlID09PSBudWxsKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBpbml0aWFsVmFsdWUgPSB0b1N0cmluZyhub2RlLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlKTsgLy8gRG8gbm90IGFzc2lnbiB2YWx1ZSBpZiBpdCBpcyBhbHJlYWR5IHNldC4gVGhpcyBwcmV2ZW50cyB1c2VyIHRleHQgaW5wdXRcbiAgICAvLyBmcm9tIGJlaW5nIGxvc3QgZHVyaW5nIFNTUiBoeWRyYXRpb24uXG5cbiAgICBpZiAoIWlzSHlkcmF0aW5nKSB7XG4gICAgICB7XG4gICAgICAgIC8vIFdoZW4gc3luY2luZyB0aGUgdmFsdWUgYXR0cmlidXRlLCB0aGUgdmFsdWUgcHJvcGVydHkgc2hvdWxkIHVzZVxuICAgICAgICAvLyB0aGUgd3JhcHBlclN0YXRlLl9pbml0aWFsVmFsdWUgcHJvcGVydHkuIFRoaXMgdXNlczpcbiAgICAgICAgLy9cbiAgICAgICAgLy8gICAxLiBUaGUgdmFsdWUgUmVhY3QgcHJvcGVydHkgd2hlbiBwcmVzZW50XG4gICAgICAgIC8vICAgMi4gVGhlIGRlZmF1bHRWYWx1ZSBSZWFjdCBwcm9wZXJ0eSB3aGVuIHByZXNlbnRcbiAgICAgICAgLy8gICAzLiBBbiBlbXB0eSBzdHJpbmdcbiAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSAhPT0gbm9kZS52YWx1ZSkge1xuICAgICAgICAgIG5vZGUudmFsdWUgPSBpbml0aWFsVmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB7XG4gICAgICAvLyBPdGhlcndpc2UsIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXMgc3luY2hyb25pemVkIHRvIHRoZSBwcm9wZXJ0eSxcbiAgICAgIC8vIHNvIHdlIGFzc2lnbiBkZWZhdWx0VmFsdWUgdG8gdGhlIHNhbWUgdGhpbmcgYXMgdGhlIHZhbHVlIHByb3BlcnR5XG4gICAgICAvLyBhc3NpZ25tZW50IHN0ZXAgYWJvdmUuXG4gICAgICBub2RlLmRlZmF1bHRWYWx1ZSA9IGluaXRpYWxWYWx1ZTtcbiAgICB9XG4gIH0gLy8gTm9ybWFsbHksIHdlJ2QganVzdCBkbyBgbm9kZS5jaGVja2VkID0gbm9kZS5jaGVja2VkYCB1cG9uIGluaXRpYWwgbW91bnQsIGxlc3MgdGhpcyBidWdcbiAgLy8gdGhpcyBpcyBuZWVkZWQgdG8gd29yayBhcm91bmQgYSBjaHJvbWUgYnVnIHdoZXJlIHNldHRpbmcgZGVmYXVsdENoZWNrZWRcbiAgLy8gd2lsbCBzb21ldGltZXMgaW5mbHVlbmNlIHRoZSB2YWx1ZSBvZiBjaGVja2VkIChldmVuIGFmdGVyIGRldGFjaG1lbnQpLlxuICAvLyBSZWZlcmVuY2U6IGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTYwODQxNlxuICAvLyBXZSBuZWVkIHRvIHRlbXBvcmFyaWx5IHVuc2V0IG5hbWUgdG8gYXZvaWQgZGlzcnVwdGluZyByYWRpbyBidXR0b24gZ3JvdXBzLlxuXG5cbiAgdmFyIG5hbWUgPSBub2RlLm5hbWU7XG5cbiAgaWYgKG5hbWUgIT09ICcnKSB7XG4gICAgbm9kZS5uYW1lID0gJyc7XG4gIH1cblxuICB7XG4gICAgLy8gV2hlbiBzeW5jaW5nIHRoZSBjaGVja2VkIGF0dHJpYnV0ZSwgYm90aCB0aGUgY2hlY2tlZCBwcm9wZXJ0eSBhbmRcbiAgICAvLyBhdHRyaWJ1dGUgYXJlIGFzc2lnbmVkIGF0IHRoZSBzYW1lIHRpbWUgdXNpbmcgZGVmYXVsdENoZWNrZWQuIFRoaXMgdXNlczpcbiAgICAvL1xuICAgIC8vICAgMS4gVGhlIGNoZWNrZWQgUmVhY3QgcHJvcGVydHkgd2hlbiBwcmVzZW50XG4gICAgLy8gICAyLiBUaGUgZGVmYXVsdENoZWNrZWQgUmVhY3QgcHJvcGVydHkgd2hlbiBwcmVzZW50XG4gICAgLy8gICAzLiBPdGhlcndpc2UsIGZhbHNlXG4gICAgbm9kZS5kZWZhdWx0Q2hlY2tlZCA9ICFub2RlLmRlZmF1bHRDaGVja2VkO1xuICAgIG5vZGUuZGVmYXVsdENoZWNrZWQgPSAhIW5vZGUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsQ2hlY2tlZDtcbiAgfVxuXG4gIGlmIChuYW1lICE9PSAnJykge1xuICAgIG5vZGUubmFtZSA9IG5hbWU7XG4gIH1cbn1cbmZ1bmN0aW9uIHJlc3RvcmVDb250cm9sbGVkU3RhdGUoZWxlbWVudCwgcHJvcHMpIHtcbiAgdmFyIG5vZGUgPSBlbGVtZW50O1xuICB1cGRhdGVXcmFwcGVyKG5vZGUsIHByb3BzKTtcbiAgdXBkYXRlTmFtZWRDb3VzaW5zKG5vZGUsIHByb3BzKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlTmFtZWRDb3VzaW5zKHJvb3ROb2RlLCBwcm9wcykge1xuICB2YXIgbmFtZSA9IHByb3BzLm5hbWU7XG5cbiAgaWYgKHByb3BzLnR5cGUgPT09ICdyYWRpbycgJiYgbmFtZSAhPSBudWxsKSB7XG4gICAgdmFyIHF1ZXJ5Um9vdCA9IHJvb3ROb2RlO1xuXG4gICAgd2hpbGUgKHF1ZXJ5Um9vdC5wYXJlbnROb2RlKSB7XG4gICAgICBxdWVyeVJvb3QgPSBxdWVyeVJvb3QucGFyZW50Tm9kZTtcbiAgICB9IC8vIElmIGByb290Tm9kZS5mb3JtYCB3YXMgbm9uLW51bGwsIHRoZW4gd2UgY291bGQgdHJ5IGBmb3JtLmVsZW1lbnRzYCxcbiAgICAvLyBidXQgdGhhdCBzb21ldGltZXMgYmVoYXZlcyBzdHJhbmdlbHkgaW4gSUU4LiBXZSBjb3VsZCBhbHNvIHRyeSB1c2luZ1xuICAgIC8vIGBmb3JtLmdldEVsZW1lbnRzQnlOYW1lYCwgYnV0IHRoYXQgd2lsbCBvbmx5IHJldHVybiBkaXJlY3QgY2hpbGRyZW5cbiAgICAvLyBhbmQgd29uJ3QgaW5jbHVkZSBpbnB1dHMgdGhhdCB1c2UgdGhlIEhUTUw1IGBmb3JtPWAgYXR0cmlidXRlLiBTaW5jZVxuICAgIC8vIHRoZSBpbnB1dCBtaWdodCBub3QgZXZlbiBiZSBpbiBhIGZvcm0uIEl0IG1pZ2h0IG5vdCBldmVuIGJlIGluIHRoZVxuICAgIC8vIGRvY3VtZW50LiBMZXQncyBqdXN0IHVzZSB0aGUgbG9jYWwgYHF1ZXJ5U2VsZWN0b3JBbGxgIHRvIGVuc3VyZSB3ZSBkb24ndFxuICAgIC8vIG1pc3MgYW55dGhpbmcuXG5cblxuICAgIHtcbiAgICAgIGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24obmFtZSwgJ25hbWUnKTtcbiAgICB9XG5cbiAgICB2YXIgZ3JvdXAgPSBxdWVyeVJvb3QucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbbmFtZT0nICsgSlNPTi5zdHJpbmdpZnkoJycgKyBuYW1lKSArICddW3R5cGU9XCJyYWRpb1wiXScpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBncm91cC5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIG90aGVyTm9kZSA9IGdyb3VwW2ldO1xuXG4gICAgICBpZiAob3RoZXJOb2RlID09PSByb290Tm9kZSB8fCBvdGhlck5vZGUuZm9ybSAhPT0gcm9vdE5vZGUuZm9ybSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH0gLy8gVGhpcyB3aWxsIHRocm93IGlmIHJhZGlvIGJ1dHRvbnMgcmVuZGVyZWQgYnkgZGlmZmVyZW50IGNvcGllcyBvZiBSZWFjdFxuICAgICAgLy8gYW5kIHRoZSBzYW1lIG5hbWUgYXJlIHJlbmRlcmVkIGludG8gdGhlIHNhbWUgZm9ybSAoc2FtZSBhcyAjMTkzOSkuXG4gICAgICAvLyBUaGF0J3MgcHJvYmFibHkgb2theTsgd2UgZG9uJ3Qgc3VwcG9ydCBpdCBqdXN0IGFzIHdlIGRvbid0IHN1cHBvcnRcbiAgICAgIC8vIG1peGluZyBSZWFjdCByYWRpbyBidXR0b25zIHdpdGggbm9uLVJlYWN0IG9uZXMuXG5cblxuICAgICAgdmFyIG90aGVyUHJvcHMgPSBnZXRGaWJlckN1cnJlbnRQcm9wc0Zyb21Ob2RlKG90aGVyTm9kZSk7XG5cbiAgICAgIGlmICghb3RoZXJQcm9wcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlYWN0RE9NSW5wdXQ6IE1peGluZyBSZWFjdCBhbmQgbm9uLVJlYWN0IHJhZGlvIGlucHV0cyB3aXRoIHRoZSAnICsgJ3NhbWUgYG5hbWVgIGlzIG5vdCBzdXBwb3J0ZWQuJyk7XG4gICAgICB9IC8vIFdlIG5lZWQgdXBkYXRlIHRoZSB0cmFja2VkIHZhbHVlIG9uIHRoZSBuYW1lZCBjb3VzaW4gc2luY2UgdGhlIHZhbHVlXG4gICAgICAvLyB3YXMgY2hhbmdlZCBidXQgdGhlIGlucHV0IHNhdyBubyBldmVudCBvciB2YWx1ZSBzZXRcblxuXG4gICAgICB1cGRhdGVWYWx1ZUlmQ2hhbmdlZChvdGhlck5vZGUpOyAvLyBJZiB0aGlzIGlzIGEgY29udHJvbGxlZCByYWRpbyBidXR0b24gZ3JvdXAsIGZvcmNpbmcgdGhlIGlucHV0IHRoYXRcbiAgICAgIC8vIHdhcyBwcmV2aW91c2x5IGNoZWNrZWQgdG8gdXBkYXRlIHdpbGwgY2F1c2UgaXQgdG8gYmUgY29tZSByZS1jaGVja2VkXG4gICAgICAvLyBhcyBhcHByb3ByaWF0ZS5cblxuICAgICAgdXBkYXRlV3JhcHBlcihvdGhlck5vZGUsIG90aGVyUHJvcHMpO1xuICAgIH1cbiAgfVxufSAvLyBJbiBDaHJvbWUsIGFzc2lnbmluZyBkZWZhdWx0VmFsdWUgdG8gY2VydGFpbiBpbnB1dCB0eXBlcyB0cmlnZ2VycyBpbnB1dCB2YWxpZGF0aW9uLlxuLy8gRm9yIG51bWJlciBpbnB1dHMsIHRoZSBkaXNwbGF5IHZhbHVlIGxvc2VzIHRyYWlsaW5nIGRlY2ltYWwgcG9pbnRzLiBGb3IgZW1haWwgaW5wdXRzLFxuLy8gQ2hyb21lIHJhaXNlcyBcIlRoZSBzcGVjaWZpZWQgdmFsdWUgPHg+IGlzIG5vdCBhIHZhbGlkIGVtYWlsIGFkZHJlc3NcIi5cbi8vXG4vLyBIZXJlIHdlIGNoZWNrIHRvIHNlZSBpZiB0aGUgZGVmYXVsdFZhbHVlIGhhcyBhY3R1YWxseSBjaGFuZ2VkLCBhdm9pZGluZyB0aGVzZSBwcm9ibGVtc1xuLy8gd2hlbiB0aGUgdXNlciBpcyBpbnB1dHRpbmcgdGV4dFxuLy9cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvNzI1M1xuXG5cbmZ1bmN0aW9uIHNldERlZmF1bHRWYWx1ZShub2RlLCB0eXBlLCB2YWx1ZSkge1xuICBpZiAoIC8vIEZvY3VzZWQgbnVtYmVyIGlucHV0cyBzeW5jaHJvbml6ZSBvbiBibHVyLiBTZWUgQ2hhbmdlRXZlbnRQbHVnaW4uanNcbiAgdHlwZSAhPT0gJ251bWJlcicgfHwgZ2V0QWN0aXZlRWxlbWVudChub2RlLm93bmVyRG9jdW1lbnQpICE9PSBub2RlKSB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIG5vZGUuZGVmYXVsdFZhbHVlID0gdG9TdHJpbmcobm9kZS5fd3JhcHBlclN0YXRlLmluaXRpYWxWYWx1ZSk7XG4gICAgfSBlbHNlIGlmIChub2RlLmRlZmF1bHRWYWx1ZSAhPT0gdG9TdHJpbmcodmFsdWUpKSB7XG4gICAgICBub2RlLmRlZmF1bHRWYWx1ZSA9IHRvU3RyaW5nKHZhbHVlKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIGRpZFdhcm5TZWxlY3RlZFNldE9uT3B0aW9uID0gZmFsc2U7XG52YXIgZGlkV2FybkludmFsaWRDaGlsZCA9IGZhbHNlO1xudmFyIGRpZFdhcm5JbnZhbGlkSW5uZXJIVE1MID0gZmFsc2U7XG4vKipcbiAqIEltcGxlbWVudHMgYW4gPG9wdGlvbj4gaG9zdCBjb21wb25lbnQgdGhhdCB3YXJucyB3aGVuIGBzZWxlY3RlZGAgaXMgc2V0LlxuICovXG5cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcHMoZWxlbWVudCwgcHJvcHMpIHtcbiAge1xuICAgIC8vIElmIGEgdmFsdWUgaXMgbm90IHByb3ZpZGVkLCB0aGVuIHRoZSBjaGlsZHJlbiBtdXN0IGJlIHNpbXBsZS5cbiAgICBpZiAocHJvcHMudmFsdWUgPT0gbnVsbCkge1xuICAgICAgaWYgKHR5cGVvZiBwcm9wcy5jaGlsZHJlbiA9PT0gJ29iamVjdCcgJiYgcHJvcHMuY2hpbGRyZW4gIT09IG51bGwpIHtcbiAgICAgICAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChwcm9wcy5jaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgICAgaWYgKGNoaWxkID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodHlwZW9mIGNoaWxkID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgY2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFkaWRXYXJuSW52YWxpZENoaWxkKSB7XG4gICAgICAgICAgICBkaWRXYXJuSW52YWxpZENoaWxkID0gdHJ1ZTtcblxuICAgICAgICAgICAgZXJyb3IoJ0Nhbm5vdCBpbmZlciB0aGUgb3B0aW9uIHZhbHVlIG9mIGNvbXBsZXggY2hpbGRyZW4uICcgKyAnUGFzcyBhIGB2YWx1ZWAgcHJvcCBvciB1c2UgYSBwbGFpbiBzdHJpbmcgYXMgY2hpbGRyZW4gdG8gPG9wdGlvbj4uJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAocHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgIT0gbnVsbCkge1xuICAgICAgICBpZiAoIWRpZFdhcm5JbnZhbGlkSW5uZXJIVE1MKSB7XG4gICAgICAgICAgZGlkV2FybkludmFsaWRJbm5lckhUTUwgPSB0cnVlO1xuXG4gICAgICAgICAgZXJyb3IoJ1Bhc3MgYSBgdmFsdWVgIHByb3AgaWYgeW91IHNldCBkYW5nZXJvdXNseUlubmVySFRNTCBzbyBSZWFjdCBrbm93cyAnICsgJ3doaWNoIHZhbHVlIHNob3VsZCBiZSBzZWxlY3RlZC4nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gLy8gVE9ETzogUmVtb3ZlIHN1cHBvcnQgZm9yIGBzZWxlY3RlZGAgaW4gPG9wdGlvbj4uXG5cblxuICAgIGlmIChwcm9wcy5zZWxlY3RlZCAhPSBudWxsICYmICFkaWRXYXJuU2VsZWN0ZWRTZXRPbk9wdGlvbikge1xuICAgICAgZXJyb3IoJ1VzZSB0aGUgYGRlZmF1bHRWYWx1ZWAgb3IgYHZhbHVlYCBwcm9wcyBvbiA8c2VsZWN0PiBpbnN0ZWFkIG9mICcgKyAnc2V0dGluZyBgc2VsZWN0ZWRgIG9uIDxvcHRpb24+LicpO1xuXG4gICAgICBkaWRXYXJuU2VsZWN0ZWRTZXRPbk9wdGlvbiA9IHRydWU7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBwb3N0TW91bnRXcmFwcGVyJDEoZWxlbWVudCwgcHJvcHMpIHtcbiAgLy8gdmFsdWU9XCJcIiBzaG91bGQgbWFrZSBhIHZhbHVlIGF0dHJpYnV0ZSAoIzYyMTkpXG4gIGlmIChwcm9wcy52YWx1ZSAhPSBudWxsKSB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgdG9TdHJpbmcoZ2V0VG9TdHJpbmdWYWx1ZShwcm9wcy52YWx1ZSkpKTtcbiAgfVxufVxuXG52YXIgaXNBcnJheUltcGwgPSBBcnJheS5pc0FycmF5OyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVkZWNsYXJlXG5cbmZ1bmN0aW9uIGlzQXJyYXkoYSkge1xuICByZXR1cm4gaXNBcnJheUltcGwoYSk7XG59XG5cbnZhciBkaWRXYXJuVmFsdWVEZWZhdWx0VmFsdWUkMTtcblxue1xuICBkaWRXYXJuVmFsdWVEZWZhdWx0VmFsdWUkMSA9IGZhbHNlO1xufVxuXG5mdW5jdGlvbiBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKSB7XG4gIHZhciBvd25lck5hbWUgPSBnZXRDdXJyZW50RmliZXJPd25lck5hbWVJbkRldk9yTnVsbCgpO1xuXG4gIGlmIChvd25lck5hbWUpIHtcbiAgICByZXR1cm4gJ1xcblxcbkNoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAnICsgb3duZXJOYW1lICsgJ2AuJztcbiAgfVxuXG4gIHJldHVybiAnJztcbn1cblxudmFyIHZhbHVlUHJvcE5hbWVzID0gWyd2YWx1ZScsICdkZWZhdWx0VmFsdWUnXTtcbi8qKlxuICogVmFsaWRhdGlvbiBmdW5jdGlvbiBmb3IgYHZhbHVlYCBhbmQgYGRlZmF1bHRWYWx1ZWAuXG4gKi9cblxuZnVuY3Rpb24gY2hlY2tTZWxlY3RQcm9wVHlwZXMocHJvcHMpIHtcbiAge1xuICAgIGNoZWNrQ29udHJvbGxlZFZhbHVlUHJvcHMoJ3NlbGVjdCcsIHByb3BzKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVQcm9wTmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBwcm9wTmFtZSA9IHZhbHVlUHJvcE5hbWVzW2ldO1xuXG4gICAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09IG51bGwpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHZhciBwcm9wTmFtZUlzQXJyYXkgPSBpc0FycmF5KHByb3BzW3Byb3BOYW1lXSk7XG5cbiAgICAgIGlmIChwcm9wcy5tdWx0aXBsZSAmJiAhcHJvcE5hbWVJc0FycmF5KSB7XG4gICAgICAgIGVycm9yKCdUaGUgYCVzYCBwcm9wIHN1cHBsaWVkIHRvIDxzZWxlY3Q+IG11c3QgYmUgYW4gYXJyYXkgaWYgJyArICdgbXVsdGlwbGVgIGlzIHRydWUuJXMnLCBwcm9wTmFtZSwgZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCkpO1xuICAgICAgfSBlbHNlIGlmICghcHJvcHMubXVsdGlwbGUgJiYgcHJvcE5hbWVJc0FycmF5KSB7XG4gICAgICAgIGVycm9yKCdUaGUgYCVzYCBwcm9wIHN1cHBsaWVkIHRvIDxzZWxlY3Q+IG11c3QgYmUgYSBzY2FsYXIgJyArICd2YWx1ZSBpZiBgbXVsdGlwbGVgIGlzIGZhbHNlLiVzJywgcHJvcE5hbWUsIGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlT3B0aW9ucyhub2RlLCBtdWx0aXBsZSwgcHJvcFZhbHVlLCBzZXREZWZhdWx0U2VsZWN0ZWQpIHtcbiAgdmFyIG9wdGlvbnMgPSBub2RlLm9wdGlvbnM7XG5cbiAgaWYgKG11bHRpcGxlKSB7XG4gICAgdmFyIHNlbGVjdGVkVmFsdWVzID0gcHJvcFZhbHVlO1xuICAgIHZhciBzZWxlY3RlZFZhbHVlID0ge307XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdGVkVmFsdWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAvLyBQcmVmaXggdG8gYXZvaWQgY2hhb3Mgd2l0aCBzcGVjaWFsIGtleXMuXG4gICAgICBzZWxlY3RlZFZhbHVlWyckJyArIHNlbGVjdGVkVmFsdWVzW2ldXSA9IHRydWU7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IG9wdGlvbnMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICB2YXIgc2VsZWN0ZWQgPSBzZWxlY3RlZFZhbHVlLmhhc093blByb3BlcnR5KCckJyArIG9wdGlvbnNbX2ldLnZhbHVlKTtcblxuICAgICAgaWYgKG9wdGlvbnNbX2ldLnNlbGVjdGVkICE9PSBzZWxlY3RlZCkge1xuICAgICAgICBvcHRpb25zW19pXS5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgfVxuXG4gICAgICBpZiAoc2VsZWN0ZWQgJiYgc2V0RGVmYXVsdFNlbGVjdGVkKSB7XG4gICAgICAgIG9wdGlvbnNbX2ldLmRlZmF1bHRTZWxlY3RlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIERvIG5vdCBzZXQgYHNlbGVjdC52YWx1ZWAgYXMgZXhhY3QgYmVoYXZpb3IgaXNuJ3QgY29uc2lzdGVudCBhY3Jvc3MgYWxsXG4gICAgLy8gYnJvd3NlcnMgZm9yIGFsbCBjYXNlcy5cbiAgICB2YXIgX3NlbGVjdGVkVmFsdWUgPSB0b1N0cmluZyhnZXRUb1N0cmluZ1ZhbHVlKHByb3BWYWx1ZSkpO1xuXG4gICAgdmFyIGRlZmF1bHRTZWxlY3RlZCA9IG51bGw7XG5cbiAgICBmb3IgKHZhciBfaTIgPSAwOyBfaTIgPCBvcHRpb25zLmxlbmd0aDsgX2kyKyspIHtcbiAgICAgIGlmIChvcHRpb25zW19pMl0udmFsdWUgPT09IF9zZWxlY3RlZFZhbHVlKSB7XG4gICAgICAgIG9wdGlvbnNbX2kyXS5zZWxlY3RlZCA9IHRydWU7XG5cbiAgICAgICAgaWYgKHNldERlZmF1bHRTZWxlY3RlZCkge1xuICAgICAgICAgIG9wdGlvbnNbX2kyXS5kZWZhdWx0U2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoZGVmYXVsdFNlbGVjdGVkID09PSBudWxsICYmICFvcHRpb25zW19pMl0uZGlzYWJsZWQpIHtcbiAgICAgICAgZGVmYXVsdFNlbGVjdGVkID0gb3B0aW9uc1tfaTJdO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkZWZhdWx0U2VsZWN0ZWQgIT09IG51bGwpIHtcbiAgICAgIGRlZmF1bHRTZWxlY3RlZC5zZWxlY3RlZCA9IHRydWU7XG4gICAgfVxuICB9XG59XG4vKipcbiAqIEltcGxlbWVudHMgYSA8c2VsZWN0PiBob3N0IGNvbXBvbmVudCB0aGF0IGFsbG93cyBvcHRpb25hbGx5IHNldHRpbmcgdGhlXG4gKiBwcm9wcyBgdmFsdWVgIGFuZCBgZGVmYXVsdFZhbHVlYC4gSWYgYG11bHRpcGxlYCBpcyBmYWxzZSwgdGhlIHByb3AgbXVzdCBiZSBhXG4gKiBzdHJpbmdhYmxlLiBJZiBgbXVsdGlwbGVgIGlzIHRydWUsIHRoZSBwcm9wIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5nYWJsZXMuXG4gKlxuICogSWYgYHZhbHVlYCBpcyBub3Qgc3VwcGxpZWQgKG9yIG51bGwvdW5kZWZpbmVkKSwgdXNlciBhY3Rpb25zIHRoYXQgY2hhbmdlIHRoZVxuICogc2VsZWN0ZWQgb3B0aW9uIHdpbGwgdHJpZ2dlciB1cGRhdGVzIHRvIHRoZSByZW5kZXJlZCBvcHRpb25zLlxuICpcbiAqIElmIGl0IGlzIHN1cHBsaWVkIChhbmQgbm90IG51bGwvdW5kZWZpbmVkKSwgdGhlIHJlbmRlcmVkIG9wdGlvbnMgd2lsbCBub3RcbiAqIHVwZGF0ZSBpbiByZXNwb25zZSB0byB1c2VyIGFjdGlvbnMuIEluc3RlYWQsIHRoZSBgdmFsdWVgIHByb3AgbXVzdCBjaGFuZ2UgaW5cbiAqIG9yZGVyIGZvciB0aGUgcmVuZGVyZWQgb3B0aW9ucyB0byB1cGRhdGUuXG4gKlxuICogSWYgYGRlZmF1bHRWYWx1ZWAgaXMgcHJvdmlkZWQsIGFueSBvcHRpb25zIHdpdGggdGhlIHN1cHBsaWVkIHZhbHVlcyB3aWxsIGJlXG4gKiBzZWxlY3RlZC5cbiAqL1xuXG5cbmZ1bmN0aW9uIGdldEhvc3RQcm9wcyQxKGVsZW1lbnQsIHByb3BzKSB7XG4gIHJldHVybiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgdmFsdWU6IHVuZGVmaW5lZFxuICB9KTtcbn1cbmZ1bmN0aW9uIGluaXRXcmFwcGVyU3RhdGUkMShlbGVtZW50LCBwcm9wcykge1xuICB2YXIgbm9kZSA9IGVsZW1lbnQ7XG5cbiAge1xuICAgIGNoZWNrU2VsZWN0UHJvcFR5cGVzKHByb3BzKTtcbiAgfVxuXG4gIG5vZGUuX3dyYXBwZXJTdGF0ZSA9IHtcbiAgICB3YXNNdWx0aXBsZTogISFwcm9wcy5tdWx0aXBsZVxuICB9O1xuXG4gIHtcbiAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiAhZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlJDEpIHtcbiAgICAgIGVycm9yKCdTZWxlY3QgZWxlbWVudHMgbXVzdCBiZSBlaXRoZXIgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgJyArICcoc3BlY2lmeSBlaXRoZXIgdGhlIHZhbHVlIHByb3AsIG9yIHRoZSBkZWZhdWx0VmFsdWUgcHJvcCwgYnV0IG5vdCAnICsgJ2JvdGgpLiBEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIHNlbGVjdCAnICsgJ2VsZW1lbnQgYW5kIHJlbW92ZSBvbmUgb2YgdGhlc2UgcHJvcHMuIE1vcmUgaW5mbzogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvY29udHJvbGxlZC1jb21wb25lbnRzJyk7XG5cbiAgICAgIGRpZFdhcm5WYWx1ZURlZmF1bHRWYWx1ZSQxID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIHBvc3RNb3VudFdyYXBwZXIkMihlbGVtZW50LCBwcm9wcykge1xuICB2YXIgbm9kZSA9IGVsZW1lbnQ7XG4gIG5vZGUubXVsdGlwbGUgPSAhIXByb3BzLm11bHRpcGxlO1xuICB2YXIgdmFsdWUgPSBwcm9wcy52YWx1ZTtcblxuICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgIHVwZGF0ZU9wdGlvbnMobm9kZSwgISFwcm9wcy5tdWx0aXBsZSwgdmFsdWUsIGZhbHNlKTtcbiAgfSBlbHNlIGlmIChwcm9wcy5kZWZhdWx0VmFsdWUgIT0gbnVsbCkge1xuICAgIHVwZGF0ZU9wdGlvbnMobm9kZSwgISFwcm9wcy5tdWx0aXBsZSwgcHJvcHMuZGVmYXVsdFZhbHVlLCB0cnVlKTtcbiAgfVxufVxuZnVuY3Rpb24gcG9zdFVwZGF0ZVdyYXBwZXIoZWxlbWVudCwgcHJvcHMpIHtcbiAgdmFyIG5vZGUgPSBlbGVtZW50O1xuICB2YXIgd2FzTXVsdGlwbGUgPSBub2RlLl93cmFwcGVyU3RhdGUud2FzTXVsdGlwbGU7XG4gIG5vZGUuX3dyYXBwZXJTdGF0ZS53YXNNdWx0aXBsZSA9ICEhcHJvcHMubXVsdGlwbGU7XG4gIHZhciB2YWx1ZSA9IHByb3BzLnZhbHVlO1xuXG4gIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgdXBkYXRlT3B0aW9ucyhub2RlLCAhIXByb3BzLm11bHRpcGxlLCB2YWx1ZSwgZmFsc2UpO1xuICB9IGVsc2UgaWYgKHdhc011bHRpcGxlICE9PSAhIXByb3BzLm11bHRpcGxlKSB7XG4gICAgLy8gRm9yIHNpbXBsaWNpdHksIHJlYXBwbHkgYGRlZmF1bHRWYWx1ZWAgaWYgYG11bHRpcGxlYCBpcyB0b2dnbGVkLlxuICAgIGlmIChwcm9wcy5kZWZhdWx0VmFsdWUgIT0gbnVsbCkge1xuICAgICAgdXBkYXRlT3B0aW9ucyhub2RlLCAhIXByb3BzLm11bHRpcGxlLCBwcm9wcy5kZWZhdWx0VmFsdWUsIHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZXZlcnQgdGhlIHNlbGVjdCBiYWNrIHRvIGl0cyBkZWZhdWx0IHVuc2VsZWN0ZWQgc3RhdGUuXG4gICAgICB1cGRhdGVPcHRpb25zKG5vZGUsICEhcHJvcHMubXVsdGlwbGUsIHByb3BzLm11bHRpcGxlID8gW10gOiAnJywgZmFsc2UpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gcmVzdG9yZUNvbnRyb2xsZWRTdGF0ZSQxKGVsZW1lbnQsIHByb3BzKSB7XG4gIHZhciBub2RlID0gZWxlbWVudDtcbiAgdmFyIHZhbHVlID0gcHJvcHMudmFsdWU7XG5cbiAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICB1cGRhdGVPcHRpb25zKG5vZGUsICEhcHJvcHMubXVsdGlwbGUsIHZhbHVlLCBmYWxzZSk7XG4gIH1cbn1cblxudmFyIGRpZFdhcm5WYWxEZWZhdWx0VmFsID0gZmFsc2U7XG5cbi8qKlxuICogSW1wbGVtZW50cyBhIDx0ZXh0YXJlYT4gaG9zdCBjb21wb25lbnQgdGhhdCBhbGxvd3Mgc2V0dGluZyBgdmFsdWVgLCBhbmRcbiAqIGBkZWZhdWx0VmFsdWVgLiBUaGlzIGRpZmZlcnMgZnJvbSB0aGUgdHJhZGl0aW9uYWwgRE9NIEFQSSBiZWNhdXNlIHZhbHVlIGlzXG4gKiB1c3VhbGx5IHNldCBhcyBQQ0RBVEEgY2hpbGRyZW4uXG4gKlxuICogSWYgYHZhbHVlYCBpcyBub3Qgc3VwcGxpZWQgKG9yIG51bGwvdW5kZWZpbmVkKSwgdXNlciBhY3Rpb25zIHRoYXQgYWZmZWN0IHRoZVxuICogdmFsdWUgd2lsbCB0cmlnZ2VyIHVwZGF0ZXMgdG8gdGhlIGVsZW1lbnQuXG4gKlxuICogSWYgYHZhbHVlYCBpcyBzdXBwbGllZCAoYW5kIG5vdCBudWxsL3VuZGVmaW5lZCksIHRoZSByZW5kZXJlZCBlbGVtZW50IHdpbGxcbiAqIG5vdCB0cmlnZ2VyIHVwZGF0ZXMgdG8gdGhlIGVsZW1lbnQuIEluc3RlYWQsIHRoZSBgdmFsdWVgIHByb3AgbXVzdCBjaGFuZ2UgaW5cbiAqIG9yZGVyIGZvciB0aGUgcmVuZGVyZWQgZWxlbWVudCB0byBiZSB1cGRhdGVkLlxuICpcbiAqIFRoZSByZW5kZXJlZCBlbGVtZW50IHdpbGwgYmUgaW5pdGlhbGl6ZWQgd2l0aCBhbiBlbXB0eSB2YWx1ZSwgdGhlIHByb3BcbiAqIGBkZWZhdWx0VmFsdWVgIGlmIHNwZWNpZmllZCwgb3IgdGhlIGNoaWxkcmVuIGNvbnRlbnQgKGRlcHJlY2F0ZWQpLlxuICovXG5mdW5jdGlvbiBnZXRIb3N0UHJvcHMkMihlbGVtZW50LCBwcm9wcykge1xuICB2YXIgbm9kZSA9IGVsZW1lbnQ7XG5cbiAgaWYgKHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MICE9IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2BkYW5nZXJvdXNseVNldElubmVySFRNTGAgZG9lcyBub3QgbWFrZSBzZW5zZSBvbiA8dGV4dGFyZWE+LicpO1xuICB9IC8vIEFsd2F5cyBzZXQgY2hpbGRyZW4gdG8gdGhlIHNhbWUgdGhpbmcuIEluIElFOSwgdGhlIHNlbGVjdGlvbiByYW5nZSB3aWxsXG4gIC8vIGdldCByZXNldCBpZiBgdGV4dENvbnRlbnRgIGlzIG11dGF0ZWQuICBXZSBjb3VsZCBhZGQgYSBjaGVjayBpbiBzZXRUZXh0Q29udGVudFxuICAvLyB0byBvbmx5IHNldCB0aGUgdmFsdWUgaWYvd2hlbiB0aGUgdmFsdWUgZGlmZmVycyBmcm9tIHRoZSBub2RlIHZhbHVlICh3aGljaCB3b3VsZFxuICAvLyBjb21wbGV0ZWx5IHNvbHZlIHRoaXMgSUU5IGJ1ZyksIGJ1dCBTZWJhc3RpYW4rU29waGllIHNlZW1lZCB0byBsaWtlIHRoaXNcbiAgLy8gc29sdXRpb24uIFRoZSB2YWx1ZSBjYW4gYmUgYSBib29sZWFuIG9yIG9iamVjdCBzbyB0aGF0J3Mgd2h5IGl0J3MgZm9yY2VkXG4gIC8vIHRvIGJlIGEgc3RyaW5nLlxuXG5cbiAgdmFyIGhvc3RQcm9wcyA9IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgIGRlZmF1bHRWYWx1ZTogdW5kZWZpbmVkLFxuICAgIGNoaWxkcmVuOiB0b1N0cmluZyhub2RlLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlKVxuICB9KTtcblxuICByZXR1cm4gaG9zdFByb3BzO1xufVxuZnVuY3Rpb24gaW5pdFdyYXBwZXJTdGF0ZSQyKGVsZW1lbnQsIHByb3BzKSB7XG4gIHZhciBub2RlID0gZWxlbWVudDtcblxuICB7XG4gICAgY2hlY2tDb250cm9sbGVkVmFsdWVQcm9wcygndGV4dGFyZWEnLCBwcm9wcyk7XG5cbiAgICBpZiAocHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJiAhZGlkV2FyblZhbERlZmF1bHRWYWwpIHtcbiAgICAgIGVycm9yKCclcyBjb250YWlucyBhIHRleHRhcmVhIHdpdGggYm90aCB2YWx1ZSBhbmQgZGVmYXVsdFZhbHVlIHByb3BzLiAnICsgJ1RleHRhcmVhIGVsZW1lbnRzIG11c3QgYmUgZWl0aGVyIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkICcgKyAnKHNwZWNpZnkgZWl0aGVyIHRoZSB2YWx1ZSBwcm9wLCBvciB0aGUgZGVmYXVsdFZhbHVlIHByb3AsIGJ1dCBub3QgJyArICdib3RoKS4gRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCB0ZXh0YXJlYSAnICsgJ2FuZCByZW1vdmUgb25lIG9mIHRoZXNlIHByb3BzLiBNb3JlIGluZm86ICcgKyAnaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2NvbnRyb2xsZWQtY29tcG9uZW50cycsIGdldEN1cnJlbnRGaWJlck93bmVyTmFtZUluRGV2T3JOdWxsKCkgfHwgJ0EgY29tcG9uZW50Jyk7XG5cbiAgICAgIGRpZFdhcm5WYWxEZWZhdWx0VmFsID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICB2YXIgaW5pdGlhbFZhbHVlID0gcHJvcHMudmFsdWU7IC8vIE9ubHkgYm90aGVyIGZldGNoaW5nIGRlZmF1bHQgdmFsdWUgaWYgd2UncmUgZ29pbmcgdG8gdXNlIGl0XG5cbiAgaWYgKGluaXRpYWxWYWx1ZSA9PSBudWxsKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IHByb3BzLmRlZmF1bHRWYWx1ZTtcblxuICAgIGlmIChjaGlsZHJlbiAhPSBudWxsKSB7XG4gICAgICB7XG4gICAgICAgIGVycm9yKCdVc2UgdGhlIGBkZWZhdWx0VmFsdWVgIG9yIGB2YWx1ZWAgcHJvcHMgaW5zdGVhZCBvZiBzZXR0aW5nICcgKyAnY2hpbGRyZW4gb24gPHRleHRhcmVhPi4nKTtcbiAgICAgIH1cblxuICAgICAge1xuICAgICAgICBpZiAoZGVmYXVsdFZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0lmIHlvdSBzdXBwbHkgYGRlZmF1bHRWYWx1ZWAgb24gYSA8dGV4dGFyZWE+LCBkbyBub3QgcGFzcyBjaGlsZHJlbi4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0FycmF5KGNoaWxkcmVuKSkge1xuICAgICAgICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJzx0ZXh0YXJlYT4gY2FuIG9ubHkgaGF2ZSBhdCBtb3N0IG9uZSBjaGlsZC4nKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjaGlsZHJlbiA9IGNoaWxkcmVuWzBdO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVmYXVsdFZhbHVlID0gY2hpbGRyZW47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRlZmF1bHRWYWx1ZSA9PSBudWxsKSB7XG4gICAgICBkZWZhdWx0VmFsdWUgPSAnJztcbiAgICB9XG5cbiAgICBpbml0aWFsVmFsdWUgPSBkZWZhdWx0VmFsdWU7XG4gIH1cblxuICBub2RlLl93cmFwcGVyU3RhdGUgPSB7XG4gICAgaW5pdGlhbFZhbHVlOiBnZXRUb1N0cmluZ1ZhbHVlKGluaXRpYWxWYWx1ZSlcbiAgfTtcbn1cbmZ1bmN0aW9uIHVwZGF0ZVdyYXBwZXIkMShlbGVtZW50LCBwcm9wcykge1xuICB2YXIgbm9kZSA9IGVsZW1lbnQ7XG4gIHZhciB2YWx1ZSA9IGdldFRvU3RyaW5nVmFsdWUocHJvcHMudmFsdWUpO1xuICB2YXIgZGVmYXVsdFZhbHVlID0gZ2V0VG9TdHJpbmdWYWx1ZShwcm9wcy5kZWZhdWx0VmFsdWUpO1xuXG4gIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgLy8gQ2FzdCBgdmFsdWVgIHRvIGEgc3RyaW5nIHRvIGVuc3VyZSB0aGUgdmFsdWUgaXMgc2V0IGNvcnJlY3RseS4gV2hpbGVcbiAgICAvLyBicm93c2VycyB0eXBpY2FsbHkgZG8gdGhpcyBhcyBuZWNlc3NhcnksIGpzZG9tIGRvZXNuJ3QuXG4gICAgdmFyIG5ld1ZhbHVlID0gdG9TdHJpbmcodmFsdWUpOyAvLyBUbyBhdm9pZCBzaWRlIGVmZmVjdHMgKHN1Y2ggYXMgbG9zaW5nIHRleHQgc2VsZWN0aW9uKSwgb25seSBzZXQgdmFsdWUgaWYgY2hhbmdlZFxuXG4gICAgaWYgKG5ld1ZhbHVlICE9PSBub2RlLnZhbHVlKSB7XG4gICAgICBub2RlLnZhbHVlID0gbmV3VmFsdWU7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmRlZmF1bHRWYWx1ZSA9PSBudWxsICYmIG5vZGUuZGVmYXVsdFZhbHVlICE9PSBuZXdWYWx1ZSkge1xuICAgICAgbm9kZS5kZWZhdWx0VmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBpZiAoZGVmYXVsdFZhbHVlICE9IG51bGwpIHtcbiAgICBub2RlLmRlZmF1bHRWYWx1ZSA9IHRvU3RyaW5nKGRlZmF1bHRWYWx1ZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIHBvc3RNb3VudFdyYXBwZXIkMyhlbGVtZW50LCBwcm9wcykge1xuICB2YXIgbm9kZSA9IGVsZW1lbnQ7IC8vIFRoaXMgaXMgaW4gcG9zdE1vdW50IGJlY2F1c2Ugd2UgbmVlZCBhY2Nlc3MgdG8gdGhlIERPTSBub2RlLCB3aGljaCBpcyBub3RcbiAgLy8gYXZhaWxhYmxlIHVudGlsIGFmdGVyIHRoZSBjb21wb25lbnQgaGFzIG1vdW50ZWQuXG5cbiAgdmFyIHRleHRDb250ZW50ID0gbm9kZS50ZXh0Q29udGVudDsgLy8gT25seSBzZXQgbm9kZS52YWx1ZSBpZiB0ZXh0Q29udGVudCBpcyBlcXVhbCB0byB0aGUgZXhwZWN0ZWRcbiAgLy8gaW5pdGlhbCB2YWx1ZS4gSW4gSUUxMC9JRTExIHRoZXJlIGlzIGEgYnVnIHdoZXJlIHRoZSBwbGFjZWhvbGRlciBhdHRyaWJ1dGVcbiAgLy8gd2lsbCBwb3B1bGF0ZSB0ZXh0Q29udGVudCBhcyB3ZWxsLlxuICAvLyBodHRwczovL2RldmVsb3Blci5taWNyb3NvZnQuY29tL21pY3Jvc29mdC1lZGdlL3BsYXRmb3JtL2lzc3Vlcy8xMDE1MjUvXG5cbiAgaWYgKHRleHRDb250ZW50ID09PSBub2RlLl93cmFwcGVyU3RhdGUuaW5pdGlhbFZhbHVlKSB7XG4gICAgaWYgKHRleHRDb250ZW50ICE9PSAnJyAmJiB0ZXh0Q29udGVudCAhPT0gbnVsbCkge1xuICAgICAgbm9kZS52YWx1ZSA9IHRleHRDb250ZW50O1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gcmVzdG9yZUNvbnRyb2xsZWRTdGF0ZSQyKGVsZW1lbnQsIHByb3BzKSB7XG4gIC8vIERPTSBjb21wb25lbnQgaXMgc3RpbGwgbW91bnRlZDsgdXBkYXRlXG4gIHVwZGF0ZVdyYXBwZXIkMShlbGVtZW50LCBwcm9wcyk7XG59XG5cbnZhciBIVE1MX05BTUVTUEFDRSA9ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJztcbnZhciBNQVRIX05BTUVTUEFDRSA9ICdodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MJztcbnZhciBTVkdfTkFNRVNQQUNFID0gJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJzsgLy8gQXNzdW1lcyB0aGVyZSBpcyBubyBwYXJlbnQgbmFtZXNwYWNlLlxuXG5mdW5jdGlvbiBnZXRJbnRyaW5zaWNOYW1lc3BhY2UodHlwZSkge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdzdmcnOlxuICAgICAgcmV0dXJuIFNWR19OQU1FU1BBQ0U7XG5cbiAgICBjYXNlICdtYXRoJzpcbiAgICAgIHJldHVybiBNQVRIX05BTUVTUEFDRTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gSFRNTF9OQU1FU1BBQ0U7XG4gIH1cbn1cbmZ1bmN0aW9uIGdldENoaWxkTmFtZXNwYWNlKHBhcmVudE5hbWVzcGFjZSwgdHlwZSkge1xuICBpZiAocGFyZW50TmFtZXNwYWNlID09IG51bGwgfHwgcGFyZW50TmFtZXNwYWNlID09PSBIVE1MX05BTUVTUEFDRSkge1xuICAgIC8vIE5vIChvciBkZWZhdWx0KSBwYXJlbnQgbmFtZXNwYWNlOiBwb3RlbnRpYWwgZW50cnkgcG9pbnQuXG4gICAgcmV0dXJuIGdldEludHJpbnNpY05hbWVzcGFjZSh0eXBlKTtcbiAgfVxuXG4gIGlmIChwYXJlbnROYW1lc3BhY2UgPT09IFNWR19OQU1FU1BBQ0UgJiYgdHlwZSA9PT0gJ2ZvcmVpZ25PYmplY3QnKSB7XG4gICAgLy8gV2UncmUgbGVhdmluZyBTVkcuXG4gICAgcmV0dXJuIEhUTUxfTkFNRVNQQUNFO1xuICB9IC8vIEJ5IGRlZmF1bHQsIHBhc3MgbmFtZXNwYWNlIGJlbG93LlxuXG5cbiAgcmV0dXJuIHBhcmVudE5hbWVzcGFjZTtcbn1cblxuLyogZ2xvYmFscyBNU0FwcCAqL1xuXG4vKipcbiAqIENyZWF0ZSBhIGZ1bmN0aW9uIHdoaWNoIGhhcyAndW5zYWZlJyBwcml2aWxlZ2VzIChyZXF1aXJlZCBieSB3aW5kb3dzOCBhcHBzKVxuICovXG52YXIgY3JlYXRlTWljcm9zb2Z0VW5zYWZlTG9jYWxGdW5jdGlvbiA9IGZ1bmN0aW9uIChmdW5jKSB7XG4gIGlmICh0eXBlb2YgTVNBcHAgIT09ICd1bmRlZmluZWQnICYmIE1TQXBwLmV4ZWNVbnNhZmVMb2NhbEZ1bmN0aW9uKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChhcmcwLCBhcmcxLCBhcmcyLCBhcmczKSB7XG4gICAgICBNU0FwcC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbihmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBmdW5jKGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMpO1xuICAgICAgfSk7XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZnVuYztcbiAgfVxufTtcblxudmFyIHJldXNhYmxlU1ZHQ29udGFpbmVyO1xuLyoqXG4gKiBTZXQgdGhlIGlubmVySFRNTCBwcm9wZXJ0eSBvZiBhIG5vZGVcbiAqXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR9IG5vZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSBodG1sXG4gKiBAaW50ZXJuYWxcbiAqL1xuXG52YXIgc2V0SW5uZXJIVE1MID0gY3JlYXRlTWljcm9zb2Z0VW5zYWZlTG9jYWxGdW5jdGlvbihmdW5jdGlvbiAobm9kZSwgaHRtbCkge1xuICBpZiAobm9kZS5uYW1lc3BhY2VVUkkgPT09IFNWR19OQU1FU1BBQ0UpIHtcblxuICAgIGlmICghKCdpbm5lckhUTUwnIGluIG5vZGUpKSB7XG4gICAgICAvLyBJRSBkb2VzIG5vdCBoYXZlIGlubmVySFRNTCBmb3IgU1ZHIG5vZGVzLCBzbyBpbnN0ZWFkIHdlIGluamVjdCB0aGVcbiAgICAgIC8vIG5ldyBtYXJrdXAgaW4gYSB0ZW1wIG5vZGUgYW5kIHRoZW4gbW92ZSB0aGUgY2hpbGQgbm9kZXMgYWNyb3NzIGludG9cbiAgICAgIC8vIHRoZSB0YXJnZXQgbm9kZVxuICAgICAgcmV1c2FibGVTVkdDb250YWluZXIgPSByZXVzYWJsZVNWR0NvbnRhaW5lciB8fCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHJldXNhYmxlU1ZHQ29udGFpbmVyLmlubmVySFRNTCA9ICc8c3ZnPicgKyBodG1sLnZhbHVlT2YoKS50b1N0cmluZygpICsgJzwvc3ZnPic7XG4gICAgICB2YXIgc3ZnTm9kZSA9IHJldXNhYmxlU1ZHQ29udGFpbmVyLmZpcnN0Q2hpbGQ7XG5cbiAgICAgIHdoaWxlIChub2RlLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgbm9kZS5yZW1vdmVDaGlsZChub2RlLmZpcnN0Q2hpbGQpO1xuICAgICAgfVxuXG4gICAgICB3aGlsZSAoc3ZnTm9kZS5maXJzdENoaWxkKSB7XG4gICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoc3ZnTm9kZS5maXJzdENoaWxkKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIG5vZGUuaW5uZXJIVE1MID0gaHRtbDtcbn0pO1xuXG4vKipcbiAqIEhUTUwgbm9kZVR5cGUgdmFsdWVzIHRoYXQgcmVwcmVzZW50IHRoZSB0eXBlIG9mIHRoZSBub2RlXG4gKi9cbnZhciBFTEVNRU5UX05PREUgPSAxO1xudmFyIFRFWFRfTk9ERSA9IDM7XG52YXIgQ09NTUVOVF9OT0RFID0gODtcbnZhciBET0NVTUVOVF9OT0RFID0gOTtcbnZhciBET0NVTUVOVF9GUkFHTUVOVF9OT0RFID0gMTE7XG5cbi8qKlxuICogU2V0IHRoZSB0ZXh0Q29udGVudCBwcm9wZXJ0eSBvZiBhIG5vZGUuIEZvciB0ZXh0IHVwZGF0ZXMsIGl0J3MgZmFzdGVyXG4gKiB0byBzZXQgdGhlIGBub2RlVmFsdWVgIG9mIHRoZSBUZXh0IG5vZGUgZGlyZWN0bHkgaW5zdGVhZCBvZiB1c2luZ1xuICogYC50ZXh0Q29udGVudGAgd2hpY2ggd2lsbCByZW1vdmUgdGhlIGV4aXN0aW5nIG5vZGUgYW5kIGNyZWF0ZSBhIG5ldyBvbmUuXG4gKlxuICogQHBhcmFtIHtET01FbGVtZW50fSBub2RlXG4gKiBAcGFyYW0ge3N0cmluZ30gdGV4dFxuICogQGludGVybmFsXG4gKi9cblxudmFyIHNldFRleHRDb250ZW50ID0gZnVuY3Rpb24gKG5vZGUsIHRleHQpIHtcbiAgaWYgKHRleHQpIHtcbiAgICB2YXIgZmlyc3RDaGlsZCA9IG5vZGUuZmlyc3RDaGlsZDtcblxuICAgIGlmIChmaXJzdENoaWxkICYmIGZpcnN0Q2hpbGQgPT09IG5vZGUubGFzdENoaWxkICYmIGZpcnN0Q2hpbGQubm9kZVR5cGUgPT09IFRFWFRfTk9ERSkge1xuICAgICAgZmlyc3RDaGlsZC5ub2RlVmFsdWUgPSB0ZXh0O1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIG5vZGUudGV4dENvbnRlbnQgPSB0ZXh0O1xufTtcblxuLy8gTGlzdCBkZXJpdmVkIGZyb20gR2Vja28gc291cmNlIGNvZGU6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrby1kZXYvYmxvYi80ZTYzOGVmYzcxL2xheW91dC9zdHlsZS90ZXN0L3Byb3BlcnR5X2RhdGFiYXNlLmpzXG52YXIgc2hvcnRoYW5kVG9Mb25naGFuZCA9IHtcbiAgYW5pbWF0aW9uOiBbJ2FuaW1hdGlvbkRlbGF5JywgJ2FuaW1hdGlvbkRpcmVjdGlvbicsICdhbmltYXRpb25EdXJhdGlvbicsICdhbmltYXRpb25GaWxsTW9kZScsICdhbmltYXRpb25JdGVyYXRpb25Db3VudCcsICdhbmltYXRpb25OYW1lJywgJ2FuaW1hdGlvblBsYXlTdGF0ZScsICdhbmltYXRpb25UaW1pbmdGdW5jdGlvbiddLFxuICBiYWNrZ3JvdW5kOiBbJ2JhY2tncm91bmRBdHRhY2htZW50JywgJ2JhY2tncm91bmRDbGlwJywgJ2JhY2tncm91bmRDb2xvcicsICdiYWNrZ3JvdW5kSW1hZ2UnLCAnYmFja2dyb3VuZE9yaWdpbicsICdiYWNrZ3JvdW5kUG9zaXRpb25YJywgJ2JhY2tncm91bmRQb3NpdGlvblknLCAnYmFja2dyb3VuZFJlcGVhdCcsICdiYWNrZ3JvdW5kU2l6ZSddLFxuICBiYWNrZ3JvdW5kUG9zaXRpb246IFsnYmFja2dyb3VuZFBvc2l0aW9uWCcsICdiYWNrZ3JvdW5kUG9zaXRpb25ZJ10sXG4gIGJvcmRlcjogWydib3JkZXJCb3R0b21Db2xvcicsICdib3JkZXJCb3R0b21TdHlsZScsICdib3JkZXJCb3R0b21XaWR0aCcsICdib3JkZXJJbWFnZU91dHNldCcsICdib3JkZXJJbWFnZVJlcGVhdCcsICdib3JkZXJJbWFnZVNsaWNlJywgJ2JvcmRlckltYWdlU291cmNlJywgJ2JvcmRlckltYWdlV2lkdGgnLCAnYm9yZGVyTGVmdENvbG9yJywgJ2JvcmRlckxlZnRTdHlsZScsICdib3JkZXJMZWZ0V2lkdGgnLCAnYm9yZGVyUmlnaHRDb2xvcicsICdib3JkZXJSaWdodFN0eWxlJywgJ2JvcmRlclJpZ2h0V2lkdGgnLCAnYm9yZGVyVG9wQ29sb3InLCAnYm9yZGVyVG9wU3R5bGUnLCAnYm9yZGVyVG9wV2lkdGgnXSxcbiAgYm9yZGVyQmxvY2tFbmQ6IFsnYm9yZGVyQmxvY2tFbmRDb2xvcicsICdib3JkZXJCbG9ja0VuZFN0eWxlJywgJ2JvcmRlckJsb2NrRW5kV2lkdGgnXSxcbiAgYm9yZGVyQmxvY2tTdGFydDogWydib3JkZXJCbG9ja1N0YXJ0Q29sb3InLCAnYm9yZGVyQmxvY2tTdGFydFN0eWxlJywgJ2JvcmRlckJsb2NrU3RhcnRXaWR0aCddLFxuICBib3JkZXJCb3R0b206IFsnYm9yZGVyQm90dG9tQ29sb3InLCAnYm9yZGVyQm90dG9tU3R5bGUnLCAnYm9yZGVyQm90dG9tV2lkdGgnXSxcbiAgYm9yZGVyQ29sb3I6IFsnYm9yZGVyQm90dG9tQ29sb3InLCAnYm9yZGVyTGVmdENvbG9yJywgJ2JvcmRlclJpZ2h0Q29sb3InLCAnYm9yZGVyVG9wQ29sb3InXSxcbiAgYm9yZGVySW1hZ2U6IFsnYm9yZGVySW1hZ2VPdXRzZXQnLCAnYm9yZGVySW1hZ2VSZXBlYXQnLCAnYm9yZGVySW1hZ2VTbGljZScsICdib3JkZXJJbWFnZVNvdXJjZScsICdib3JkZXJJbWFnZVdpZHRoJ10sXG4gIGJvcmRlcklubGluZUVuZDogWydib3JkZXJJbmxpbmVFbmRDb2xvcicsICdib3JkZXJJbmxpbmVFbmRTdHlsZScsICdib3JkZXJJbmxpbmVFbmRXaWR0aCddLFxuICBib3JkZXJJbmxpbmVTdGFydDogWydib3JkZXJJbmxpbmVTdGFydENvbG9yJywgJ2JvcmRlcklubGluZVN0YXJ0U3R5bGUnLCAnYm9yZGVySW5saW5lU3RhcnRXaWR0aCddLFxuICBib3JkZXJMZWZ0OiBbJ2JvcmRlckxlZnRDb2xvcicsICdib3JkZXJMZWZ0U3R5bGUnLCAnYm9yZGVyTGVmdFdpZHRoJ10sXG4gIGJvcmRlclJhZGl1czogWydib3JkZXJCb3R0b21MZWZ0UmFkaXVzJywgJ2JvcmRlckJvdHRvbVJpZ2h0UmFkaXVzJywgJ2JvcmRlclRvcExlZnRSYWRpdXMnLCAnYm9yZGVyVG9wUmlnaHRSYWRpdXMnXSxcbiAgYm9yZGVyUmlnaHQ6IFsnYm9yZGVyUmlnaHRDb2xvcicsICdib3JkZXJSaWdodFN0eWxlJywgJ2JvcmRlclJpZ2h0V2lkdGgnXSxcbiAgYm9yZGVyU3R5bGU6IFsnYm9yZGVyQm90dG9tU3R5bGUnLCAnYm9yZGVyTGVmdFN0eWxlJywgJ2JvcmRlclJpZ2h0U3R5bGUnLCAnYm9yZGVyVG9wU3R5bGUnXSxcbiAgYm9yZGVyVG9wOiBbJ2JvcmRlclRvcENvbG9yJywgJ2JvcmRlclRvcFN0eWxlJywgJ2JvcmRlclRvcFdpZHRoJ10sXG4gIGJvcmRlcldpZHRoOiBbJ2JvcmRlckJvdHRvbVdpZHRoJywgJ2JvcmRlckxlZnRXaWR0aCcsICdib3JkZXJSaWdodFdpZHRoJywgJ2JvcmRlclRvcFdpZHRoJ10sXG4gIGNvbHVtblJ1bGU6IFsnY29sdW1uUnVsZUNvbG9yJywgJ2NvbHVtblJ1bGVTdHlsZScsICdjb2x1bW5SdWxlV2lkdGgnXSxcbiAgY29sdW1uczogWydjb2x1bW5Db3VudCcsICdjb2x1bW5XaWR0aCddLFxuICBmbGV4OiBbJ2ZsZXhCYXNpcycsICdmbGV4R3JvdycsICdmbGV4U2hyaW5rJ10sXG4gIGZsZXhGbG93OiBbJ2ZsZXhEaXJlY3Rpb24nLCAnZmxleFdyYXAnXSxcbiAgZm9udDogWydmb250RmFtaWx5JywgJ2ZvbnRGZWF0dXJlU2V0dGluZ3MnLCAnZm9udEtlcm5pbmcnLCAnZm9udExhbmd1YWdlT3ZlcnJpZGUnLCAnZm9udFNpemUnLCAnZm9udFNpemVBZGp1c3QnLCAnZm9udFN0cmV0Y2gnLCAnZm9udFN0eWxlJywgJ2ZvbnRWYXJpYW50JywgJ2ZvbnRWYXJpYW50QWx0ZXJuYXRlcycsICdmb250VmFyaWFudENhcHMnLCAnZm9udFZhcmlhbnRFYXN0QXNpYW4nLCAnZm9udFZhcmlhbnRMaWdhdHVyZXMnLCAnZm9udFZhcmlhbnROdW1lcmljJywgJ2ZvbnRWYXJpYW50UG9zaXRpb24nLCAnZm9udFdlaWdodCcsICdsaW5lSGVpZ2h0J10sXG4gIGZvbnRWYXJpYW50OiBbJ2ZvbnRWYXJpYW50QWx0ZXJuYXRlcycsICdmb250VmFyaWFudENhcHMnLCAnZm9udFZhcmlhbnRFYXN0QXNpYW4nLCAnZm9udFZhcmlhbnRMaWdhdHVyZXMnLCAnZm9udFZhcmlhbnROdW1lcmljJywgJ2ZvbnRWYXJpYW50UG9zaXRpb24nXSxcbiAgZ2FwOiBbJ2NvbHVtbkdhcCcsICdyb3dHYXAnXSxcbiAgZ3JpZDogWydncmlkQXV0b0NvbHVtbnMnLCAnZ3JpZEF1dG9GbG93JywgJ2dyaWRBdXRvUm93cycsICdncmlkVGVtcGxhdGVBcmVhcycsICdncmlkVGVtcGxhdGVDb2x1bW5zJywgJ2dyaWRUZW1wbGF0ZVJvd3MnXSxcbiAgZ3JpZEFyZWE6IFsnZ3JpZENvbHVtbkVuZCcsICdncmlkQ29sdW1uU3RhcnQnLCAnZ3JpZFJvd0VuZCcsICdncmlkUm93U3RhcnQnXSxcbiAgZ3JpZENvbHVtbjogWydncmlkQ29sdW1uRW5kJywgJ2dyaWRDb2x1bW5TdGFydCddLFxuICBncmlkQ29sdW1uR2FwOiBbJ2NvbHVtbkdhcCddLFxuICBncmlkR2FwOiBbJ2NvbHVtbkdhcCcsICdyb3dHYXAnXSxcbiAgZ3JpZFJvdzogWydncmlkUm93RW5kJywgJ2dyaWRSb3dTdGFydCddLFxuICBncmlkUm93R2FwOiBbJ3Jvd0dhcCddLFxuICBncmlkVGVtcGxhdGU6IFsnZ3JpZFRlbXBsYXRlQXJlYXMnLCAnZ3JpZFRlbXBsYXRlQ29sdW1ucycsICdncmlkVGVtcGxhdGVSb3dzJ10sXG4gIGxpc3RTdHlsZTogWydsaXN0U3R5bGVJbWFnZScsICdsaXN0U3R5bGVQb3NpdGlvbicsICdsaXN0U3R5bGVUeXBlJ10sXG4gIG1hcmdpbjogWydtYXJnaW5Cb3R0b20nLCAnbWFyZ2luTGVmdCcsICdtYXJnaW5SaWdodCcsICdtYXJnaW5Ub3AnXSxcbiAgbWFya2VyOiBbJ21hcmtlckVuZCcsICdtYXJrZXJNaWQnLCAnbWFya2VyU3RhcnQnXSxcbiAgbWFzazogWydtYXNrQ2xpcCcsICdtYXNrQ29tcG9zaXRlJywgJ21hc2tJbWFnZScsICdtYXNrTW9kZScsICdtYXNrT3JpZ2luJywgJ21hc2tQb3NpdGlvblgnLCAnbWFza1Bvc2l0aW9uWScsICdtYXNrUmVwZWF0JywgJ21hc2tTaXplJ10sXG4gIG1hc2tQb3NpdGlvbjogWydtYXNrUG9zaXRpb25YJywgJ21hc2tQb3NpdGlvblknXSxcbiAgb3V0bGluZTogWydvdXRsaW5lQ29sb3InLCAnb3V0bGluZVN0eWxlJywgJ291dGxpbmVXaWR0aCddLFxuICBvdmVyZmxvdzogWydvdmVyZmxvd1gnLCAnb3ZlcmZsb3dZJ10sXG4gIHBhZGRpbmc6IFsncGFkZGluZ0JvdHRvbScsICdwYWRkaW5nTGVmdCcsICdwYWRkaW5nUmlnaHQnLCAncGFkZGluZ1RvcCddLFxuICBwbGFjZUNvbnRlbnQ6IFsnYWxpZ25Db250ZW50JywgJ2p1c3RpZnlDb250ZW50J10sXG4gIHBsYWNlSXRlbXM6IFsnYWxpZ25JdGVtcycsICdqdXN0aWZ5SXRlbXMnXSxcbiAgcGxhY2VTZWxmOiBbJ2FsaWduU2VsZicsICdqdXN0aWZ5U2VsZiddLFxuICB0ZXh0RGVjb3JhdGlvbjogWyd0ZXh0RGVjb3JhdGlvbkNvbG9yJywgJ3RleHREZWNvcmF0aW9uTGluZScsICd0ZXh0RGVjb3JhdGlvblN0eWxlJ10sXG4gIHRleHRFbXBoYXNpczogWyd0ZXh0RW1waGFzaXNDb2xvcicsICd0ZXh0RW1waGFzaXNTdHlsZSddLFxuICB0cmFuc2l0aW9uOiBbJ3RyYW5zaXRpb25EZWxheScsICd0cmFuc2l0aW9uRHVyYXRpb24nLCAndHJhbnNpdGlvblByb3BlcnR5JywgJ3RyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiddLFxuICB3b3JkV3JhcDogWydvdmVyZmxvd1dyYXAnXVxufTtcblxuLyoqXG4gKiBDU1MgcHJvcGVydGllcyB3aGljaCBhY2NlcHQgbnVtYmVycyBidXQgYXJlIG5vdCBpbiB1bml0cyBvZiBcInB4XCIuXG4gKi9cbnZhciBpc1VuaXRsZXNzTnVtYmVyID0ge1xuICBhbmltYXRpb25JdGVyYXRpb25Db3VudDogdHJ1ZSxcbiAgYXNwZWN0UmF0aW86IHRydWUsXG4gIGJvcmRlckltYWdlT3V0c2V0OiB0cnVlLFxuICBib3JkZXJJbWFnZVNsaWNlOiB0cnVlLFxuICBib3JkZXJJbWFnZVdpZHRoOiB0cnVlLFxuICBib3hGbGV4OiB0cnVlLFxuICBib3hGbGV4R3JvdXA6IHRydWUsXG4gIGJveE9yZGluYWxHcm91cDogdHJ1ZSxcbiAgY29sdW1uQ291bnQ6IHRydWUsXG4gIGNvbHVtbnM6IHRydWUsXG4gIGZsZXg6IHRydWUsXG4gIGZsZXhHcm93OiB0cnVlLFxuICBmbGV4UG9zaXRpdmU6IHRydWUsXG4gIGZsZXhTaHJpbms6IHRydWUsXG4gIGZsZXhOZWdhdGl2ZTogdHJ1ZSxcbiAgZmxleE9yZGVyOiB0cnVlLFxuICBncmlkQXJlYTogdHJ1ZSxcbiAgZ3JpZFJvdzogdHJ1ZSxcbiAgZ3JpZFJvd0VuZDogdHJ1ZSxcbiAgZ3JpZFJvd1NwYW46IHRydWUsXG4gIGdyaWRSb3dTdGFydDogdHJ1ZSxcbiAgZ3JpZENvbHVtbjogdHJ1ZSxcbiAgZ3JpZENvbHVtbkVuZDogdHJ1ZSxcbiAgZ3JpZENvbHVtblNwYW46IHRydWUsXG4gIGdyaWRDb2x1bW5TdGFydDogdHJ1ZSxcbiAgZm9udFdlaWdodDogdHJ1ZSxcbiAgbGluZUNsYW1wOiB0cnVlLFxuICBsaW5lSGVpZ2h0OiB0cnVlLFxuICBvcGFjaXR5OiB0cnVlLFxuICBvcmRlcjogdHJ1ZSxcbiAgb3JwaGFuczogdHJ1ZSxcbiAgdGFiU2l6ZTogdHJ1ZSxcbiAgd2lkb3dzOiB0cnVlLFxuICB6SW5kZXg6IHRydWUsXG4gIHpvb206IHRydWUsXG4gIC8vIFNWRy1yZWxhdGVkIHByb3BlcnRpZXNcbiAgZmlsbE9wYWNpdHk6IHRydWUsXG4gIGZsb29kT3BhY2l0eTogdHJ1ZSxcbiAgc3RvcE9wYWNpdHk6IHRydWUsXG4gIHN0cm9rZURhc2hhcnJheTogdHJ1ZSxcbiAgc3Ryb2tlRGFzaG9mZnNldDogdHJ1ZSxcbiAgc3Ryb2tlTWl0ZXJsaW1pdDogdHJ1ZSxcbiAgc3Ryb2tlT3BhY2l0eTogdHJ1ZSxcbiAgc3Ryb2tlV2lkdGg6IHRydWVcbn07XG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcmVmaXggdmVuZG9yLXNwZWNpZmljIHByZWZpeCwgZWc6IFdlYmtpdFxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBzdHlsZSBuYW1lLCBlZzogdHJhbnNpdGlvbkR1cmF0aW9uXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHN0eWxlIG5hbWUgcHJlZml4ZWQgd2l0aCBgcHJlZml4YCwgcHJvcGVybHkgY2FtZWxDYXNlZCwgZWc6XG4gKiBXZWJraXRUcmFuc2l0aW9uRHVyYXRpb25cbiAqL1xuXG5mdW5jdGlvbiBwcmVmaXhLZXkocHJlZml4LCBrZXkpIHtcbiAgcmV0dXJuIHByZWZpeCArIGtleS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGtleS5zdWJzdHJpbmcoMSk7XG59XG4vKipcbiAqIFN1cHBvcnQgc3R5bGUgbmFtZXMgdGhhdCBtYXkgY29tZSBwYXNzZWQgaW4gcHJlZml4ZWQgYnkgYWRkaW5nIHBlcm11dGF0aW9uc1xuICogb2YgdmVuZG9yIHByZWZpeGVzLlxuICovXG5cblxudmFyIHByZWZpeGVzID0gWydXZWJraXQnLCAnbXMnLCAnTW96JywgJ08nXTsgLy8gVXNpbmcgT2JqZWN0LmtleXMgaGVyZSwgb3IgZWxzZSB0aGUgdmFuaWxsYSBmb3ItaW4gbG9vcCBtYWtlcyBJRTggZ28gaW50byBhblxuLy8gaW5maW5pdGUgbG9vcCwgYmVjYXVzZSBpdCBpdGVyYXRlcyBvdmVyIHRoZSBuZXdseSBhZGRlZCBwcm9wcyB0b28uXG5cbk9iamVjdC5rZXlzKGlzVW5pdGxlc3NOdW1iZXIpLmZvckVhY2goZnVuY3Rpb24gKHByb3ApIHtcbiAgcHJlZml4ZXMuZm9yRWFjaChmdW5jdGlvbiAocHJlZml4KSB7XG4gICAgaXNVbml0bGVzc051bWJlcltwcmVmaXhLZXkocHJlZml4LCBwcm9wKV0gPSBpc1VuaXRsZXNzTnVtYmVyW3Byb3BdO1xuICB9KTtcbn0pO1xuXG4vKipcbiAqIENvbnZlcnQgYSB2YWx1ZSBpbnRvIHRoZSBwcm9wZXIgY3NzIHdyaXRhYmxlIHZhbHVlLiBUaGUgc3R5bGUgbmFtZSBgbmFtZWBcbiAqIHNob3VsZCBiZSBsb2dpY2FsIChubyBoeXBoZW5zKSwgYXMgc3BlY2lmaWVkXG4gKiBpbiBgQ1NTUHJvcGVydHkuaXNVbml0bGVzc051bWJlcmAuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgQ1NTIHByb3BlcnR5IG5hbWUgc3VjaCBhcyBgdG9wTWFyZ2luYC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgQ1NTIHByb3BlcnR5IHZhbHVlIHN1Y2ggYXMgYDEwcHhgLlxuICogQHJldHVybiB7c3RyaW5nfSBOb3JtYWxpemVkIHN0eWxlIHZhbHVlIHdpdGggZGltZW5zaW9ucyBhcHBsaWVkLlxuICovXG5cbmZ1bmN0aW9uIGRhbmdlcm91c1N0eWxlVmFsdWUobmFtZSwgdmFsdWUsIGlzQ3VzdG9tUHJvcGVydHkpIHtcbiAgLy8gTm90ZSB0aGF0IHdlJ3ZlIHJlbW92ZWQgZXNjYXBlVGV4dEZvckJyb3dzZXIoKSBjYWxscyBoZXJlIHNpbmNlIHRoZVxuICAvLyB3aG9sZSBzdHJpbmcgd2lsbCBiZSBlc2NhcGVkIHdoZW4gdGhlIGF0dHJpYnV0ZSBpcyBpbmplY3RlZCBpbnRvXG4gIC8vIHRoZSBtYXJrdXAuIElmIHlvdSBwcm92aWRlIHVuc2FmZSB1c2VyIGRhdGEgaGVyZSB0aGV5IGNhbiBpbmplY3RcbiAgLy8gYXJiaXRyYXJ5IENTUyB3aGljaCBtYXkgYmUgcHJvYmxlbWF0aWMgKEkgY291bGRuJ3QgcmVwcm8gdGhpcyk6XG4gIC8vIGh0dHBzOi8vd3d3Lm93YXNwLm9yZy9pbmRleC5waHAvWFNTX0ZpbHRlcl9FdmFzaW9uX0NoZWF0X1NoZWV0XG4gIC8vIGh0dHA6Ly93d3cudGhlc3Bhbm5lci5jby51ay8yMDA3LzExLzI2L3VsdGltYXRlLXhzcy1jc3MtaW5qZWN0aW9uL1xuICAvLyBUaGlzIGlzIG5vdCBhbiBYU1MgaG9sZSBidXQgaW5zdGVhZCBhIHBvdGVudGlhbCBDU1MgaW5qZWN0aW9uIGlzc3VlXG4gIC8vIHdoaWNoIGhhcyBsZWFkIHRvIGEgZ3JlYXRlciBkaXNjdXNzaW9uIGFib3V0IGhvdyB3ZSdyZSBnb2luZyB0b1xuICAvLyB0cnVzdCBVUkxzIG1vdmluZyBmb3J3YXJkLiBTZWUgIzIxMTU5MDFcbiAgdmFyIGlzRW1wdHkgPSB2YWx1ZSA9PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nIHx8IHZhbHVlID09PSAnJztcblxuICBpZiAoaXNFbXB0eSkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGlmICghaXNDdXN0b21Qcm9wZXJ0eSAmJiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIHZhbHVlICE9PSAwICYmICEoaXNVbml0bGVzc051bWJlci5oYXNPd25Qcm9wZXJ0eShuYW1lKSAmJiBpc1VuaXRsZXNzTnVtYmVyW25hbWVdKSkge1xuICAgIHJldHVybiB2YWx1ZSArICdweCc7IC8vIFByZXN1bWVzIGltcGxpY2l0ICdweCcgc3VmZml4IGZvciB1bml0bGVzcyBudW1iZXJzXG4gIH1cblxuICB7XG4gICAgY2hlY2tDU1NQcm9wZXJ0eVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBuYW1lKTtcbiAgfVxuXG4gIHJldHVybiAoJycgKyB2YWx1ZSkudHJpbSgpO1xufVxuXG52YXIgdXBwZXJjYXNlUGF0dGVybiA9IC8oW0EtWl0pL2c7XG52YXIgbXNQYXR0ZXJuID0gL15tcy0vO1xuLyoqXG4gKiBIeXBoZW5hdGVzIGEgY2FtZWxjYXNlZCBDU1MgcHJvcGVydHkgbmFtZSwgZm9yIGV4YW1wbGU6XG4gKlxuICogICA+IGh5cGhlbmF0ZVN0eWxlTmFtZSgnYmFja2dyb3VuZENvbG9yJylcbiAqICAgPCBcImJhY2tncm91bmQtY29sb3JcIlxuICogICA+IGh5cGhlbmF0ZVN0eWxlTmFtZSgnTW96VHJhbnNpdGlvbicpXG4gKiAgIDwgXCItbW96LXRyYW5zaXRpb25cIlxuICogICA+IGh5cGhlbmF0ZVN0eWxlTmFtZSgnbXNUcmFuc2l0aW9uJylcbiAqICAgPCBcIi1tcy10cmFuc2l0aW9uXCJcbiAqXG4gKiBBcyBNb2Rlcm5penIgc3VnZ2VzdHMgKGh0dHA6Ly9tb2Rlcm5penIuY29tL2RvY3MvI3ByZWZpeGVkKSwgYW4gYG1zYCBwcmVmaXhcbiAqIGlzIGNvbnZlcnRlZCB0byBgLW1zLWAuXG4gKi9cblxuZnVuY3Rpb24gaHlwaGVuYXRlU3R5bGVOYW1lKG5hbWUpIHtcbiAgcmV0dXJuIG5hbWUucmVwbGFjZSh1cHBlcmNhc2VQYXR0ZXJuLCAnLSQxJykudG9Mb3dlckNhc2UoKS5yZXBsYWNlKG1zUGF0dGVybiwgJy1tcy0nKTtcbn1cblxudmFyIHdhcm5WYWxpZFN0eWxlID0gZnVuY3Rpb24gKCkge307XG5cbntcbiAgLy8gJ21zVHJhbnNmb3JtJyBpcyBjb3JyZWN0LCBidXQgdGhlIG90aGVyIHByZWZpeGVzIHNob3VsZCBiZSBjYXBpdGFsaXplZFxuICB2YXIgYmFkVmVuZG9yZWRTdHlsZU5hbWVQYXR0ZXJuID0gL14oPzp3ZWJraXR8bW96fG8pW0EtWl0vO1xuICB2YXIgbXNQYXR0ZXJuJDEgPSAvXi1tcy0vO1xuICB2YXIgaHlwaGVuUGF0dGVybiA9IC8tKC4pL2c7IC8vIHN0eWxlIHZhbHVlcyBzaG91bGRuJ3QgY29udGFpbiBhIHNlbWljb2xvblxuXG4gIHZhciBiYWRTdHlsZVZhbHVlV2l0aFNlbWljb2xvblBhdHRlcm4gPSAvO1xccyokLztcbiAgdmFyIHdhcm5lZFN0eWxlTmFtZXMgPSB7fTtcbiAgdmFyIHdhcm5lZFN0eWxlVmFsdWVzID0ge307XG4gIHZhciB3YXJuZWRGb3JOYU5WYWx1ZSA9IGZhbHNlO1xuICB2YXIgd2FybmVkRm9ySW5maW5pdHlWYWx1ZSA9IGZhbHNlO1xuXG4gIHZhciBjYW1lbGl6ZSA9IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoaHlwaGVuUGF0dGVybiwgZnVuY3Rpb24gKF8sIGNoYXJhY3Rlcikge1xuICAgICAgcmV0dXJuIGNoYXJhY3Rlci50b1VwcGVyQ2FzZSgpO1xuICAgIH0pO1xuICB9O1xuXG4gIHZhciB3YXJuSHlwaGVuYXRlZFN0eWxlTmFtZSA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgaWYgKHdhcm5lZFN0eWxlTmFtZXMuaGFzT3duUHJvcGVydHkobmFtZSkgJiYgd2FybmVkU3R5bGVOYW1lc1tuYW1lXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHdhcm5lZFN0eWxlTmFtZXNbbmFtZV0gPSB0cnVlO1xuXG4gICAgZXJyb3IoJ1Vuc3VwcG9ydGVkIHN0eWxlIHByb3BlcnR5ICVzLiBEaWQgeW91IG1lYW4gJXM/JywgbmFtZSwgLy8gQXMgQW5kaSBTbWl0aCBzdWdnZXN0c1xuICAgIC8vIChodHRwOi8vd3d3LmFuZGlzbWl0aC5jb20vYmxvZy8yMDEyLzAyL21vZGVybml6ci1wcmVmaXhlZC8pLCBhbiBgLW1zYCBwcmVmaXhcbiAgICAvLyBpcyBjb252ZXJ0ZWQgdG8gbG93ZXJjYXNlIGBtc2AuXG4gICAgY2FtZWxpemUobmFtZS5yZXBsYWNlKG1zUGF0dGVybiQxLCAnbXMtJykpKTtcbiAgfTtcblxuICB2YXIgd2FybkJhZFZlbmRvcmVkU3R5bGVOYW1lID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgICBpZiAod2FybmVkU3R5bGVOYW1lcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSAmJiB3YXJuZWRTdHlsZU5hbWVzW25hbWVdKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2FybmVkU3R5bGVOYW1lc1tuYW1lXSA9IHRydWU7XG5cbiAgICBlcnJvcignVW5zdXBwb3J0ZWQgdmVuZG9yLXByZWZpeGVkIHN0eWxlIHByb3BlcnR5ICVzLiBEaWQgeW91IG1lYW4gJXM/JywgbmFtZSwgbmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIG5hbWUuc2xpY2UoMSkpO1xuICB9O1xuXG4gIHZhciB3YXJuU3R5bGVWYWx1ZVdpdGhTZW1pY29sb24gPSBmdW5jdGlvbiAobmFtZSwgdmFsdWUpIHtcbiAgICBpZiAod2FybmVkU3R5bGVWYWx1ZXMuaGFzT3duUHJvcGVydHkodmFsdWUpICYmIHdhcm5lZFN0eWxlVmFsdWVzW3ZhbHVlXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHdhcm5lZFN0eWxlVmFsdWVzW3ZhbHVlXSA9IHRydWU7XG5cbiAgICBlcnJvcihcIlN0eWxlIHByb3BlcnR5IHZhbHVlcyBzaG91bGRuJ3QgY29udGFpbiBhIHNlbWljb2xvbi4gXCIgKyAnVHJ5IFwiJXM6ICVzXCIgaW5zdGVhZC4nLCBuYW1lLCB2YWx1ZS5yZXBsYWNlKGJhZFN0eWxlVmFsdWVXaXRoU2VtaWNvbG9uUGF0dGVybiwgJycpKTtcbiAgfTtcblxuICB2YXIgd2FyblN0eWxlVmFsdWVJc05hTiA9IGZ1bmN0aW9uIChuYW1lLCB2YWx1ZSkge1xuICAgIGlmICh3YXJuZWRGb3JOYU5WYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHdhcm5lZEZvck5hTlZhbHVlID0gdHJ1ZTtcblxuICAgIGVycm9yKCdgTmFOYCBpcyBhbiBpbnZhbGlkIHZhbHVlIGZvciB0aGUgYCVzYCBjc3Mgc3R5bGUgcHJvcGVydHkuJywgbmFtZSk7XG4gIH07XG5cbiAgdmFyIHdhcm5TdHlsZVZhbHVlSXNJbmZpbml0eSA9IGZ1bmN0aW9uIChuYW1lLCB2YWx1ZSkge1xuICAgIGlmICh3YXJuZWRGb3JJbmZpbml0eVZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2FybmVkRm9ySW5maW5pdHlWYWx1ZSA9IHRydWU7XG5cbiAgICBlcnJvcignYEluZmluaXR5YCBpcyBhbiBpbnZhbGlkIHZhbHVlIGZvciB0aGUgYCVzYCBjc3Mgc3R5bGUgcHJvcGVydHkuJywgbmFtZSk7XG4gIH07XG5cbiAgd2FyblZhbGlkU3R5bGUgPSBmdW5jdGlvbiAobmFtZSwgdmFsdWUpIHtcbiAgICBpZiAobmFtZS5pbmRleE9mKCctJykgPiAtMSkge1xuICAgICAgd2Fybkh5cGhlbmF0ZWRTdHlsZU5hbWUobmFtZSk7XG4gICAgfSBlbHNlIGlmIChiYWRWZW5kb3JlZFN0eWxlTmFtZVBhdHRlcm4udGVzdChuYW1lKSkge1xuICAgICAgd2FybkJhZFZlbmRvcmVkU3R5bGVOYW1lKG5hbWUpO1xuICAgIH0gZWxzZSBpZiAoYmFkU3R5bGVWYWx1ZVdpdGhTZW1pY29sb25QYXR0ZXJuLnRlc3QodmFsdWUpKSB7XG4gICAgICB3YXJuU3R5bGVWYWx1ZVdpdGhTZW1pY29sb24obmFtZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgICAgIHdhcm5TdHlsZVZhbHVlSXNOYU4obmFtZSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIGlmICghaXNGaW5pdGUodmFsdWUpKSB7XG4gICAgICAgIHdhcm5TdHlsZVZhbHVlSXNJbmZpbml0eShuYW1lLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufVxuXG52YXIgd2FyblZhbGlkU3R5bGUkMSA9IHdhcm5WYWxpZFN0eWxlO1xuXG4vKipcbiAqIE9wZXJhdGlvbnMgZm9yIGRlYWxpbmcgd2l0aCBDU1MgcHJvcGVydGllcy5cbiAqL1xuXG4vKipcbiAqIFRoaXMgY3JlYXRlcyBhIHN0cmluZyB0aGF0IGlzIGV4cGVjdGVkIHRvIGJlIGVxdWl2YWxlbnQgdG8gdGhlIHN0eWxlXG4gKiBhdHRyaWJ1dGUgZ2VuZXJhdGVkIGJ5IHNlcnZlci1zaWRlIHJlbmRlcmluZy4gSXQgYnktcGFzc2VzIHdhcm5pbmdzIGFuZFxuICogc2VjdXJpdHkgY2hlY2tzIHNvIGl0J3Mgbm90IHNhZmUgdG8gdXNlIHRoaXMgdmFsdWUgZm9yIGFueXRoaW5nIG90aGVyIHRoYW5cbiAqIGNvbXBhcmlzb24uIEl0IGlzIG9ubHkgdXNlZCBpbiBERVYgZm9yIFNTUiB2YWxpZGF0aW9uLlxuICovXG5cbmZ1bmN0aW9uIGNyZWF0ZURhbmdlcm91c1N0cmluZ0ZvclN0eWxlcyhzdHlsZXMpIHtcbiAge1xuICAgIHZhciBzZXJpYWxpemVkID0gJyc7XG4gICAgdmFyIGRlbGltaXRlciA9ICcnO1xuXG4gICAgZm9yICh2YXIgc3R5bGVOYW1lIGluIHN0eWxlcykge1xuICAgICAgaWYgKCFzdHlsZXMuaGFzT3duUHJvcGVydHkoc3R5bGVOYW1lKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgdmFyIHN0eWxlVmFsdWUgPSBzdHlsZXNbc3R5bGVOYW1lXTtcblxuICAgICAgaWYgKHN0eWxlVmFsdWUgIT0gbnVsbCkge1xuICAgICAgICB2YXIgaXNDdXN0b21Qcm9wZXJ0eSA9IHN0eWxlTmFtZS5pbmRleE9mKCctLScpID09PSAwO1xuICAgICAgICBzZXJpYWxpemVkICs9IGRlbGltaXRlciArIChpc0N1c3RvbVByb3BlcnR5ID8gc3R5bGVOYW1lIDogaHlwaGVuYXRlU3R5bGVOYW1lKHN0eWxlTmFtZSkpICsgJzonO1xuICAgICAgICBzZXJpYWxpemVkICs9IGRhbmdlcm91c1N0eWxlVmFsdWUoc3R5bGVOYW1lLCBzdHlsZVZhbHVlLCBpc0N1c3RvbVByb3BlcnR5KTtcbiAgICAgICAgZGVsaW1pdGVyID0gJzsnO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzZXJpYWxpemVkIHx8IG51bGw7XG4gIH1cbn1cbi8qKlxuICogU2V0cyB0aGUgdmFsdWUgZm9yIG11bHRpcGxlIHN0eWxlcyBvbiBhIG5vZGUuICBJZiBhIHZhbHVlIGlzIHNwZWNpZmllZCBhc1xuICogJycgKGVtcHR5IHN0cmluZyksIHRoZSBjb3JyZXNwb25kaW5nIHN0eWxlIHByb3BlcnR5IHdpbGwgYmUgdW5zZXQuXG4gKlxuICogQHBhcmFtIHtET01FbGVtZW50fSBub2RlXG4gKiBAcGFyYW0ge29iamVjdH0gc3R5bGVzXG4gKi9cblxuZnVuY3Rpb24gc2V0VmFsdWVGb3JTdHlsZXMobm9kZSwgc3R5bGVzKSB7XG4gIHZhciBzdHlsZSA9IG5vZGUuc3R5bGU7XG5cbiAgZm9yICh2YXIgc3R5bGVOYW1lIGluIHN0eWxlcykge1xuICAgIGlmICghc3R5bGVzLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIHZhciBpc0N1c3RvbVByb3BlcnR5ID0gc3R5bGVOYW1lLmluZGV4T2YoJy0tJykgPT09IDA7XG5cbiAgICB7XG4gICAgICBpZiAoIWlzQ3VzdG9tUHJvcGVydHkpIHtcbiAgICAgICAgd2FyblZhbGlkU3R5bGUkMShzdHlsZU5hbWUsIHN0eWxlc1tzdHlsZU5hbWVdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgc3R5bGVWYWx1ZSA9IGRhbmdlcm91c1N0eWxlVmFsdWUoc3R5bGVOYW1lLCBzdHlsZXNbc3R5bGVOYW1lXSwgaXNDdXN0b21Qcm9wZXJ0eSk7XG5cbiAgICBpZiAoc3R5bGVOYW1lID09PSAnZmxvYXQnKSB7XG4gICAgICBzdHlsZU5hbWUgPSAnY3NzRmxvYXQnO1xuICAgIH1cblxuICAgIGlmIChpc0N1c3RvbVByb3BlcnR5KSB7XG4gICAgICBzdHlsZS5zZXRQcm9wZXJ0eShzdHlsZU5hbWUsIHN0eWxlVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZVtzdHlsZU5hbWVdID0gc3R5bGVWYWx1ZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNWYWx1ZUVtcHR5KHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nIHx8IHZhbHVlID09PSAnJztcbn1cbi8qKlxuICogR2l2ZW4ge2NvbG9yOiAncmVkJywgb3ZlcmZsb3c6ICdoaWRkZW4nfSByZXR1cm5zIHtcbiAqICAgY29sb3I6ICdjb2xvcicsXG4gKiAgIG92ZXJmbG93WDogJ292ZXJmbG93JyxcbiAqICAgb3ZlcmZsb3dZOiAnb3ZlcmZsb3cnLFxuICogfS4gVGhpcyBjYW4gYmUgcmVhZCBhcyBcInRoZSBvdmVyZmxvd1kgcHJvcGVydHkgd2FzIHNldCBieSB0aGUgb3ZlcmZsb3dcbiAqIHNob3J0aGFuZFwiLiBUaGF0IGlzLCB0aGUgdmFsdWVzIGFyZSB0aGUgcHJvcGVydHkgdGhhdCBlYWNoIHdhcyBkZXJpdmVkIGZyb20uXG4gKi9cblxuXG5mdW5jdGlvbiBleHBhbmRTaG9ydGhhbmRNYXAoc3R5bGVzKSB7XG4gIHZhciBleHBhbmRlZCA9IHt9O1xuXG4gIGZvciAodmFyIGtleSBpbiBzdHlsZXMpIHtcbiAgICB2YXIgbG9uZ2hhbmRzID0gc2hvcnRoYW5kVG9Mb25naGFuZFtrZXldIHx8IFtrZXldO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsb25naGFuZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGV4cGFuZGVkW2xvbmdoYW5kc1tpXV0gPSBrZXk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGV4cGFuZGVkO1xufVxuLyoqXG4gKiBXaGVuIG1peGluZyBzaG9ydGhhbmQgYW5kIGxvbmdoYW5kIHByb3BlcnR5IG5hbWVzLCB3ZSB3YXJuIGR1cmluZyB1cGRhdGVzIGlmXG4gKiB3ZSBleHBlY3QgYW4gaW5jb3JyZWN0IHJlc3VsdCB0byBvY2N1ci4gSW4gcGFydGljdWxhciwgd2Ugd2FybiBmb3I6XG4gKlxuICogVXBkYXRpbmcgYSBzaG9ydGhhbmQgcHJvcGVydHkgKGxvbmdoYW5kIGdldHMgb3ZlcndyaXR0ZW4pOlxuICogICB7Zm9udDogJ2ZvbycsIGZvbnRWYXJpYW50OiAnYmFyJ30gLT4ge2ZvbnQ6ICdiYXonLCBmb250VmFyaWFudDogJ2Jhcid9XG4gKiAgIGJlY29tZXMgLnN0eWxlLmZvbnQgPSAnYmF6J1xuICogUmVtb3ZpbmcgYSBzaG9ydGhhbmQgcHJvcGVydHkgKGxvbmdoYW5kIGdldHMgbG9zdCB0b28pOlxuICogICB7Zm9udDogJ2ZvbycsIGZvbnRWYXJpYW50OiAnYmFyJ30gLT4ge2ZvbnRWYXJpYW50OiAnYmFyJ31cbiAqICAgYmVjb21lcyAuc3R5bGUuZm9udCA9ICcnXG4gKiBSZW1vdmluZyBhIGxvbmdoYW5kIHByb3BlcnR5IChzaG91bGQgcmV2ZXJ0IHRvIHNob3J0aGFuZDsgZG9lc24ndCk6XG4gKiAgIHtmb250OiAnZm9vJywgZm9udFZhcmlhbnQ6ICdiYXInfSAtPiB7Zm9udDogJ2Zvbyd9XG4gKiAgIGJlY29tZXMgLnN0eWxlLmZvbnRWYXJpYW50ID0gJydcbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlU2hvcnRoYW5kUHJvcGVydHlDb2xsaXNpb25JbkRldihzdHlsZVVwZGF0ZXMsIG5leHRTdHlsZXMpIHtcbiAge1xuICAgIGlmICghbmV4dFN0eWxlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBleHBhbmRlZFVwZGF0ZXMgPSBleHBhbmRTaG9ydGhhbmRNYXAoc3R5bGVVcGRhdGVzKTtcbiAgICB2YXIgZXhwYW5kZWRTdHlsZXMgPSBleHBhbmRTaG9ydGhhbmRNYXAobmV4dFN0eWxlcyk7XG4gICAgdmFyIHdhcm5lZEFib3V0ID0ge307XG5cbiAgICBmb3IgKHZhciBrZXkgaW4gZXhwYW5kZWRVcGRhdGVzKSB7XG4gICAgICB2YXIgb3JpZ2luYWxLZXkgPSBleHBhbmRlZFVwZGF0ZXNba2V5XTtcbiAgICAgIHZhciBjb3JyZWN0T3JpZ2luYWxLZXkgPSBleHBhbmRlZFN0eWxlc1trZXldO1xuXG4gICAgICBpZiAoY29ycmVjdE9yaWdpbmFsS2V5ICYmIG9yaWdpbmFsS2V5ICE9PSBjb3JyZWN0T3JpZ2luYWxLZXkpIHtcbiAgICAgICAgdmFyIHdhcm5pbmdLZXkgPSBvcmlnaW5hbEtleSArICcsJyArIGNvcnJlY3RPcmlnaW5hbEtleTtcblxuICAgICAgICBpZiAod2FybmVkQWJvdXRbd2FybmluZ0tleV0pIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHdhcm5lZEFib3V0W3dhcm5pbmdLZXldID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignJXMgYSBzdHlsZSBwcm9wZXJ0eSBkdXJpbmcgcmVyZW5kZXIgKCVzKSB3aGVuIGEgJyArICdjb25mbGljdGluZyBwcm9wZXJ0eSBpcyBzZXQgKCVzKSBjYW4gbGVhZCB0byBzdHlsaW5nIGJ1Z3MuIFRvICcgKyBcImF2b2lkIHRoaXMsIGRvbid0IG1peCBzaG9ydGhhbmQgYW5kIG5vbi1zaG9ydGhhbmQgcHJvcGVydGllcyBcIiArICdmb3IgdGhlIHNhbWUgdmFsdWU7IGluc3RlYWQsIHJlcGxhY2UgdGhlIHNob3J0aGFuZCB3aXRoICcgKyAnc2VwYXJhdGUgdmFsdWVzLicsIGlzVmFsdWVFbXB0eShzdHlsZVVwZGF0ZXNbb3JpZ2luYWxLZXldKSA/ICdSZW1vdmluZycgOiAnVXBkYXRpbmcnLCBvcmlnaW5hbEtleSwgY29ycmVjdE9yaWdpbmFsS2V5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gRm9yIEhUTUwsIGNlcnRhaW4gdGFncyBzaG91bGQgb21pdCB0aGVpciBjbG9zZSB0YWcuIFdlIGtlZXAgYSBsaXN0IGZvclxuLy8gdGhvc2Ugc3BlY2lhbC1jYXNlIHRhZ3MuXG52YXIgb21pdHRlZENsb3NlVGFncyA9IHtcbiAgYXJlYTogdHJ1ZSxcbiAgYmFzZTogdHJ1ZSxcbiAgYnI6IHRydWUsXG4gIGNvbDogdHJ1ZSxcbiAgZW1iZWQ6IHRydWUsXG4gIGhyOiB0cnVlLFxuICBpbWc6IHRydWUsXG4gIGlucHV0OiB0cnVlLFxuICBrZXlnZW46IHRydWUsXG4gIGxpbms6IHRydWUsXG4gIG1ldGE6IHRydWUsXG4gIHBhcmFtOiB0cnVlLFxuICBzb3VyY2U6IHRydWUsXG4gIHRyYWNrOiB0cnVlLFxuICB3YnI6IHRydWUgLy8gTk9URTogbWVudWl0ZW0ncyBjbG9zZSB0YWcgc2hvdWxkIGJlIG9taXR0ZWQsIGJ1dCB0aGF0IGNhdXNlcyBwcm9ibGVtcy5cblxufTtcblxuLy8gYG9taXR0ZWRDbG9zZVRhZ3NgIGV4Y2VwdCB0aGF0IGBtZW51aXRlbWAgc2hvdWxkIHN0aWxsIGhhdmUgaXRzIGNsb3NpbmcgdGFnLlxuXG52YXIgdm9pZEVsZW1lbnRUYWdzID0gYXNzaWduKHtcbiAgbWVudWl0ZW06IHRydWVcbn0sIG9taXR0ZWRDbG9zZVRhZ3MpO1xuXG52YXIgSFRNTCA9ICdfX2h0bWwnO1xuXG5mdW5jdGlvbiBhc3NlcnRWYWxpZFByb3BzKHRhZywgcHJvcHMpIHtcbiAgaWYgKCFwcm9wcykge1xuICAgIHJldHVybjtcbiAgfSAvLyBOb3RlIHRoZSB1c2Ugb2YgYD09YCB3aGljaCBjaGVja3MgZm9yIG51bGwgb3IgdW5kZWZpbmVkLlxuXG5cbiAgaWYgKHZvaWRFbGVtZW50VGFnc1t0YWddKSB7XG4gICAgaWYgKHByb3BzLmNoaWxkcmVuICE9IG51bGwgfHwgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgIT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHRhZyArIFwiIGlzIGEgdm9pZCBlbGVtZW50IHRhZyBhbmQgbXVzdCBuZWl0aGVyIGhhdmUgYGNoaWxkcmVuYCBub3IgXCIgKyAndXNlIGBkYW5nZXJvdXNseVNldElubmVySFRNTGAuJyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MICE9IG51bGwpIHtcbiAgICBpZiAocHJvcHMuY2hpbGRyZW4gIT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW4gb25seSBzZXQgb25lIG9mIGBjaGlsZHJlbmAgb3IgYHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC4nKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MICE9PSAnb2JqZWN0JyB8fCAhKEhUTUwgaW4gcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Bwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTGAgbXVzdCBiZSBpbiB0aGUgZm9ybSBge19faHRtbDogLi4ufWAuICcgKyAnUGxlYXNlIHZpc2l0IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9kYW5nZXJvdXNseS1zZXQtaW5uZXItaHRtbCAnICsgJ2ZvciBtb3JlIGluZm9ybWF0aW9uLicpO1xuICAgIH1cbiAgfVxuXG4gIHtcbiAgICBpZiAoIXByb3BzLnN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyAmJiBwcm9wcy5jb250ZW50RWRpdGFibGUgJiYgcHJvcHMuY2hpbGRyZW4gIT0gbnVsbCkge1xuICAgICAgZXJyb3IoJ0EgY29tcG9uZW50IGlzIGBjb250ZW50RWRpdGFibGVgIGFuZCBjb250YWlucyBgY2hpbGRyZW5gIG1hbmFnZWQgYnkgJyArICdSZWFjdC4gSXQgaXMgbm93IHlvdXIgcmVzcG9uc2liaWxpdHkgdG8gZ3VhcmFudGVlIHRoYXQgbm9uZSBvZiAnICsgJ3Rob3NlIG5vZGVzIGFyZSB1bmV4cGVjdGVkbHkgbW9kaWZpZWQgb3IgZHVwbGljYXRlZC4gVGhpcyBpcyAnICsgJ3Byb2JhYmx5IG5vdCBpbnRlbnRpb25hbC4nKTtcbiAgICB9XG4gIH1cblxuICBpZiAocHJvcHMuc3R5bGUgIT0gbnVsbCAmJiB0eXBlb2YgcHJvcHMuc3R5bGUgIT09ICdvYmplY3QnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgYHN0eWxlYCBwcm9wIGV4cGVjdHMgYSBtYXBwaW5nIGZyb20gc3R5bGUgcHJvcGVydGllcyB0byB2YWx1ZXMsICcgKyBcIm5vdCBhIHN0cmluZy4gRm9yIGV4YW1wbGUsIHN0eWxlPXt7bWFyZ2luUmlnaHQ6IHNwYWNpbmcgKyAnZW0nfX0gd2hlbiBcIiArICd1c2luZyBKU1guJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNDdXN0b21Db21wb25lbnQodGFnTmFtZSwgcHJvcHMpIHtcbiAgaWYgKHRhZ05hbWUuaW5kZXhPZignLScpID09PSAtMSkge1xuICAgIHJldHVybiB0eXBlb2YgcHJvcHMuaXMgPT09ICdzdHJpbmcnO1xuICB9XG5cbiAgc3dpdGNoICh0YWdOYW1lKSB7XG4gICAgLy8gVGhlc2UgYXJlIHJlc2VydmVkIFNWRyBhbmQgTWF0aE1MIGVsZW1lbnRzLlxuICAgIC8vIFdlIGRvbid0IG1pbmQgdGhpcyBsaXN0IHRvbyBtdWNoIGJlY2F1c2Ugd2UgZXhwZWN0IGl0IHRvIG5ldmVyIGdyb3cuXG4gICAgLy8gVGhlIGFsdGVybmF0aXZlIGlzIHRvIHRyYWNrIHRoZSBuYW1lc3BhY2UgaW4gYSBmZXcgcGxhY2VzIHdoaWNoIGlzIGNvbnZvbHV0ZWQuXG4gICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmNvbXBvbmVudHMvc3BlYy9jdXN0b20vI2N1c3RvbS1lbGVtZW50cy1jb3JlLWNvbmNlcHRzXG4gICAgY2FzZSAnYW5ub3RhdGlvbi14bWwnOlxuICAgIGNhc2UgJ2NvbG9yLXByb2ZpbGUnOlxuICAgIGNhc2UgJ2ZvbnQtZmFjZSc6XG4gICAgY2FzZSAnZm9udC1mYWNlLXNyYyc6XG4gICAgY2FzZSAnZm9udC1mYWNlLXVyaSc6XG4gICAgY2FzZSAnZm9udC1mYWNlLWZvcm1hdCc6XG4gICAgY2FzZSAnZm9udC1mYWNlLW5hbWUnOlxuICAgIGNhc2UgJ21pc3NpbmctZ2x5cGgnOlxuICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbi8vIFdoZW4gYWRkaW5nIGF0dHJpYnV0ZXMgdG8gdGhlIEhUTUwgb3IgU1ZHIGFsbG93ZWQgYXR0cmlidXRlIGxpc3QsIGJlIHN1cmUgdG9cbi8vIGFsc28gYWRkIHRoZW0gdG8gdGhpcyBtb2R1bGUgdG8gZW5zdXJlIGNhc2luZyBhbmQgaW5jb3JyZWN0IG5hbWVcbi8vIHdhcm5pbmdzLlxudmFyIHBvc3NpYmxlU3RhbmRhcmROYW1lcyA9IHtcbiAgLy8gSFRNTFxuICBhY2NlcHQ6ICdhY2NlcHQnLFxuICBhY2NlcHRjaGFyc2V0OiAnYWNjZXB0Q2hhcnNldCcsXG4gICdhY2NlcHQtY2hhcnNldCc6ICdhY2NlcHRDaGFyc2V0JyxcbiAgYWNjZXNza2V5OiAnYWNjZXNzS2V5JyxcbiAgYWN0aW9uOiAnYWN0aW9uJyxcbiAgYWxsb3dmdWxsc2NyZWVuOiAnYWxsb3dGdWxsU2NyZWVuJyxcbiAgYWx0OiAnYWx0JyxcbiAgYXM6ICdhcycsXG4gIGFzeW5jOiAnYXN5bmMnLFxuICBhdXRvY2FwaXRhbGl6ZTogJ2F1dG9DYXBpdGFsaXplJyxcbiAgYXV0b2NvbXBsZXRlOiAnYXV0b0NvbXBsZXRlJyxcbiAgYXV0b2NvcnJlY3Q6ICdhdXRvQ29ycmVjdCcsXG4gIGF1dG9mb2N1czogJ2F1dG9Gb2N1cycsXG4gIGF1dG9wbGF5OiAnYXV0b1BsYXknLFxuICBhdXRvc2F2ZTogJ2F1dG9TYXZlJyxcbiAgY2FwdHVyZTogJ2NhcHR1cmUnLFxuICBjZWxscGFkZGluZzogJ2NlbGxQYWRkaW5nJyxcbiAgY2VsbHNwYWNpbmc6ICdjZWxsU3BhY2luZycsXG4gIGNoYWxsZW5nZTogJ2NoYWxsZW5nZScsXG4gIGNoYXJzZXQ6ICdjaGFyU2V0JyxcbiAgY2hlY2tlZDogJ2NoZWNrZWQnLFxuICBjaGlsZHJlbjogJ2NoaWxkcmVuJyxcbiAgY2l0ZTogJ2NpdGUnLFxuICBjbGFzczogJ2NsYXNzTmFtZScsXG4gIGNsYXNzaWQ6ICdjbGFzc0lEJyxcbiAgY2xhc3NuYW1lOiAnY2xhc3NOYW1lJyxcbiAgY29sczogJ2NvbHMnLFxuICBjb2xzcGFuOiAnY29sU3BhbicsXG4gIGNvbnRlbnQ6ICdjb250ZW50JyxcbiAgY29udGVudGVkaXRhYmxlOiAnY29udGVudEVkaXRhYmxlJyxcbiAgY29udGV4dG1lbnU6ICdjb250ZXh0TWVudScsXG4gIGNvbnRyb2xzOiAnY29udHJvbHMnLFxuICBjb250cm9sc2xpc3Q6ICdjb250cm9sc0xpc3QnLFxuICBjb29yZHM6ICdjb29yZHMnLFxuICBjcm9zc29yaWdpbjogJ2Nyb3NzT3JpZ2luJyxcbiAgZGFuZ2Vyb3VzbHlzZXRpbm5lcmh0bWw6ICdkYW5nZXJvdXNseVNldElubmVySFRNTCcsXG4gIGRhdGE6ICdkYXRhJyxcbiAgZGF0ZXRpbWU6ICdkYXRlVGltZScsXG4gIGRlZmF1bHQ6ICdkZWZhdWx0JyxcbiAgZGVmYXVsdGNoZWNrZWQ6ICdkZWZhdWx0Q2hlY2tlZCcsXG4gIGRlZmF1bHR2YWx1ZTogJ2RlZmF1bHRWYWx1ZScsXG4gIGRlZmVyOiAnZGVmZXInLFxuICBkaXI6ICdkaXInLFxuICBkaXNhYmxlZDogJ2Rpc2FibGVkJyxcbiAgZGlzYWJsZXBpY3R1cmVpbnBpY3R1cmU6ICdkaXNhYmxlUGljdHVyZUluUGljdHVyZScsXG4gIGRpc2FibGVyZW1vdGVwbGF5YmFjazogJ2Rpc2FibGVSZW1vdGVQbGF5YmFjaycsXG4gIGRvd25sb2FkOiAnZG93bmxvYWQnLFxuICBkcmFnZ2FibGU6ICdkcmFnZ2FibGUnLFxuICBlbmN0eXBlOiAnZW5jVHlwZScsXG4gIGVudGVya2V5aGludDogJ2VudGVyS2V5SGludCcsXG4gIGZvcjogJ2h0bWxGb3InLFxuICBmb3JtOiAnZm9ybScsXG4gIGZvcm1tZXRob2Q6ICdmb3JtTWV0aG9kJyxcbiAgZm9ybWFjdGlvbjogJ2Zvcm1BY3Rpb24nLFxuICBmb3JtZW5jdHlwZTogJ2Zvcm1FbmNUeXBlJyxcbiAgZm9ybW5vdmFsaWRhdGU6ICdmb3JtTm9WYWxpZGF0ZScsXG4gIGZvcm10YXJnZXQ6ICdmb3JtVGFyZ2V0JyxcbiAgZnJhbWVib3JkZXI6ICdmcmFtZUJvcmRlcicsXG4gIGhlYWRlcnM6ICdoZWFkZXJzJyxcbiAgaGVpZ2h0OiAnaGVpZ2h0JyxcbiAgaGlkZGVuOiAnaGlkZGVuJyxcbiAgaGlnaDogJ2hpZ2gnLFxuICBocmVmOiAnaHJlZicsXG4gIGhyZWZsYW5nOiAnaHJlZkxhbmcnLFxuICBodG1sZm9yOiAnaHRtbEZvcicsXG4gIGh0dHBlcXVpdjogJ2h0dHBFcXVpdicsXG4gICdodHRwLWVxdWl2JzogJ2h0dHBFcXVpdicsXG4gIGljb246ICdpY29uJyxcbiAgaWQ6ICdpZCcsXG4gIGltYWdlc2l6ZXM6ICdpbWFnZVNpemVzJyxcbiAgaW1hZ2VzcmNzZXQ6ICdpbWFnZVNyY1NldCcsXG4gIGlubmVyaHRtbDogJ2lubmVySFRNTCcsXG4gIGlucHV0bW9kZTogJ2lucHV0TW9kZScsXG4gIGludGVncml0eTogJ2ludGVncml0eScsXG4gIGlzOiAnaXMnLFxuICBpdGVtaWQ6ICdpdGVtSUQnLFxuICBpdGVtcHJvcDogJ2l0ZW1Qcm9wJyxcbiAgaXRlbXJlZjogJ2l0ZW1SZWYnLFxuICBpdGVtc2NvcGU6ICdpdGVtU2NvcGUnLFxuICBpdGVtdHlwZTogJ2l0ZW1UeXBlJyxcbiAga2V5cGFyYW1zOiAna2V5UGFyYW1zJyxcbiAga2V5dHlwZTogJ2tleVR5cGUnLFxuICBraW5kOiAna2luZCcsXG4gIGxhYmVsOiAnbGFiZWwnLFxuICBsYW5nOiAnbGFuZycsXG4gIGxpc3Q6ICdsaXN0JyxcbiAgbG9vcDogJ2xvb3AnLFxuICBsb3c6ICdsb3cnLFxuICBtYW5pZmVzdDogJ21hbmlmZXN0JyxcbiAgbWFyZ2lud2lkdGg6ICdtYXJnaW5XaWR0aCcsXG4gIG1hcmdpbmhlaWdodDogJ21hcmdpbkhlaWdodCcsXG4gIG1heDogJ21heCcsXG4gIG1heGxlbmd0aDogJ21heExlbmd0aCcsXG4gIG1lZGlhOiAnbWVkaWEnLFxuICBtZWRpYWdyb3VwOiAnbWVkaWFHcm91cCcsXG4gIG1ldGhvZDogJ21ldGhvZCcsXG4gIG1pbjogJ21pbicsXG4gIG1pbmxlbmd0aDogJ21pbkxlbmd0aCcsXG4gIG11bHRpcGxlOiAnbXVsdGlwbGUnLFxuICBtdXRlZDogJ211dGVkJyxcbiAgbmFtZTogJ25hbWUnLFxuICBub21vZHVsZTogJ25vTW9kdWxlJyxcbiAgbm9uY2U6ICdub25jZScsXG4gIG5vdmFsaWRhdGU6ICdub1ZhbGlkYXRlJyxcbiAgb3BlbjogJ29wZW4nLFxuICBvcHRpbXVtOiAnb3B0aW11bScsXG4gIHBhdHRlcm46ICdwYXR0ZXJuJyxcbiAgcGxhY2Vob2xkZXI6ICdwbGFjZWhvbGRlcicsXG4gIHBsYXlzaW5saW5lOiAncGxheXNJbmxpbmUnLFxuICBwb3N0ZXI6ICdwb3N0ZXInLFxuICBwcmVsb2FkOiAncHJlbG9hZCcsXG4gIHByb2ZpbGU6ICdwcm9maWxlJyxcbiAgcmFkaW9ncm91cDogJ3JhZGlvR3JvdXAnLFxuICByZWFkb25seTogJ3JlYWRPbmx5JyxcbiAgcmVmZXJyZXJwb2xpY3k6ICdyZWZlcnJlclBvbGljeScsXG4gIHJlbDogJ3JlbCcsXG4gIHJlcXVpcmVkOiAncmVxdWlyZWQnLFxuICByZXZlcnNlZDogJ3JldmVyc2VkJyxcbiAgcm9sZTogJ3JvbGUnLFxuICByb3dzOiAncm93cycsXG4gIHJvd3NwYW46ICdyb3dTcGFuJyxcbiAgc2FuZGJveDogJ3NhbmRib3gnLFxuICBzY29wZTogJ3Njb3BlJyxcbiAgc2NvcGVkOiAnc2NvcGVkJyxcbiAgc2Nyb2xsaW5nOiAnc2Nyb2xsaW5nJyxcbiAgc2VhbWxlc3M6ICdzZWFtbGVzcycsXG4gIHNlbGVjdGVkOiAnc2VsZWN0ZWQnLFxuICBzaGFwZTogJ3NoYXBlJyxcbiAgc2l6ZTogJ3NpemUnLFxuICBzaXplczogJ3NpemVzJyxcbiAgc3BhbjogJ3NwYW4nLFxuICBzcGVsbGNoZWNrOiAnc3BlbGxDaGVjaycsXG4gIHNyYzogJ3NyYycsXG4gIHNyY2RvYzogJ3NyY0RvYycsXG4gIHNyY2xhbmc6ICdzcmNMYW5nJyxcbiAgc3Jjc2V0OiAnc3JjU2V0JyxcbiAgc3RhcnQ6ICdzdGFydCcsXG4gIHN0ZXA6ICdzdGVwJyxcbiAgc3R5bGU6ICdzdHlsZScsXG4gIHN1bW1hcnk6ICdzdW1tYXJ5JyxcbiAgdGFiaW5kZXg6ICd0YWJJbmRleCcsXG4gIHRhcmdldDogJ3RhcmdldCcsXG4gIHRpdGxlOiAndGl0bGUnLFxuICB0eXBlOiAndHlwZScsXG4gIHVzZW1hcDogJ3VzZU1hcCcsXG4gIHZhbHVlOiAndmFsdWUnLFxuICB3aWR0aDogJ3dpZHRoJyxcbiAgd21vZGU6ICd3bW9kZScsXG4gIHdyYXA6ICd3cmFwJyxcbiAgLy8gU1ZHXG4gIGFib3V0OiAnYWJvdXQnLFxuICBhY2NlbnRoZWlnaHQ6ICdhY2NlbnRIZWlnaHQnLFxuICAnYWNjZW50LWhlaWdodCc6ICdhY2NlbnRIZWlnaHQnLFxuICBhY2N1bXVsYXRlOiAnYWNjdW11bGF0ZScsXG4gIGFkZGl0aXZlOiAnYWRkaXRpdmUnLFxuICBhbGlnbm1lbnRiYXNlbGluZTogJ2FsaWdubWVudEJhc2VsaW5lJyxcbiAgJ2FsaWdubWVudC1iYXNlbGluZSc6ICdhbGlnbm1lbnRCYXNlbGluZScsXG4gIGFsbG93cmVvcmRlcjogJ2FsbG93UmVvcmRlcicsXG4gIGFscGhhYmV0aWM6ICdhbHBoYWJldGljJyxcbiAgYW1wbGl0dWRlOiAnYW1wbGl0dWRlJyxcbiAgYXJhYmljZm9ybTogJ2FyYWJpY0Zvcm0nLFxuICAnYXJhYmljLWZvcm0nOiAnYXJhYmljRm9ybScsXG4gIGFzY2VudDogJ2FzY2VudCcsXG4gIGF0dHJpYnV0ZW5hbWU6ICdhdHRyaWJ1dGVOYW1lJyxcbiAgYXR0cmlidXRldHlwZTogJ2F0dHJpYnV0ZVR5cGUnLFxuICBhdXRvcmV2ZXJzZTogJ2F1dG9SZXZlcnNlJyxcbiAgYXppbXV0aDogJ2F6aW11dGgnLFxuICBiYXNlZnJlcXVlbmN5OiAnYmFzZUZyZXF1ZW5jeScsXG4gIGJhc2VsaW5lc2hpZnQ6ICdiYXNlbGluZVNoaWZ0JyxcbiAgJ2Jhc2VsaW5lLXNoaWZ0JzogJ2Jhc2VsaW5lU2hpZnQnLFxuICBiYXNlcHJvZmlsZTogJ2Jhc2VQcm9maWxlJyxcbiAgYmJveDogJ2Jib3gnLFxuICBiZWdpbjogJ2JlZ2luJyxcbiAgYmlhczogJ2JpYXMnLFxuICBieTogJ2J5JyxcbiAgY2FsY21vZGU6ICdjYWxjTW9kZScsXG4gIGNhcGhlaWdodDogJ2NhcEhlaWdodCcsXG4gICdjYXAtaGVpZ2h0JzogJ2NhcEhlaWdodCcsXG4gIGNsaXA6ICdjbGlwJyxcbiAgY2xpcHBhdGg6ICdjbGlwUGF0aCcsXG4gICdjbGlwLXBhdGgnOiAnY2xpcFBhdGgnLFxuICBjbGlwcGF0aHVuaXRzOiAnY2xpcFBhdGhVbml0cycsXG4gIGNsaXBydWxlOiAnY2xpcFJ1bGUnLFxuICAnY2xpcC1ydWxlJzogJ2NsaXBSdWxlJyxcbiAgY29sb3I6ICdjb2xvcicsXG4gIGNvbG9yaW50ZXJwb2xhdGlvbjogJ2NvbG9ySW50ZXJwb2xhdGlvbicsXG4gICdjb2xvci1pbnRlcnBvbGF0aW9uJzogJ2NvbG9ySW50ZXJwb2xhdGlvbicsXG4gIGNvbG9yaW50ZXJwb2xhdGlvbmZpbHRlcnM6ICdjb2xvckludGVycG9sYXRpb25GaWx0ZXJzJyxcbiAgJ2NvbG9yLWludGVycG9sYXRpb24tZmlsdGVycyc6ICdjb2xvckludGVycG9sYXRpb25GaWx0ZXJzJyxcbiAgY29sb3Jwcm9maWxlOiAnY29sb3JQcm9maWxlJyxcbiAgJ2NvbG9yLXByb2ZpbGUnOiAnY29sb3JQcm9maWxlJyxcbiAgY29sb3JyZW5kZXJpbmc6ICdjb2xvclJlbmRlcmluZycsXG4gICdjb2xvci1yZW5kZXJpbmcnOiAnY29sb3JSZW5kZXJpbmcnLFxuICBjb250ZW50c2NyaXB0dHlwZTogJ2NvbnRlbnRTY3JpcHRUeXBlJyxcbiAgY29udGVudHN0eWxldHlwZTogJ2NvbnRlbnRTdHlsZVR5cGUnLFxuICBjdXJzb3I6ICdjdXJzb3InLFxuICBjeDogJ2N4JyxcbiAgY3k6ICdjeScsXG4gIGQ6ICdkJyxcbiAgZGF0YXR5cGU6ICdkYXRhdHlwZScsXG4gIGRlY2VsZXJhdGU6ICdkZWNlbGVyYXRlJyxcbiAgZGVzY2VudDogJ2Rlc2NlbnQnLFxuICBkaWZmdXNlY29uc3RhbnQ6ICdkaWZmdXNlQ29uc3RhbnQnLFxuICBkaXJlY3Rpb246ICdkaXJlY3Rpb24nLFxuICBkaXNwbGF5OiAnZGlzcGxheScsXG4gIGRpdmlzb3I6ICdkaXZpc29yJyxcbiAgZG9taW5hbnRiYXNlbGluZTogJ2RvbWluYW50QmFzZWxpbmUnLFxuICAnZG9taW5hbnQtYmFzZWxpbmUnOiAnZG9taW5hbnRCYXNlbGluZScsXG4gIGR1cjogJ2R1cicsXG4gIGR4OiAnZHgnLFxuICBkeTogJ2R5JyxcbiAgZWRnZW1vZGU6ICdlZGdlTW9kZScsXG4gIGVsZXZhdGlvbjogJ2VsZXZhdGlvbicsXG4gIGVuYWJsZWJhY2tncm91bmQ6ICdlbmFibGVCYWNrZ3JvdW5kJyxcbiAgJ2VuYWJsZS1iYWNrZ3JvdW5kJzogJ2VuYWJsZUJhY2tncm91bmQnLFxuICBlbmQ6ICdlbmQnLFxuICBleHBvbmVudDogJ2V4cG9uZW50JyxcbiAgZXh0ZXJuYWxyZXNvdXJjZXNyZXF1aXJlZDogJ2V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQnLFxuICBmaWxsOiAnZmlsbCcsXG4gIGZpbGxvcGFjaXR5OiAnZmlsbE9wYWNpdHknLFxuICAnZmlsbC1vcGFjaXR5JzogJ2ZpbGxPcGFjaXR5JyxcbiAgZmlsbHJ1bGU6ICdmaWxsUnVsZScsXG4gICdmaWxsLXJ1bGUnOiAnZmlsbFJ1bGUnLFxuICBmaWx0ZXI6ICdmaWx0ZXInLFxuICBmaWx0ZXJyZXM6ICdmaWx0ZXJSZXMnLFxuICBmaWx0ZXJ1bml0czogJ2ZpbHRlclVuaXRzJyxcbiAgZmxvb2RvcGFjaXR5OiAnZmxvb2RPcGFjaXR5JyxcbiAgJ2Zsb29kLW9wYWNpdHknOiAnZmxvb2RPcGFjaXR5JyxcbiAgZmxvb2Rjb2xvcjogJ2Zsb29kQ29sb3InLFxuICAnZmxvb2QtY29sb3InOiAnZmxvb2RDb2xvcicsXG4gIGZvY3VzYWJsZTogJ2ZvY3VzYWJsZScsXG4gIGZvbnRmYW1pbHk6ICdmb250RmFtaWx5JyxcbiAgJ2ZvbnQtZmFtaWx5JzogJ2ZvbnRGYW1pbHknLFxuICBmb250c2l6ZTogJ2ZvbnRTaXplJyxcbiAgJ2ZvbnQtc2l6ZSc6ICdmb250U2l6ZScsXG4gIGZvbnRzaXplYWRqdXN0OiAnZm9udFNpemVBZGp1c3QnLFxuICAnZm9udC1zaXplLWFkanVzdCc6ICdmb250U2l6ZUFkanVzdCcsXG4gIGZvbnRzdHJldGNoOiAnZm9udFN0cmV0Y2gnLFxuICAnZm9udC1zdHJldGNoJzogJ2ZvbnRTdHJldGNoJyxcbiAgZm9udHN0eWxlOiAnZm9udFN0eWxlJyxcbiAgJ2ZvbnQtc3R5bGUnOiAnZm9udFN0eWxlJyxcbiAgZm9udHZhcmlhbnQ6ICdmb250VmFyaWFudCcsXG4gICdmb250LXZhcmlhbnQnOiAnZm9udFZhcmlhbnQnLFxuICBmb250d2VpZ2h0OiAnZm9udFdlaWdodCcsXG4gICdmb250LXdlaWdodCc6ICdmb250V2VpZ2h0JyxcbiAgZm9ybWF0OiAnZm9ybWF0JyxcbiAgZnJvbTogJ2Zyb20nLFxuICBmeDogJ2Z4JyxcbiAgZnk6ICdmeScsXG4gIGcxOiAnZzEnLFxuICBnMjogJ2cyJyxcbiAgZ2x5cGhuYW1lOiAnZ2x5cGhOYW1lJyxcbiAgJ2dseXBoLW5hbWUnOiAnZ2x5cGhOYW1lJyxcbiAgZ2x5cGhvcmllbnRhdGlvbmhvcml6b250YWw6ICdnbHlwaE9yaWVudGF0aW9uSG9yaXpvbnRhbCcsXG4gICdnbHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsJzogJ2dseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsJyxcbiAgZ2x5cGhvcmllbnRhdGlvbnZlcnRpY2FsOiAnZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsJyxcbiAgJ2dseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsJzogJ2dseXBoT3JpZW50YXRpb25WZXJ0aWNhbCcsXG4gIGdseXBocmVmOiAnZ2x5cGhSZWYnLFxuICBncmFkaWVudHRyYW5zZm9ybTogJ2dyYWRpZW50VHJhbnNmb3JtJyxcbiAgZ3JhZGllbnR1bml0czogJ2dyYWRpZW50VW5pdHMnLFxuICBoYW5naW5nOiAnaGFuZ2luZycsXG4gIGhvcml6YWR2eDogJ2hvcml6QWR2WCcsXG4gICdob3Jpei1hZHYteCc6ICdob3JpekFkdlgnLFxuICBob3Jpem9yaWdpbng6ICdob3Jpek9yaWdpblgnLFxuICAnaG9yaXotb3JpZ2luLXgnOiAnaG9yaXpPcmlnaW5YJyxcbiAgaWRlb2dyYXBoaWM6ICdpZGVvZ3JhcGhpYycsXG4gIGltYWdlcmVuZGVyaW5nOiAnaW1hZ2VSZW5kZXJpbmcnLFxuICAnaW1hZ2UtcmVuZGVyaW5nJzogJ2ltYWdlUmVuZGVyaW5nJyxcbiAgaW4yOiAnaW4yJyxcbiAgaW46ICdpbicsXG4gIGlubGlzdDogJ2lubGlzdCcsXG4gIGludGVyY2VwdDogJ2ludGVyY2VwdCcsXG4gIGsxOiAnazEnLFxuICBrMjogJ2syJyxcbiAgazM6ICdrMycsXG4gIGs0OiAnazQnLFxuICBrOiAnaycsXG4gIGtlcm5lbG1hdHJpeDogJ2tlcm5lbE1hdHJpeCcsXG4gIGtlcm5lbHVuaXRsZW5ndGg6ICdrZXJuZWxVbml0TGVuZ3RoJyxcbiAga2VybmluZzogJ2tlcm5pbmcnLFxuICBrZXlwb2ludHM6ICdrZXlQb2ludHMnLFxuICBrZXlzcGxpbmVzOiAna2V5U3BsaW5lcycsXG4gIGtleXRpbWVzOiAna2V5VGltZXMnLFxuICBsZW5ndGhhZGp1c3Q6ICdsZW5ndGhBZGp1c3QnLFxuICBsZXR0ZXJzcGFjaW5nOiAnbGV0dGVyU3BhY2luZycsXG4gICdsZXR0ZXItc3BhY2luZyc6ICdsZXR0ZXJTcGFjaW5nJyxcbiAgbGlnaHRpbmdjb2xvcjogJ2xpZ2h0aW5nQ29sb3InLFxuICAnbGlnaHRpbmctY29sb3InOiAnbGlnaHRpbmdDb2xvcicsXG4gIGxpbWl0aW5nY29uZWFuZ2xlOiAnbGltaXRpbmdDb25lQW5nbGUnLFxuICBsb2NhbDogJ2xvY2FsJyxcbiAgbWFya2VyZW5kOiAnbWFya2VyRW5kJyxcbiAgJ21hcmtlci1lbmQnOiAnbWFya2VyRW5kJyxcbiAgbWFya2VyaGVpZ2h0OiAnbWFya2VySGVpZ2h0JyxcbiAgbWFya2VybWlkOiAnbWFya2VyTWlkJyxcbiAgJ21hcmtlci1taWQnOiAnbWFya2VyTWlkJyxcbiAgbWFya2Vyc3RhcnQ6ICdtYXJrZXJTdGFydCcsXG4gICdtYXJrZXItc3RhcnQnOiAnbWFya2VyU3RhcnQnLFxuICBtYXJrZXJ1bml0czogJ21hcmtlclVuaXRzJyxcbiAgbWFya2Vyd2lkdGg6ICdtYXJrZXJXaWR0aCcsXG4gIG1hc2s6ICdtYXNrJyxcbiAgbWFza2NvbnRlbnR1bml0czogJ21hc2tDb250ZW50VW5pdHMnLFxuICBtYXNrdW5pdHM6ICdtYXNrVW5pdHMnLFxuICBtYXRoZW1hdGljYWw6ICdtYXRoZW1hdGljYWwnLFxuICBtb2RlOiAnbW9kZScsXG4gIG51bW9jdGF2ZXM6ICdudW1PY3RhdmVzJyxcbiAgb2Zmc2V0OiAnb2Zmc2V0JyxcbiAgb3BhY2l0eTogJ29wYWNpdHknLFxuICBvcGVyYXRvcjogJ29wZXJhdG9yJyxcbiAgb3JkZXI6ICdvcmRlcicsXG4gIG9yaWVudDogJ29yaWVudCcsXG4gIG9yaWVudGF0aW9uOiAnb3JpZW50YXRpb24nLFxuICBvcmlnaW46ICdvcmlnaW4nLFxuICBvdmVyZmxvdzogJ292ZXJmbG93JyxcbiAgb3ZlcmxpbmVwb3NpdGlvbjogJ292ZXJsaW5lUG9zaXRpb24nLFxuICAnb3ZlcmxpbmUtcG9zaXRpb24nOiAnb3ZlcmxpbmVQb3NpdGlvbicsXG4gIG92ZXJsaW5ldGhpY2tuZXNzOiAnb3ZlcmxpbmVUaGlja25lc3MnLFxuICAnb3ZlcmxpbmUtdGhpY2tuZXNzJzogJ292ZXJsaW5lVGhpY2tuZXNzJyxcbiAgcGFpbnRvcmRlcjogJ3BhaW50T3JkZXInLFxuICAncGFpbnQtb3JkZXInOiAncGFpbnRPcmRlcicsXG4gIHBhbm9zZTE6ICdwYW5vc2UxJyxcbiAgJ3Bhbm9zZS0xJzogJ3Bhbm9zZTEnLFxuICBwYXRobGVuZ3RoOiAncGF0aExlbmd0aCcsXG4gIHBhdHRlcm5jb250ZW50dW5pdHM6ICdwYXR0ZXJuQ29udGVudFVuaXRzJyxcbiAgcGF0dGVybnRyYW5zZm9ybTogJ3BhdHRlcm5UcmFuc2Zvcm0nLFxuICBwYXR0ZXJudW5pdHM6ICdwYXR0ZXJuVW5pdHMnLFxuICBwb2ludGVyZXZlbnRzOiAncG9pbnRlckV2ZW50cycsXG4gICdwb2ludGVyLWV2ZW50cyc6ICdwb2ludGVyRXZlbnRzJyxcbiAgcG9pbnRzOiAncG9pbnRzJyxcbiAgcG9pbnRzYXR4OiAncG9pbnRzQXRYJyxcbiAgcG9pbnRzYXR5OiAncG9pbnRzQXRZJyxcbiAgcG9pbnRzYXR6OiAncG9pbnRzQXRaJyxcbiAgcHJlZml4OiAncHJlZml4JyxcbiAgcHJlc2VydmVhbHBoYTogJ3ByZXNlcnZlQWxwaGEnLFxuICBwcmVzZXJ2ZWFzcGVjdHJhdGlvOiAncHJlc2VydmVBc3BlY3RSYXRpbycsXG4gIHByaW1pdGl2ZXVuaXRzOiAncHJpbWl0aXZlVW5pdHMnLFxuICBwcm9wZXJ0eTogJ3Byb3BlcnR5JyxcbiAgcjogJ3InLFxuICByYWRpdXM6ICdyYWRpdXMnLFxuICByZWZ4OiAncmVmWCcsXG4gIHJlZnk6ICdyZWZZJyxcbiAgcmVuZGVyaW5naW50ZW50OiAncmVuZGVyaW5nSW50ZW50JyxcbiAgJ3JlbmRlcmluZy1pbnRlbnQnOiAncmVuZGVyaW5nSW50ZW50JyxcbiAgcmVwZWF0Y291bnQ6ICdyZXBlYXRDb3VudCcsXG4gIHJlcGVhdGR1cjogJ3JlcGVhdER1cicsXG4gIHJlcXVpcmVkZXh0ZW5zaW9uczogJ3JlcXVpcmVkRXh0ZW5zaW9ucycsXG4gIHJlcXVpcmVkZmVhdHVyZXM6ICdyZXF1aXJlZEZlYXR1cmVzJyxcbiAgcmVzb3VyY2U6ICdyZXNvdXJjZScsXG4gIHJlc3RhcnQ6ICdyZXN0YXJ0JyxcbiAgcmVzdWx0OiAncmVzdWx0JyxcbiAgcmVzdWx0czogJ3Jlc3VsdHMnLFxuICByb3RhdGU6ICdyb3RhdGUnLFxuICByeDogJ3J4JyxcbiAgcnk6ICdyeScsXG4gIHNjYWxlOiAnc2NhbGUnLFxuICBzZWN1cml0eTogJ3NlY3VyaXR5JyxcbiAgc2VlZDogJ3NlZWQnLFxuICBzaGFwZXJlbmRlcmluZzogJ3NoYXBlUmVuZGVyaW5nJyxcbiAgJ3NoYXBlLXJlbmRlcmluZyc6ICdzaGFwZVJlbmRlcmluZycsXG4gIHNsb3BlOiAnc2xvcGUnLFxuICBzcGFjaW5nOiAnc3BhY2luZycsXG4gIHNwZWN1bGFyY29uc3RhbnQ6ICdzcGVjdWxhckNvbnN0YW50JyxcbiAgc3BlY3VsYXJleHBvbmVudDogJ3NwZWN1bGFyRXhwb25lbnQnLFxuICBzcGVlZDogJ3NwZWVkJyxcbiAgc3ByZWFkbWV0aG9kOiAnc3ByZWFkTWV0aG9kJyxcbiAgc3RhcnRvZmZzZXQ6ICdzdGFydE9mZnNldCcsXG4gIHN0ZGRldmlhdGlvbjogJ3N0ZERldmlhdGlvbicsXG4gIHN0ZW1oOiAnc3RlbWgnLFxuICBzdGVtdjogJ3N0ZW12JyxcbiAgc3RpdGNodGlsZXM6ICdzdGl0Y2hUaWxlcycsXG4gIHN0b3Bjb2xvcjogJ3N0b3BDb2xvcicsXG4gICdzdG9wLWNvbG9yJzogJ3N0b3BDb2xvcicsXG4gIHN0b3BvcGFjaXR5OiAnc3RvcE9wYWNpdHknLFxuICAnc3RvcC1vcGFjaXR5JzogJ3N0b3BPcGFjaXR5JyxcbiAgc3RyaWtldGhyb3VnaHBvc2l0aW9uOiAnc3RyaWtldGhyb3VnaFBvc2l0aW9uJyxcbiAgJ3N0cmlrZXRocm91Z2gtcG9zaXRpb24nOiAnc3RyaWtldGhyb3VnaFBvc2l0aW9uJyxcbiAgc3RyaWtldGhyb3VnaHRoaWNrbmVzczogJ3N0cmlrZXRocm91Z2hUaGlja25lc3MnLFxuICAnc3RyaWtldGhyb3VnaC10aGlja25lc3MnOiAnc3RyaWtldGhyb3VnaFRoaWNrbmVzcycsXG4gIHN0cmluZzogJ3N0cmluZycsXG4gIHN0cm9rZTogJ3N0cm9rZScsXG4gIHN0cm9rZWRhc2hhcnJheTogJ3N0cm9rZURhc2hhcnJheScsXG4gICdzdHJva2UtZGFzaGFycmF5JzogJ3N0cm9rZURhc2hhcnJheScsXG4gIHN0cm9rZWRhc2hvZmZzZXQ6ICdzdHJva2VEYXNob2Zmc2V0JyxcbiAgJ3N0cm9rZS1kYXNob2Zmc2V0JzogJ3N0cm9rZURhc2hvZmZzZXQnLFxuICBzdHJva2VsaW5lY2FwOiAnc3Ryb2tlTGluZWNhcCcsXG4gICdzdHJva2UtbGluZWNhcCc6ICdzdHJva2VMaW5lY2FwJyxcbiAgc3Ryb2tlbGluZWpvaW46ICdzdHJva2VMaW5lam9pbicsXG4gICdzdHJva2UtbGluZWpvaW4nOiAnc3Ryb2tlTGluZWpvaW4nLFxuICBzdHJva2VtaXRlcmxpbWl0OiAnc3Ryb2tlTWl0ZXJsaW1pdCcsXG4gICdzdHJva2UtbWl0ZXJsaW1pdCc6ICdzdHJva2VNaXRlcmxpbWl0JyxcbiAgc3Ryb2tld2lkdGg6ICdzdHJva2VXaWR0aCcsXG4gICdzdHJva2Utd2lkdGgnOiAnc3Ryb2tlV2lkdGgnLFxuICBzdHJva2VvcGFjaXR5OiAnc3Ryb2tlT3BhY2l0eScsXG4gICdzdHJva2Utb3BhY2l0eSc6ICdzdHJva2VPcGFjaXR5JyxcbiAgc3VwcHJlc3Njb250ZW50ZWRpdGFibGV3YXJuaW5nOiAnc3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nJyxcbiAgc3VwcHJlc3NoeWRyYXRpb253YXJuaW5nOiAnc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nJyxcbiAgc3VyZmFjZXNjYWxlOiAnc3VyZmFjZVNjYWxlJyxcbiAgc3lzdGVtbGFuZ3VhZ2U6ICdzeXN0ZW1MYW5ndWFnZScsXG4gIHRhYmxldmFsdWVzOiAndGFibGVWYWx1ZXMnLFxuICB0YXJnZXR4OiAndGFyZ2V0WCcsXG4gIHRhcmdldHk6ICd0YXJnZXRZJyxcbiAgdGV4dGFuY2hvcjogJ3RleHRBbmNob3InLFxuICAndGV4dC1hbmNob3InOiAndGV4dEFuY2hvcicsXG4gIHRleHRkZWNvcmF0aW9uOiAndGV4dERlY29yYXRpb24nLFxuICAndGV4dC1kZWNvcmF0aW9uJzogJ3RleHREZWNvcmF0aW9uJyxcbiAgdGV4dGxlbmd0aDogJ3RleHRMZW5ndGgnLFxuICB0ZXh0cmVuZGVyaW5nOiAndGV4dFJlbmRlcmluZycsXG4gICd0ZXh0LXJlbmRlcmluZyc6ICd0ZXh0UmVuZGVyaW5nJyxcbiAgdG86ICd0bycsXG4gIHRyYW5zZm9ybTogJ3RyYW5zZm9ybScsXG4gIHR5cGVvZjogJ3R5cGVvZicsXG4gIHUxOiAndTEnLFxuICB1MjogJ3UyJyxcbiAgdW5kZXJsaW5lcG9zaXRpb246ICd1bmRlcmxpbmVQb3NpdGlvbicsXG4gICd1bmRlcmxpbmUtcG9zaXRpb24nOiAndW5kZXJsaW5lUG9zaXRpb24nLFxuICB1bmRlcmxpbmV0aGlja25lc3M6ICd1bmRlcmxpbmVUaGlja25lc3MnLFxuICAndW5kZXJsaW5lLXRoaWNrbmVzcyc6ICd1bmRlcmxpbmVUaGlja25lc3MnLFxuICB1bmljb2RlOiAndW5pY29kZScsXG4gIHVuaWNvZGViaWRpOiAndW5pY29kZUJpZGknLFxuICAndW5pY29kZS1iaWRpJzogJ3VuaWNvZGVCaWRpJyxcbiAgdW5pY29kZXJhbmdlOiAndW5pY29kZVJhbmdlJyxcbiAgJ3VuaWNvZGUtcmFuZ2UnOiAndW5pY29kZVJhbmdlJyxcbiAgdW5pdHNwZXJlbTogJ3VuaXRzUGVyRW0nLFxuICAndW5pdHMtcGVyLWVtJzogJ3VuaXRzUGVyRW0nLFxuICB1bnNlbGVjdGFibGU6ICd1bnNlbGVjdGFibGUnLFxuICB2YWxwaGFiZXRpYzogJ3ZBbHBoYWJldGljJyxcbiAgJ3YtYWxwaGFiZXRpYyc6ICd2QWxwaGFiZXRpYycsXG4gIHZhbHVlczogJ3ZhbHVlcycsXG4gIHZlY3RvcmVmZmVjdDogJ3ZlY3RvckVmZmVjdCcsXG4gICd2ZWN0b3ItZWZmZWN0JzogJ3ZlY3RvckVmZmVjdCcsXG4gIHZlcnNpb246ICd2ZXJzaW9uJyxcbiAgdmVydGFkdnk6ICd2ZXJ0QWR2WScsXG4gICd2ZXJ0LWFkdi15JzogJ3ZlcnRBZHZZJyxcbiAgdmVydG9yaWdpbng6ICd2ZXJ0T3JpZ2luWCcsXG4gICd2ZXJ0LW9yaWdpbi14JzogJ3ZlcnRPcmlnaW5YJyxcbiAgdmVydG9yaWdpbnk6ICd2ZXJ0T3JpZ2luWScsXG4gICd2ZXJ0LW9yaWdpbi15JzogJ3ZlcnRPcmlnaW5ZJyxcbiAgdmhhbmdpbmc6ICd2SGFuZ2luZycsXG4gICd2LWhhbmdpbmcnOiAndkhhbmdpbmcnLFxuICB2aWRlb2dyYXBoaWM6ICd2SWRlb2dyYXBoaWMnLFxuICAndi1pZGVvZ3JhcGhpYyc6ICd2SWRlb2dyYXBoaWMnLFxuICB2aWV3Ym94OiAndmlld0JveCcsXG4gIHZpZXd0YXJnZXQ6ICd2aWV3VGFyZ2V0JyxcbiAgdmlzaWJpbGl0eTogJ3Zpc2liaWxpdHknLFxuICB2bWF0aGVtYXRpY2FsOiAndk1hdGhlbWF0aWNhbCcsXG4gICd2LW1hdGhlbWF0aWNhbCc6ICd2TWF0aGVtYXRpY2FsJyxcbiAgdm9jYWI6ICd2b2NhYicsXG4gIHdpZHRoczogJ3dpZHRocycsXG4gIHdvcmRzcGFjaW5nOiAnd29yZFNwYWNpbmcnLFxuICAnd29yZC1zcGFjaW5nJzogJ3dvcmRTcGFjaW5nJyxcbiAgd3JpdGluZ21vZGU6ICd3cml0aW5nTW9kZScsXG4gICd3cml0aW5nLW1vZGUnOiAnd3JpdGluZ01vZGUnLFxuICB4MTogJ3gxJyxcbiAgeDI6ICd4MicsXG4gIHg6ICd4JyxcbiAgeGNoYW5uZWxzZWxlY3RvcjogJ3hDaGFubmVsU2VsZWN0b3InLFxuICB4aGVpZ2h0OiAneEhlaWdodCcsXG4gICd4LWhlaWdodCc6ICd4SGVpZ2h0JyxcbiAgeGxpbmthY3R1YXRlOiAneGxpbmtBY3R1YXRlJyxcbiAgJ3hsaW5rOmFjdHVhdGUnOiAneGxpbmtBY3R1YXRlJyxcbiAgeGxpbmthcmNyb2xlOiAneGxpbmtBcmNyb2xlJyxcbiAgJ3hsaW5rOmFyY3JvbGUnOiAneGxpbmtBcmNyb2xlJyxcbiAgeGxpbmtocmVmOiAneGxpbmtIcmVmJyxcbiAgJ3hsaW5rOmhyZWYnOiAneGxpbmtIcmVmJyxcbiAgeGxpbmtyb2xlOiAneGxpbmtSb2xlJyxcbiAgJ3hsaW5rOnJvbGUnOiAneGxpbmtSb2xlJyxcbiAgeGxpbmtzaG93OiAneGxpbmtTaG93JyxcbiAgJ3hsaW5rOnNob3cnOiAneGxpbmtTaG93JyxcbiAgeGxpbmt0aXRsZTogJ3hsaW5rVGl0bGUnLFxuICAneGxpbms6dGl0bGUnOiAneGxpbmtUaXRsZScsXG4gIHhsaW5rdHlwZTogJ3hsaW5rVHlwZScsXG4gICd4bGluazp0eXBlJzogJ3hsaW5rVHlwZScsXG4gIHhtbGJhc2U6ICd4bWxCYXNlJyxcbiAgJ3htbDpiYXNlJzogJ3htbEJhc2UnLFxuICB4bWxsYW5nOiAneG1sTGFuZycsXG4gICd4bWw6bGFuZyc6ICd4bWxMYW5nJyxcbiAgeG1sbnM6ICd4bWxucycsXG4gICd4bWw6c3BhY2UnOiAneG1sU3BhY2UnLFxuICB4bWxuc3hsaW5rOiAneG1sbnNYbGluaycsXG4gICd4bWxuczp4bGluayc6ICd4bWxuc1hsaW5rJyxcbiAgeG1sc3BhY2U6ICd4bWxTcGFjZScsXG4gIHkxOiAneTEnLFxuICB5MjogJ3kyJyxcbiAgeTogJ3knLFxuICB5Y2hhbm5lbHNlbGVjdG9yOiAneUNoYW5uZWxTZWxlY3RvcicsXG4gIHo6ICd6JyxcbiAgem9vbWFuZHBhbjogJ3pvb21BbmRQYW4nXG59O1xuXG52YXIgYXJpYVByb3BlcnRpZXMgPSB7XG4gICdhcmlhLWN1cnJlbnQnOiAwLFxuICAvLyBzdGF0ZVxuICAnYXJpYS1kZXNjcmlwdGlvbic6IDAsXG4gICdhcmlhLWRldGFpbHMnOiAwLFxuICAnYXJpYS1kaXNhYmxlZCc6IDAsXG4gIC8vIHN0YXRlXG4gICdhcmlhLWhpZGRlbic6IDAsXG4gIC8vIHN0YXRlXG4gICdhcmlhLWludmFsaWQnOiAwLFxuICAvLyBzdGF0ZVxuICAnYXJpYS1rZXlzaG9ydGN1dHMnOiAwLFxuICAnYXJpYS1sYWJlbCc6IDAsXG4gICdhcmlhLXJvbGVkZXNjcmlwdGlvbic6IDAsXG4gIC8vIFdpZGdldCBBdHRyaWJ1dGVzXG4gICdhcmlhLWF1dG9jb21wbGV0ZSc6IDAsXG4gICdhcmlhLWNoZWNrZWQnOiAwLFxuICAnYXJpYS1leHBhbmRlZCc6IDAsXG4gICdhcmlhLWhhc3BvcHVwJzogMCxcbiAgJ2FyaWEtbGV2ZWwnOiAwLFxuICAnYXJpYS1tb2RhbCc6IDAsXG4gICdhcmlhLW11bHRpbGluZSc6IDAsXG4gICdhcmlhLW11bHRpc2VsZWN0YWJsZSc6IDAsXG4gICdhcmlhLW9yaWVudGF0aW9uJzogMCxcbiAgJ2FyaWEtcGxhY2Vob2xkZXInOiAwLFxuICAnYXJpYS1wcmVzc2VkJzogMCxcbiAgJ2FyaWEtcmVhZG9ubHknOiAwLFxuICAnYXJpYS1yZXF1aXJlZCc6IDAsXG4gICdhcmlhLXNlbGVjdGVkJzogMCxcbiAgJ2FyaWEtc29ydCc6IDAsXG4gICdhcmlhLXZhbHVlbWF4JzogMCxcbiAgJ2FyaWEtdmFsdWVtaW4nOiAwLFxuICAnYXJpYS12YWx1ZW5vdyc6IDAsXG4gICdhcmlhLXZhbHVldGV4dCc6IDAsXG4gIC8vIExpdmUgUmVnaW9uIEF0dHJpYnV0ZXNcbiAgJ2FyaWEtYXRvbWljJzogMCxcbiAgJ2FyaWEtYnVzeSc6IDAsXG4gICdhcmlhLWxpdmUnOiAwLFxuICAnYXJpYS1yZWxldmFudCc6IDAsXG4gIC8vIERyYWctYW5kLURyb3AgQXR0cmlidXRlc1xuICAnYXJpYS1kcm9wZWZmZWN0JzogMCxcbiAgJ2FyaWEtZ3JhYmJlZCc6IDAsXG4gIC8vIFJlbGF0aW9uc2hpcCBBdHRyaWJ1dGVzXG4gICdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnOiAwLFxuICAnYXJpYS1jb2xjb3VudCc6IDAsXG4gICdhcmlhLWNvbGluZGV4JzogMCxcbiAgJ2FyaWEtY29sc3Bhbic6IDAsXG4gICdhcmlhLWNvbnRyb2xzJzogMCxcbiAgJ2FyaWEtZGVzY3JpYmVkYnknOiAwLFxuICAnYXJpYS1lcnJvcm1lc3NhZ2UnOiAwLFxuICAnYXJpYS1mbG93dG8nOiAwLFxuICAnYXJpYS1sYWJlbGxlZGJ5JzogMCxcbiAgJ2FyaWEtb3ducyc6IDAsXG4gICdhcmlhLXBvc2luc2V0JzogMCxcbiAgJ2FyaWEtcm93Y291bnQnOiAwLFxuICAnYXJpYS1yb3dpbmRleCc6IDAsXG4gICdhcmlhLXJvd3NwYW4nOiAwLFxuICAnYXJpYS1zZXRzaXplJzogMFxufTtcblxudmFyIHdhcm5lZFByb3BlcnRpZXMgPSB7fTtcbnZhciByQVJJQSA9IG5ldyBSZWdFeHAoJ14oYXJpYSktWycgKyBBVFRSSUJVVEVfTkFNRV9DSEFSICsgJ10qJCcpO1xudmFyIHJBUklBQ2FtZWwgPSBuZXcgUmVnRXhwKCdeKGFyaWEpW0EtWl1bJyArIEFUVFJJQlVURV9OQU1FX0NIQVIgKyAnXSokJyk7XG5cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcGVydHkodGFnTmFtZSwgbmFtZSkge1xuICB7XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwod2FybmVkUHJvcGVydGllcywgbmFtZSkgJiYgd2FybmVkUHJvcGVydGllc1tuYW1lXSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHJBUklBQ2FtZWwudGVzdChuYW1lKSkge1xuICAgICAgdmFyIGFyaWFOYW1lID0gJ2FyaWEtJyArIG5hbWUuc2xpY2UoNCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIHZhciBjb3JyZWN0TmFtZSA9IGFyaWFQcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KGFyaWFOYW1lKSA/IGFyaWFOYW1lIDogbnVsbDsgLy8gSWYgdGhpcyBpcyBhbiBhcmlhLSogYXR0cmlidXRlLCBidXQgaXMgbm90IGxpc3RlZCBpbiB0aGUga25vd24gRE9NXG4gICAgICAvLyBET00gcHJvcGVydGllcywgdGhlbiBpdCBpcyBhbiBpbnZhbGlkIGFyaWEtKiBhdHRyaWJ1dGUuXG5cbiAgICAgIGlmIChjb3JyZWN0TmFtZSA9PSBudWxsKSB7XG4gICAgICAgIGVycm9yKCdJbnZhbGlkIEFSSUEgYXR0cmlidXRlIGAlc2AuIEFSSUEgYXR0cmlidXRlcyBmb2xsb3cgdGhlIHBhdHRlcm4gYXJpYS0qIGFuZCBtdXN0IGJlIGxvd2VyY2FzZS4nLCBuYW1lKTtcblxuICAgICAgICB3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IC8vIGFyaWEtKiBhdHRyaWJ1dGVzIHNob3VsZCBiZSBsb3dlcmNhc2U7IHN1Z2dlc3QgdGhlIGxvd2VyY2FzZSB2ZXJzaW9uLlxuXG5cbiAgICAgIGlmIChuYW1lICE9PSBjb3JyZWN0TmFtZSkge1xuICAgICAgICBlcnJvcignSW52YWxpZCBBUklBIGF0dHJpYnV0ZSBgJXNgLiBEaWQgeW91IG1lYW4gYCVzYD8nLCBuYW1lLCBjb3JyZWN0TmFtZSk7XG5cbiAgICAgICAgd2FybmVkUHJvcGVydGllc1tuYW1lXSA9IHRydWU7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChyQVJJQS50ZXN0KG5hbWUpKSB7XG4gICAgICB2YXIgbG93ZXJDYXNlZE5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICB2YXIgc3RhbmRhcmROYW1lID0gYXJpYVByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkobG93ZXJDYXNlZE5hbWUpID8gbG93ZXJDYXNlZE5hbWUgOiBudWxsOyAvLyBJZiB0aGlzIGlzIGFuIGFyaWEtKiBhdHRyaWJ1dGUsIGJ1dCBpcyBub3QgbGlzdGVkIGluIHRoZSBrbm93biBET01cbiAgICAgIC8vIERPTSBwcm9wZXJ0aWVzLCB0aGVuIGl0IGlzIGFuIGludmFsaWQgYXJpYS0qIGF0dHJpYnV0ZS5cblxuICAgICAgaWYgKHN0YW5kYXJkTmFtZSA9PSBudWxsKSB7XG4gICAgICAgIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSB0cnVlO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9IC8vIGFyaWEtKiBhdHRyaWJ1dGVzIHNob3VsZCBiZSBsb3dlcmNhc2U7IHN1Z2dlc3QgdGhlIGxvd2VyY2FzZSB2ZXJzaW9uLlxuXG5cbiAgICAgIGlmIChuYW1lICE9PSBzdGFuZGFyZE5hbWUpIHtcbiAgICAgICAgZXJyb3IoJ1Vua25vd24gQVJJQSBhdHRyaWJ1dGUgYCVzYC4gRGlkIHlvdSBtZWFuIGAlc2A/JywgbmFtZSwgc3RhbmRhcmROYW1lKTtcblxuICAgICAgICB3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHdhcm5JbnZhbGlkQVJJQVByb3BzKHR5cGUsIHByb3BzKSB7XG4gIHtcbiAgICB2YXIgaW52YWxpZFByb3BzID0gW107XG5cbiAgICBmb3IgKHZhciBrZXkgaW4gcHJvcHMpIHtcbiAgICAgIHZhciBpc1ZhbGlkID0gdmFsaWRhdGVQcm9wZXJ0eSh0eXBlLCBrZXkpO1xuXG4gICAgICBpZiAoIWlzVmFsaWQpIHtcbiAgICAgICAgaW52YWxpZFByb3BzLnB1c2goa2V5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgdW5rbm93blByb3BTdHJpbmcgPSBpbnZhbGlkUHJvcHMubWFwKGZ1bmN0aW9uIChwcm9wKSB7XG4gICAgICByZXR1cm4gJ2AnICsgcHJvcCArICdgJztcbiAgICB9KS5qb2luKCcsICcpO1xuXG4gICAgaWYgKGludmFsaWRQcm9wcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGVycm9yKCdJbnZhbGlkIGFyaWEgcHJvcCAlcyBvbiA8JXM+IHRhZy4gJyArICdGb3IgZGV0YWlscywgc2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9pbnZhbGlkLWFyaWEtcHJvcHMnLCB1bmtub3duUHJvcFN0cmluZywgdHlwZSk7XG4gICAgfSBlbHNlIGlmIChpbnZhbGlkUHJvcHMubGVuZ3RoID4gMSkge1xuICAgICAgZXJyb3IoJ0ludmFsaWQgYXJpYSBwcm9wcyAlcyBvbiA8JXM+IHRhZy4gJyArICdGb3IgZGV0YWlscywgc2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9pbnZhbGlkLWFyaWEtcHJvcHMnLCB1bmtub3duUHJvcFN0cmluZywgdHlwZSk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcGVydGllcyh0eXBlLCBwcm9wcykge1xuICBpZiAoaXNDdXN0b21Db21wb25lbnQodHlwZSwgcHJvcHMpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgd2FybkludmFsaWRBUklBUHJvcHModHlwZSwgcHJvcHMpO1xufVxuXG52YXIgZGlkV2FyblZhbHVlTnVsbCA9IGZhbHNlO1xuZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0aWVzJDEodHlwZSwgcHJvcHMpIHtcbiAge1xuICAgIGlmICh0eXBlICE9PSAnaW5wdXQnICYmIHR5cGUgIT09ICd0ZXh0YXJlYScgJiYgdHlwZSAhPT0gJ3NlbGVjdCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMgIT0gbnVsbCAmJiBwcm9wcy52YWx1ZSA9PT0gbnVsbCAmJiAhZGlkV2FyblZhbHVlTnVsbCkge1xuICAgICAgZGlkV2FyblZhbHVlTnVsbCA9IHRydWU7XG5cbiAgICAgIGlmICh0eXBlID09PSAnc2VsZWN0JyAmJiBwcm9wcy5tdWx0aXBsZSkge1xuICAgICAgICBlcnJvcignYHZhbHVlYCBwcm9wIG9uIGAlc2Agc2hvdWxkIG5vdCBiZSBudWxsLiAnICsgJ0NvbnNpZGVyIHVzaW5nIGFuIGVtcHR5IGFycmF5IHdoZW4gYG11bHRpcGxlYCBpcyBzZXQgdG8gYHRydWVgICcgKyAndG8gY2xlYXIgdGhlIGNvbXBvbmVudCBvciBgdW5kZWZpbmVkYCBmb3IgdW5jb250cm9sbGVkIGNvbXBvbmVudHMuJywgdHlwZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlcnJvcignYHZhbHVlYCBwcm9wIG9uIGAlc2Agc2hvdWxkIG5vdCBiZSBudWxsLiAnICsgJ0NvbnNpZGVyIHVzaW5nIGFuIGVtcHR5IHN0cmluZyB0byBjbGVhciB0aGUgY29tcG9uZW50IG9yIGB1bmRlZmluZWRgICcgKyAnZm9yIHVuY29udHJvbGxlZCBjb21wb25lbnRzLicsIHR5cGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgdmFsaWRhdGVQcm9wZXJ0eSQxID0gZnVuY3Rpb24gKCkge307XG5cbntcbiAgdmFyIHdhcm5lZFByb3BlcnRpZXMkMSA9IHt9O1xuICB2YXIgRVZFTlRfTkFNRV9SRUdFWCA9IC9eb24uLztcbiAgdmFyIElOVkFMSURfRVZFTlRfTkFNRV9SRUdFWCA9IC9eb25bXkEtWl0vO1xuICB2YXIgckFSSUEkMSA9IG5ldyBSZWdFeHAoJ14oYXJpYSktWycgKyBBVFRSSUJVVEVfTkFNRV9DSEFSICsgJ10qJCcpO1xuICB2YXIgckFSSUFDYW1lbCQxID0gbmV3IFJlZ0V4cCgnXihhcmlhKVtBLVpdWycgKyBBVFRSSUJVVEVfTkFNRV9DSEFSICsgJ10qJCcpO1xuXG4gIHZhbGlkYXRlUHJvcGVydHkkMSA9IGZ1bmN0aW9uICh0YWdOYW1lLCBuYW1lLCB2YWx1ZSwgZXZlbnRSZWdpc3RyeSkge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKHdhcm5lZFByb3BlcnRpZXMkMSwgbmFtZSkgJiYgd2FybmVkUHJvcGVydGllcyQxW25hbWVdKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB2YXIgbG93ZXJDYXNlZE5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAobG93ZXJDYXNlZE5hbWUgPT09ICdvbmZvY3VzaW4nIHx8IGxvd2VyQ2FzZWROYW1lID09PSAnb25mb2N1c291dCcpIHtcbiAgICAgIGVycm9yKCdSZWFjdCB1c2VzIG9uRm9jdXMgYW5kIG9uQmx1ciBpbnN0ZWFkIG9mIG9uRm9jdXNJbiBhbmQgb25Gb2N1c091dC4gJyArICdBbGwgUmVhY3QgZXZlbnRzIGFyZSBub3JtYWxpemVkIHRvIGJ1YmJsZSwgc28gb25Gb2N1c0luIGFuZCBvbkZvY3VzT3V0ICcgKyAnYXJlIG5vdCBuZWVkZWQvc3VwcG9ydGVkIGJ5IFJlYWN0LicpO1xuXG4gICAgICB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSAvLyBXZSBjYW4ndCByZWx5IG9uIHRoZSBldmVudCBzeXN0ZW0gYmVpbmcgaW5qZWN0ZWQgb24gdGhlIHNlcnZlci5cblxuXG4gICAgaWYgKGV2ZW50UmVnaXN0cnkgIT0gbnVsbCkge1xuICAgICAgdmFyIHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMgPSBldmVudFJlZ2lzdHJ5LnJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMsXG4gICAgICAgICAgcG9zc2libGVSZWdpc3RyYXRpb25OYW1lcyA9IGV2ZW50UmVnaXN0cnkucG9zc2libGVSZWdpc3RyYXRpb25OYW1lcztcblxuICAgICAgaWYgKHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIHZhciByZWdpc3RyYXRpb25OYW1lID0gcG9zc2libGVSZWdpc3RyYXRpb25OYW1lcy5oYXNPd25Qcm9wZXJ0eShsb3dlckNhc2VkTmFtZSkgPyBwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzW2xvd2VyQ2FzZWROYW1lXSA6IG51bGw7XG5cbiAgICAgIGlmIChyZWdpc3RyYXRpb25OYW1lICE9IG51bGwpIHtcbiAgICAgICAgZXJyb3IoJ0ludmFsaWQgZXZlbnQgaGFuZGxlciBwcm9wZXJ0eSBgJXNgLiBEaWQgeW91IG1lYW4gYCVzYD8nLCBuYW1lLCByZWdpc3RyYXRpb25OYW1lKTtcblxuICAgICAgICB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSB0cnVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKEVWRU5UX05BTUVfUkVHRVgudGVzdChuYW1lKSkge1xuICAgICAgICBlcnJvcignVW5rbm93biBldmVudCBoYW5kbGVyIHByb3BlcnR5IGAlc2AuIEl0IHdpbGwgYmUgaWdub3JlZC4nLCBuYW1lKTtcblxuICAgICAgICB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSB0cnVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKEVWRU5UX05BTUVfUkVHRVgudGVzdChuYW1lKSkge1xuICAgICAgLy8gSWYgbm8gZXZlbnQgcGx1Z2lucyBoYXZlIGJlZW4gaW5qZWN0ZWQsIHdlIGFyZSBpbiBhIHNlcnZlciBlbnZpcm9ubWVudC5cbiAgICAgIC8vIFNvIHdlIGNhbid0IHRlbGwgaWYgdGhlIGV2ZW50IG5hbWUgaXMgY29ycmVjdCBmb3Igc3VyZSwgYnV0IHdlIGNhbiBmaWx0ZXJcbiAgICAgIC8vIG91dCBrbm93biBiYWQgb25lcyBsaWtlIGBvbmNsaWNrYC4gV2UgY2FuJ3Qgc3VnZ2VzdCBhIHNwZWNpZmljIHJlcGxhY2VtZW50IHRob3VnaC5cbiAgICAgIGlmIChJTlZBTElEX0VWRU5UX05BTUVfUkVHRVgudGVzdChuYW1lKSkge1xuICAgICAgICBlcnJvcignSW52YWxpZCBldmVudCBoYW5kbGVyIHByb3BlcnR5IGAlc2AuICcgKyAnUmVhY3QgZXZlbnRzIHVzZSB0aGUgY2FtZWxDYXNlIG5hbWluZyBjb252ZW50aW9uLCBmb3IgZXhhbXBsZSBgb25DbGlja2AuJywgbmFtZSk7XG4gICAgICB9XG5cbiAgICAgIHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9IHRydWU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IC8vIExldCB0aGUgQVJJQSBhdHRyaWJ1dGUgaG9vayB2YWxpZGF0ZSBBUklBIGF0dHJpYnV0ZXNcblxuXG4gICAgaWYgKHJBUklBJDEudGVzdChuYW1lKSB8fCByQVJJQUNhbWVsJDEudGVzdChuYW1lKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyQ2FzZWROYW1lID09PSAnaW5uZXJodG1sJykge1xuICAgICAgZXJyb3IoJ0RpcmVjdGx5IHNldHRpbmcgcHJvcGVydHkgYGlubmVySFRNTGAgaXMgbm90IHBlcm1pdHRlZC4gJyArICdGb3IgbW9yZSBpbmZvcm1hdGlvbiwgbG9va3VwIGRvY3VtZW50YXRpb24gb24gYGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC4nKTtcblxuICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChsb3dlckNhc2VkTmFtZSA9PT0gJ2FyaWEnKSB7XG4gICAgICBlcnJvcignVGhlIGBhcmlhYCBhdHRyaWJ1dGUgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgaW4gUmVhY3QuICcgKyAnUGFzcyBpbmRpdmlkdWFsIGBhcmlhLWAgYXR0cmlidXRlcyBpbnN0ZWFkLicpO1xuXG4gICAgICB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyQ2FzZWROYW1lID09PSAnaXMnICYmIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgZXJyb3IoJ1JlY2VpdmVkIGEgYCVzYCBmb3IgYSBzdHJpbmcgYXR0cmlidXRlIGBpc2AuIElmIHRoaXMgaXMgZXhwZWN0ZWQsIGNhc3QgJyArICd0aGUgdmFsdWUgdG8gYSBzdHJpbmcuJywgdHlwZW9mIHZhbHVlKTtcblxuICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIGlzTmFOKHZhbHVlKSkge1xuICAgICAgZXJyb3IoJ1JlY2VpdmVkIE5hTiBmb3IgdGhlIGAlc2AgYXR0cmlidXRlLiBJZiB0aGlzIGlzIGV4cGVjdGVkLCBjYXN0ICcgKyAndGhlIHZhbHVlIHRvIGEgc3RyaW5nLicsIG5hbWUpO1xuXG4gICAgICB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdmFyIHByb3BlcnR5SW5mbyA9IGdldFByb3BlcnR5SW5mbyhuYW1lKTtcbiAgICB2YXIgaXNSZXNlcnZlZCA9IHByb3BlcnR5SW5mbyAhPT0gbnVsbCAmJiBwcm9wZXJ0eUluZm8udHlwZSA9PT0gUkVTRVJWRUQ7IC8vIEtub3duIGF0dHJpYnV0ZXMgc2hvdWxkIG1hdGNoIHRoZSBjYXNpbmcgc3BlY2lmaWVkIGluIHRoZSBwcm9wZXJ0eSBjb25maWcuXG5cbiAgICBpZiAocG9zc2libGVTdGFuZGFyZE5hbWVzLmhhc093blByb3BlcnR5KGxvd2VyQ2FzZWROYW1lKSkge1xuICAgICAgdmFyIHN0YW5kYXJkTmFtZSA9IHBvc3NpYmxlU3RhbmRhcmROYW1lc1tsb3dlckNhc2VkTmFtZV07XG5cbiAgICAgIGlmIChzdGFuZGFyZE5hbWUgIT09IG5hbWUpIHtcbiAgICAgICAgZXJyb3IoJ0ludmFsaWQgRE9NIHByb3BlcnR5IGAlc2AuIERpZCB5b3UgbWVhbiBgJXNgPycsIG5hbWUsIHN0YW5kYXJkTmFtZSk7XG5cbiAgICAgICAgd2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghaXNSZXNlcnZlZCAmJiBuYW1lICE9PSBsb3dlckNhc2VkTmFtZSkge1xuICAgICAgLy8gVW5rbm93biBhdHRyaWJ1dGVzIHNob3VsZCBoYXZlIGxvd2VyY2FzZSBjYXNpbmcgc2luY2UgdGhhdCdzIGhvdyB0aGV5XG4gICAgICAvLyB3aWxsIGJlIGNhc2VkIGFueXdheSB3aXRoIHNlcnZlciByZW5kZXJpbmcuXG4gICAgICBlcnJvcignUmVhY3QgZG9lcyBub3QgcmVjb2duaXplIHRoZSBgJXNgIHByb3Agb24gYSBET00gZWxlbWVudC4gSWYgeW91ICcgKyAnaW50ZW50aW9uYWxseSB3YW50IGl0IHRvIGFwcGVhciBpbiB0aGUgRE9NIGFzIGEgY3VzdG9tICcgKyAnYXR0cmlidXRlLCBzcGVsbCBpdCBhcyBsb3dlcmNhc2UgYCVzYCBpbnN0ZWFkLiAnICsgJ0lmIHlvdSBhY2NpZGVudGFsbHkgcGFzc2VkIGl0IGZyb20gYSBwYXJlbnQgY29tcG9uZW50LCByZW1vdmUgJyArICdpdCBmcm9tIHRoZSBET00gZWxlbWVudC4nLCBuYW1lLCBsb3dlckNhc2VkTmFtZSk7XG5cbiAgICAgIHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9IHRydWU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgJiYgc2hvdWxkUmVtb3ZlQXR0cmlidXRlV2l0aFdhcm5pbmcobmFtZSwgdmFsdWUsIHByb3BlcnR5SW5mbywgZmFsc2UpKSB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgZXJyb3IoJ1JlY2VpdmVkIGAlc2AgZm9yIGEgbm9uLWJvb2xlYW4gYXR0cmlidXRlIGAlc2AuXFxuXFxuJyArICdJZiB5b3Ugd2FudCB0byB3cml0ZSBpdCB0byB0aGUgRE9NLCBwYXNzIGEgc3RyaW5nIGluc3RlYWQ6ICcgKyAnJXM9XCIlc1wiIG9yICVzPXt2YWx1ZS50b1N0cmluZygpfS4nLCB2YWx1ZSwgbmFtZSwgbmFtZSwgdmFsdWUsIG5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXJyb3IoJ1JlY2VpdmVkIGAlc2AgZm9yIGEgbm9uLWJvb2xlYW4gYXR0cmlidXRlIGAlc2AuXFxuXFxuJyArICdJZiB5b3Ugd2FudCB0byB3cml0ZSBpdCB0byB0aGUgRE9NLCBwYXNzIGEgc3RyaW5nIGluc3RlYWQ6ICcgKyAnJXM9XCIlc1wiIG9yICVzPXt2YWx1ZS50b1N0cmluZygpfS5cXG5cXG4nICsgJ0lmIHlvdSB1c2VkIHRvIGNvbmRpdGlvbmFsbHkgb21pdCBpdCB3aXRoICVzPXtjb25kaXRpb24gJiYgdmFsdWV9LCAnICsgJ3Bhc3MgJXM9e2NvbmRpdGlvbiA/IHZhbHVlIDogdW5kZWZpbmVkfSBpbnN0ZWFkLicsIHZhbHVlLCBuYW1lLCBuYW1lLCB2YWx1ZSwgbmFtZSwgbmFtZSwgbmFtZSk7XG4gICAgICB9XG5cbiAgICAgIHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9IHRydWU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IC8vIE5vdyB0aGF0IHdlJ3ZlIHZhbGlkYXRlZCBjYXNpbmcsIGRvIG5vdCB2YWxpZGF0ZVxuICAgIC8vIGRhdGEgdHlwZXMgZm9yIHJlc2VydmVkIHByb3BzXG5cblxuICAgIGlmIChpc1Jlc2VydmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IC8vIFdhcm4gd2hlbiBhIGtub3duIGF0dHJpYnV0ZSBpcyBhIGJhZCB0eXBlXG5cblxuICAgIGlmIChzaG91bGRSZW1vdmVBdHRyaWJ1dGVXaXRoV2FybmluZyhuYW1lLCB2YWx1ZSwgcHJvcGVydHlJbmZvLCBmYWxzZSkpIHtcbiAgICAgIHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9IHRydWU7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSAvLyBXYXJuIHdoZW4gcGFzc2luZyB0aGUgc3RyaW5ncyAnZmFsc2UnIG9yICd0cnVlJyBpbnRvIGEgYm9vbGVhbiBwcm9wXG5cblxuICAgIGlmICgodmFsdWUgPT09ICdmYWxzZScgfHwgdmFsdWUgPT09ICd0cnVlJykgJiYgcHJvcGVydHlJbmZvICE9PSBudWxsICYmIHByb3BlcnR5SW5mby50eXBlID09PSBCT09MRUFOKSB7XG4gICAgICBlcnJvcignUmVjZWl2ZWQgdGhlIHN0cmluZyBgJXNgIGZvciB0aGUgYm9vbGVhbiBhdHRyaWJ1dGUgYCVzYC4gJyArICclcyAnICsgJ0RpZCB5b3UgbWVhbiAlcz17JXN9PycsIHZhbHVlLCBuYW1lLCB2YWx1ZSA9PT0gJ2ZhbHNlJyA/ICdUaGUgYnJvd3NlciB3aWxsIGludGVycHJldCBpdCBhcyBhIHRydXRoeSB2YWx1ZS4nIDogJ0FsdGhvdWdoIHRoaXMgd29ya3MsIGl0IHdpbGwgbm90IHdvcmsgYXMgZXhwZWN0ZWQgaWYgeW91IHBhc3MgdGhlIHN0cmluZyBcImZhbHNlXCIuJywgbmFtZSwgdmFsdWUpO1xuXG4gICAgICB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG59XG5cbnZhciB3YXJuVW5rbm93blByb3BlcnRpZXMgPSBmdW5jdGlvbiAodHlwZSwgcHJvcHMsIGV2ZW50UmVnaXN0cnkpIHtcbiAge1xuICAgIHZhciB1bmtub3duUHJvcHMgPSBbXTtcblxuICAgIGZvciAodmFyIGtleSBpbiBwcm9wcykge1xuICAgICAgdmFyIGlzVmFsaWQgPSB2YWxpZGF0ZVByb3BlcnR5JDEodHlwZSwga2V5LCBwcm9wc1trZXldLCBldmVudFJlZ2lzdHJ5KTtcblxuICAgICAgaWYgKCFpc1ZhbGlkKSB7XG4gICAgICAgIHVua25vd25Qcm9wcy5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHVua25vd25Qcm9wU3RyaW5nID0gdW5rbm93blByb3BzLm1hcChmdW5jdGlvbiAocHJvcCkge1xuICAgICAgcmV0dXJuICdgJyArIHByb3AgKyAnYCc7XG4gICAgfSkuam9pbignLCAnKTtcblxuICAgIGlmICh1bmtub3duUHJvcHMubGVuZ3RoID09PSAxKSB7XG4gICAgICBlcnJvcignSW52YWxpZCB2YWx1ZSBmb3IgcHJvcCAlcyBvbiA8JXM+IHRhZy4gRWl0aGVyIHJlbW92ZSBpdCBmcm9tIHRoZSBlbGVtZW50LCAnICsgJ29yIHBhc3MgYSBzdHJpbmcgb3IgbnVtYmVyIHZhbHVlIHRvIGtlZXAgaXQgaW4gdGhlIERPTS4gJyArICdGb3IgZGV0YWlscywgc2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9hdHRyaWJ1dGUtYmVoYXZpb3IgJywgdW5rbm93blByb3BTdHJpbmcsIHR5cGUpO1xuICAgIH0gZWxzZSBpZiAodW5rbm93blByb3BzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGVycm9yKCdJbnZhbGlkIHZhbHVlcyBmb3IgcHJvcHMgJXMgb24gPCVzPiB0YWcuIEVpdGhlciByZW1vdmUgdGhlbSBmcm9tIHRoZSBlbGVtZW50LCAnICsgJ29yIHBhc3MgYSBzdHJpbmcgb3IgbnVtYmVyIHZhbHVlIHRvIGtlZXAgdGhlbSBpbiB0aGUgRE9NLiAnICsgJ0ZvciBkZXRhaWxzLCBzZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2F0dHJpYnV0ZS1iZWhhdmlvciAnLCB1bmtub3duUHJvcFN0cmluZywgdHlwZSk7XG4gICAgfVxuICB9XG59O1xuXG5mdW5jdGlvbiB2YWxpZGF0ZVByb3BlcnRpZXMkMih0eXBlLCBwcm9wcywgZXZlbnRSZWdpc3RyeSkge1xuICBpZiAoaXNDdXN0b21Db21wb25lbnQodHlwZSwgcHJvcHMpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgd2FyblVua25vd25Qcm9wZXJ0aWVzKHR5cGUsIHByb3BzLCBldmVudFJlZ2lzdHJ5KTtcbn1cblxudmFyIElTX0VWRU5UX0hBTkRMRV9OT05fTUFOQUdFRF9OT0RFID0gMTtcbnZhciBJU19OT05fREVMRUdBVEVEID0gMSA8PCAxO1xudmFyIElTX0NBUFRVUkVfUEhBU0UgPSAxIDw8IDI7XG4vLyBzZXQgdG8gTEVHQUNZX0ZCX1NVUFBPUlQuIExFR0FDWV9GQl9TVVBQT1JUIG9ubHkgZ2V0cyBzZXQgd2hlblxuLy8gd2UgY2FsbCB3aWxsRGVmZXJMYXRlckZvckxlZ2FjeUZCU3VwcG9ydCwgdGh1cyBub3QgYmFpbGluZyBvdXRcbi8vIHdpbGwgcmVzdWx0IGluIGVuZGxlc3MgY3ljbGVzIGxpa2UgYW4gaW5maW5pdGUgbG9vcC5cbi8vIFdlIGFsc28gZG9uJ3Qgd2FudCB0byBkZWZlciBkdXJpbmcgZXZlbnQgcmVwbGF5aW5nLlxuXG52YXIgU0hPVUxEX05PVF9QUk9DRVNTX1BPTFlGSUxMX0VWRU5UX1BMVUdJTlMgPSBJU19FVkVOVF9IQU5ETEVfTk9OX01BTkFHRURfTk9ERSB8IElTX05PTl9ERUxFR0FURUQgfCBJU19DQVBUVVJFX1BIQVNFO1xuXG4vLyBUaGlzIGV4aXN0cyB0byBhdm9pZCBjaXJjdWxhciBkZXBlbmRlbmN5IGJldHdlZW4gUmVhY3RET01FdmVudFJlcGxheWluZ1xuLy8gYW5kIERPTVBsdWdpbkV2ZW50U3lzdGVtLlxudmFyIGN1cnJlbnRSZXBsYXlpbmdFdmVudCA9IG51bGw7XG5mdW5jdGlvbiBzZXRSZXBsYXlpbmdFdmVudChldmVudCkge1xuICB7XG4gICAgaWYgKGN1cnJlbnRSZXBsYXlpbmdFdmVudCAhPT0gbnVsbCkge1xuICAgICAgZXJyb3IoJ0V4cGVjdGVkIGN1cnJlbnRseSByZXBsYXlpbmcgZXZlbnQgdG8gYmUgbnVsbC4gVGhpcyBlcnJvciAnICsgJ2lzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgIH1cbiAgfVxuXG4gIGN1cnJlbnRSZXBsYXlpbmdFdmVudCA9IGV2ZW50O1xufVxuZnVuY3Rpb24gcmVzZXRSZXBsYXlpbmdFdmVudCgpIHtcbiAge1xuICAgIGlmIChjdXJyZW50UmVwbGF5aW5nRXZlbnQgPT09IG51bGwpIHtcbiAgICAgIGVycm9yKCdFeHBlY3RlZCBjdXJyZW50bHkgcmVwbGF5aW5nIGV2ZW50IHRvIG5vdCBiZSBudWxsLiBUaGlzIGVycm9yICcgKyAnaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgfVxuICB9XG5cbiAgY3VycmVudFJlcGxheWluZ0V2ZW50ID0gbnVsbDtcbn1cbmZ1bmN0aW9uIGlzUmVwbGF5aW5nRXZlbnQoZXZlbnQpIHtcbiAgcmV0dXJuIGV2ZW50ID09PSBjdXJyZW50UmVwbGF5aW5nRXZlbnQ7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgdGFyZ2V0IG5vZGUgZnJvbSBhIG5hdGl2ZSBicm93c2VyIGV2ZW50IGJ5IGFjY291bnRpbmcgZm9yXG4gKiBpbmNvbnNpc3RlbmNpZXMgaW4gYnJvd3NlciBET00gQVBJcy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAcmV0dXJuIHtET01FdmVudFRhcmdldH0gVGFyZ2V0IG5vZGUuXG4gKi9cblxuZnVuY3Rpb24gZ2V0RXZlbnRUYXJnZXQobmF0aXZlRXZlbnQpIHtcbiAgLy8gRmFsbGJhY2sgdG8gbmF0aXZlRXZlbnQuc3JjRWxlbWVudCBmb3IgSUU5XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTI1MDZcbiAgdmFyIHRhcmdldCA9IG5hdGl2ZUV2ZW50LnRhcmdldCB8fCBuYXRpdmVFdmVudC5zcmNFbGVtZW50IHx8IHdpbmRvdzsgLy8gTm9ybWFsaXplIFNWRyA8dXNlPiBlbGVtZW50IGV2ZW50cyAjNDk2M1xuXG4gIGlmICh0YXJnZXQuY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQpIHtcbiAgICB0YXJnZXQgPSB0YXJnZXQuY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQ7XG4gIH0gLy8gU2FmYXJpIG1heSBmaXJlIGV2ZW50cyBvbiB0ZXh0IG5vZGVzIChOb2RlLlRFWFRfTk9ERSBpcyAzKS5cbiAgLy8gQHNlZSBodHRwOi8vd3d3LnF1aXJrc21vZGUub3JnL2pzL2V2ZW50c19wcm9wZXJ0aWVzLmh0bWxcblxuXG4gIHJldHVybiB0YXJnZXQubm9kZVR5cGUgPT09IFRFWFRfTk9ERSA/IHRhcmdldC5wYXJlbnROb2RlIDogdGFyZ2V0O1xufVxuXG52YXIgcmVzdG9yZUltcGwgPSBudWxsO1xudmFyIHJlc3RvcmVUYXJnZXQgPSBudWxsO1xudmFyIHJlc3RvcmVRdWV1ZSA9IG51bGw7XG5cbmZ1bmN0aW9uIHJlc3RvcmVTdGF0ZU9mVGFyZ2V0KHRhcmdldCkge1xuICAvLyBXZSBwZXJmb3JtIHRoaXMgdHJhbnNsYXRpb24gYXQgdGhlIGVuZCBvZiB0aGUgZXZlbnQgbG9vcCBzbyB0aGF0IHdlXG4gIC8vIGFsd2F5cyByZWNlaXZlIHRoZSBjb3JyZWN0IGZpYmVyIGhlcmVcbiAgdmFyIGludGVybmFsSW5zdGFuY2UgPSBnZXRJbnN0YW5jZUZyb21Ob2RlKHRhcmdldCk7XG5cbiAgaWYgKCFpbnRlcm5hbEluc3RhbmNlKSB7XG4gICAgLy8gVW5tb3VudGVkXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHR5cGVvZiByZXN0b3JlSW1wbCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBFcnJvcignc2V0UmVzdG9yZUltcGxlbWVudGF0aW9uKCkgbmVlZHMgdG8gYmUgY2FsbGVkIHRvIGhhbmRsZSBhIHRhcmdldCBmb3IgY29udHJvbGxlZCAnICsgJ2V2ZW50cy4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgfVxuXG4gIHZhciBzdGF0ZU5vZGUgPSBpbnRlcm5hbEluc3RhbmNlLnN0YXRlTm9kZTsgLy8gR3VhcmQgYWdhaW5zdCBGaWJlciBiZWluZyB1bm1vdW50ZWQuXG5cbiAgaWYgKHN0YXRlTm9kZSkge1xuICAgIHZhciBfcHJvcHMgPSBnZXRGaWJlckN1cnJlbnRQcm9wc0Zyb21Ob2RlKHN0YXRlTm9kZSk7XG5cbiAgICByZXN0b3JlSW1wbChpbnRlcm5hbEluc3RhbmNlLnN0YXRlTm9kZSwgaW50ZXJuYWxJbnN0YW5jZS50eXBlLCBfcHJvcHMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNldFJlc3RvcmVJbXBsZW1lbnRhdGlvbihpbXBsKSB7XG4gIHJlc3RvcmVJbXBsID0gaW1wbDtcbn1cbmZ1bmN0aW9uIGVucXVldWVTdGF0ZVJlc3RvcmUodGFyZ2V0KSB7XG4gIGlmIChyZXN0b3JlVGFyZ2V0KSB7XG4gICAgaWYgKHJlc3RvcmVRdWV1ZSkge1xuICAgICAgcmVzdG9yZVF1ZXVlLnB1c2godGFyZ2V0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdG9yZVF1ZXVlID0gW3RhcmdldF07XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJlc3RvcmVUYXJnZXQgPSB0YXJnZXQ7XG4gIH1cbn1cbmZ1bmN0aW9uIG5lZWRzU3RhdGVSZXN0b3JlKCkge1xuICByZXR1cm4gcmVzdG9yZVRhcmdldCAhPT0gbnVsbCB8fCByZXN0b3JlUXVldWUgIT09IG51bGw7XG59XG5mdW5jdGlvbiByZXN0b3JlU3RhdGVJZk5lZWRlZCgpIHtcbiAgaWYgKCFyZXN0b3JlVGFyZ2V0KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIHRhcmdldCA9IHJlc3RvcmVUYXJnZXQ7XG4gIHZhciBxdWV1ZWRUYXJnZXRzID0gcmVzdG9yZVF1ZXVlO1xuICByZXN0b3JlVGFyZ2V0ID0gbnVsbDtcbiAgcmVzdG9yZVF1ZXVlID0gbnVsbDtcbiAgcmVzdG9yZVN0YXRlT2ZUYXJnZXQodGFyZ2V0KTtcblxuICBpZiAocXVldWVkVGFyZ2V0cykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcXVldWVkVGFyZ2V0cy5sZW5ndGg7IGkrKykge1xuICAgICAgcmVzdG9yZVN0YXRlT2ZUYXJnZXQocXVldWVkVGFyZ2V0c1tpXSk7XG4gICAgfVxuICB9XG59XG5cbi8vIHRoZSByZW5kZXJlci4gU3VjaCBhcyB3aGVuIHdlJ3JlIGRpc3BhdGNoaW5nIGV2ZW50cyBvciBpZiB0aGlyZCBwYXJ0eVxuLy8gbGlicmFyaWVzIG5lZWQgdG8gY2FsbCBiYXRjaGVkVXBkYXRlcy4gRXZlbnR1YWxseSwgdGhpcyBBUEkgd2lsbCBnbyBhd2F5IHdoZW5cbi8vIGV2ZXJ5dGhpbmcgaXMgYmF0Y2hlZCBieSBkZWZhdWx0LiBXZSdsbCB0aGVuIGhhdmUgYSBzaW1pbGFyIEFQSSB0byBvcHQtb3V0IG9mXG4vLyBzY2hlZHVsZWQgd29yayBhbmQgaW5zdGVhZCBkbyBzeW5jaHJvbm91cyB3b3JrLlxuLy8gRGVmYXVsdHNcblxudmFyIGJhdGNoZWRVcGRhdGVzSW1wbCA9IGZ1bmN0aW9uIChmbiwgYm9va2tlZXBpbmcpIHtcbiAgcmV0dXJuIGZuKGJvb2trZWVwaW5nKTtcbn07XG5cbnZhciBmbHVzaFN5bmNJbXBsID0gZnVuY3Rpb24gKCkge307XG5cbnZhciBpc0luc2lkZUV2ZW50SGFuZGxlciA9IGZhbHNlO1xuXG5mdW5jdGlvbiBmaW5pc2hFdmVudEhhbmRsZXIoKSB7XG4gIC8vIEhlcmUgd2Ugd2FpdCB1bnRpbCBhbGwgdXBkYXRlcyBoYXZlIHByb3BhZ2F0ZWQsIHdoaWNoIGlzIGltcG9ydGFudFxuICAvLyB3aGVuIHVzaW5nIGNvbnRyb2xsZWQgY29tcG9uZW50cyB3aXRoaW4gbGF5ZXJzOlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE2OThcbiAgLy8gVGhlbiB3ZSByZXN0b3JlIHN0YXRlIG9mIGFueSBjb250cm9sbGVkIGNvbXBvbmVudC5cbiAgdmFyIGNvbnRyb2xsZWRDb21wb25lbnRzSGF2ZVBlbmRpbmdVcGRhdGVzID0gbmVlZHNTdGF0ZVJlc3RvcmUoKTtcblxuICBpZiAoY29udHJvbGxlZENvbXBvbmVudHNIYXZlUGVuZGluZ1VwZGF0ZXMpIHtcbiAgICAvLyBJZiBhIGNvbnRyb2xsZWQgZXZlbnQgd2FzIGZpcmVkLCB3ZSBtYXkgbmVlZCB0byByZXN0b3JlIHRoZSBzdGF0ZSBvZlxuICAgIC8vIHRoZSBET00gbm9kZSBiYWNrIHRvIHRoZSBjb250cm9sbGVkIHZhbHVlLiBUaGlzIGlzIG5lY2Vzc2FyeSB3aGVuIFJlYWN0XG4gICAgLy8gYmFpbHMgb3V0IG9mIHRoZSB1cGRhdGUgd2l0aG91dCB0b3VjaGluZyB0aGUgRE9NLlxuICAgIC8vIFRPRE86IFJlc3RvcmUgc3RhdGUgaW4gdGhlIG1pY3JvdGFzaywgYWZ0ZXIgdGhlIGRpc2NyZXRlIHVwZGF0ZXMgZmx1c2gsXG4gICAgLy8gaW5zdGVhZCBvZiBlYXJseSBmbHVzaGluZyB0aGVtIGhlcmUuXG4gICAgZmx1c2hTeW5jSW1wbCgpO1xuICAgIHJlc3RvcmVTdGF0ZUlmTmVlZGVkKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYmF0Y2hlZFVwZGF0ZXMoZm4sIGEsIGIpIHtcbiAgaWYgKGlzSW5zaWRlRXZlbnRIYW5kbGVyKSB7XG4gICAgLy8gSWYgd2UgYXJlIGN1cnJlbnRseSBpbnNpZGUgYW5vdGhlciBiYXRjaCwgd2UgbmVlZCB0byB3YWl0IHVudGlsIGl0XG4gICAgLy8gZnVsbHkgY29tcGxldGVzIGJlZm9yZSByZXN0b3Jpbmcgc3RhdGUuXG4gICAgcmV0dXJuIGZuKGEsIGIpO1xuICB9XG5cbiAgaXNJbnNpZGVFdmVudEhhbmRsZXIgPSB0cnVlO1xuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGJhdGNoZWRVcGRhdGVzSW1wbChmbiwgYSwgYik7XG4gIH0gZmluYWxseSB7XG4gICAgaXNJbnNpZGVFdmVudEhhbmRsZXIgPSBmYWxzZTtcbiAgICBmaW5pc2hFdmVudEhhbmRsZXIoKTtcbiAgfVxufSAvLyBUT0RPOiBSZXBsYWNlIHdpdGggZmx1c2hTeW5jXG5mdW5jdGlvbiBzZXRCYXRjaGluZ0ltcGxlbWVudGF0aW9uKF9iYXRjaGVkVXBkYXRlc0ltcGwsIF9kaXNjcmV0ZVVwZGF0ZXNJbXBsLCBfZmx1c2hTeW5jSW1wbCkge1xuICBiYXRjaGVkVXBkYXRlc0ltcGwgPSBfYmF0Y2hlZFVwZGF0ZXNJbXBsO1xuICBmbHVzaFN5bmNJbXBsID0gX2ZsdXNoU3luY0ltcGw7XG59XG5cbmZ1bmN0aW9uIGlzSW50ZXJhY3RpdmUodGFnKSB7XG4gIHJldHVybiB0YWcgPT09ICdidXR0b24nIHx8IHRhZyA9PT0gJ2lucHV0JyB8fCB0YWcgPT09ICdzZWxlY3QnIHx8IHRhZyA9PT0gJ3RleHRhcmVhJztcbn1cblxuZnVuY3Rpb24gc2hvdWxkUHJldmVudE1vdXNlRXZlbnQobmFtZSwgdHlwZSwgcHJvcHMpIHtcbiAgc3dpdGNoIChuYW1lKSB7XG4gICAgY2FzZSAnb25DbGljayc6XG4gICAgY2FzZSAnb25DbGlja0NhcHR1cmUnOlxuICAgIGNhc2UgJ29uRG91YmxlQ2xpY2snOlxuICAgIGNhc2UgJ29uRG91YmxlQ2xpY2tDYXB0dXJlJzpcbiAgICBjYXNlICdvbk1vdXNlRG93bic6XG4gICAgY2FzZSAnb25Nb3VzZURvd25DYXB0dXJlJzpcbiAgICBjYXNlICdvbk1vdXNlTW92ZSc6XG4gICAgY2FzZSAnb25Nb3VzZU1vdmVDYXB0dXJlJzpcbiAgICBjYXNlICdvbk1vdXNlVXAnOlxuICAgIGNhc2UgJ29uTW91c2VVcENhcHR1cmUnOlxuICAgIGNhc2UgJ29uTW91c2VFbnRlcic6XG4gICAgICByZXR1cm4gISEocHJvcHMuZGlzYWJsZWQgJiYgaXNJbnRlcmFjdGl2ZSh0eXBlKSk7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4vKipcbiAqIEBwYXJhbSB7b2JqZWN0fSBpbnN0IFRoZSBpbnN0YW5jZSwgd2hpY2ggaXMgdGhlIHNvdXJjZSBvZiBldmVudHMuXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVnaXN0cmF0aW9uTmFtZSBOYW1lIG9mIGxpc3RlbmVyIChlLmcuIGBvbkNsaWNrYCkuXG4gKiBAcmV0dXJuIHs/ZnVuY3Rpb259IFRoZSBzdG9yZWQgY2FsbGJhY2suXG4gKi9cblxuXG5mdW5jdGlvbiBnZXRMaXN0ZW5lcihpbnN0LCByZWdpc3RyYXRpb25OYW1lKSB7XG4gIHZhciBzdGF0ZU5vZGUgPSBpbnN0LnN0YXRlTm9kZTtcblxuICBpZiAoc3RhdGVOb2RlID09PSBudWxsKSB7XG4gICAgLy8gV29yayBpbiBwcm9ncmVzcyAoZXg6IG9ubG9hZCBldmVudHMgaW4gaW5jcmVtZW50YWwgbW9kZSkuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgcHJvcHMgPSBnZXRGaWJlckN1cnJlbnRQcm9wc0Zyb21Ob2RlKHN0YXRlTm9kZSk7XG5cbiAgaWYgKHByb3BzID09PSBudWxsKSB7XG4gICAgLy8gV29yayBpbiBwcm9ncmVzcy5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHZhciBsaXN0ZW5lciA9IHByb3BzW3JlZ2lzdHJhdGlvbk5hbWVdO1xuXG4gIGlmIChzaG91bGRQcmV2ZW50TW91c2VFdmVudChyZWdpc3RyYXRpb25OYW1lLCBpbnN0LnR5cGUsIHByb3BzKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKGxpc3RlbmVyICYmIHR5cGVvZiBsaXN0ZW5lciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkV4cGVjdGVkIGBcIiArIHJlZ2lzdHJhdGlvbk5hbWUgKyBcImAgbGlzdGVuZXIgdG8gYmUgYSBmdW5jdGlvbiwgaW5zdGVhZCBnb3QgYSB2YWx1ZSBvZiBgXCIgKyB0eXBlb2YgbGlzdGVuZXIgKyBcImAgdHlwZS5cIik7XG4gIH1cblxuICByZXR1cm4gbGlzdGVuZXI7XG59XG5cbnZhciBwYXNzaXZlQnJvd3NlckV2ZW50c1N1cHBvcnRlZCA9IGZhbHNlOyAvLyBDaGVjayBpZiBicm93c2VyIHN1cHBvcnQgZXZlbnRzIHdpdGggcGFzc2l2ZSBsaXN0ZW5lcnNcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FdmVudFRhcmdldC9hZGRFdmVudExpc3RlbmVyI1NhZmVseV9kZXRlY3Rpbmdfb3B0aW9uX3N1cHBvcnRcblxuaWYgKGNhblVzZURPTSkge1xuICB0cnkge1xuICAgIHZhciBvcHRpb25zID0ge307IC8vICRGbG93Rml4TWU6IElnbm9yZSBGbG93IGNvbXBsYWluaW5nIGFib3V0IG5lZWRpbmcgYSB2YWx1ZVxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9wdGlvbnMsICdwYXNzaXZlJywge1xuICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHBhc3NpdmVCcm93c2VyRXZlbnRzU3VwcG9ydGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndGVzdCcsIG9wdGlvbnMsIG9wdGlvbnMpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCd0ZXN0Jywgb3B0aW9ucywgb3B0aW9ucyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBwYXNzaXZlQnJvd3NlckV2ZW50c1N1cHBvcnRlZCA9IGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGludm9rZUd1YXJkZWRDYWxsYmFja1Byb2QobmFtZSwgZnVuYywgY29udGV4dCwgYSwgYiwgYywgZCwgZSwgZikge1xuICB2YXIgZnVuY0FyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDMpO1xuXG4gIHRyeSB7XG4gICAgZnVuYy5hcHBseShjb250ZXh0LCBmdW5jQXJncyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdGhpcy5vbkVycm9yKGVycm9yKTtcbiAgfVxufVxuXG52YXIgaW52b2tlR3VhcmRlZENhbGxiYWNrSW1wbCA9IGludm9rZUd1YXJkZWRDYWxsYmFja1Byb2Q7XG5cbntcbiAgLy8gSW4gREVWIG1vZGUsIHdlIHN3YXAgb3V0IGludm9rZUd1YXJkZWRDYWxsYmFjayBmb3IgYSBzcGVjaWFsIHZlcnNpb25cbiAgLy8gdGhhdCBwbGF5cyBtb3JlIG5pY2VseSB3aXRoIHRoZSBicm93c2VyJ3MgRGV2VG9vbHMuIFRoZSBpZGVhIGlzIHRvIHByZXNlcnZlXG4gIC8vIFwiUGF1c2Ugb24gZXhjZXB0aW9uc1wiIGJlaGF2aW9yLiBCZWNhdXNlIFJlYWN0IHdyYXBzIGFsbCB1c2VyLXByb3ZpZGVkXG4gIC8vIGZ1bmN0aW9ucyBpbiBpbnZva2VHdWFyZGVkQ2FsbGJhY2ssIGFuZCB0aGUgcHJvZHVjdGlvbiB2ZXJzaW9uIG9mXG4gIC8vIGludm9rZUd1YXJkZWRDYWxsYmFjayB1c2VzIGEgdHJ5LWNhdGNoLCBhbGwgdXNlciBleGNlcHRpb25zIGFyZSB0cmVhdGVkXG4gIC8vIGxpa2UgY2F1Z2h0IGV4Y2VwdGlvbnMsIGFuZCB0aGUgRGV2VG9vbHMgd29uJ3QgcGF1c2UgdW5sZXNzIHRoZSBkZXZlbG9wZXJcbiAgLy8gdGFrZXMgdGhlIGV4dHJhIHN0ZXAgb2YgZW5hYmxpbmcgcGF1c2Ugb24gY2F1Z2h0IGV4Y2VwdGlvbnMuIFRoaXMgaXNcbiAgLy8gdW5pbnR1aXRpdmUsIHRob3VnaCwgYmVjYXVzZSBldmVuIHRob3VnaCBSZWFjdCBoYXMgY2F1Z2h0IHRoZSBlcnJvciwgZnJvbVxuICAvLyB0aGUgZGV2ZWxvcGVyJ3MgcGVyc3BlY3RpdmUsIHRoZSBlcnJvciBpcyB1bmNhdWdodC5cbiAgLy9cbiAgLy8gVG8gcHJlc2VydmUgdGhlIGV4cGVjdGVkIFwiUGF1c2Ugb24gZXhjZXB0aW9uc1wiIGJlaGF2aW9yLCB3ZSBkb24ndCB1c2UgYVxuICAvLyB0cnktY2F0Y2ggaW4gREVWLiBJbnN0ZWFkLCB3ZSBzeW5jaHJvbm91c2x5IGRpc3BhdGNoIGEgZmFrZSBldmVudCB0byBhIGZha2VcbiAgLy8gRE9NIG5vZGUsIGFuZCBjYWxsIHRoZSB1c2VyLXByb3ZpZGVkIGNhbGxiYWNrIGZyb20gaW5zaWRlIGFuIGV2ZW50IGhhbmRsZXJcbiAgLy8gZm9yIHRoYXQgZmFrZSBldmVudC4gSWYgdGhlIGNhbGxiYWNrIHRocm93cywgdGhlIGVycm9yIGlzIFwiY2FwdHVyZWRcIiB1c2luZ1xuICAvLyBhIGdsb2JhbCBldmVudCBoYW5kbGVyLiBCdXQgYmVjYXVzZSB0aGUgZXJyb3IgaGFwcGVucyBpbiBhIGRpZmZlcmVudFxuICAvLyBldmVudCBsb29wIGNvbnRleHQsIGl0IGRvZXMgbm90IGludGVycnVwdCB0aGUgbm9ybWFsIHByb2dyYW0gZmxvdy5cbiAgLy8gRWZmZWN0aXZlbHksIHRoaXMgZ2l2ZXMgdXMgdHJ5LWNhdGNoIGJlaGF2aW9yIHdpdGhvdXQgYWN0dWFsbHkgdXNpbmdcbiAgLy8gdHJ5LWNhdGNoLiBOZWF0IVxuICAvLyBDaGVjayB0aGF0IHRoZSBicm93c2VyIHN1cHBvcnRzIHRoZSBBUElzIHdlIG5lZWQgdG8gaW1wbGVtZW50IG91ciBzcGVjaWFsXG4gIC8vIERFViB2ZXJzaW9uIG9mIGludm9rZUd1YXJkZWRDYWxsYmFja1xuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIHdpbmRvdy5kaXNwYXRjaEV2ZW50ID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUV2ZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdmFyIGZha2VOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncmVhY3QnKTtcblxuICAgIGludm9rZUd1YXJkZWRDYWxsYmFja0ltcGwgPSBmdW5jdGlvbiBpbnZva2VHdWFyZGVkQ2FsbGJhY2tEZXYobmFtZSwgZnVuYywgY29udGV4dCwgYSwgYiwgYywgZCwgZSwgZikge1xuICAgICAgLy8gSWYgZG9jdW1lbnQgZG9lc24ndCBleGlzdCB3ZSBrbm93IGZvciBzdXJlIHdlIHdpbGwgY3Jhc2ggaW4gdGhpcyBtZXRob2RcbiAgICAgIC8vIHdoZW4gd2UgY2FsbCBkb2N1bWVudC5jcmVhdGVFdmVudCgpLiBIb3dldmVyIHRoaXMgY2FuIGNhdXNlIGNvbmZ1c2luZ1xuICAgICAgLy8gZXJyb3JzOiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svY3JlYXRlLXJlYWN0LWFwcC9pc3N1ZXMvMzQ4MlxuICAgICAgLy8gU28gd2UgcHJlZW1wdGl2ZWx5IHRocm93IHdpdGggYSBiZXR0ZXIgbWVzc2FnZSBpbnN0ZWFkLlxuICAgICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcgfHwgZG9jdW1lbnQgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgYGRvY3VtZW50YCBnbG9iYWwgd2FzIGRlZmluZWQgd2hlbiBSZWFjdCB3YXMgaW5pdGlhbGl6ZWQsIGJ1dCBpcyBub3QgJyArICdkZWZpbmVkIGFueW1vcmUuIFRoaXMgY2FuIGhhcHBlbiBpbiBhIHRlc3QgZW52aXJvbm1lbnQgaWYgYSBjb21wb25lbnQgJyArICdzY2hlZHVsZXMgYW4gdXBkYXRlIGZyb20gYW4gYXN5bmNocm9ub3VzIGNhbGxiYWNrLCBidXQgdGhlIHRlc3QgaGFzIGFscmVhZHkgJyArICdmaW5pc2hlZCBydW5uaW5nLiBUbyBzb2x2ZSB0aGlzLCB5b3UgY2FuIGVpdGhlciB1bm1vdW50IHRoZSBjb21wb25lbnQgYXQgJyArICd0aGUgZW5kIG9mIHlvdXIgdGVzdCAoYW5kIGVuc3VyZSB0aGF0IGFueSBhc3luY2hyb25vdXMgb3BlcmF0aW9ucyBnZXQgJyArICdjYW5jZWxlZCBpbiBgY29tcG9uZW50V2lsbFVubW91bnRgKSwgb3IgeW91IGNhbiBjaGFuZ2UgdGhlIHRlc3QgaXRzZWxmICcgKyAndG8gYmUgYXN5bmNocm9ub3VzLicpO1xuICAgICAgfVxuXG4gICAgICB2YXIgZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0V2ZW50Jyk7XG4gICAgICB2YXIgZGlkQ2FsbCA9IGZhbHNlOyAvLyBLZWVwcyB0cmFjayBvZiB3aGV0aGVyIHRoZSB1c2VyLXByb3ZpZGVkIGNhbGxiYWNrIHRocmV3IGFuIGVycm9yLiBXZVxuICAgICAgLy8gc2V0IHRoaXMgdG8gdHJ1ZSBhdCB0aGUgYmVnaW5uaW5nLCB0aGVuIHNldCBpdCB0byBmYWxzZSByaWdodCBhZnRlclxuICAgICAgLy8gY2FsbGluZyB0aGUgZnVuY3Rpb24uIElmIHRoZSBmdW5jdGlvbiBlcnJvcnMsIGBkaWRFcnJvcmAgd2lsbCBuZXZlciBiZVxuICAgICAgLy8gc2V0IHRvIGZhbHNlLiBUaGlzIHN0cmF0ZWd5IHdvcmtzIGV2ZW4gaWYgdGhlIGJyb3dzZXIgaXMgZmxha3kgYW5kXG4gICAgICAvLyBmYWlscyB0byBjYWxsIG91ciBnbG9iYWwgZXJyb3IgaGFuZGxlciwgYmVjYXVzZSBpdCBkb2Vzbid0IHJlbHkgb25cbiAgICAgIC8vIHRoZSBlcnJvciBldmVudCBhdCBhbGwuXG5cbiAgICAgIHZhciBkaWRFcnJvciA9IHRydWU7IC8vIEtlZXBzIHRyYWNrIG9mIHRoZSB2YWx1ZSBvZiB3aW5kb3cuZXZlbnQgc28gdGhhdCB3ZSBjYW4gcmVzZXQgaXRcbiAgICAgIC8vIGR1cmluZyB0aGUgY2FsbGJhY2sgdG8gbGV0IHVzZXIgY29kZSBhY2Nlc3Mgd2luZG93LmV2ZW50IGluIHRoZVxuICAgICAgLy8gYnJvd3NlcnMgdGhhdCBzdXBwb3J0IGl0LlxuXG4gICAgICB2YXIgd2luZG93RXZlbnQgPSB3aW5kb3cuZXZlbnQ7IC8vIEtlZXBzIHRyYWNrIG9mIHRoZSBkZXNjcmlwdG9yIG9mIHdpbmRvdy5ldmVudCB0byByZXN0b3JlIGl0IGFmdGVyIGV2ZW50XG4gICAgICAvLyBkaXNwYXRjaGluZzogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMzY4OFxuXG4gICAgICB2YXIgd2luZG93RXZlbnREZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdldmVudCcpO1xuXG4gICAgICBmdW5jdGlvbiByZXN0b3JlQWZ0ZXJEaXNwYXRjaCgpIHtcbiAgICAgICAgLy8gV2UgaW1tZWRpYXRlbHkgcmVtb3ZlIHRoZSBjYWxsYmFjayBmcm9tIGV2ZW50IGxpc3RlbmVycyBzbyB0aGF0XG4gICAgICAgIC8vIG5lc3RlZCBgaW52b2tlR3VhcmRlZENhbGxiYWNrYCBjYWxscyBkbyBub3QgY2xhc2guIE90aGVyd2lzZSwgYVxuICAgICAgICAvLyBuZXN0ZWQgY2FsbCB3b3VsZCB0cmlnZ2VyIHRoZSBmYWtlIGV2ZW50IGhhbmRsZXJzIG9mIGFueSBjYWxsIGhpZ2hlclxuICAgICAgICAvLyBpbiB0aGUgc3RhY2suXG4gICAgICAgIGZha2VOb2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZ0VHlwZSwgY2FsbENhbGxiYWNrLCBmYWxzZSk7IC8vIFdlIGNoZWNrIGZvciB3aW5kb3cuaGFzT3duUHJvcGVydHkoJ2V2ZW50JykgdG8gcHJldmVudCB0aGVcbiAgICAgICAgLy8gd2luZG93LmV2ZW50IGFzc2lnbm1lbnQgaW4gYm90aCBJRSA8PSAxMCBhcyB0aGV5IHRocm93IGFuIGVycm9yXG4gICAgICAgIC8vIFwiTWVtYmVyIG5vdCBmb3VuZFwiIGluIHN0cmljdCBtb2RlLCBhbmQgaW4gRmlyZWZveCB3aGljaCBkb2VzIG5vdFxuICAgICAgICAvLyBzdXBwb3J0IHdpbmRvdy5ldmVudC5cblxuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdy5ldmVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lmhhc093blByb3BlcnR5KCdldmVudCcpKSB7XG4gICAgICAgICAgd2luZG93LmV2ZW50ID0gd2luZG93RXZlbnQ7XG4gICAgICAgIH1cbiAgICAgIH0gLy8gQ3JlYXRlIGFuIGV2ZW50IGhhbmRsZXIgZm9yIG91ciBmYWtlIGV2ZW50LiBXZSB3aWxsIHN5bmNocm9ub3VzbHlcbiAgICAgIC8vIGRpc3BhdGNoIG91ciBmYWtlIGV2ZW50IHVzaW5nIGBkaXNwYXRjaEV2ZW50YC4gSW5zaWRlIHRoZSBoYW5kbGVyLCB3ZVxuICAgICAgLy8gY2FsbCB0aGUgdXNlci1wcm92aWRlZCBjYWxsYmFjay5cblxuXG4gICAgICB2YXIgZnVuY0FyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDMpO1xuXG4gICAgICBmdW5jdGlvbiBjYWxsQ2FsbGJhY2soKSB7XG4gICAgICAgIGRpZENhbGwgPSB0cnVlO1xuICAgICAgICByZXN0b3JlQWZ0ZXJEaXNwYXRjaCgpO1xuICAgICAgICBmdW5jLmFwcGx5KGNvbnRleHQsIGZ1bmNBcmdzKTtcbiAgICAgICAgZGlkRXJyb3IgPSBmYWxzZTtcbiAgICAgIH0gLy8gQ3JlYXRlIGEgZ2xvYmFsIGVycm9yIGV2ZW50IGhhbmRsZXIuIFdlIHVzZSB0aGlzIHRvIGNhcHR1cmUgdGhlIHZhbHVlXG4gICAgICAvLyB0aGF0IHdhcyB0aHJvd24uIEl0J3MgcG9zc2libGUgdGhhdCB0aGlzIGVycm9yIGhhbmRsZXIgd2lsbCBmaXJlIG1vcmVcbiAgICAgIC8vIHRoYW4gb25jZTsgZm9yIGV4YW1wbGUsIGlmIG5vbi1SZWFjdCBjb2RlIGFsc28gY2FsbHMgYGRpc3BhdGNoRXZlbnRgXG4gICAgICAvLyBhbmQgYSBoYW5kbGVyIGZvciB0aGF0IGV2ZW50IHRocm93cy4gV2Ugc2hvdWxkIGJlIHJlc2lsaWVudCB0byBtb3N0IG9mXG4gICAgICAvLyB0aG9zZSBjYXNlcy4gRXZlbiBpZiBvdXIgZXJyb3IgZXZlbnQgaGFuZGxlciBmaXJlcyBtb3JlIHRoYW4gb25jZSwgdGhlXG4gICAgICAvLyBsYXN0IGVycm9yIGV2ZW50IGlzIGFsd2F5cyB1c2VkLiBJZiB0aGUgY2FsbGJhY2sgYWN0dWFsbHkgZG9lcyBlcnJvcixcbiAgICAgIC8vIHdlIGtub3cgdGhhdCB0aGUgbGFzdCBlcnJvciBldmVudCBpcyB0aGUgY29ycmVjdCBvbmUsIGJlY2F1c2UgaXQncyBub3RcbiAgICAgIC8vIHBvc3NpYmxlIGZvciBhbnl0aGluZyBlbHNlIHRvIGhhdmUgaGFwcGVuZWQgaW4gYmV0d2VlbiBvdXIgY2FsbGJhY2tcbiAgICAgIC8vIGVycm9yaW5nIGFuZCB0aGUgY29kZSB0aGF0IGZvbGxvd3MgdGhlIGBkaXNwYXRjaEV2ZW50YCBjYWxsIGJlbG93LiBJZlxuICAgICAgLy8gdGhlIGNhbGxiYWNrIGRvZXNuJ3QgZXJyb3IsIGJ1dCB0aGUgZXJyb3IgZXZlbnQgd2FzIGZpcmVkLCB3ZSBrbm93IHRvXG4gICAgICAvLyBpZ25vcmUgaXQgYmVjYXVzZSBgZGlkRXJyb3JgIHdpbGwgYmUgZmFsc2UsIGFzIGRlc2NyaWJlZCBhYm92ZS5cblxuXG4gICAgICB2YXIgZXJyb3I7IC8vIFVzZSB0aGlzIHRvIHRyYWNrIHdoZXRoZXIgdGhlIGVycm9yIGV2ZW50IGlzIGV2ZXIgY2FsbGVkLlxuXG4gICAgICB2YXIgZGlkU2V0RXJyb3IgPSBmYWxzZTtcbiAgICAgIHZhciBpc0Nyb3NzT3JpZ2luRXJyb3IgPSBmYWxzZTtcblxuICAgICAgZnVuY3Rpb24gaGFuZGxlV2luZG93RXJyb3IoZXZlbnQpIHtcbiAgICAgICAgZXJyb3IgPSBldmVudC5lcnJvcjtcbiAgICAgICAgZGlkU2V0RXJyb3IgPSB0cnVlO1xuXG4gICAgICAgIGlmIChlcnJvciA9PT0gbnVsbCAmJiBldmVudC5jb2xubyA9PT0gMCAmJiBldmVudC5saW5lbm8gPT09IDApIHtcbiAgICAgICAgICBpc0Nyb3NzT3JpZ2luRXJyb3IgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAvLyBTb21lIG90aGVyIGVycm9yIGhhbmRsZXIgaGFzIHByZXZlbnRlZCBkZWZhdWx0LlxuICAgICAgICAgIC8vIEJyb3dzZXJzIHNpbGVuY2UgdGhlIGVycm9yIHJlcG9ydCBpZiB0aGlzIGhhcHBlbnMuXG4gICAgICAgICAgLy8gV2UnbGwgcmVtZW1iZXIgdGhpcyB0byBsYXRlciBkZWNpZGUgd2hldGhlciB0byBsb2cgaXQgb3Igbm90LlxuICAgICAgICAgIGlmIChlcnJvciAhPSBudWxsICYmIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGVycm9yLl9zdXBwcmVzc0xvZ2dpbmcgPSB0cnVlO1xuICAgICAgICAgICAgfSBjYXRjaCAoaW5uZXIpIHsvLyBJZ25vcmUuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IC8vIENyZWF0ZSBhIGZha2UgZXZlbnQgdHlwZS5cblxuXG4gICAgICB2YXIgZXZ0VHlwZSA9IFwicmVhY3QtXCIgKyAobmFtZSA/IG5hbWUgOiAnaW52b2tlZ3VhcmRlZGNhbGxiYWNrJyk7IC8vIEF0dGFjaCBvdXIgZXZlbnQgaGFuZGxlcnNcblxuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgaGFuZGxlV2luZG93RXJyb3IpO1xuICAgICAgZmFrZU5vZGUuYWRkRXZlbnRMaXN0ZW5lcihldnRUeXBlLCBjYWxsQ2FsbGJhY2ssIGZhbHNlKTsgLy8gU3luY2hyb25vdXNseSBkaXNwYXRjaCBvdXIgZmFrZSBldmVudC4gSWYgdGhlIHVzZXItcHJvdmlkZWQgZnVuY3Rpb25cbiAgICAgIC8vIGVycm9ycywgaXQgd2lsbCB0cmlnZ2VyIG91ciBnbG9iYWwgZXJyb3IgaGFuZGxlci5cblxuICAgICAgZXZ0LmluaXRFdmVudChldnRUeXBlLCBmYWxzZSwgZmFsc2UpO1xuICAgICAgZmFrZU5vZGUuZGlzcGF0Y2hFdmVudChldnQpO1xuXG4gICAgICBpZiAod2luZG93RXZlbnREZXNjcmlwdG9yKSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICdldmVudCcsIHdpbmRvd0V2ZW50RGVzY3JpcHRvcik7XG4gICAgICB9XG5cbiAgICAgIGlmIChkaWRDYWxsICYmIGRpZEVycm9yKSB7XG4gICAgICAgIGlmICghZGlkU2V0RXJyb3IpIHtcbiAgICAgICAgICAvLyBUaGUgY2FsbGJhY2sgZXJyb3JlZCwgYnV0IHRoZSBlcnJvciBldmVudCBuZXZlciBmaXJlZC5cbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvcHJvZC1lcnJvci1jb2Rlc1xuICAgICAgICAgIGVycm9yID0gbmV3IEVycm9yKCdBbiBlcnJvciB3YXMgdGhyb3duIGluc2lkZSBvbmUgb2YgeW91ciBjb21wb25lbnRzLCBidXQgUmVhY3QgJyArIFwiZG9lc24ndCBrbm93IHdoYXQgaXQgd2FzLiBUaGlzIGlzIGxpa2VseSBkdWUgdG8gYnJvd3NlciBcIiArICdmbGFraW5lc3MuIFJlYWN0IGRvZXMgaXRzIGJlc3QgdG8gcHJlc2VydmUgdGhlIFwiUGF1c2Ugb24gJyArICdleGNlcHRpb25zXCIgYmVoYXZpb3Igb2YgdGhlIERldlRvb2xzLCB3aGljaCByZXF1aXJlcyBzb21lICcgKyBcIkRFVi1tb2RlIG9ubHkgdHJpY2tzLiBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlc2UgZG9uJ3Qgd29yayBpbiBcIiArICd5b3VyIGJyb3dzZXIuIFRyeSB0cmlnZ2VyaW5nIHRoZSBlcnJvciBpbiBwcm9kdWN0aW9uIG1vZGUsICcgKyAnb3Igc3dpdGNoaW5nIHRvIGEgbW9kZXJuIGJyb3dzZXIuIElmIHlvdSBzdXNwZWN0IHRoYXQgdGhpcyBpcyAnICsgJ2FjdHVhbGx5IGFuIGlzc3VlIHdpdGggUmVhY3QsIHBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzQ3Jvc3NPcmlnaW5FcnJvcikge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9wcm9kLWVycm9yLWNvZGVzXG4gICAgICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoXCJBIGNyb3NzLW9yaWdpbiBlcnJvciB3YXMgdGhyb3duLiBSZWFjdCBkb2Vzbid0IGhhdmUgYWNjZXNzIHRvIFwiICsgJ3RoZSBhY3R1YWwgZXJyb3Igb2JqZWN0IGluIGRldmVsb3BtZW50LiAnICsgJ1NlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvY3Jvc3NvcmlnaW4tZXJyb3IgZm9yIG1vcmUgaW5mb3JtYXRpb24uJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uRXJyb3IoZXJyb3IpO1xuICAgICAgfSAvLyBSZW1vdmUgb3VyIGV2ZW50IGxpc3RlbmVyc1xuXG5cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIGhhbmRsZVdpbmRvd0Vycm9yKTtcblxuICAgICAgaWYgKCFkaWRDYWxsKSB7XG4gICAgICAgIC8vIFNvbWV0aGluZyB3ZW50IHJlYWxseSB3cm9uZywgYW5kIG91ciBldmVudCB3YXMgbm90IGRpc3BhdGNoZWQuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTY3MzRcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xNjU4NVxuICAgICAgICAvLyBGYWxsIGJhY2sgdG8gdGhlIHByb2R1Y3Rpb24gaW1wbGVtZW50YXRpb24uXG4gICAgICAgIHJlc3RvcmVBZnRlckRpc3BhdGNoKCk7XG4gICAgICAgIHJldHVybiBpbnZva2VHdWFyZGVkQ2FsbGJhY2tQcm9kLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuXG52YXIgaW52b2tlR3VhcmRlZENhbGxiYWNrSW1wbCQxID0gaW52b2tlR3VhcmRlZENhbGxiYWNrSW1wbDtcblxudmFyIGhhc0Vycm9yID0gZmFsc2U7XG52YXIgY2F1Z2h0RXJyb3IgPSBudWxsOyAvLyBVc2VkIGJ5IGV2ZW50IHN5c3RlbSB0byBjYXB0dXJlL3JldGhyb3cgdGhlIGZpcnN0IGVycm9yLlxuXG52YXIgaGFzUmV0aHJvd0Vycm9yID0gZmFsc2U7XG52YXIgcmV0aHJvd0Vycm9yID0gbnVsbDtcbnZhciByZXBvcnRlciA9IHtcbiAgb25FcnJvcjogZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgaGFzRXJyb3IgPSB0cnVlO1xuICAgIGNhdWdodEVycm9yID0gZXJyb3I7XG4gIH1cbn07XG4vKipcbiAqIENhbGwgYSBmdW5jdGlvbiB3aGlsZSBndWFyZGluZyBhZ2FpbnN0IGVycm9ycyB0aGF0IGhhcHBlbnMgd2l0aGluIGl0LlxuICogUmV0dXJucyBhbiBlcnJvciBpZiBpdCB0aHJvd3MsIG90aGVyd2lzZSBudWxsLlxuICpcbiAqIEluIHByb2R1Y3Rpb24sIHRoaXMgaXMgaW1wbGVtZW50ZWQgdXNpbmcgYSB0cnktY2F0Y2guIFRoZSByZWFzb24gd2UgZG9uJ3RcbiAqIHVzZSBhIHRyeS1jYXRjaCBkaXJlY3RseSBpcyBzbyB0aGF0IHdlIGNhbiBzd2FwIG91dCBhIGRpZmZlcmVudFxuICogaW1wbGVtZW50YXRpb24gaW4gREVWIG1vZGUuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgb2YgdGhlIGd1YXJkIHRvIHVzZSBmb3IgbG9nZ2luZyBvciBkZWJ1Z2dpbmdcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGludm9rZVxuICogQHBhcmFtIHsqfSBjb250ZXh0IFRoZSBjb250ZXh0IHRvIHVzZSB3aGVuIGNhbGxpbmcgdGhlIGZ1bmN0aW9uXG4gKiBAcGFyYW0gey4uLip9IGFyZ3MgQXJndW1lbnRzIGZvciBmdW5jdGlvblxuICovXG5cbmZ1bmN0aW9uIGludm9rZUd1YXJkZWRDYWxsYmFjayhuYW1lLCBmdW5jLCBjb250ZXh0LCBhLCBiLCBjLCBkLCBlLCBmKSB7XG4gIGhhc0Vycm9yID0gZmFsc2U7XG4gIGNhdWdodEVycm9yID0gbnVsbDtcbiAgaW52b2tlR3VhcmRlZENhbGxiYWNrSW1wbCQxLmFwcGx5KHJlcG9ydGVyLCBhcmd1bWVudHMpO1xufVxuLyoqXG4gKiBTYW1lIGFzIGludm9rZUd1YXJkZWRDYWxsYmFjaywgYnV0IGluc3RlYWQgb2YgcmV0dXJuaW5nIGFuIGVycm9yLCBpdCBzdG9yZXNcbiAqIGl0IGluIGEgZ2xvYmFsIHNvIGl0IGNhbiBiZSByZXRocm93biBieSBgcmV0aHJvd0NhdWdodEVycm9yYCBsYXRlci5cbiAqIFRPRE86IFNlZSBpZiBjYXVnaHRFcnJvciBhbmQgcmV0aHJvd0Vycm9yIGNhbiBiZSB1bmlmaWVkLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIG9mIHRoZSBndWFyZCB0byB1c2UgZm9yIGxvZ2dpbmcgb3IgZGVidWdnaW5nXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBpbnZva2VcbiAqIEBwYXJhbSB7Kn0gY29udGV4dCBUaGUgY29udGV4dCB0byB1c2Ugd2hlbiBjYWxsaW5nIHRoZSBmdW5jdGlvblxuICogQHBhcmFtIHsuLi4qfSBhcmdzIEFyZ3VtZW50cyBmb3IgZnVuY3Rpb25cbiAqL1xuXG5mdW5jdGlvbiBpbnZva2VHdWFyZGVkQ2FsbGJhY2tBbmRDYXRjaEZpcnN0RXJyb3IobmFtZSwgZnVuYywgY29udGV4dCwgYSwgYiwgYywgZCwgZSwgZikge1xuICBpbnZva2VHdWFyZGVkQ2FsbGJhY2suYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICBpZiAoaGFzRXJyb3IpIHtcbiAgICB2YXIgZXJyb3IgPSBjbGVhckNhdWdodEVycm9yKCk7XG5cbiAgICBpZiAoIWhhc1JldGhyb3dFcnJvcikge1xuICAgICAgaGFzUmV0aHJvd0Vycm9yID0gdHJ1ZTtcbiAgICAgIHJldGhyb3dFcnJvciA9IGVycm9yO1xuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBEdXJpbmcgZXhlY3V0aW9uIG9mIGd1YXJkZWQgZnVuY3Rpb25zIHdlIHdpbGwgY2FwdHVyZSB0aGUgZmlyc3QgZXJyb3Igd2hpY2hcbiAqIHdlIHdpbGwgcmV0aHJvdyB0byBiZSBoYW5kbGVkIGJ5IHRoZSB0b3AgbGV2ZWwgZXJyb3IgaGFuZGxlci5cbiAqL1xuXG5mdW5jdGlvbiByZXRocm93Q2F1Z2h0RXJyb3IoKSB7XG4gIGlmIChoYXNSZXRocm93RXJyb3IpIHtcbiAgICB2YXIgZXJyb3IgPSByZXRocm93RXJyb3I7XG4gICAgaGFzUmV0aHJvd0Vycm9yID0gZmFsc2U7XG4gICAgcmV0aHJvd0Vycm9yID0gbnVsbDtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuZnVuY3Rpb24gaGFzQ2F1Z2h0RXJyb3IoKSB7XG4gIHJldHVybiBoYXNFcnJvcjtcbn1cbmZ1bmN0aW9uIGNsZWFyQ2F1Z2h0RXJyb3IoKSB7XG4gIGlmIChoYXNFcnJvcikge1xuICAgIHZhciBlcnJvciA9IGNhdWdodEVycm9yO1xuICAgIGhhc0Vycm9yID0gZmFsc2U7XG4gICAgY2F1Z2h0RXJyb3IgPSBudWxsO1xuICAgIHJldHVybiBlcnJvcjtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NsZWFyQ2F1Z2h0RXJyb3Igd2FzIGNhbGxlZCBidXQgbm8gZXJyb3Igd2FzIGNhcHR1cmVkLiBUaGlzIGVycm9yICcgKyAnaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBgUmVhY3RJbnN0YW5jZU1hcGAgbWFpbnRhaW5zIGEgbWFwcGluZyBmcm9tIGEgcHVibGljIGZhY2luZyBzdGF0ZWZ1bFxuICogaW5zdGFuY2UgKGtleSkgYW5kIHRoZSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiAodmFsdWUpLiBUaGlzIGFsbG93cyBwdWJsaWNcbiAqIG1ldGhvZHMgdG8gYWNjZXB0IHRoZSB1c2VyIGZhY2luZyBpbnN0YW5jZSBhcyBhbiBhcmd1bWVudCBhbmQgbWFwIHRoZW0gYmFja1xuICogdG8gaW50ZXJuYWwgbWV0aG9kcy5cbiAqXG4gKiBOb3RlIHRoYXQgdGhpcyBtb2R1bGUgaXMgY3VycmVudGx5IHNoYXJlZCBhbmQgYXNzdW1lZCB0byBiZSBzdGF0ZWxlc3MuXG4gKiBJZiB0aGlzIGJlY29tZXMgYW4gYWN0dWFsIE1hcCwgdGhhdCB3aWxsIGJyZWFrLlxuICovXG5mdW5jdGlvbiBnZXQoa2V5KSB7XG4gIHJldHVybiBrZXkuX3JlYWN0SW50ZXJuYWxzO1xufVxuZnVuY3Rpb24gaGFzKGtleSkge1xuICByZXR1cm4ga2V5Ll9yZWFjdEludGVybmFscyAhPT0gdW5kZWZpbmVkO1xufVxuZnVuY3Rpb24gc2V0KGtleSwgdmFsdWUpIHtcbiAga2V5Ll9yZWFjdEludGVybmFscyA9IHZhbHVlO1xufVxuXG4vLyBEb24ndCBjaGFuZ2UgdGhlc2UgdHdvIHZhbHVlcy4gVGhleSdyZSB1c2VkIGJ5IFJlYWN0IERldiBUb29scy5cbnZhciBOb0ZsYWdzID1cbi8qICAgICAgICAgICAgICAgICAgICAgICovXG4wO1xudmFyIFBlcmZvcm1lZFdvcmsgPVxuLyogICAgICAgICAgICAgICAgKi9cbjE7IC8vIFlvdSBjYW4gY2hhbmdlIHRoZSByZXN0IChhbmQgYWRkIG1vcmUpLlxuXG52YXIgUGxhY2VtZW50ID1cbi8qICAgICAgICAgICAgICAgICAgICAqL1xuMjtcbnZhciBVcGRhdGUgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICovXG40O1xudmFyIENoaWxkRGVsZXRpb24gPVxuLyogICAgICAgICAgICAgICAgKi9cbjE2O1xudmFyIENvbnRlbnRSZXNldCA9XG4vKiAgICAgICAgICAgICAgICAgKi9cbjMyO1xudmFyIENhbGxiYWNrID1cbi8qICAgICAgICAgICAgICAgICAgICAgKi9cbjY0O1xudmFyIERpZENhcHR1cmUgPVxuLyogICAgICAgICAgICAgICAgICAgKi9cbjEyODtcbnZhciBGb3JjZUNsaWVudFJlbmRlciA9XG4vKiAgICAgICAgICAgICovXG4yNTY7XG52YXIgUmVmID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuNTEyO1xudmFyIFNuYXBzaG90ID1cbi8qICAgICAgICAgICAgICAgICAgICAgKi9cbjEwMjQ7XG52YXIgUGFzc2l2ZSA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAqL1xuMjA0ODtcbnZhciBIeWRyYXRpbmcgPVxuLyogICAgICAgICAgICAgICAgICAgICovXG40MDk2O1xudmFyIFZpc2liaWxpdHkgPVxuLyogICAgICAgICAgICAgICAgICAgKi9cbjgxOTI7XG52YXIgU3RvcmVDb25zaXN0ZW5jeSA9XG4vKiAgICAgICAgICAgICAqL1xuMTYzODQ7XG52YXIgTGlmZWN5Y2xlRWZmZWN0TWFzayA9IFBhc3NpdmUgfCBVcGRhdGUgfCBDYWxsYmFjayB8IFJlZiB8IFNuYXBzaG90IHwgU3RvcmVDb25zaXN0ZW5jeTsgLy8gVW5pb24gb2YgYWxsIGNvbW1pdCBmbGFncyAoZmxhZ3Mgd2l0aCB0aGUgbGlmZXRpbWUgb2YgYSBwYXJ0aWN1bGFyIGNvbW1pdClcblxudmFyIEhvc3RFZmZlY3RNYXNrID1cbi8qICAgICAgICAgICAgICAgKi9cbjMyNzY3OyAvLyBUaGVzZSBhcmUgbm90IHJlYWxseSBzaWRlIGVmZmVjdHMsIGJ1dCB3ZSBzdGlsbCByZXVzZSB0aGlzIGZpZWxkLlxuXG52YXIgSW5jb21wbGV0ZSA9XG4vKiAgICAgICAgICAgICAgICAgICAqL1xuMzI3Njg7XG52YXIgU2hvdWxkQ2FwdHVyZSA9XG4vKiAgICAgICAgICAgICAgICAqL1xuNjU1MzY7XG52YXIgRm9yY2VVcGRhdGVGb3JMZWdhY3lTdXNwZW5zZSA9XG4vKiAqL1xuMTMxMDcyO1xudmFyIEZvcmtlZCA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgKi9cbjEwNDg1NzY7IC8vIFN0YXRpYyB0YWdzIGRlc2NyaWJlIGFzcGVjdHMgb2YgYSBmaWJlciB0aGF0IGFyZSBub3Qgc3BlY2lmaWMgdG8gYSByZW5kZXIsXG4vLyBlLmcuIGEgZmliZXIgdXNlcyBhIHBhc3NpdmUgZWZmZWN0IChldmVuIGlmIHRoZXJlIGFyZSBubyB1cGRhdGVzIG9uIHRoaXMgcGFydGljdWxhciByZW5kZXIpLlxuLy8gVGhpcyBlbmFibGVzIHVzIHRvIGRlZmVyIG1vcmUgd29yayBpbiB0aGUgdW5tb3VudCBjYXNlLFxuLy8gc2luY2Ugd2UgY2FuIGRlZmVyIHRyYXZlcnNpbmcgdGhlIHRyZWUgZHVyaW5nIGxheW91dCB0byBsb29rIGZvciBQYXNzaXZlIGVmZmVjdHMsXG4vLyBhbmQgaW5zdGVhZCByZWx5IG9uIHRoZSBzdGF0aWMgZmxhZyBhcyBhIHNpZ25hbCB0aGF0IHRoZXJlIG1heSBiZSBjbGVhbnVwIHdvcmsuXG5cbnZhciBSZWZTdGF0aWMgPVxuLyogICAgICAgICAgICAgICAgICAgICovXG4yMDk3MTUyO1xudmFyIExheW91dFN0YXRpYyA9XG4vKiAgICAgICAgICAgICAgICAgKi9cbjQxOTQzMDQ7XG52YXIgUGFzc2l2ZVN0YXRpYyA9XG4vKiAgICAgICAgICAgICAgICAqL1xuODM4ODYwODsgLy8gVGhlc2UgZmxhZ3MgYWxsb3cgdXMgdG8gdHJhdmVyc2UgdG8gZmliZXJzIHRoYXQgaGF2ZSBlZmZlY3RzIG9uIG1vdW50XG4vLyB3aXRob3V0IHRyYXZlcnNpbmcgdGhlIGVudGlyZSB0cmVlIGFmdGVyIGV2ZXJ5IGNvbW1pdCBmb3Jcbi8vIGRvdWJsZSBpbnZva2luZ1xuXG52YXIgTW91bnRMYXlvdXREZXYgPVxuLyogICAgICAgICAgICAgICAqL1xuMTY3NzcyMTY7XG52YXIgTW91bnRQYXNzaXZlRGV2ID1cbi8qICAgICAgICAgICAgICAqL1xuMzM1NTQ0MzI7IC8vIEdyb3VwcyBvZiBmbGFncyB0aGF0IGFyZSB1c2VkIGluIHRoZSBjb21taXQgcGhhc2UgdG8gc2tpcCBvdmVyIHRyZWVzIHRoYXRcbi8vIGRvbid0IGNvbnRhaW4gZWZmZWN0cywgYnkgY2hlY2tpbmcgc3VidHJlZUZsYWdzLlxuXG52YXIgQmVmb3JlTXV0YXRpb25NYXNrID0gLy8gVE9ETzogUmVtb3ZlIFVwZGF0ZSBmbGFnIGZyb20gYmVmb3JlIG11dGF0aW9uIHBoYXNlIGJ5IHJlLWxhbmRpbmcgVmlzaWJpbGl0eVxuLy8gZmxhZyBsb2dpYyAoc2VlICMyMDA0MylcblVwZGF0ZSB8IFNuYXBzaG90IHwgKCAwKTtcbnZhciBNdXRhdGlvbk1hc2sgPSBQbGFjZW1lbnQgfCBVcGRhdGUgfCBDaGlsZERlbGV0aW9uIHwgQ29udGVudFJlc2V0IHwgUmVmIHwgSHlkcmF0aW5nIHwgVmlzaWJpbGl0eTtcbnZhciBMYXlvdXRNYXNrID0gVXBkYXRlIHwgQ2FsbGJhY2sgfCBSZWYgfCBWaXNpYmlsaXR5OyAvLyBUT0RPOiBTcGxpdCBpbnRvIFBhc3NpdmVNb3VudE1hc2sgYW5kIFBhc3NpdmVVbm1vdW50TWFza1xuXG52YXIgUGFzc2l2ZU1hc2sgPSBQYXNzaXZlIHwgQ2hpbGREZWxldGlvbjsgLy8gVW5pb24gb2YgdGFncyB0aGF0IGRvbid0IGdldCByZXNldCBvbiBjbG9uZXMuXG4vLyBUaGlzIGFsbG93cyBjZXJ0YWluIGNvbmNlcHRzIHRvIHBlcnNpc3Qgd2l0aG91dCByZWNhbGN1bGF0aW5nIHRoZW0sXG4vLyBlLmcuIHdoZXRoZXIgYSBzdWJ0cmVlIGNvbnRhaW5zIHBhc3NpdmUgZWZmZWN0cyBvciBwb3J0YWxzLlxuXG52YXIgU3RhdGljTWFzayA9IExheW91dFN0YXRpYyB8IFBhc3NpdmVTdGF0aWMgfCBSZWZTdGF0aWM7XG5cbnZhciBSZWFjdEN1cnJlbnRPd25lciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudE93bmVyO1xuZnVuY3Rpb24gZ2V0TmVhcmVzdE1vdW50ZWRGaWJlcihmaWJlcikge1xuICB2YXIgbm9kZSA9IGZpYmVyO1xuICB2YXIgbmVhcmVzdE1vdW50ZWQgPSBmaWJlcjtcblxuICBpZiAoIWZpYmVyLmFsdGVybmF0ZSkge1xuICAgIC8vIElmIHRoZXJlIGlzIG5vIGFsdGVybmF0ZSwgdGhpcyBtaWdodCBiZSBhIG5ldyB0cmVlIHRoYXQgaXNuJ3QgaW5zZXJ0ZWRcbiAgICAvLyB5ZXQuIElmIGl0IGlzLCB0aGVuIGl0IHdpbGwgaGF2ZSBhIHBlbmRpbmcgaW5zZXJ0aW9uIGVmZmVjdCBvbiBpdC5cbiAgICB2YXIgbmV4dE5vZGUgPSBub2RlO1xuXG4gICAgZG8ge1xuICAgICAgbm9kZSA9IG5leHROb2RlO1xuXG4gICAgICBpZiAoKG5vZGUuZmxhZ3MgJiAoUGxhY2VtZW50IHwgSHlkcmF0aW5nKSkgIT09IE5vRmxhZ3MpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBhbiBpbnNlcnRpb24gb3IgaW4tcHJvZ3Jlc3MgaHlkcmF0aW9uLiBUaGUgbmVhcmVzdCBwb3NzaWJsZVxuICAgICAgICAvLyBtb3VudGVkIGZpYmVyIGlzIHRoZSBwYXJlbnQgYnV0IHdlIG5lZWQgdG8gY29udGludWUgdG8gZmlndXJlIG91dFxuICAgICAgICAvLyBpZiB0aGF0IG9uZSBpcyBzdGlsbCBtb3VudGVkLlxuICAgICAgICBuZWFyZXN0TW91bnRlZCA9IG5vZGUucmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0Tm9kZSA9IG5vZGUucmV0dXJuO1xuICAgIH0gd2hpbGUgKG5leHROb2RlKTtcbiAgfSBlbHNlIHtcbiAgICB3aGlsZSAobm9kZS5yZXR1cm4pIHtcbiAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9XG4gIH1cblxuICBpZiAobm9kZS50YWcgPT09IEhvc3RSb290KSB7XG4gICAgLy8gVE9ETzogQ2hlY2sgaWYgdGhpcyB3YXMgYSBuZXN0ZWQgSG9zdFJvb3Qgd2hlbiB1c2VkIHdpdGhcbiAgICAvLyByZW5kZXJDb250YWluZXJJbnRvU3VidHJlZS5cbiAgICByZXR1cm4gbmVhcmVzdE1vdW50ZWQ7XG4gIH0gLy8gSWYgd2UgZGlkbid0IGhpdCB0aGUgcm9vdCwgdGhhdCBtZWFucyB0aGF0IHdlJ3JlIGluIGFuIGRpc2Nvbm5lY3RlZCB0cmVlXG4gIC8vIHRoYXQgaGFzIGJlZW4gdW5tb3VudGVkLlxuXG5cbiAgcmV0dXJuIG51bGw7XG59XG5mdW5jdGlvbiBnZXRTdXNwZW5zZUluc3RhbmNlRnJvbUZpYmVyKGZpYmVyKSB7XG4gIGlmIChmaWJlci50YWcgPT09IFN1c3BlbnNlQ29tcG9uZW50KSB7XG4gICAgdmFyIHN1c3BlbnNlU3RhdGUgPSBmaWJlci5tZW1vaXplZFN0YXRlO1xuXG4gICAgaWYgKHN1c3BlbnNlU3RhdGUgPT09IG51bGwpIHtcbiAgICAgIHZhciBjdXJyZW50ID0gZmliZXIuYWx0ZXJuYXRlO1xuXG4gICAgICBpZiAoY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICBzdXNwZW5zZVN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzdXNwZW5zZVN0YXRlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gc3VzcGVuc2VTdGF0ZS5kZWh5ZHJhdGVkO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gZ2V0Q29udGFpbmVyRnJvbUZpYmVyKGZpYmVyKSB7XG4gIHJldHVybiBmaWJlci50YWcgPT09IEhvc3RSb290ID8gZmliZXIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8gOiBudWxsO1xufVxuZnVuY3Rpb24gaXNGaWJlck1vdW50ZWQoZmliZXIpIHtcbiAgcmV0dXJuIGdldE5lYXJlc3RNb3VudGVkRmliZXIoZmliZXIpID09PSBmaWJlcjtcbn1cbmZ1bmN0aW9uIGlzTW91bnRlZChjb21wb25lbnQpIHtcbiAge1xuICAgIHZhciBvd25lciA9IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQ7XG5cbiAgICBpZiAob3duZXIgIT09IG51bGwgJiYgb3duZXIudGFnID09PSBDbGFzc0NvbXBvbmVudCkge1xuICAgICAgdmFyIG93bmVyRmliZXIgPSBvd25lcjtcbiAgICAgIHZhciBpbnN0YW5jZSA9IG93bmVyRmliZXIuc3RhdGVOb2RlO1xuXG4gICAgICBpZiAoIWluc3RhbmNlLl93YXJuZWRBYm91dFJlZnNJblJlbmRlcikge1xuICAgICAgICBlcnJvcignJXMgaXMgYWNjZXNzaW5nIGlzTW91bnRlZCBpbnNpZGUgaXRzIHJlbmRlcigpIGZ1bmN0aW9uLiAnICsgJ3JlbmRlcigpIHNob3VsZCBiZSBhIHB1cmUgZnVuY3Rpb24gb2YgcHJvcHMgYW5kIHN0YXRlLiBJdCBzaG91bGQgJyArICduZXZlciBhY2Nlc3Mgc29tZXRoaW5nIHRoYXQgcmVxdWlyZXMgc3RhbGUgZGF0YSBmcm9tIHRoZSBwcmV2aW91cyAnICsgJ3JlbmRlciwgc3VjaCBhcyByZWZzLiBNb3ZlIHRoaXMgbG9naWMgdG8gY29tcG9uZW50RGlkTW91bnQgYW5kICcgKyAnY29tcG9uZW50RGlkVXBkYXRlIGluc3RlYWQuJywgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihvd25lckZpYmVyKSB8fCAnQSBjb21wb25lbnQnKTtcbiAgICAgIH1cblxuICAgICAgaW5zdGFuY2UuX3dhcm5lZEFib3V0UmVmc0luUmVuZGVyID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICB2YXIgZmliZXIgPSBnZXQoY29tcG9uZW50KTtcblxuICBpZiAoIWZpYmVyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGdldE5lYXJlc3RNb3VudGVkRmliZXIoZmliZXIpID09PSBmaWJlcjtcbn1cblxuZnVuY3Rpb24gYXNzZXJ0SXNNb3VudGVkKGZpYmVyKSB7XG4gIGlmIChnZXROZWFyZXN0TW91bnRlZEZpYmVyKGZpYmVyKSAhPT0gZmliZXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBmaW5kIG5vZGUgb24gYW4gdW5tb3VudGVkIGNvbXBvbmVudC4nKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kQ3VycmVudEZpYmVyVXNpbmdTbG93UGF0aChmaWJlcikge1xuICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlO1xuXG4gIGlmICghYWx0ZXJuYXRlKSB7XG4gICAgLy8gSWYgdGhlcmUgaXMgbm8gYWx0ZXJuYXRlLCB0aGVuIHdlIG9ubHkgbmVlZCB0byBjaGVjayBpZiBpdCBpcyBtb3VudGVkLlxuICAgIHZhciBuZWFyZXN0TW91bnRlZCA9IGdldE5lYXJlc3RNb3VudGVkRmliZXIoZmliZXIpO1xuXG4gICAgaWYgKG5lYXJlc3RNb3VudGVkID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBmaW5kIG5vZGUgb24gYW4gdW5tb3VudGVkIGNvbXBvbmVudC4nKTtcbiAgICB9XG5cbiAgICBpZiAobmVhcmVzdE1vdW50ZWQgIT09IGZpYmVyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZmliZXI7XG4gIH0gLy8gSWYgd2UgaGF2ZSB0d28gcG9zc2libGUgYnJhbmNoZXMsIHdlJ2xsIHdhbGsgYmFja3dhcmRzIHVwIHRvIHRoZSByb290XG4gIC8vIHRvIHNlZSB3aGF0IHBhdGggdGhlIHJvb3QgcG9pbnRzIHRvLiBPbiB0aGUgd2F5IHdlIG1heSBoaXQgb25lIG9mIHRoZVxuICAvLyBzcGVjaWFsIGNhc2VzIGFuZCB3ZSdsbCBkZWFsIHdpdGggdGhlbS5cblxuXG4gIHZhciBhID0gZmliZXI7XG4gIHZhciBiID0gYWx0ZXJuYXRlO1xuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgdmFyIHBhcmVudEEgPSBhLnJldHVybjtcblxuICAgIGlmIChwYXJlbnRBID09PSBudWxsKSB7XG4gICAgICAvLyBXZSdyZSBhdCB0aGUgcm9vdC5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHZhciBwYXJlbnRCID0gcGFyZW50QS5hbHRlcm5hdGU7XG5cbiAgICBpZiAocGFyZW50QiA9PT0gbnVsbCkge1xuICAgICAgLy8gVGhlcmUgaXMgbm8gYWx0ZXJuYXRlLiBUaGlzIGlzIGFuIHVudXN1YWwgY2FzZS4gQ3VycmVudGx5LCBpdCBvbmx5XG4gICAgICAvLyBoYXBwZW5zIHdoZW4gYSBTdXNwZW5zZSBjb21wb25lbnQgaXMgaGlkZGVuLiBBbiBleHRyYSBmcmFnbWVudCBmaWJlclxuICAgICAgLy8gaXMgaW5zZXJ0ZWQgaW4gYmV0d2VlbiB0aGUgU3VzcGVuc2UgZmliZXIgYW5kIGl0cyBjaGlsZHJlbi4gU2tpcFxuICAgICAgLy8gb3ZlciB0aGlzIGV4dHJhIGZyYWdtZW50IGZpYmVyIGFuZCBwcm9jZWVkIHRvIHRoZSBuZXh0IHBhcmVudC5cbiAgICAgIHZhciBuZXh0UGFyZW50ID0gcGFyZW50QS5yZXR1cm47XG5cbiAgICAgIGlmIChuZXh0UGFyZW50ICE9PSBudWxsKSB7XG4gICAgICAgIGEgPSBiID0gbmV4dFBhcmVudDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9IC8vIElmIHRoZXJlJ3Mgbm8gcGFyZW50LCB3ZSdyZSBhdCB0aGUgcm9vdC5cblxuXG4gICAgICBicmVhaztcbiAgICB9IC8vIElmIGJvdGggY29waWVzIG9mIHRoZSBwYXJlbnQgZmliZXIgcG9pbnQgdG8gdGhlIHNhbWUgY2hpbGQsIHdlIGNhblxuICAgIC8vIGFzc3VtZSB0aGF0IHRoZSBjaGlsZCBpcyBjdXJyZW50LiBUaGlzIGhhcHBlbnMgd2hlbiB3ZSBiYWlsb3V0IG9uIGxvd1xuICAgIC8vIHByaW9yaXR5OiB0aGUgYmFpbGVkIG91dCBmaWJlcidzIGNoaWxkIHJldXNlcyB0aGUgY3VycmVudCBjaGlsZC5cblxuXG4gICAgaWYgKHBhcmVudEEuY2hpbGQgPT09IHBhcmVudEIuY2hpbGQpIHtcbiAgICAgIHZhciBjaGlsZCA9IHBhcmVudEEuY2hpbGQ7XG5cbiAgICAgIHdoaWxlIChjaGlsZCkge1xuICAgICAgICBpZiAoY2hpbGQgPT09IGEpIHtcbiAgICAgICAgICAvLyBXZSd2ZSBkZXRlcm1pbmVkIHRoYXQgQSBpcyB0aGUgY3VycmVudCBicmFuY2guXG4gICAgICAgICAgYXNzZXJ0SXNNb3VudGVkKHBhcmVudEEpO1xuICAgICAgICAgIHJldHVybiBmaWJlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGlsZCA9PT0gYikge1xuICAgICAgICAgIC8vIFdlJ3ZlIGRldGVybWluZWQgdGhhdCBCIGlzIHRoZSBjdXJyZW50IGJyYW5jaC5cbiAgICAgICAgICBhc3NlcnRJc01vdW50ZWQocGFyZW50QSk7XG4gICAgICAgICAgcmV0dXJuIGFsdGVybmF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNoaWxkID0gY2hpbGQuc2libGluZztcbiAgICAgIH0gLy8gV2Ugc2hvdWxkIG5ldmVyIGhhdmUgYW4gYWx0ZXJuYXRlIGZvciBhbnkgbW91bnRpbmcgbm9kZS4gU28gdGhlIG9ubHlcbiAgICAgIC8vIHdheSB0aGlzIGNvdWxkIHBvc3NpYmx5IGhhcHBlbiBpcyBpZiB0aGlzIHdhcyB1bm1vdW50ZWQsIGlmIGF0IGFsbC5cblxuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBmaW5kIG5vZGUgb24gYW4gdW5tb3VudGVkIGNvbXBvbmVudC4nKTtcbiAgICB9XG5cbiAgICBpZiAoYS5yZXR1cm4gIT09IGIucmV0dXJuKSB7XG4gICAgICAvLyBUaGUgcmV0dXJuIHBvaW50ZXIgb2YgQSBhbmQgdGhlIHJldHVybiBwb2ludGVyIG9mIEIgcG9pbnQgdG8gZGlmZmVyZW50XG4gICAgICAvLyBmaWJlcnMuIFdlIGFzc3VtZSB0aGF0IHJldHVybiBwb2ludGVycyBuZXZlciBjcmlzcy1jcm9zcywgc28gQSBtdXN0XG4gICAgICAvLyBiZWxvbmcgdG8gdGhlIGNoaWxkIHNldCBvZiBBLnJldHVybiwgYW5kIEIgbXVzdCBiZWxvbmcgdG8gdGhlIGNoaWxkXG4gICAgICAvLyBzZXQgb2YgQi5yZXR1cm4uXG4gICAgICBhID0gcGFyZW50QTtcbiAgICAgIGIgPSBwYXJlbnRCO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGUgcmV0dXJuIHBvaW50ZXJzIHBvaW50IHRvIHRoZSBzYW1lIGZpYmVyLiBXZSdsbCBoYXZlIHRvIHVzZSB0aGVcbiAgICAgIC8vIGRlZmF1bHQsIHNsb3cgcGF0aDogc2NhbiB0aGUgY2hpbGQgc2V0cyBvZiBlYWNoIHBhcmVudCBhbHRlcm5hdGUgdG8gc2VlXG4gICAgICAvLyB3aGljaCBjaGlsZCBiZWxvbmdzIHRvIHdoaWNoIHNldC5cbiAgICAgIC8vXG4gICAgICAvLyBTZWFyY2ggcGFyZW50IEEncyBjaGlsZCBzZXRcbiAgICAgIHZhciBkaWRGaW5kQ2hpbGQgPSBmYWxzZTtcbiAgICAgIHZhciBfY2hpbGQgPSBwYXJlbnRBLmNoaWxkO1xuXG4gICAgICB3aGlsZSAoX2NoaWxkKSB7XG4gICAgICAgIGlmIChfY2hpbGQgPT09IGEpIHtcbiAgICAgICAgICBkaWRGaW5kQ2hpbGQgPSB0cnVlO1xuICAgICAgICAgIGEgPSBwYXJlbnRBO1xuICAgICAgICAgIGIgPSBwYXJlbnRCO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKF9jaGlsZCA9PT0gYikge1xuICAgICAgICAgIGRpZEZpbmRDaGlsZCA9IHRydWU7XG4gICAgICAgICAgYiA9IHBhcmVudEE7XG4gICAgICAgICAgYSA9IHBhcmVudEI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBfY2hpbGQgPSBfY2hpbGQuc2libGluZztcbiAgICAgIH1cblxuICAgICAgaWYgKCFkaWRGaW5kQ2hpbGQpIHtcbiAgICAgICAgLy8gU2VhcmNoIHBhcmVudCBCJ3MgY2hpbGQgc2V0XG4gICAgICAgIF9jaGlsZCA9IHBhcmVudEIuY2hpbGQ7XG5cbiAgICAgICAgd2hpbGUgKF9jaGlsZCkge1xuICAgICAgICAgIGlmIChfY2hpbGQgPT09IGEpIHtcbiAgICAgICAgICAgIGRpZEZpbmRDaGlsZCA9IHRydWU7XG4gICAgICAgICAgICBhID0gcGFyZW50QjtcbiAgICAgICAgICAgIGIgPSBwYXJlbnRBO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKF9jaGlsZCA9PT0gYikge1xuICAgICAgICAgICAgZGlkRmluZENoaWxkID0gdHJ1ZTtcbiAgICAgICAgICAgIGIgPSBwYXJlbnRCO1xuICAgICAgICAgICAgYSA9IHBhcmVudEE7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBfY2hpbGQgPSBfY2hpbGQuc2libGluZztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZGlkRmluZENoaWxkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDaGlsZCB3YXMgbm90IGZvdW5kIGluIGVpdGhlciBwYXJlbnQgc2V0LiBUaGlzIGluZGljYXRlcyBhIGJ1ZyAnICsgJ2luIFJlYWN0IHJlbGF0ZWQgdG8gdGhlIHJldHVybiBwb2ludGVyLiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChhLmFsdGVybmF0ZSAhPT0gYikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUmV0dXJuIGZpYmVycyBzaG91bGQgYWx3YXlzIGJlIGVhY2ggb3RoZXJzJyBhbHRlcm5hdGVzLiBcIiArICdUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgIH1cbiAgfSAvLyBJZiB0aGUgcm9vdCBpcyBub3QgYSBob3N0IGNvbnRhaW5lciwgd2UncmUgaW4gYSBkaXNjb25uZWN0ZWQgdHJlZS4gSS5lLlxuICAvLyB1bm1vdW50ZWQuXG5cblxuICBpZiAoYS50YWcgIT09IEhvc3RSb290KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuJyk7XG4gIH1cblxuICBpZiAoYS5zdGF0ZU5vZGUuY3VycmVudCA9PT0gYSkge1xuICAgIC8vIFdlJ3ZlIGRldGVybWluZWQgdGhhdCBBIGlzIHRoZSBjdXJyZW50IGJyYW5jaC5cbiAgICByZXR1cm4gZmliZXI7XG4gIH0gLy8gT3RoZXJ3aXNlIEIgaGFzIHRvIGJlIGN1cnJlbnQgYnJhbmNoLlxuXG5cbiAgcmV0dXJuIGFsdGVybmF0ZTtcbn1cbmZ1bmN0aW9uIGZpbmRDdXJyZW50SG9zdEZpYmVyKHBhcmVudCkge1xuICB2YXIgY3VycmVudFBhcmVudCA9IGZpbmRDdXJyZW50RmliZXJVc2luZ1Nsb3dQYXRoKHBhcmVudCk7XG4gIHJldHVybiBjdXJyZW50UGFyZW50ICE9PSBudWxsID8gZmluZEN1cnJlbnRIb3N0RmliZXJJbXBsKGN1cnJlbnRQYXJlbnQpIDogbnVsbDtcbn1cblxuZnVuY3Rpb24gZmluZEN1cnJlbnRIb3N0RmliZXJJbXBsKG5vZGUpIHtcbiAgLy8gTmV4dCB3ZSdsbCBkcmlsbCBkb3duIHRoaXMgY29tcG9uZW50IHRvIGZpbmQgdGhlIGZpcnN0IEhvc3RDb21wb25lbnQvVGV4dC5cbiAgaWYgKG5vZGUudGFnID09PSBIb3N0Q29tcG9uZW50IHx8IG5vZGUudGFnID09PSBIb3N0VGV4dCkge1xuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgdmFyIGNoaWxkID0gbm9kZS5jaGlsZDtcblxuICB3aGlsZSAoY2hpbGQgIT09IG51bGwpIHtcbiAgICB2YXIgbWF0Y2ggPSBmaW5kQ3VycmVudEhvc3RGaWJlckltcGwoY2hpbGQpO1xuXG4gICAgaWYgKG1hdGNoICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbWF0Y2g7XG4gICAgfVxuXG4gICAgY2hpbGQgPSBjaGlsZC5zaWJsaW5nO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGZpbmRDdXJyZW50SG9zdEZpYmVyV2l0aE5vUG9ydGFscyhwYXJlbnQpIHtcbiAgdmFyIGN1cnJlbnRQYXJlbnQgPSBmaW5kQ3VycmVudEZpYmVyVXNpbmdTbG93UGF0aChwYXJlbnQpO1xuICByZXR1cm4gY3VycmVudFBhcmVudCAhPT0gbnVsbCA/IGZpbmRDdXJyZW50SG9zdEZpYmVyV2l0aE5vUG9ydGFsc0ltcGwoY3VycmVudFBhcmVudCkgOiBudWxsO1xufVxuXG5mdW5jdGlvbiBmaW5kQ3VycmVudEhvc3RGaWJlcldpdGhOb1BvcnRhbHNJbXBsKG5vZGUpIHtcbiAgLy8gTmV4dCB3ZSdsbCBkcmlsbCBkb3duIHRoaXMgY29tcG9uZW50IHRvIGZpbmQgdGhlIGZpcnN0IEhvc3RDb21wb25lbnQvVGV4dC5cbiAgaWYgKG5vZGUudGFnID09PSBIb3N0Q29tcG9uZW50IHx8IG5vZGUudGFnID09PSBIb3N0VGV4dCkge1xuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgdmFyIGNoaWxkID0gbm9kZS5jaGlsZDtcblxuICB3aGlsZSAoY2hpbGQgIT09IG51bGwpIHtcbiAgICBpZiAoY2hpbGQudGFnICE9PSBIb3N0UG9ydGFsKSB7XG4gICAgICB2YXIgbWF0Y2ggPSBmaW5kQ3VycmVudEhvc3RGaWJlcldpdGhOb1BvcnRhbHNJbXBsKGNoaWxkKTtcblxuICAgICAgaWYgKG1hdGNoICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBtYXRjaDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjaGlsZCA9IGNoaWxkLnNpYmxpbmc7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLy8gVGhpcyBtb2R1bGUgb25seSBleGlzdHMgYXMgYW4gRVNNIHdyYXBwZXIgYXJvdW5kIHRoZSBleHRlcm5hbCBDb21tb25KU1xudmFyIHNjaGVkdWxlQ2FsbGJhY2sgPSBTY2hlZHVsZXIudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjaztcbnZhciBjYW5jZWxDYWxsYmFjayA9IFNjaGVkdWxlci51bnN0YWJsZV9jYW5jZWxDYWxsYmFjaztcbnZhciBzaG91bGRZaWVsZCA9IFNjaGVkdWxlci51bnN0YWJsZV9zaG91bGRZaWVsZDtcbnZhciByZXF1ZXN0UGFpbnQgPSBTY2hlZHVsZXIudW5zdGFibGVfcmVxdWVzdFBhaW50O1xudmFyIG5vdyA9IFNjaGVkdWxlci51bnN0YWJsZV9ub3c7XG52YXIgZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwgPSBTY2hlZHVsZXIudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWw7XG52YXIgSW1tZWRpYXRlUHJpb3JpdHkgPSBTY2hlZHVsZXIudW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHk7XG52YXIgVXNlckJsb2NraW5nUHJpb3JpdHkgPSBTY2hlZHVsZXIudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHk7XG52YXIgTm9ybWFsUHJpb3JpdHkgPSBTY2hlZHVsZXIudW5zdGFibGVfTm9ybWFsUHJpb3JpdHk7XG52YXIgTG93UHJpb3JpdHkgPSBTY2hlZHVsZXIudW5zdGFibGVfTG93UHJpb3JpdHk7XG52YXIgSWRsZVByaW9yaXR5ID0gU2NoZWR1bGVyLnVuc3RhYmxlX0lkbGVQcmlvcml0eTtcbi8vIHRoaXMgZG9lc24ndCBhY3R1YWxseSBleGlzdCBvbiB0aGUgc2NoZWR1bGVyLCBidXQgaXQgKmRvZXMqXG4vLyBvbiBzY2hlZHVsZXIvdW5zdGFibGVfbW9jaywgd2hpY2ggd2UnbGwgbmVlZCBmb3IgaW50ZXJuYWwgdGVzdGluZ1xudmFyIHVuc3RhYmxlX3lpZWxkVmFsdWUgPSBTY2hlZHVsZXIudW5zdGFibGVfeWllbGRWYWx1ZTtcbnZhciB1bnN0YWJsZV9zZXREaXNhYmxlWWllbGRWYWx1ZSA9IFNjaGVkdWxlci51bnN0YWJsZV9zZXREaXNhYmxlWWllbGRWYWx1ZTtcblxudmFyIHJlbmRlcmVySUQgPSBudWxsO1xudmFyIGluamVjdGVkSG9vayA9IG51bGw7XG52YXIgaW5qZWN0ZWRQcm9maWxpbmdIb29rcyA9IG51bGw7XG52YXIgaGFzTG9nZ2VkRXJyb3IgPSBmYWxzZTtcbnZhciBpc0RldlRvb2xzUHJlc2VudCA9IHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gIT09ICd1bmRlZmluZWQnO1xuZnVuY3Rpb24gaW5qZWN0SW50ZXJuYWxzKGludGVybmFscykge1xuICBpZiAodHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAvLyBObyBEZXZUb29sc1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBob29rID0gX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fO1xuXG4gIGlmIChob29rLmlzRGlzYWJsZWQpIHtcbiAgICAvLyBUaGlzIGlzbid0IGEgcmVhbCBwcm9wZXJ0eSBvbiB0aGUgaG9vaywgYnV0IGl0IGNhbiBiZSBzZXQgdG8gb3B0IG91dFxuICAgIC8vIG9mIERldlRvb2xzIGludGVncmF0aW9uIGFuZCBhc3NvY2lhdGVkIHdhcm5pbmdzIGFuZCBsb2dzLlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMzg3N1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKCFob29rLnN1cHBvcnRzRmliZXIpIHtcbiAgICB7XG4gICAgICBlcnJvcignVGhlIGluc3RhbGxlZCB2ZXJzaW9uIG9mIFJlYWN0IERldlRvb2xzIGlzIHRvbyBvbGQgYW5kIHdpbGwgbm90IHdvcmsgJyArICd3aXRoIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgUmVhY3QuIFBsZWFzZSB1cGRhdGUgUmVhY3QgRGV2VG9vbHMuICcgKyAnaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3JlYWN0LWRldnRvb2xzJyk7XG4gICAgfSAvLyBEZXZUb29scyBleGlzdHMsIGV2ZW4gdGhvdWdoIGl0IGRvZXNuJ3Qgc3VwcG9ydCBGaWJlci5cblxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB0cnkge1xuICAgIGlmIChlbmFibGVTY2hlZHVsaW5nUHJvZmlsZXIpIHtcbiAgICAgIC8vIENvbmRpdGlvbmFsbHkgaW5qZWN0IHRoZXNlIGhvb2tzIG9ubHkgaWYgVGltZWxpbmUgcHJvZmlsZXIgaXMgc3VwcG9ydGVkIGJ5IHRoaXMgYnVpbGQuXG4gICAgICAvLyBUaGlzIGdpdmVzIERldlRvb2xzIGEgd2F5IHRvIGZlYXR1cmUgZGV0ZWN0IHRoYXQgaXNuJ3QgdGllZCB0byB2ZXJzaW9uIG51bWJlclxuICAgICAgLy8gKHNpbmNlIHByb2ZpbGluZyBhbmQgdGltZWxpbmUgYXJlIGNvbnRyb2xsZWQgYnkgZGlmZmVyZW50IGZlYXR1cmUgZmxhZ3MpLlxuICAgICAgaW50ZXJuYWxzID0gYXNzaWduKHt9LCBpbnRlcm5hbHMsIHtcbiAgICAgICAgZ2V0TGFuZUxhYmVsTWFwOiBnZXRMYW5lTGFiZWxNYXAsXG4gICAgICAgIGluamVjdFByb2ZpbGluZ0hvb2tzOiBpbmplY3RQcm9maWxpbmdIb29rc1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVuZGVyZXJJRCA9IGhvb2suaW5qZWN0KGludGVybmFscyk7IC8vIFdlIGhhdmUgc3VjY2Vzc2Z1bGx5IGluamVjdGVkLCBzbyBub3cgaXQgaXMgc2FmZSB0byBzZXQgdXAgaG9va3MuXG5cbiAgICBpbmplY3RlZEhvb2sgPSBob29rO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBDYXRjaCBhbGwgZXJyb3JzIGJlY2F1c2UgaXQgaXMgdW5zYWZlIHRvIHRocm93IGR1cmluZyBpbml0aWFsaXphdGlvbi5cbiAgICB7XG4gICAgICBlcnJvcignUmVhY3QgaW5zdHJ1bWVudGF0aW9uIGVuY291bnRlcmVkIGFuIGVycm9yOiAlcy4nLCBlcnIpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChob29rLmNoZWNrRENFKSB7XG4gICAgLy8gVGhpcyBpcyB0aGUgcmVhbCBEZXZUb29scy5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICAvLyBUaGlzIGlzIGxpa2VseSBhIGhvb2sgaW5zdGFsbGVkIGJ5IEZhc3QgUmVmcmVzaCBydW50aW1lLlxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuZnVuY3Rpb24gb25TY2hlZHVsZVJvb3Qocm9vdCwgY2hpbGRyZW4pIHtcbiAge1xuICAgIGlmIChpbmplY3RlZEhvb2sgJiYgdHlwZW9mIGluamVjdGVkSG9vay5vblNjaGVkdWxlRmliZXJSb290ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0cnkge1xuICAgICAgICBpbmplY3RlZEhvb2sub25TY2hlZHVsZUZpYmVyUm9vdChyZW5kZXJlcklELCByb290LCBjaGlsZHJlbik7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKCAhaGFzTG9nZ2VkRXJyb3IpIHtcbiAgICAgICAgICBoYXNMb2dnZWRFcnJvciA9IHRydWU7XG5cbiAgICAgICAgICBlcnJvcignUmVhY3QgaW5zdHJ1bWVudGF0aW9uIGVuY291bnRlcmVkIGFuIGVycm9yOiAlcycsIGVycik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG9uQ29tbWl0Um9vdChyb290LCBldmVudFByaW9yaXR5KSB7XG4gIGlmIChpbmplY3RlZEhvb2sgJiYgdHlwZW9mIGluamVjdGVkSG9vay5vbkNvbW1pdEZpYmVyUm9vdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHRyeSB7XG4gICAgICB2YXIgZGlkRXJyb3IgPSAocm9vdC5jdXJyZW50LmZsYWdzICYgRGlkQ2FwdHVyZSkgPT09IERpZENhcHR1cmU7XG5cbiAgICAgIGlmIChlbmFibGVQcm9maWxlclRpbWVyKSB7XG4gICAgICAgIHZhciBzY2hlZHVsZXJQcmlvcml0eTtcblxuICAgICAgICBzd2l0Y2ggKGV2ZW50UHJpb3JpdHkpIHtcbiAgICAgICAgICBjYXNlIERpc2NyZXRlRXZlbnRQcmlvcml0eTpcbiAgICAgICAgICAgIHNjaGVkdWxlclByaW9yaXR5ID0gSW1tZWRpYXRlUHJpb3JpdHk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgQ29udGludW91c0V2ZW50UHJpb3JpdHk6XG4gICAgICAgICAgICBzY2hlZHVsZXJQcmlvcml0eSA9IFVzZXJCbG9ja2luZ1ByaW9yaXR5O1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlIERlZmF1bHRFdmVudFByaW9yaXR5OlxuICAgICAgICAgICAgc2NoZWR1bGVyUHJpb3JpdHkgPSBOb3JtYWxQcmlvcml0eTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgY2FzZSBJZGxlRXZlbnRQcmlvcml0eTpcbiAgICAgICAgICAgIHNjaGVkdWxlclByaW9yaXR5ID0gSWRsZVByaW9yaXR5O1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgc2NoZWR1bGVyUHJpb3JpdHkgPSBOb3JtYWxQcmlvcml0eTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5qZWN0ZWRIb29rLm9uQ29tbWl0RmliZXJSb290KHJlbmRlcmVySUQsIHJvb3QsIHNjaGVkdWxlclByaW9yaXR5LCBkaWRFcnJvcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbmplY3RlZEhvb2sub25Db21taXRGaWJlclJvb3QocmVuZGVyZXJJRCwgcm9vdCwgdW5kZWZpbmVkLCBkaWRFcnJvcik7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB7XG4gICAgICAgIGlmICghaGFzTG9nZ2VkRXJyb3IpIHtcbiAgICAgICAgICBoYXNMb2dnZWRFcnJvciA9IHRydWU7XG5cbiAgICAgICAgICBlcnJvcignUmVhY3QgaW5zdHJ1bWVudGF0aW9uIGVuY291bnRlcmVkIGFuIGVycm9yOiAlcycsIGVycik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG9uUG9zdENvbW1pdFJvb3Qocm9vdCkge1xuICBpZiAoaW5qZWN0ZWRIb29rICYmIHR5cGVvZiBpbmplY3RlZEhvb2sub25Qb3N0Q29tbWl0RmliZXJSb290ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGluamVjdGVkSG9vay5vblBvc3RDb21taXRGaWJlclJvb3QocmVuZGVyZXJJRCwgcm9vdCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB7XG4gICAgICAgIGlmICghaGFzTG9nZ2VkRXJyb3IpIHtcbiAgICAgICAgICBoYXNMb2dnZWRFcnJvciA9IHRydWU7XG5cbiAgICAgICAgICBlcnJvcignUmVhY3QgaW5zdHJ1bWVudGF0aW9uIGVuY291bnRlcmVkIGFuIGVycm9yOiAlcycsIGVycik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG9uQ29tbWl0VW5tb3VudChmaWJlcikge1xuICBpZiAoaW5qZWN0ZWRIb29rICYmIHR5cGVvZiBpbmplY3RlZEhvb2sub25Db21taXRGaWJlclVubW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICB0cnkge1xuICAgICAgaW5qZWN0ZWRIb29rLm9uQ29tbWl0RmliZXJVbm1vdW50KHJlbmRlcmVySUQsIGZpYmVyKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHtcbiAgICAgICAgaWYgKCFoYXNMb2dnZWRFcnJvcikge1xuICAgICAgICAgIGhhc0xvZ2dlZEVycm9yID0gdHJ1ZTtcblxuICAgICAgICAgIGVycm9yKCdSZWFjdCBpbnN0cnVtZW50YXRpb24gZW5jb3VudGVyZWQgYW4gZXJyb3I6ICVzJywgZXJyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMobmV3SXNTdHJpY3RNb2RlKSB7XG4gIHtcbiAgICBpZiAodHlwZW9mIHVuc3RhYmxlX3lpZWxkVmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIFdlJ3JlIGluIGEgdGVzdCBiZWNhdXNlIFNjaGVkdWxlci51bnN0YWJsZV95aWVsZFZhbHVlIG9ubHkgZXhpc3RzXG4gICAgICAvLyBpbiBTY2hlZHVsZXJNb2NrLiBUbyByZWR1Y2UgdGhlIG5vaXNlIGluIHN0cmljdCBtb2RlIHRlc3RzLFxuICAgICAgLy8gc3VwcHJlc3Mgd2FybmluZ3MgYW5kIGRpc2FibGUgc2NoZWR1bGVyIHlpZWxkaW5nIGR1cmluZyB0aGUgZG91YmxlIHJlbmRlclxuICAgICAgdW5zdGFibGVfc2V0RGlzYWJsZVlpZWxkVmFsdWUobmV3SXNTdHJpY3RNb2RlKTtcbiAgICAgIHNldFN1cHByZXNzV2FybmluZyhuZXdJc1N0cmljdE1vZGUpO1xuICAgIH1cblxuICAgIGlmIChpbmplY3RlZEhvb2sgJiYgdHlwZW9mIGluamVjdGVkSG9vay5zZXRTdHJpY3RNb2RlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0cnkge1xuICAgICAgICBpbmplY3RlZEhvb2suc2V0U3RyaWN0TW9kZShyZW5kZXJlcklELCBuZXdJc1N0cmljdE1vZGUpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHtcbiAgICAgICAgICBpZiAoIWhhc0xvZ2dlZEVycm9yKSB7XG4gICAgICAgICAgICBoYXNMb2dnZWRFcnJvciA9IHRydWU7XG5cbiAgICAgICAgICAgIGVycm9yKCdSZWFjdCBpbnN0cnVtZW50YXRpb24gZW5jb3VudGVyZWQgYW4gZXJyb3I6ICVzJywgZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0gLy8gUHJvZmlsZXIgQVBJIGhvb2tzXG5cbmZ1bmN0aW9uIGluamVjdFByb2ZpbGluZ0hvb2tzKHByb2ZpbGluZ0hvb2tzKSB7XG4gIGluamVjdGVkUHJvZmlsaW5nSG9va3MgPSBwcm9maWxpbmdIb29rcztcbn1cblxuZnVuY3Rpb24gZ2V0TGFuZUxhYmVsTWFwKCkge1xuICB7XG4gICAgdmFyIG1hcCA9IG5ldyBNYXAoKTtcbiAgICB2YXIgbGFuZSA9IDE7XG5cbiAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgVG90YWxMYW5lczsgaW5kZXgrKykge1xuICAgICAgdmFyIGxhYmVsID0gZ2V0TGFiZWxGb3JMYW5lKGxhbmUpO1xuICAgICAgbWFwLnNldChsYW5lLCBsYWJlbCk7XG4gICAgICBsYW5lICo9IDI7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hcDtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXJrQ29tbWl0U3RhcnRlZChsYW5lcykge1xuICB7XG4gICAgaWYgKGluamVjdGVkUHJvZmlsaW5nSG9va3MgIT09IG51bGwgJiYgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbW1pdFN0YXJ0ZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbW1pdFN0YXJ0ZWQobGFuZXMpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gbWFya0NvbW1pdFN0b3BwZWQoKSB7XG4gIHtcbiAgICBpZiAoaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAhPT0gbnVsbCAmJiB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tbWl0U3RvcHBlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tbWl0U3RvcHBlZCgpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gbWFya0NvbXBvbmVudFJlbmRlclN0YXJ0ZWQoZmliZXIpIHtcbiAge1xuICAgIGlmIChpbmplY3RlZFByb2ZpbGluZ0hvb2tzICE9PSBudWxsICYmIHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRSZW5kZXJTdGFydGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRSZW5kZXJTdGFydGVkKGZpYmVyKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtDb21wb25lbnRSZW5kZXJTdG9wcGVkKCkge1xuICB7XG4gICAgaWYgKGluamVjdGVkUHJvZmlsaW5nSG9va3MgIT09IG51bGwgJiYgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudFJlbmRlclN0b3BwZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudFJlbmRlclN0b3BwZWQoKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtDb21wb25lbnRQYXNzaXZlRWZmZWN0TW91bnRTdGFydGVkKGZpYmVyKSB7XG4gIHtcbiAgICBpZiAoaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAhPT0gbnVsbCAmJiB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50UGFzc2l2ZUVmZmVjdE1vdW50U3RhcnRlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50UGFzc2l2ZUVmZmVjdE1vdW50U3RhcnRlZChmaWJlcik7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBtYXJrQ29tcG9uZW50UGFzc2l2ZUVmZmVjdE1vdW50U3RvcHBlZCgpIHtcbiAge1xuICAgIGlmIChpbmplY3RlZFByb2ZpbGluZ0hvb2tzICE9PSBudWxsICYmIHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRQYXNzaXZlRWZmZWN0TW91bnRTdG9wcGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRQYXNzaXZlRWZmZWN0TW91bnRTdG9wcGVkKCk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBtYXJrQ29tcG9uZW50UGFzc2l2ZUVmZmVjdFVubW91bnRTdGFydGVkKGZpYmVyKSB7XG4gIHtcbiAgICBpZiAoaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAhPT0gbnVsbCAmJiB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50UGFzc2l2ZUVmZmVjdFVubW91bnRTdGFydGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRQYXNzaXZlRWZmZWN0VW5tb3VudFN0YXJ0ZWQoZmliZXIpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gbWFya0NvbXBvbmVudFBhc3NpdmVFZmZlY3RVbm1vdW50U3RvcHBlZCgpIHtcbiAge1xuICAgIGlmIChpbmplY3RlZFByb2ZpbGluZ0hvb2tzICE9PSBudWxsICYmIHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRQYXNzaXZlRWZmZWN0VW5tb3VudFN0b3BwZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudFBhc3NpdmVFZmZlY3RVbm1vdW50U3RvcHBlZCgpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gbWFya0NvbXBvbmVudExheW91dEVmZmVjdE1vdW50U3RhcnRlZChmaWJlcikge1xuICB7XG4gICAgaWYgKGluamVjdGVkUHJvZmlsaW5nSG9va3MgIT09IG51bGwgJiYgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudExheW91dEVmZmVjdE1vdW50U3RhcnRlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50TGF5b3V0RWZmZWN0TW91bnRTdGFydGVkKGZpYmVyKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtDb21wb25lbnRMYXlvdXRFZmZlY3RNb3VudFN0b3BwZWQoKSB7XG4gIHtcbiAgICBpZiAoaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAhPT0gbnVsbCAmJiB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50TGF5b3V0RWZmZWN0TW91bnRTdG9wcGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRMYXlvdXRFZmZlY3RNb3VudFN0b3BwZWQoKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtDb21wb25lbnRMYXlvdXRFZmZlY3RVbm1vdW50U3RhcnRlZChmaWJlcikge1xuICB7XG4gICAgaWYgKGluamVjdGVkUHJvZmlsaW5nSG9va3MgIT09IG51bGwgJiYgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudExheW91dEVmZmVjdFVubW91bnRTdGFydGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtDb21wb25lbnRMYXlvdXRFZmZlY3RVbm1vdW50U3RhcnRlZChmaWJlcik7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBtYXJrQ29tcG9uZW50TGF5b3V0RWZmZWN0VW5tb3VudFN0b3BwZWQoKSB7XG4gIHtcbiAgICBpZiAoaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAhPT0gbnVsbCAmJiB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50TGF5b3V0RWZmZWN0VW5tb3VudFN0b3BwZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudExheW91dEVmZmVjdFVubW91bnRTdG9wcGVkKCk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBtYXJrQ29tcG9uZW50RXJyb3JlZChmaWJlciwgdGhyb3duVmFsdWUsIGxhbmVzKSB7XG4gIHtcbiAgICBpZiAoaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAhPT0gbnVsbCAmJiB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50RXJyb3JlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50RXJyb3JlZChmaWJlciwgdGhyb3duVmFsdWUsIGxhbmVzKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtDb21wb25lbnRTdXNwZW5kZWQoZmliZXIsIHdha2VhYmxlLCBsYW5lcykge1xuICB7XG4gICAgaWYgKGluamVjdGVkUHJvZmlsaW5nSG9va3MgIT09IG51bGwgJiYgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0NvbXBvbmVudFN1c3BlbmRlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrQ29tcG9uZW50U3VzcGVuZGVkKGZpYmVyLCB3YWtlYWJsZSwgbGFuZXMpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gbWFya0xheW91dEVmZmVjdHNTdGFydGVkKGxhbmVzKSB7XG4gIHtcbiAgICBpZiAoaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAhPT0gbnVsbCAmJiB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrTGF5b3V0RWZmZWN0c1N0YXJ0ZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya0xheW91dEVmZmVjdHNTdGFydGVkKGxhbmVzKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtMYXlvdXRFZmZlY3RzU3RvcHBlZCgpIHtcbiAge1xuICAgIGlmIChpbmplY3RlZFByb2ZpbGluZ0hvb2tzICE9PSBudWxsICYmIHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtMYXlvdXRFZmZlY3RzU3RvcHBlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrTGF5b3V0RWZmZWN0c1N0b3BwZWQoKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtQYXNzaXZlRWZmZWN0c1N0YXJ0ZWQobGFuZXMpIHtcbiAge1xuICAgIGlmIChpbmplY3RlZFByb2ZpbGluZ0hvb2tzICE9PSBudWxsICYmIHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtQYXNzaXZlRWZmZWN0c1N0YXJ0ZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya1Bhc3NpdmVFZmZlY3RzU3RhcnRlZChsYW5lcyk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBtYXJrUGFzc2l2ZUVmZmVjdHNTdG9wcGVkKCkge1xuICB7XG4gICAgaWYgKGluamVjdGVkUHJvZmlsaW5nSG9va3MgIT09IG51bGwgJiYgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya1Bhc3NpdmVFZmZlY3RzU3RvcHBlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrUGFzc2l2ZUVmZmVjdHNTdG9wcGVkKCk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBtYXJrUmVuZGVyU3RhcnRlZChsYW5lcykge1xuICB7XG4gICAgaWYgKGluamVjdGVkUHJvZmlsaW5nSG9va3MgIT09IG51bGwgJiYgdHlwZW9mIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya1JlbmRlclN0YXJ0ZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya1JlbmRlclN0YXJ0ZWQobGFuZXMpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gbWFya1JlbmRlcllpZWxkZWQoKSB7XG4gIHtcbiAgICBpZiAoaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAhPT0gbnVsbCAmJiB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrUmVuZGVyWWllbGRlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrUmVuZGVyWWllbGRlZCgpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gbWFya1JlbmRlclN0b3BwZWQoKSB7XG4gIHtcbiAgICBpZiAoaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAhPT0gbnVsbCAmJiB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrUmVuZGVyU3RvcHBlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrUmVuZGVyU3RvcHBlZCgpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gbWFya1JlbmRlclNjaGVkdWxlZChsYW5lKSB7XG4gIHtcbiAgICBpZiAoaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAhPT0gbnVsbCAmJiB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrUmVuZGVyU2NoZWR1bGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtSZW5kZXJTY2hlZHVsZWQobGFuZSk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBtYXJrRm9yY2VVcGRhdGVTY2hlZHVsZWQoZmliZXIsIGxhbmUpIHtcbiAge1xuICAgIGlmIChpbmplY3RlZFByb2ZpbGluZ0hvb2tzICE9PSBudWxsICYmIHR5cGVvZiBpbmplY3RlZFByb2ZpbGluZ0hvb2tzLm1hcmtGb3JjZVVwZGF0ZVNjaGVkdWxlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrRm9yY2VVcGRhdGVTY2hlZHVsZWQoZmliZXIsIGxhbmUpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gbWFya1N0YXRlVXBkYXRlU2NoZWR1bGVkKGZpYmVyLCBsYW5lKSB7XG4gIHtcbiAgICBpZiAoaW5qZWN0ZWRQcm9maWxpbmdIb29rcyAhPT0gbnVsbCAmJiB0eXBlb2YgaW5qZWN0ZWRQcm9maWxpbmdIb29rcy5tYXJrU3RhdGVVcGRhdGVTY2hlZHVsZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGluamVjdGVkUHJvZmlsaW5nSG9va3MubWFya1N0YXRlVXBkYXRlU2NoZWR1bGVkKGZpYmVyLCBsYW5lKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIE5vTW9kZSA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuMDsgLy8gVE9ETzogUmVtb3ZlIENvbmN1cnJlbnRNb2RlIGJ5IHJlYWRpbmcgZnJvbSB0aGUgcm9vdCB0YWcgaW5zdGVhZFxuXG52YXIgQ29uY3VycmVudE1vZGUgPVxuLyogICAgICAgICAgICAgICAgICovXG4xO1xudmFyIFByb2ZpbGVNb2RlID1cbi8qICAgICAgICAgICAgICAgICAgICAqL1xuMjtcbnZhciBTdHJpY3RMZWdhY3lNb2RlID1cbi8qICAgICAgICAgICAgICAgKi9cbjg7XG52YXIgU3RyaWN0RWZmZWN0c01vZGUgPVxuLyogICAgICAgICAgICAgICovXG4xNjtcblxuLy8gVE9ETzogVGhpcyBpcyBwcmV0dHkgd2VsbCBzdXBwb3J0ZWQgYnkgYnJvd3NlcnMuIE1heWJlIHdlIGNhbiBkcm9wIGl0LlxudmFyIGNsejMyID0gTWF0aC5jbHozMiA/IE1hdGguY2x6MzIgOiBjbHozMkZhbGxiYWNrOyAvLyBDb3VudCBsZWFkaW5nIHplcm9zLlxuLy8gQmFzZWQgb246XG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9NYXRoL2NsejMyXG5cbnZhciBsb2cgPSBNYXRoLmxvZztcbnZhciBMTjIgPSBNYXRoLkxOMjtcblxuZnVuY3Rpb24gY2x6MzJGYWxsYmFjayh4KSB7XG4gIHZhciBhc1VpbnQgPSB4ID4+PiAwO1xuXG4gIGlmIChhc1VpbnQgPT09IDApIHtcbiAgICByZXR1cm4gMzI7XG4gIH1cblxuICByZXR1cm4gMzEgLSAobG9nKGFzVWludCkgLyBMTjIgfCAwKSB8IDA7XG59XG5cbi8vIElmIHRob3NlIHZhbHVlcyBhcmUgY2hhbmdlZCB0aGF0IHBhY2thZ2Ugc2hvdWxkIGJlIHJlYnVpbHQgYW5kIHJlZGVwbG95ZWQuXG5cbnZhciBUb3RhbExhbmVzID0gMzE7XG52YXIgTm9MYW5lcyA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgICovXG4wO1xudmFyIE5vTGFuZSA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbjA7XG52YXIgU3luY0xhbmUgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICAqL1xuMTtcbnZhciBJbnB1dENvbnRpbnVvdXNIeWRyYXRpb25MYW5lID1cbi8qICAgICovXG4yO1xudmFyIElucHV0Q29udGludW91c0xhbmUgPVxuLyogICAgICAgICAgICAgKi9cbjQ7XG52YXIgRGVmYXVsdEh5ZHJhdGlvbkxhbmUgPVxuLyogICAgICAgICAgICAqL1xuODtcbnZhciBEZWZhdWx0TGFuZSA9XG4vKiAgICAgICAgICAgICAgICAgICAgICovXG4xNjtcbnZhciBUcmFuc2l0aW9uSHlkcmF0aW9uTGFuZSA9XG4vKiAgICAgICAgICAgICAgICAqL1xuMzI7XG52YXIgVHJhbnNpdGlvbkxhbmVzID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAqL1xuNDE5NDI0MDtcbnZhciBUcmFuc2l0aW9uTGFuZTEgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICAqL1xuNjQ7XG52YXIgVHJhbnNpdGlvbkxhbmUyID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgKi9cbjEyODtcbnZhciBUcmFuc2l0aW9uTGFuZTMgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICAqL1xuMjU2O1xudmFyIFRyYW5zaXRpb25MYW5lNCA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgICovXG41MTI7XG52YXIgVHJhbnNpdGlvbkxhbmU1ID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgKi9cbjEwMjQ7XG52YXIgVHJhbnNpdGlvbkxhbmU2ID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgKi9cbjIwNDg7XG52YXIgVHJhbnNpdGlvbkxhbmU3ID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgKi9cbjQwOTY7XG52YXIgVHJhbnNpdGlvbkxhbmU4ID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgKi9cbjgxOTI7XG52YXIgVHJhbnNpdGlvbkxhbmU5ID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgKi9cbjE2Mzg0O1xudmFyIFRyYW5zaXRpb25MYW5lMTAgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICovXG4zMjc2ODtcbnZhciBUcmFuc2l0aW9uTGFuZTExID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAqL1xuNjU1MzY7XG52YXIgVHJhbnNpdGlvbkxhbmUxMiA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgKi9cbjEzMTA3MjtcbnZhciBUcmFuc2l0aW9uTGFuZTEzID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAqL1xuMjYyMTQ0O1xudmFyIFRyYW5zaXRpb25MYW5lMTQgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICovXG41MjQyODg7XG52YXIgVHJhbnNpdGlvbkxhbmUxNSA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgKi9cbjEwNDg1NzY7XG52YXIgVHJhbnNpdGlvbkxhbmUxNiA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgKi9cbjIwOTcxNTI7XG52YXIgUmV0cnlMYW5lcyA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuMTMwMDIzNDI0O1xudmFyIFJldHJ5TGFuZTEgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG40MTk0MzA0O1xudmFyIFJldHJ5TGFuZTIgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG44Mzg4NjA4O1xudmFyIFJldHJ5TGFuZTMgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4xNjc3NzIxNjtcbnZhciBSZXRyeUxhbmU0ID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuMzM1NTQ0MzI7XG52YXIgUmV0cnlMYW5lNSA9XG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbjY3MTA4ODY0O1xudmFyIFNvbWVSZXRyeUxhbmUgPSBSZXRyeUxhbmUxO1xudmFyIFNlbGVjdGl2ZUh5ZHJhdGlvbkxhbmUgPVxuLyogICAgICAgICAgKi9cbjEzNDIxNzcyODtcbnZhciBOb25JZGxlTGFuZXMgPVxuLyogICAgICAgICAgICAgICAgICAgICAgICAgICovXG4yNjg0MzU0NTU7XG52YXIgSWRsZUh5ZHJhdGlvbkxhbmUgPVxuLyogICAgICAgICAgICAgICAqL1xuMjY4NDM1NDU2O1xudmFyIElkbGVMYW5lID1cbi8qICAgICAgICAgICAgICAgICAgICAgICAgKi9cbjUzNjg3MDkxMjtcbnZhciBPZmZzY3JlZW5MYW5lID1cbi8qICAgICAgICAgICAgICAgICAgICovXG4xMDczNzQxODI0OyAvLyBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgZm9yIHRoZSBleHBlcmltZW50YWwgdGltZWxpbmUgKHJlYWN0LWRldnRvb2xzLXRpbWVsaW5lKVxuLy8gSXQgc2hvdWxkIGJlIGtlcHQgaW4gc3luYyB3aXRoIHRoZSBMYW5lcyB2YWx1ZXMgYWJvdmUuXG5cbmZ1bmN0aW9uIGdldExhYmVsRm9yTGFuZShsYW5lKSB7XG4gIHtcbiAgICBpZiAobGFuZSAmIFN5bmNMYW5lKSB7XG4gICAgICByZXR1cm4gJ1N5bmMnO1xuICAgIH1cblxuICAgIGlmIChsYW5lICYgSW5wdXRDb250aW51b3VzSHlkcmF0aW9uTGFuZSkge1xuICAgICAgcmV0dXJuICdJbnB1dENvbnRpbnVvdXNIeWRyYXRpb24nO1xuICAgIH1cblxuICAgIGlmIChsYW5lICYgSW5wdXRDb250aW51b3VzTGFuZSkge1xuICAgICAgcmV0dXJuICdJbnB1dENvbnRpbnVvdXMnO1xuICAgIH1cblxuICAgIGlmIChsYW5lICYgRGVmYXVsdEh5ZHJhdGlvbkxhbmUpIHtcbiAgICAgIHJldHVybiAnRGVmYXVsdEh5ZHJhdGlvbic7XG4gICAgfVxuXG4gICAgaWYgKGxhbmUgJiBEZWZhdWx0TGFuZSkge1xuICAgICAgcmV0dXJuICdEZWZhdWx0JztcbiAgICB9XG5cbiAgICBpZiAobGFuZSAmIFRyYW5zaXRpb25IeWRyYXRpb25MYW5lKSB7XG4gICAgICByZXR1cm4gJ1RyYW5zaXRpb25IeWRyYXRpb24nO1xuICAgIH1cblxuICAgIGlmIChsYW5lICYgVHJhbnNpdGlvbkxhbmVzKSB7XG4gICAgICByZXR1cm4gJ1RyYW5zaXRpb24nO1xuICAgIH1cblxuICAgIGlmIChsYW5lICYgUmV0cnlMYW5lcykge1xuICAgICAgcmV0dXJuICdSZXRyeSc7XG4gICAgfVxuXG4gICAgaWYgKGxhbmUgJiBTZWxlY3RpdmVIeWRyYXRpb25MYW5lKSB7XG4gICAgICByZXR1cm4gJ1NlbGVjdGl2ZUh5ZHJhdGlvbic7XG4gICAgfVxuXG4gICAgaWYgKGxhbmUgJiBJZGxlSHlkcmF0aW9uTGFuZSkge1xuICAgICAgcmV0dXJuICdJZGxlSHlkcmF0aW9uJztcbiAgICB9XG5cbiAgICBpZiAobGFuZSAmIElkbGVMYW5lKSB7XG4gICAgICByZXR1cm4gJ0lkbGUnO1xuICAgIH1cblxuICAgIGlmIChsYW5lICYgT2Zmc2NyZWVuTGFuZSkge1xuICAgICAgcmV0dXJuICdPZmZzY3JlZW4nO1xuICAgIH1cbiAgfVxufVxudmFyIE5vVGltZXN0YW1wID0gLTE7XG52YXIgbmV4dFRyYW5zaXRpb25MYW5lID0gVHJhbnNpdGlvbkxhbmUxO1xudmFyIG5leHRSZXRyeUxhbmUgPSBSZXRyeUxhbmUxO1xuXG5mdW5jdGlvbiBnZXRIaWdoZXN0UHJpb3JpdHlMYW5lcyhsYW5lcykge1xuICBzd2l0Y2ggKGdldEhpZ2hlc3RQcmlvcml0eUxhbmUobGFuZXMpKSB7XG4gICAgY2FzZSBTeW5jTGFuZTpcbiAgICAgIHJldHVybiBTeW5jTGFuZTtcblxuICAgIGNhc2UgSW5wdXRDb250aW51b3VzSHlkcmF0aW9uTGFuZTpcbiAgICAgIHJldHVybiBJbnB1dENvbnRpbnVvdXNIeWRyYXRpb25MYW5lO1xuXG4gICAgY2FzZSBJbnB1dENvbnRpbnVvdXNMYW5lOlxuICAgICAgcmV0dXJuIElucHV0Q29udGludW91c0xhbmU7XG5cbiAgICBjYXNlIERlZmF1bHRIeWRyYXRpb25MYW5lOlxuICAgICAgcmV0dXJuIERlZmF1bHRIeWRyYXRpb25MYW5lO1xuXG4gICAgY2FzZSBEZWZhdWx0TGFuZTpcbiAgICAgIHJldHVybiBEZWZhdWx0TGFuZTtcblxuICAgIGNhc2UgVHJhbnNpdGlvbkh5ZHJhdGlvbkxhbmU6XG4gICAgICByZXR1cm4gVHJhbnNpdGlvbkh5ZHJhdGlvbkxhbmU7XG5cbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMTpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMjpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMzpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lNDpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lNTpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lNjpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lNzpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lODpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lOTpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMTA6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTExOlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmUxMjpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMTM6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTE0OlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmUxNTpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMTY6XG4gICAgICByZXR1cm4gbGFuZXMgJiBUcmFuc2l0aW9uTGFuZXM7XG5cbiAgICBjYXNlIFJldHJ5TGFuZTE6XG4gICAgY2FzZSBSZXRyeUxhbmUyOlxuICAgIGNhc2UgUmV0cnlMYW5lMzpcbiAgICBjYXNlIFJldHJ5TGFuZTQ6XG4gICAgY2FzZSBSZXRyeUxhbmU1OlxuICAgICAgcmV0dXJuIGxhbmVzICYgUmV0cnlMYW5lcztcblxuICAgIGNhc2UgU2VsZWN0aXZlSHlkcmF0aW9uTGFuZTpcbiAgICAgIHJldHVybiBTZWxlY3RpdmVIeWRyYXRpb25MYW5lO1xuXG4gICAgY2FzZSBJZGxlSHlkcmF0aW9uTGFuZTpcbiAgICAgIHJldHVybiBJZGxlSHlkcmF0aW9uTGFuZTtcblxuICAgIGNhc2UgSWRsZUxhbmU6XG4gICAgICByZXR1cm4gSWRsZUxhbmU7XG5cbiAgICBjYXNlIE9mZnNjcmVlbkxhbmU6XG4gICAgICByZXR1cm4gT2Zmc2NyZWVuTGFuZTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICB7XG4gICAgICAgIGVycm9yKCdTaG91bGQgaGF2ZSBmb3VuZCBtYXRjaGluZyBsYW5lcy4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4nKTtcbiAgICAgIH0gLy8gVGhpcyBzaG91bGRuJ3QgYmUgcmVhY2hhYmxlLCBidXQgYXMgYSBmYWxsYmFjaywgcmV0dXJuIHRoZSBlbnRpcmUgYml0bWFzay5cblxuXG4gICAgICByZXR1cm4gbGFuZXM7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0TmV4dExhbmVzKHJvb3QsIHdpcExhbmVzKSB7XG4gIC8vIEVhcmx5IGJhaWxvdXQgaWYgdGhlcmUncyBubyBwZW5kaW5nIHdvcmsgbGVmdC5cbiAgdmFyIHBlbmRpbmdMYW5lcyA9IHJvb3QucGVuZGluZ0xhbmVzO1xuXG4gIGlmIChwZW5kaW5nTGFuZXMgPT09IE5vTGFuZXMpIHtcbiAgICByZXR1cm4gTm9MYW5lcztcbiAgfVxuXG4gIHZhciBuZXh0TGFuZXMgPSBOb0xhbmVzO1xuICB2YXIgc3VzcGVuZGVkTGFuZXMgPSByb290LnN1c3BlbmRlZExhbmVzO1xuICB2YXIgcGluZ2VkTGFuZXMgPSByb290LnBpbmdlZExhbmVzOyAvLyBEbyBub3Qgd29yayBvbiBhbnkgaWRsZSB3b3JrIHVudGlsIGFsbCB0aGUgbm9uLWlkbGUgd29yayBoYXMgZmluaXNoZWQsXG4gIC8vIGV2ZW4gaWYgdGhlIHdvcmsgaXMgc3VzcGVuZGVkLlxuXG4gIHZhciBub25JZGxlUGVuZGluZ0xhbmVzID0gcGVuZGluZ0xhbmVzICYgTm9uSWRsZUxhbmVzO1xuXG4gIGlmIChub25JZGxlUGVuZGluZ0xhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgdmFyIG5vbklkbGVVbmJsb2NrZWRMYW5lcyA9IG5vbklkbGVQZW5kaW5nTGFuZXMgJiB+c3VzcGVuZGVkTGFuZXM7XG5cbiAgICBpZiAobm9uSWRsZVVuYmxvY2tlZExhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgICBuZXh0TGFuZXMgPSBnZXRIaWdoZXN0UHJpb3JpdHlMYW5lcyhub25JZGxlVW5ibG9ja2VkTGFuZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgbm9uSWRsZVBpbmdlZExhbmVzID0gbm9uSWRsZVBlbmRpbmdMYW5lcyAmIHBpbmdlZExhbmVzO1xuXG4gICAgICBpZiAobm9uSWRsZVBpbmdlZExhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgICAgIG5leHRMYW5lcyA9IGdldEhpZ2hlc3RQcmlvcml0eUxhbmVzKG5vbklkbGVQaW5nZWRMYW5lcyk7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIFRoZSBvbmx5IHJlbWFpbmluZyB3b3JrIGlzIElkbGUuXG4gICAgdmFyIHVuYmxvY2tlZExhbmVzID0gcGVuZGluZ0xhbmVzICYgfnN1c3BlbmRlZExhbmVzO1xuXG4gICAgaWYgKHVuYmxvY2tlZExhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgICBuZXh0TGFuZXMgPSBnZXRIaWdoZXN0UHJpb3JpdHlMYW5lcyh1bmJsb2NrZWRMYW5lcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwaW5nZWRMYW5lcyAhPT0gTm9MYW5lcykge1xuICAgICAgICBuZXh0TGFuZXMgPSBnZXRIaWdoZXN0UHJpb3JpdHlMYW5lcyhwaW5nZWRMYW5lcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKG5leHRMYW5lcyA9PT0gTm9MYW5lcykge1xuICAgIC8vIFRoaXMgc2hvdWxkIG9ubHkgYmUgcmVhY2hhYmxlIGlmIHdlJ3JlIHN1c3BlbmRlZFxuICAgIC8vIFRPRE86IENvbnNpZGVyIHdhcm5pbmcgaW4gdGhpcyBwYXRoIGlmIGEgZmFsbGJhY2sgdGltZXIgaXMgbm90IHNjaGVkdWxlZC5cbiAgICByZXR1cm4gTm9MYW5lcztcbiAgfSAvLyBJZiB3ZSdyZSBhbHJlYWR5IGluIHRoZSBtaWRkbGUgb2YgYSByZW5kZXIsIHN3aXRjaGluZyBsYW5lcyB3aWxsIGludGVycnVwdFxuICAvLyBpdCBhbmQgd2UnbGwgbG9zZSBvdXIgcHJvZ3Jlc3MuIFdlIHNob3VsZCBvbmx5IGRvIHRoaXMgaWYgdGhlIG5ldyBsYW5lcyBhcmVcbiAgLy8gaGlnaGVyIHByaW9yaXR5LlxuXG5cbiAgaWYgKHdpcExhbmVzICE9PSBOb0xhbmVzICYmIHdpcExhbmVzICE9PSBuZXh0TGFuZXMgJiYgLy8gSWYgd2UgYWxyZWFkeSBzdXNwZW5kZWQgd2l0aCBhIGRlbGF5LCB0aGVuIGludGVycnVwdGluZyBpcyBmaW5lLiBEb24ndFxuICAvLyBib3RoZXIgd2FpdGluZyB1bnRpbCB0aGUgcm9vdCBpcyBjb21wbGV0ZS5cbiAgKHdpcExhbmVzICYgc3VzcGVuZGVkTGFuZXMpID09PSBOb0xhbmVzKSB7XG4gICAgdmFyIG5leHRMYW5lID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZShuZXh0TGFuZXMpO1xuICAgIHZhciB3aXBMYW5lID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZSh3aXBMYW5lcyk7XG5cbiAgICBpZiAoIC8vIFRlc3RzIHdoZXRoZXIgdGhlIG5leHQgbGFuZSBpcyBlcXVhbCBvciBsb3dlciBwcmlvcml0eSB0aGFuIHRoZSB3aXBcbiAgICAvLyBvbmUuIFRoaXMgd29ya3MgYmVjYXVzZSB0aGUgYml0cyBkZWNyZWFzZSBpbiBwcmlvcml0eSBhcyB5b3UgZ28gbGVmdC5cbiAgICBuZXh0TGFuZSA+PSB3aXBMYW5lIHx8IC8vIERlZmF1bHQgcHJpb3JpdHkgdXBkYXRlcyBzaG91bGQgbm90IGludGVycnVwdCB0cmFuc2l0aW9uIHVwZGF0ZXMuIFRoZVxuICAgIC8vIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIGRlZmF1bHQgdXBkYXRlcyBhbmQgdHJhbnNpdGlvbiB1cGRhdGVzIGlzIHRoYXRcbiAgICAvLyBkZWZhdWx0IHVwZGF0ZXMgZG8gbm90IHN1cHBvcnQgcmVmcmVzaCB0cmFuc2l0aW9ucy5cbiAgICBuZXh0TGFuZSA9PT0gRGVmYXVsdExhbmUgJiYgKHdpcExhbmUgJiBUcmFuc2l0aW9uTGFuZXMpICE9PSBOb0xhbmVzKSB7XG4gICAgICAvLyBLZWVwIHdvcmtpbmcgb24gdGhlIGV4aXN0aW5nIGluLXByb2dyZXNzIHRyZWUuIERvIG5vdCBpbnRlcnJ1cHQuXG4gICAgICByZXR1cm4gd2lwTGFuZXM7XG4gICAgfVxuICB9XG5cbiAgaWYgKChuZXh0TGFuZXMgJiBJbnB1dENvbnRpbnVvdXNMYW5lKSAhPT0gTm9MYW5lcykge1xuICAgIC8vIFdoZW4gdXBkYXRlcyBhcmUgc3luYyBieSBkZWZhdWx0LCB3ZSBlbnRhbmdsZSBjb250aW51b3VzIHByaW9yaXR5IHVwZGF0ZXNcbiAgICAvLyBhbmQgZGVmYXVsdCB1cGRhdGVzLCBzbyB0aGV5IHJlbmRlciBpbiB0aGUgc2FtZSBiYXRjaC4gVGhlIG9ubHkgcmVhc29uXG4gICAgLy8gdGhleSB1c2Ugc2VwYXJhdGUgbGFuZXMgaXMgYmVjYXVzZSBjb250aW51b3VzIHVwZGF0ZXMgc2hvdWxkIGludGVycnVwdFxuICAgIC8vIHRyYW5zaXRpb25zLCBidXQgZGVmYXVsdCB1cGRhdGVzIHNob3VsZCBub3QuXG4gICAgbmV4dExhbmVzIHw9IHBlbmRpbmdMYW5lcyAmIERlZmF1bHRMYW5lO1xuICB9IC8vIENoZWNrIGZvciBlbnRhbmdsZWQgbGFuZXMgYW5kIGFkZCB0aGVtIHRvIHRoZSBiYXRjaC5cbiAgLy9cbiAgLy8gQSBsYW5lIGlzIHNhaWQgdG8gYmUgZW50YW5nbGVkIHdpdGggYW5vdGhlciB3aGVuIGl0J3Mgbm90IGFsbG93ZWQgdG8gcmVuZGVyXG4gIC8vIGluIGEgYmF0Y2ggdGhhdCBkb2VzIG5vdCBhbHNvIGluY2x1ZGUgdGhlIG90aGVyIGxhbmUuIFR5cGljYWxseSB3ZSBkbyB0aGlzXG4gIC8vIHdoZW4gbXVsdGlwbGUgdXBkYXRlcyBoYXZlIHRoZSBzYW1lIHNvdXJjZSwgYW5kIHdlIG9ubHkgd2FudCB0byByZXNwb25kIHRvXG4gIC8vIHRoZSBtb3N0IHJlY2VudCBldmVudCBmcm9tIHRoYXQgc291cmNlLlxuICAvL1xuICAvLyBOb3RlIHRoYXQgd2UgYXBwbHkgZW50YW5nbGVtZW50cyAqYWZ0ZXIqIGNoZWNraW5nIGZvciBwYXJ0aWFsIHdvcmsgYWJvdmUuXG4gIC8vIFRoaXMgbWVhbnMgdGhhdCBpZiBhIGxhbmUgaXMgZW50YW5nbGVkIGR1cmluZyBhbiBpbnRlcmxlYXZlZCBldmVudCB3aGlsZVxuICAvLyBpdCdzIGFscmVhZHkgcmVuZGVyaW5nLCB3ZSB3b24ndCBpbnRlcnJ1cHQgaXQuIFRoaXMgaXMgaW50ZW50aW9uYWwsIHNpbmNlXG4gIC8vIGVudGFuZ2xlbWVudCBpcyB1c3VhbGx5IFwiYmVzdCBlZmZvcnRcIjogd2UnbGwgdHJ5IG91ciBiZXN0IHRvIHJlbmRlciB0aGVcbiAgLy8gbGFuZXMgaW4gdGhlIHNhbWUgYmF0Y2gsIGJ1dCBpdCdzIG5vdCB3b3J0aCB0aHJvd2luZyBvdXQgcGFydGlhbGx5XG4gIC8vIGNvbXBsZXRlZCB3b3JrIGluIG9yZGVyIHRvIGRvIGl0LlxuICAvLyBUT0RPOiBSZWNvbnNpZGVyIHRoaXMuIFRoZSBjb3VudGVyLWFyZ3VtZW50IGlzIHRoYXQgdGhlIHBhcnRpYWwgd29ya1xuICAvLyByZXByZXNlbnRzIGFuIGludGVybWVkaWF0ZSBzdGF0ZSwgd2hpY2ggd2UgZG9uJ3Qgd2FudCB0byBzaG93IHRvIHRoZSB1c2VyLlxuICAvLyBBbmQgYnkgc3BlbmRpbmcgZXh0cmEgdGltZSBmaW5pc2hpbmcgaXQsIHdlJ3JlIGluY3JlYXNpbmcgdGhlIGFtb3VudCBvZlxuICAvLyB0aW1lIGl0IHRha2VzIHRvIHNob3cgdGhlIGZpbmFsIHN0YXRlLCB3aGljaCBpcyB3aGF0IHRoZXkgYXJlIGFjdHVhbGx5XG4gIC8vIHdhaXRpbmcgZm9yLlxuICAvL1xuICAvLyBGb3IgdGhvc2UgZXhjZXB0aW9ucyB3aGVyZSBlbnRhbmdsZW1lbnQgaXMgc2VtYW50aWNhbGx5IGltcG9ydGFudCwgbGlrZVxuICAvLyB1c2VNdXRhYmxlU291cmNlLCB3ZSBzaG91bGQgZW5zdXJlIHRoYXQgdGhlcmUgaXMgbm8gcGFydGlhbCB3b3JrIGF0IHRoZVxuICAvLyB0aW1lIHdlIGFwcGx5IHRoZSBlbnRhbmdsZW1lbnQuXG5cblxuICB2YXIgZW50YW5nbGVkTGFuZXMgPSByb290LmVudGFuZ2xlZExhbmVzO1xuXG4gIGlmIChlbnRhbmdsZWRMYW5lcyAhPT0gTm9MYW5lcykge1xuICAgIHZhciBlbnRhbmdsZW1lbnRzID0gcm9vdC5lbnRhbmdsZW1lbnRzO1xuICAgIHZhciBsYW5lcyA9IG5leHRMYW5lcyAmIGVudGFuZ2xlZExhbmVzO1xuXG4gICAgd2hpbGUgKGxhbmVzID4gMCkge1xuICAgICAgdmFyIGluZGV4ID0gcGlja0FyYml0cmFyeUxhbmVJbmRleChsYW5lcyk7XG4gICAgICB2YXIgbGFuZSA9IDEgPDwgaW5kZXg7XG4gICAgICBuZXh0TGFuZXMgfD0gZW50YW5nbGVtZW50c1tpbmRleF07XG4gICAgICBsYW5lcyAmPSB+bGFuZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV4dExhbmVzO1xufVxuZnVuY3Rpb24gZ2V0TW9zdFJlY2VudEV2ZW50VGltZShyb290LCBsYW5lcykge1xuICB2YXIgZXZlbnRUaW1lcyA9IHJvb3QuZXZlbnRUaW1lcztcbiAgdmFyIG1vc3RSZWNlbnRFdmVudFRpbWUgPSBOb1RpbWVzdGFtcDtcblxuICB3aGlsZSAobGFuZXMgPiAwKSB7XG4gICAgdmFyIGluZGV4ID0gcGlja0FyYml0cmFyeUxhbmVJbmRleChsYW5lcyk7XG4gICAgdmFyIGxhbmUgPSAxIDw8IGluZGV4O1xuICAgIHZhciBldmVudFRpbWUgPSBldmVudFRpbWVzW2luZGV4XTtcblxuICAgIGlmIChldmVudFRpbWUgPiBtb3N0UmVjZW50RXZlbnRUaW1lKSB7XG4gICAgICBtb3N0UmVjZW50RXZlbnRUaW1lID0gZXZlbnRUaW1lO1xuICAgIH1cblxuICAgIGxhbmVzICY9IH5sYW5lO1xuICB9XG5cbiAgcmV0dXJuIG1vc3RSZWNlbnRFdmVudFRpbWU7XG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVFeHBpcmF0aW9uVGltZShsYW5lLCBjdXJyZW50VGltZSkge1xuICBzd2l0Y2ggKGxhbmUpIHtcbiAgICBjYXNlIFN5bmNMYW5lOlxuICAgIGNhc2UgSW5wdXRDb250aW51b3VzSHlkcmF0aW9uTGFuZTpcbiAgICBjYXNlIElucHV0Q29udGludW91c0xhbmU6XG4gICAgICAvLyBVc2VyIGludGVyYWN0aW9ucyBzaG91bGQgZXhwaXJlIHNsaWdodGx5IG1vcmUgcXVpY2tseS5cbiAgICAgIC8vXG4gICAgICAvLyBOT1RFOiBUaGlzIGlzIHNldCB0byB0aGUgY29ycmVzcG9uZGluZyBjb25zdGFudCBhcyBpbiBTY2hlZHVsZXIuanMuXG4gICAgICAvLyBXaGVuIHdlIG1hZGUgaXQgbGFyZ2VyLCBhIHByb2R1Y3QgbWV0cmljIGluIHd3dyByZWdyZXNzZWQsIHN1Z2dlc3RpbmdcbiAgICAgIC8vIHRoZXJlJ3MgYSB1c2VyIGludGVyYWN0aW9uIHRoYXQncyBiZWluZyBzdGFydmVkIGJ5IGEgc2VyaWVzIG9mXG4gICAgICAvLyBzeW5jaHJvbm91cyB1cGRhdGVzLiBJZiB0aGF0IHRoZW9yeSBpcyBjb3JyZWN0LCB0aGUgcHJvcGVyIHNvbHV0aW9uIGlzXG4gICAgICAvLyB0byBmaXggdGhlIHN0YXJ2YXRpb24uIEhvd2V2ZXIsIHRoaXMgc2NlbmFyaW8gc3VwcG9ydHMgdGhlIGlkZWEgdGhhdFxuICAgICAgLy8gZXhwaXJhdGlvbiB0aW1lcyBhcmUgYW4gaW1wb3J0YW50IHNhZmVndWFyZCB3aGVuIHN0YXJ2YXRpb25cbiAgICAgIC8vIGRvZXMgaGFwcGVuLlxuICAgICAgcmV0dXJuIGN1cnJlbnRUaW1lICsgMjUwO1xuXG4gICAgY2FzZSBEZWZhdWx0SHlkcmF0aW9uTGFuZTpcbiAgICBjYXNlIERlZmF1bHRMYW5lOlxuICAgIGNhc2UgVHJhbnNpdGlvbkh5ZHJhdGlvbkxhbmU6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTE6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTI6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTM6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTQ6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTU6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTY6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTc6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTg6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTk6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTEwOlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmUxMTpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMTI6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTEzOlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmUxNDpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMTU6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTE2OlxuICAgICAgcmV0dXJuIGN1cnJlbnRUaW1lICsgNTAwMDtcblxuICAgIGNhc2UgUmV0cnlMYW5lMTpcbiAgICBjYXNlIFJldHJ5TGFuZTI6XG4gICAgY2FzZSBSZXRyeUxhbmUzOlxuICAgIGNhc2UgUmV0cnlMYW5lNDpcbiAgICBjYXNlIFJldHJ5TGFuZTU6XG4gICAgICAvLyBUT0RPOiBSZXRyaWVzIHNob3VsZCBiZSBhbGxvd2VkIHRvIGV4cGlyZSBpZiB0aGV5IGFyZSBDUFUgYm91bmQgZm9yXG4gICAgICAvLyB0b28gbG9uZywgYnV0IHdoZW4gSSBtYWRlIHRoaXMgY2hhbmdlIGl0IGNhdXNlZCBhIHNwaWtlIGluIGJyb3dzZXJcbiAgICAgIC8vIGNyYXNoZXMuIFRoZXJlIG11c3QgYmUgc29tZSBvdGhlciB1bmRlcmx5aW5nIGJ1Zzsgbm90IHN1cGVyIHVyZ2VudCBidXRcbiAgICAgIC8vIGlkZWFsbHkgc2hvdWxkIGZpZ3VyZSBvdXQgd2h5IGFuZCBmaXggaXQuIFVuZm9ydHVuYXRlbHkgd2UgZG9uJ3QgaGF2ZVxuICAgICAgLy8gYSByZXBybyBmb3IgdGhlIGNyYXNoZXMsIG9ubHkgZGV0ZWN0ZWQgdmlhIHByb2R1Y3Rpb24gbWV0cmljcy5cbiAgICAgIHJldHVybiBOb1RpbWVzdGFtcDtcblxuICAgIGNhc2UgU2VsZWN0aXZlSHlkcmF0aW9uTGFuZTpcbiAgICBjYXNlIElkbGVIeWRyYXRpb25MYW5lOlxuICAgIGNhc2UgSWRsZUxhbmU6XG4gICAgY2FzZSBPZmZzY3JlZW5MYW5lOlxuICAgICAgLy8gQW55dGhpbmcgaWRsZSBwcmlvcml0eSBvciBsb3dlciBzaG91bGQgbmV2ZXIgZXhwaXJlLlxuICAgICAgcmV0dXJuIE5vVGltZXN0YW1wO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHtcbiAgICAgICAgZXJyb3IoJ1Nob3VsZCBoYXZlIGZvdW5kIG1hdGNoaW5nIGxhbmVzLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LicpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gTm9UaW1lc3RhbXA7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFya1N0YXJ2ZWRMYW5lc0FzRXhwaXJlZChyb290LCBjdXJyZW50VGltZSkge1xuICAvLyBUT0RPOiBUaGlzIGdldHMgY2FsbGVkIGV2ZXJ5IHRpbWUgd2UgeWllbGQuIFdlIGNhbiBvcHRpbWl6ZSBieSBzdG9yaW5nXG4gIC8vIHRoZSBlYXJsaWVzdCBleHBpcmF0aW9uIHRpbWUgb24gdGhlIHJvb3QuIFRoZW4gdXNlIHRoYXQgdG8gcXVpY2tseSBiYWlsIG91dFxuICAvLyBvZiB0aGlzIGZ1bmN0aW9uLlxuICB2YXIgcGVuZGluZ0xhbmVzID0gcm9vdC5wZW5kaW5nTGFuZXM7XG4gIHZhciBzdXNwZW5kZWRMYW5lcyA9IHJvb3Quc3VzcGVuZGVkTGFuZXM7XG4gIHZhciBwaW5nZWRMYW5lcyA9IHJvb3QucGluZ2VkTGFuZXM7XG4gIHZhciBleHBpcmF0aW9uVGltZXMgPSByb290LmV4cGlyYXRpb25UaW1lczsgLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSBwZW5kaW5nIGxhbmVzIGFuZCBjaGVjayBpZiB3ZSd2ZSByZWFjaGVkIHRoZWlyXG4gIC8vIGV4cGlyYXRpb24gdGltZS4gSWYgc28sIHdlJ2xsIGFzc3VtZSB0aGUgdXBkYXRlIGlzIGJlaW5nIHN0YXJ2ZWQgYW5kIG1hcmtcbiAgLy8gaXQgYXMgZXhwaXJlZCB0byBmb3JjZSBpdCB0byBmaW5pc2guXG5cbiAgdmFyIGxhbmVzID0gcGVuZGluZ0xhbmVzO1xuXG4gIHdoaWxlIChsYW5lcyA+IDApIHtcbiAgICB2YXIgaW5kZXggPSBwaWNrQXJiaXRyYXJ5TGFuZUluZGV4KGxhbmVzKTtcbiAgICB2YXIgbGFuZSA9IDEgPDwgaW5kZXg7XG4gICAgdmFyIGV4cGlyYXRpb25UaW1lID0gZXhwaXJhdGlvblRpbWVzW2luZGV4XTtcblxuICAgIGlmIChleHBpcmF0aW9uVGltZSA9PT0gTm9UaW1lc3RhbXApIHtcbiAgICAgIC8vIEZvdW5kIGEgcGVuZGluZyBsYW5lIHdpdGggbm8gZXhwaXJhdGlvbiB0aW1lLiBJZiBpdCdzIG5vdCBzdXNwZW5kZWQsIG9yXG4gICAgICAvLyBpZiBpdCdzIHBpbmdlZCwgYXNzdW1lIGl0J3MgQ1BVLWJvdW5kLiBDb21wdXRlIGEgbmV3IGV4cGlyYXRpb24gdGltZVxuICAgICAgLy8gdXNpbmcgdGhlIGN1cnJlbnQgdGltZS5cbiAgICAgIGlmICgobGFuZSAmIHN1c3BlbmRlZExhbmVzKSA9PT0gTm9MYW5lcyB8fCAobGFuZSAmIHBpbmdlZExhbmVzKSAhPT0gTm9MYW5lcykge1xuICAgICAgICAvLyBBc3N1bWVzIHRpbWVzdGFtcHMgYXJlIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZy5cbiAgICAgICAgZXhwaXJhdGlvblRpbWVzW2luZGV4XSA9IGNvbXB1dGVFeHBpcmF0aW9uVGltZShsYW5lLCBjdXJyZW50VGltZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChleHBpcmF0aW9uVGltZSA8PSBjdXJyZW50VGltZSkge1xuICAgICAgLy8gVGhpcyBsYW5lIGV4cGlyZWRcbiAgICAgIHJvb3QuZXhwaXJlZExhbmVzIHw9IGxhbmU7XG4gICAgfVxuXG4gICAgbGFuZXMgJj0gfmxhbmU7XG4gIH1cbn0gLy8gVGhpcyByZXR1cm5zIHRoZSBoaWdoZXN0IHByaW9yaXR5IHBlbmRpbmcgbGFuZXMgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZXlcbi8vIGFyZSBzdXNwZW5kZWQuXG5cbmZ1bmN0aW9uIGdldEhpZ2hlc3RQcmlvcml0eVBlbmRpbmdMYW5lcyhyb290KSB7XG4gIHJldHVybiBnZXRIaWdoZXN0UHJpb3JpdHlMYW5lcyhyb290LnBlbmRpbmdMYW5lcyk7XG59XG5mdW5jdGlvbiBnZXRMYW5lc1RvUmV0cnlTeW5jaHJvbm91c2x5T25FcnJvcihyb290KSB7XG4gIHZhciBldmVyeXRoaW5nQnV0T2Zmc2NyZWVuID0gcm9vdC5wZW5kaW5nTGFuZXMgJiB+T2Zmc2NyZWVuTGFuZTtcblxuICBpZiAoZXZlcnl0aGluZ0J1dE9mZnNjcmVlbiAhPT0gTm9MYW5lcykge1xuICAgIHJldHVybiBldmVyeXRoaW5nQnV0T2Zmc2NyZWVuO1xuICB9XG5cbiAgaWYgKGV2ZXJ5dGhpbmdCdXRPZmZzY3JlZW4gJiBPZmZzY3JlZW5MYW5lKSB7XG4gICAgcmV0dXJuIE9mZnNjcmVlbkxhbmU7XG4gIH1cblxuICByZXR1cm4gTm9MYW5lcztcbn1cbmZ1bmN0aW9uIGluY2x1ZGVzU3luY0xhbmUobGFuZXMpIHtcbiAgcmV0dXJuIChsYW5lcyAmIFN5bmNMYW5lKSAhPT0gTm9MYW5lcztcbn1cbmZ1bmN0aW9uIGluY2x1ZGVzTm9uSWRsZVdvcmsobGFuZXMpIHtcbiAgcmV0dXJuIChsYW5lcyAmIE5vbklkbGVMYW5lcykgIT09IE5vTGFuZXM7XG59XG5mdW5jdGlvbiBpbmNsdWRlc09ubHlSZXRyaWVzKGxhbmVzKSB7XG4gIHJldHVybiAobGFuZXMgJiBSZXRyeUxhbmVzKSA9PT0gbGFuZXM7XG59XG5mdW5jdGlvbiBpbmNsdWRlc09ubHlOb25VcmdlbnRMYW5lcyhsYW5lcykge1xuICB2YXIgVXJnZW50TGFuZXMgPSBTeW5jTGFuZSB8IElucHV0Q29udGludW91c0xhbmUgfCBEZWZhdWx0TGFuZTtcbiAgcmV0dXJuIChsYW5lcyAmIFVyZ2VudExhbmVzKSA9PT0gTm9MYW5lcztcbn1cbmZ1bmN0aW9uIGluY2x1ZGVzT25seVRyYW5zaXRpb25zKGxhbmVzKSB7XG4gIHJldHVybiAobGFuZXMgJiBUcmFuc2l0aW9uTGFuZXMpID09PSBsYW5lcztcbn1cbmZ1bmN0aW9uIGluY2x1ZGVzQmxvY2tpbmdMYW5lKHJvb3QsIGxhbmVzKSB7XG5cbiAgdmFyIFN5bmNEZWZhdWx0TGFuZXMgPSBJbnB1dENvbnRpbnVvdXNIeWRyYXRpb25MYW5lIHwgSW5wdXRDb250aW51b3VzTGFuZSB8IERlZmF1bHRIeWRyYXRpb25MYW5lIHwgRGVmYXVsdExhbmU7XG4gIHJldHVybiAobGFuZXMgJiBTeW5jRGVmYXVsdExhbmVzKSAhPT0gTm9MYW5lcztcbn1cbmZ1bmN0aW9uIGluY2x1ZGVzRXhwaXJlZExhbmUocm9vdCwgbGFuZXMpIHtcbiAgLy8gVGhpcyBpcyBhIHNlcGFyYXRlIGNoZWNrIGZyb20gaW5jbHVkZXNCbG9ja2luZ0xhbmUgYmVjYXVzZSBhIGxhbmUgY2FuXG4gIC8vIGV4cGlyZSBhZnRlciBhIHJlbmRlciBoYXMgYWxyZWFkeSBzdGFydGVkLlxuICByZXR1cm4gKGxhbmVzICYgcm9vdC5leHBpcmVkTGFuZXMpICE9PSBOb0xhbmVzO1xufVxuZnVuY3Rpb24gaXNUcmFuc2l0aW9uTGFuZShsYW5lKSB7XG4gIHJldHVybiAobGFuZSAmIFRyYW5zaXRpb25MYW5lcykgIT09IE5vTGFuZXM7XG59XG5mdW5jdGlvbiBjbGFpbU5leHRUcmFuc2l0aW9uTGFuZSgpIHtcbiAgLy8gQ3ljbGUgdGhyb3VnaCB0aGUgbGFuZXMsIGFzc2lnbmluZyBlYWNoIG5ldyB0cmFuc2l0aW9uIHRvIHRoZSBuZXh0IGxhbmUuXG4gIC8vIEluIG1vc3QgY2FzZXMsIHRoaXMgbWVhbnMgZXZlcnkgdHJhbnNpdGlvbiBnZXRzIGl0cyBvd24gbGFuZSwgdW50aWwgd2VcbiAgLy8gcnVuIG91dCBvZiBsYW5lcyBhbmQgY3ljbGUgYmFjayB0byB0aGUgYmVnaW5uaW5nLlxuICB2YXIgbGFuZSA9IG5leHRUcmFuc2l0aW9uTGFuZTtcbiAgbmV4dFRyYW5zaXRpb25MYW5lIDw8PSAxO1xuXG4gIGlmICgobmV4dFRyYW5zaXRpb25MYW5lICYgVHJhbnNpdGlvbkxhbmVzKSA9PT0gTm9MYW5lcykge1xuICAgIG5leHRUcmFuc2l0aW9uTGFuZSA9IFRyYW5zaXRpb25MYW5lMTtcbiAgfVxuXG4gIHJldHVybiBsYW5lO1xufVxuZnVuY3Rpb24gY2xhaW1OZXh0UmV0cnlMYW5lKCkge1xuICB2YXIgbGFuZSA9IG5leHRSZXRyeUxhbmU7XG4gIG5leHRSZXRyeUxhbmUgPDw9IDE7XG5cbiAgaWYgKChuZXh0UmV0cnlMYW5lICYgUmV0cnlMYW5lcykgPT09IE5vTGFuZXMpIHtcbiAgICBuZXh0UmV0cnlMYW5lID0gUmV0cnlMYW5lMTtcbiAgfVxuXG4gIHJldHVybiBsYW5lO1xufVxuZnVuY3Rpb24gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZShsYW5lcykge1xuICByZXR1cm4gbGFuZXMgJiAtbGFuZXM7XG59XG5mdW5jdGlvbiBwaWNrQXJiaXRyYXJ5TGFuZShsYW5lcykge1xuICAvLyBUaGlzIHdyYXBwZXIgZnVuY3Rpb24gZ2V0cyBpbmxpbmVkLiBPbmx5IGV4aXN0cyBzbyB0byBjb21tdW5pY2F0ZSB0aGF0IGl0XG4gIC8vIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGJpdCBpcyBzZWxlY3RlZDsgeW91IGNhbiBwaWNrIGFueSBiaXQgd2l0aG91dFxuICAvLyBhZmZlY3RpbmcgdGhlIGFsZ29yaXRobXMgd2hlcmUgaXRzIHVzZWQuIEhlcmUgSSdtIHVzaW5nXG4gIC8vIGdldEhpZ2hlc3RQcmlvcml0eUxhbmUgYmVjYXVzZSBpdCByZXF1aXJlcyB0aGUgZmV3ZXN0IG9wZXJhdGlvbnMuXG4gIHJldHVybiBnZXRIaWdoZXN0UHJpb3JpdHlMYW5lKGxhbmVzKTtcbn1cblxuZnVuY3Rpb24gcGlja0FyYml0cmFyeUxhbmVJbmRleChsYW5lcykge1xuICByZXR1cm4gMzEgLSBjbHozMihsYW5lcyk7XG59XG5cbmZ1bmN0aW9uIGxhbmVUb0luZGV4KGxhbmUpIHtcbiAgcmV0dXJuIHBpY2tBcmJpdHJhcnlMYW5lSW5kZXgobGFuZSk7XG59XG5cbmZ1bmN0aW9uIGluY2x1ZGVzU29tZUxhbmUoYSwgYikge1xuICByZXR1cm4gKGEgJiBiKSAhPT0gTm9MYW5lcztcbn1cbmZ1bmN0aW9uIGlzU3Vic2V0T2ZMYW5lcyhzZXQsIHN1YnNldCkge1xuICByZXR1cm4gKHNldCAmIHN1YnNldCkgPT09IHN1YnNldDtcbn1cbmZ1bmN0aW9uIG1lcmdlTGFuZXMoYSwgYikge1xuICByZXR1cm4gYSB8IGI7XG59XG5mdW5jdGlvbiByZW1vdmVMYW5lcyhzZXQsIHN1YnNldCkge1xuICByZXR1cm4gc2V0ICYgfnN1YnNldDtcbn1cbmZ1bmN0aW9uIGludGVyc2VjdExhbmVzKGEsIGIpIHtcbiAgcmV0dXJuIGEgJiBiO1xufSAvLyBTZWVtcyByZWR1bmRhbnQsIGJ1dCBpdCBjaGFuZ2VzIHRoZSB0eXBlIGZyb20gYSBzaW5nbGUgbGFuZSAodXNlZCBmb3Jcbi8vIHVwZGF0ZXMpIHRvIGEgZ3JvdXAgb2YgbGFuZXMgKHVzZWQgZm9yIGZsdXNoaW5nIHdvcmspLlxuXG5mdW5jdGlvbiBsYW5lVG9MYW5lcyhsYW5lKSB7XG4gIHJldHVybiBsYW5lO1xufVxuZnVuY3Rpb24gaGlnaGVyUHJpb3JpdHlMYW5lKGEsIGIpIHtcbiAgLy8gVGhpcyB3b3JrcyBiZWNhdXNlIHRoZSBiaXQgcmFuZ2VzIGRlY3JlYXNlIGluIHByaW9yaXR5IGFzIHlvdSBnbyBsZWZ0LlxuICByZXR1cm4gYSAhPT0gTm9MYW5lICYmIGEgPCBiID8gYSA6IGI7XG59XG5mdW5jdGlvbiBjcmVhdGVMYW5lTWFwKGluaXRpYWwpIHtcbiAgLy8gSW50ZW50aW9uYWxseSBwdXNoaW5nIG9uZSBieSBvbmUuXG4gIC8vIGh0dHBzOi8vdjguZGV2L2Jsb2cvZWxlbWVudHMta2luZHMjYXZvaWQtY3JlYXRpbmctaG9sZXNcbiAgdmFyIGxhbmVNYXAgPSBbXTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IFRvdGFsTGFuZXM7IGkrKykge1xuICAgIGxhbmVNYXAucHVzaChpbml0aWFsKTtcbiAgfVxuXG4gIHJldHVybiBsYW5lTWFwO1xufVxuZnVuY3Rpb24gbWFya1Jvb3RVcGRhdGVkKHJvb3QsIHVwZGF0ZUxhbmUsIGV2ZW50VGltZSkge1xuICByb290LnBlbmRpbmdMYW5lcyB8PSB1cGRhdGVMYW5lOyAvLyBJZiB0aGVyZSBhcmUgYW55IHN1c3BlbmRlZCB0cmFuc2l0aW9ucywgaXQncyBwb3NzaWJsZSB0aGlzIG5ldyB1cGRhdGVcbiAgLy8gY291bGQgdW5ibG9jayB0aGVtLiBDbGVhciB0aGUgc3VzcGVuZGVkIGxhbmVzIHNvIHRoYXQgd2UgY2FuIHRyeSByZW5kZXJpbmdcbiAgLy8gdGhlbSBhZ2Fpbi5cbiAgLy9cbiAgLy8gVE9ETzogV2UgcmVhbGx5IG9ubHkgbmVlZCB0byB1bnN1c3BlbmQgb25seSBsYW5lcyB0aGF0IGFyZSBpbiB0aGVcbiAgLy8gYHN1YnRyZWVMYW5lc2Agb2YgdGhlIHVwZGF0ZWQgZmliZXIsIG9yIHRoZSB1cGRhdGUgbGFuZXMgb2YgdGhlIHJldHVyblxuICAvLyBwYXRoLiBUaGlzIHdvdWxkIGV4Y2x1ZGUgc3VzcGVuZGVkIHVwZGF0ZXMgaW4gYW4gdW5yZWxhdGVkIHNpYmxpbmcgdHJlZSxcbiAgLy8gc2luY2UgdGhlcmUncyBubyB3YXkgZm9yIHRoaXMgdXBkYXRlIHRvIHVuYmxvY2sgaXQuXG4gIC8vXG4gIC8vIFdlIGRvbid0IGRvIHRoaXMgaWYgdGhlIGluY29taW5nIHVwZGF0ZSBpcyBpZGxlLCBiZWNhdXNlIHdlIG5ldmVyIHByb2Nlc3NcbiAgLy8gaWRsZSB1cGRhdGVzIHVudGlsIGFmdGVyIGFsbCB0aGUgcmVndWxhciB1cGRhdGVzIGhhdmUgZmluaXNoZWQ7IHRoZXJlJ3Mgbm9cbiAgLy8gd2F5IGl0IGNvdWxkIHVuYmxvY2sgYSB0cmFuc2l0aW9uLlxuXG4gIGlmICh1cGRhdGVMYW5lICE9PSBJZGxlTGFuZSkge1xuICAgIHJvb3Quc3VzcGVuZGVkTGFuZXMgPSBOb0xhbmVzO1xuICAgIHJvb3QucGluZ2VkTGFuZXMgPSBOb0xhbmVzO1xuICB9XG5cbiAgdmFyIGV2ZW50VGltZXMgPSByb290LmV2ZW50VGltZXM7XG4gIHZhciBpbmRleCA9IGxhbmVUb0luZGV4KHVwZGF0ZUxhbmUpOyAvLyBXZSBjYW4gYWx3YXlzIG92ZXJ3cml0ZSBhbiBleGlzdGluZyB0aW1lc3RhbXAgYmVjYXVzZSB3ZSBwcmVmZXIgdGhlIG1vc3RcbiAgLy8gcmVjZW50IGV2ZW50LCBhbmQgd2UgYXNzdW1lIHRpbWUgaXMgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nLlxuXG4gIGV2ZW50VGltZXNbaW5kZXhdID0gZXZlbnRUaW1lO1xufVxuZnVuY3Rpb24gbWFya1Jvb3RTdXNwZW5kZWQocm9vdCwgc3VzcGVuZGVkTGFuZXMpIHtcbiAgcm9vdC5zdXNwZW5kZWRMYW5lcyB8PSBzdXNwZW5kZWRMYW5lcztcbiAgcm9vdC5waW5nZWRMYW5lcyAmPSB+c3VzcGVuZGVkTGFuZXM7IC8vIFRoZSBzdXNwZW5kZWQgbGFuZXMgYXJlIG5vIGxvbmdlciBDUFUtYm91bmQuIENsZWFyIHRoZWlyIGV4cGlyYXRpb24gdGltZXMuXG5cbiAgdmFyIGV4cGlyYXRpb25UaW1lcyA9IHJvb3QuZXhwaXJhdGlvblRpbWVzO1xuICB2YXIgbGFuZXMgPSBzdXNwZW5kZWRMYW5lcztcblxuICB3aGlsZSAobGFuZXMgPiAwKSB7XG4gICAgdmFyIGluZGV4ID0gcGlja0FyYml0cmFyeUxhbmVJbmRleChsYW5lcyk7XG4gICAgdmFyIGxhbmUgPSAxIDw8IGluZGV4O1xuICAgIGV4cGlyYXRpb25UaW1lc1tpbmRleF0gPSBOb1RpbWVzdGFtcDtcbiAgICBsYW5lcyAmPSB+bGFuZTtcbiAgfVxufVxuZnVuY3Rpb24gbWFya1Jvb3RQaW5nZWQocm9vdCwgcGluZ2VkTGFuZXMsIGV2ZW50VGltZSkge1xuICByb290LnBpbmdlZExhbmVzIHw9IHJvb3Quc3VzcGVuZGVkTGFuZXMgJiBwaW5nZWRMYW5lcztcbn1cbmZ1bmN0aW9uIG1hcmtSb290RmluaXNoZWQocm9vdCwgcmVtYWluaW5nTGFuZXMpIHtcbiAgdmFyIG5vTG9uZ2VyUGVuZGluZ0xhbmVzID0gcm9vdC5wZW5kaW5nTGFuZXMgJiB+cmVtYWluaW5nTGFuZXM7XG4gIHJvb3QucGVuZGluZ0xhbmVzID0gcmVtYWluaW5nTGFuZXM7IC8vIExldCdzIHRyeSBldmVyeXRoaW5nIGFnYWluXG5cbiAgcm9vdC5zdXNwZW5kZWRMYW5lcyA9IE5vTGFuZXM7XG4gIHJvb3QucGluZ2VkTGFuZXMgPSBOb0xhbmVzO1xuICByb290LmV4cGlyZWRMYW5lcyAmPSByZW1haW5pbmdMYW5lcztcbiAgcm9vdC5tdXRhYmxlUmVhZExhbmVzICY9IHJlbWFpbmluZ0xhbmVzO1xuICByb290LmVudGFuZ2xlZExhbmVzICY9IHJlbWFpbmluZ0xhbmVzO1xuICB2YXIgZW50YW5nbGVtZW50cyA9IHJvb3QuZW50YW5nbGVtZW50cztcbiAgdmFyIGV2ZW50VGltZXMgPSByb290LmV2ZW50VGltZXM7XG4gIHZhciBleHBpcmF0aW9uVGltZXMgPSByb290LmV4cGlyYXRpb25UaW1lczsgLy8gQ2xlYXIgdGhlIGxhbmVzIHRoYXQgbm8gbG9uZ2VyIGhhdmUgcGVuZGluZyB3b3JrXG5cbiAgdmFyIGxhbmVzID0gbm9Mb25nZXJQZW5kaW5nTGFuZXM7XG5cbiAgd2hpbGUgKGxhbmVzID4gMCkge1xuICAgIHZhciBpbmRleCA9IHBpY2tBcmJpdHJhcnlMYW5lSW5kZXgobGFuZXMpO1xuICAgIHZhciBsYW5lID0gMSA8PCBpbmRleDtcbiAgICBlbnRhbmdsZW1lbnRzW2luZGV4XSA9IE5vTGFuZXM7XG4gICAgZXZlbnRUaW1lc1tpbmRleF0gPSBOb1RpbWVzdGFtcDtcbiAgICBleHBpcmF0aW9uVGltZXNbaW5kZXhdID0gTm9UaW1lc3RhbXA7XG4gICAgbGFuZXMgJj0gfmxhbmU7XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtSb290RW50YW5nbGVkKHJvb3QsIGVudGFuZ2xlZExhbmVzKSB7XG4gIC8vIEluIGFkZGl0aW9uIHRvIGVudGFuZ2xpbmcgZWFjaCBvZiB0aGUgZ2l2ZW4gbGFuZXMgd2l0aCBlYWNoIG90aGVyLCB3ZSBhbHNvXG4gIC8vIGhhdmUgdG8gY29uc2lkZXIgX3RyYW5zaXRpdmVfIGVudGFuZ2xlbWVudHMuIEZvciBlYWNoIGxhbmUgdGhhdCBpcyBhbHJlYWR5XG4gIC8vIGVudGFuZ2xlZCB3aXRoICphbnkqIG9mIHRoZSBnaXZlbiBsYW5lcywgdGhhdCBsYW5lIGlzIG5vdyB0cmFuc2l0aXZlbHlcbiAgLy8gZW50YW5nbGVkIHdpdGggKmFsbCogdGhlIGdpdmVuIGxhbmVzLlxuICAvL1xuICAvLyBUcmFuc2xhdGVkOiBJZiBDIGlzIGVudGFuZ2xlZCB3aXRoIEEsIHRoZW4gZW50YW5nbGluZyBBIHdpdGggQiBhbHNvXG4gIC8vIGVudGFuZ2xlcyBDIHdpdGggQi5cbiAgLy9cbiAgLy8gSWYgdGhpcyBpcyBoYXJkIHRvIGdyYXNwLCBpdCBtaWdodCBoZWxwIHRvIGludGVudGlvbmFsbHkgYnJlYWsgdGhpc1xuICAvLyBmdW5jdGlvbiBhbmQgbG9vayBhdCB0aGUgdGVzdHMgdGhhdCBmYWlsIGluIFJlYWN0VHJhbnNpdGlvbi10ZXN0LmpzLiBUcnlcbiAgLy8gY29tbWVudGluZyBvdXQgb25lIG9mIHRoZSBjb25kaXRpb25zIGJlbG93LlxuICB2YXIgcm9vdEVudGFuZ2xlZExhbmVzID0gcm9vdC5lbnRhbmdsZWRMYW5lcyB8PSBlbnRhbmdsZWRMYW5lcztcbiAgdmFyIGVudGFuZ2xlbWVudHMgPSByb290LmVudGFuZ2xlbWVudHM7XG4gIHZhciBsYW5lcyA9IHJvb3RFbnRhbmdsZWRMYW5lcztcblxuICB3aGlsZSAobGFuZXMpIHtcbiAgICB2YXIgaW5kZXggPSBwaWNrQXJiaXRyYXJ5TGFuZUluZGV4KGxhbmVzKTtcbiAgICB2YXIgbGFuZSA9IDEgPDwgaW5kZXg7XG5cbiAgICBpZiAoIC8vIElzIHRoaXMgb25lIG9mIHRoZSBuZXdseSBlbnRhbmdsZWQgbGFuZXM/XG4gICAgbGFuZSAmIGVudGFuZ2xlZExhbmVzIHwgLy8gSXMgdGhpcyBsYW5lIHRyYW5zaXRpdmVseSBlbnRhbmdsZWQgd2l0aCB0aGUgbmV3bHkgZW50YW5nbGVkIGxhbmVzP1xuICAgIGVudGFuZ2xlbWVudHNbaW5kZXhdICYgZW50YW5nbGVkTGFuZXMpIHtcbiAgICAgIGVudGFuZ2xlbWVudHNbaW5kZXhdIHw9IGVudGFuZ2xlZExhbmVzO1xuICAgIH1cblxuICAgIGxhbmVzICY9IH5sYW5lO1xuICB9XG59XG5mdW5jdGlvbiBnZXRCdW1wZWRMYW5lRm9ySHlkcmF0aW9uKHJvb3QsIHJlbmRlckxhbmVzKSB7XG4gIHZhciByZW5kZXJMYW5lID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZShyZW5kZXJMYW5lcyk7XG4gIHZhciBsYW5lO1xuXG4gIHN3aXRjaCAocmVuZGVyTGFuZSkge1xuICAgIGNhc2UgSW5wdXRDb250aW51b3VzTGFuZTpcbiAgICAgIGxhbmUgPSBJbnB1dENvbnRpbnVvdXNIeWRyYXRpb25MYW5lO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIERlZmF1bHRMYW5lOlxuICAgICAgbGFuZSA9IERlZmF1bHRIeWRyYXRpb25MYW5lO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMTpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMjpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMzpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lNDpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lNTpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lNjpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lNzpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lODpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lOTpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMTA6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTExOlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmUxMjpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMTM6XG4gICAgY2FzZSBUcmFuc2l0aW9uTGFuZTE0OlxuICAgIGNhc2UgVHJhbnNpdGlvbkxhbmUxNTpcbiAgICBjYXNlIFRyYW5zaXRpb25MYW5lMTY6XG4gICAgY2FzZSBSZXRyeUxhbmUxOlxuICAgIGNhc2UgUmV0cnlMYW5lMjpcbiAgICBjYXNlIFJldHJ5TGFuZTM6XG4gICAgY2FzZSBSZXRyeUxhbmU0OlxuICAgIGNhc2UgUmV0cnlMYW5lNTpcbiAgICAgIGxhbmUgPSBUcmFuc2l0aW9uSHlkcmF0aW9uTGFuZTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBJZGxlTGFuZTpcbiAgICAgIGxhbmUgPSBJZGxlSHlkcmF0aW9uTGFuZTtcbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIC8vIEV2ZXJ5dGhpbmcgZWxzZSBpcyBhbHJlYWR5IGVpdGhlciBhIGh5ZHJhdGlvbiBsYW5lLCBvciBzaG91bGRuJ3RcbiAgICAgIC8vIGJlIHJldHJpZWQgYXQgYSBoeWRyYXRpb24gbGFuZS5cbiAgICAgIGxhbmUgPSBOb0xhbmU7XG4gICAgICBicmVhaztcbiAgfSAvLyBDaGVjayBpZiB0aGUgbGFuZSB3ZSBjaG9zZSBpcyBzdXNwZW5kZWQuIElmIHNvLCB0aGF0IGluZGljYXRlcyB0aGF0IHdlXG4gIC8vIGFscmVhZHkgYXR0ZW1wdGVkIGFuZCBmYWlsZWQgdG8gaHlkcmF0ZSBhdCB0aGF0IGxldmVsLiBBbHNvIGNoZWNrIGlmIHdlJ3JlXG4gIC8vIGFscmVhZHkgcmVuZGVyaW5nIHRoYXQgbGFuZSwgd2hpY2ggaXMgcmFyZSBidXQgY291bGQgaGFwcGVuLlxuXG5cbiAgaWYgKChsYW5lICYgKHJvb3Quc3VzcGVuZGVkTGFuZXMgfCByZW5kZXJMYW5lcykpICE9PSBOb0xhbmUpIHtcbiAgICAvLyBHaXZlIHVwIHRyeWluZyB0byBoeWRyYXRlIGFuZCBmYWxsIGJhY2sgdG8gY2xpZW50IHJlbmRlci5cbiAgICByZXR1cm4gTm9MYW5lO1xuICB9XG5cbiAgcmV0dXJuIGxhbmU7XG59XG5mdW5jdGlvbiBhZGRGaWJlclRvTGFuZXNNYXAocm9vdCwgZmliZXIsIGxhbmVzKSB7XG5cbiAgaWYgKCFpc0RldlRvb2xzUHJlc2VudCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBwZW5kaW5nVXBkYXRlcnNMYW5lTWFwID0gcm9vdC5wZW5kaW5nVXBkYXRlcnNMYW5lTWFwO1xuXG4gIHdoaWxlIChsYW5lcyA+IDApIHtcbiAgICB2YXIgaW5kZXggPSBsYW5lVG9JbmRleChsYW5lcyk7XG4gICAgdmFyIGxhbmUgPSAxIDw8IGluZGV4O1xuICAgIHZhciB1cGRhdGVycyA9IHBlbmRpbmdVcGRhdGVyc0xhbmVNYXBbaW5kZXhdO1xuICAgIHVwZGF0ZXJzLmFkZChmaWJlcik7XG4gICAgbGFuZXMgJj0gfmxhbmU7XG4gIH1cbn1cbmZ1bmN0aW9uIG1vdmVQZW5kaW5nRmliZXJzVG9NZW1vaXplZChyb290LCBsYW5lcykge1xuXG4gIGlmICghaXNEZXZUb29sc1ByZXNlbnQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgcGVuZGluZ1VwZGF0ZXJzTGFuZU1hcCA9IHJvb3QucGVuZGluZ1VwZGF0ZXJzTGFuZU1hcDtcbiAgdmFyIG1lbW9pemVkVXBkYXRlcnMgPSByb290Lm1lbW9pemVkVXBkYXRlcnM7XG5cbiAgd2hpbGUgKGxhbmVzID4gMCkge1xuICAgIHZhciBpbmRleCA9IGxhbmVUb0luZGV4KGxhbmVzKTtcbiAgICB2YXIgbGFuZSA9IDEgPDwgaW5kZXg7XG4gICAgdmFyIHVwZGF0ZXJzID0gcGVuZGluZ1VwZGF0ZXJzTGFuZU1hcFtpbmRleF07XG5cbiAgICBpZiAodXBkYXRlcnMuc2l6ZSA+IDApIHtcbiAgICAgIHVwZGF0ZXJzLmZvckVhY2goZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgICAgIHZhciBhbHRlcm5hdGUgPSBmaWJlci5hbHRlcm5hdGU7XG5cbiAgICAgICAgaWYgKGFsdGVybmF0ZSA9PT0gbnVsbCB8fCAhbWVtb2l6ZWRVcGRhdGVycy5oYXMoYWx0ZXJuYXRlKSkge1xuICAgICAgICAgIG1lbW9pemVkVXBkYXRlcnMuYWRkKGZpYmVyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB1cGRhdGVycy5jbGVhcigpO1xuICAgIH1cblxuICAgIGxhbmVzICY9IH5sYW5lO1xuICB9XG59XG5mdW5jdGlvbiBnZXRUcmFuc2l0aW9uc0ZvckxhbmVzKHJvb3QsIGxhbmVzKSB7XG4gIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG52YXIgRGlzY3JldGVFdmVudFByaW9yaXR5ID0gU3luY0xhbmU7XG52YXIgQ29udGludW91c0V2ZW50UHJpb3JpdHkgPSBJbnB1dENvbnRpbnVvdXNMYW5lO1xudmFyIERlZmF1bHRFdmVudFByaW9yaXR5ID0gRGVmYXVsdExhbmU7XG52YXIgSWRsZUV2ZW50UHJpb3JpdHkgPSBJZGxlTGFuZTtcbnZhciBjdXJyZW50VXBkYXRlUHJpb3JpdHkgPSBOb0xhbmU7XG5mdW5jdGlvbiBnZXRDdXJyZW50VXBkYXRlUHJpb3JpdHkoKSB7XG4gIHJldHVybiBjdXJyZW50VXBkYXRlUHJpb3JpdHk7XG59XG5mdW5jdGlvbiBzZXRDdXJyZW50VXBkYXRlUHJpb3JpdHkobmV3UHJpb3JpdHkpIHtcbiAgY3VycmVudFVwZGF0ZVByaW9yaXR5ID0gbmV3UHJpb3JpdHk7XG59XG5mdW5jdGlvbiBydW5XaXRoUHJpb3JpdHkocHJpb3JpdHksIGZuKSB7XG4gIHZhciBwcmV2aW91c1ByaW9yaXR5ID0gY3VycmVudFVwZGF0ZVByaW9yaXR5O1xuXG4gIHRyeSB7XG4gICAgY3VycmVudFVwZGF0ZVByaW9yaXR5ID0gcHJpb3JpdHk7XG4gICAgcmV0dXJuIGZuKCk7XG4gIH0gZmluYWxseSB7XG4gICAgY3VycmVudFVwZGF0ZVByaW9yaXR5ID0gcHJldmlvdXNQcmlvcml0eTtcbiAgfVxufVxuZnVuY3Rpb24gaGlnaGVyRXZlbnRQcmlvcml0eShhLCBiKSB7XG4gIHJldHVybiBhICE9PSAwICYmIGEgPCBiID8gYSA6IGI7XG59XG5mdW5jdGlvbiBsb3dlckV2ZW50UHJpb3JpdHkoYSwgYikge1xuICByZXR1cm4gYSA9PT0gMCB8fCBhID4gYiA/IGEgOiBiO1xufVxuZnVuY3Rpb24gaXNIaWdoZXJFdmVudFByaW9yaXR5KGEsIGIpIHtcbiAgcmV0dXJuIGEgIT09IDAgJiYgYSA8IGI7XG59XG5mdW5jdGlvbiBsYW5lc1RvRXZlbnRQcmlvcml0eShsYW5lcykge1xuICB2YXIgbGFuZSA9IGdldEhpZ2hlc3RQcmlvcml0eUxhbmUobGFuZXMpO1xuXG4gIGlmICghaXNIaWdoZXJFdmVudFByaW9yaXR5KERpc2NyZXRlRXZlbnRQcmlvcml0eSwgbGFuZSkpIHtcbiAgICByZXR1cm4gRGlzY3JldGVFdmVudFByaW9yaXR5O1xuICB9XG5cbiAgaWYgKCFpc0hpZ2hlckV2ZW50UHJpb3JpdHkoQ29udGludW91c0V2ZW50UHJpb3JpdHksIGxhbmUpKSB7XG4gICAgcmV0dXJuIENvbnRpbnVvdXNFdmVudFByaW9yaXR5O1xuICB9XG5cbiAgaWYgKGluY2x1ZGVzTm9uSWRsZVdvcmsobGFuZSkpIHtcbiAgICByZXR1cm4gRGVmYXVsdEV2ZW50UHJpb3JpdHk7XG4gIH1cblxuICByZXR1cm4gSWRsZUV2ZW50UHJpb3JpdHk7XG59XG5cbi8vIFRoaXMgaXMgaW1wb3J0ZWQgYnkgdGhlIGV2ZW50IHJlcGxheWluZyBpbXBsZW1lbnRhdGlvbiBpbiBSZWFjdCBET00uIEl0J3Ncbi8vIGluIGEgc2VwYXJhdGUgZmlsZSB0byBicmVhayBhIGNpcmN1bGFyIGRlcGVuZGVuY3kgYmV0d2VlbiB0aGUgcmVuZGVyZXIgYW5kXG4vLyB0aGUgcmVjb25jaWxlci5cbmZ1bmN0aW9uIGlzUm9vdERlaHlkcmF0ZWQocm9vdCkge1xuICB2YXIgY3VycmVudFN0YXRlID0gcm9vdC5jdXJyZW50Lm1lbW9pemVkU3RhdGU7XG4gIHJldHVybiBjdXJyZW50U3RhdGUuaXNEZWh5ZHJhdGVkO1xufVxuXG52YXIgX2F0dGVtcHRTeW5jaHJvbm91c0h5ZHJhdGlvbjtcblxuZnVuY3Rpb24gc2V0QXR0ZW1wdFN5bmNocm9ub3VzSHlkcmF0aW9uKGZuKSB7XG4gIF9hdHRlbXB0U3luY2hyb25vdXNIeWRyYXRpb24gPSBmbjtcbn1cbmZ1bmN0aW9uIGF0dGVtcHRTeW5jaHJvbm91c0h5ZHJhdGlvbihmaWJlcikge1xuICBfYXR0ZW1wdFN5bmNocm9ub3VzSHlkcmF0aW9uKGZpYmVyKTtcbn1cbnZhciBhdHRlbXB0Q29udGludW91c0h5ZHJhdGlvbjtcbmZ1bmN0aW9uIHNldEF0dGVtcHRDb250aW51b3VzSHlkcmF0aW9uKGZuKSB7XG4gIGF0dGVtcHRDb250aW51b3VzSHlkcmF0aW9uID0gZm47XG59XG52YXIgYXR0ZW1wdEh5ZHJhdGlvbkF0Q3VycmVudFByaW9yaXR5O1xuZnVuY3Rpb24gc2V0QXR0ZW1wdEh5ZHJhdGlvbkF0Q3VycmVudFByaW9yaXR5KGZuKSB7XG4gIGF0dGVtcHRIeWRyYXRpb25BdEN1cnJlbnRQcmlvcml0eSA9IGZuO1xufVxudmFyIGdldEN1cnJlbnRVcGRhdGVQcmlvcml0eSQxO1xuZnVuY3Rpb24gc2V0R2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KGZuKSB7XG4gIGdldEN1cnJlbnRVcGRhdGVQcmlvcml0eSQxID0gZm47XG59XG52YXIgYXR0ZW1wdEh5ZHJhdGlvbkF0UHJpb3JpdHk7XG5mdW5jdGlvbiBzZXRBdHRlbXB0SHlkcmF0aW9uQXRQcmlvcml0eShmbikge1xuICBhdHRlbXB0SHlkcmF0aW9uQXRQcmlvcml0eSA9IGZuO1xufSAvLyBUT0RPOiBVcGdyYWRlIHRoaXMgZGVmaW5pdGlvbiBvbmNlIHdlJ3JlIG9uIGEgbmV3ZXIgdmVyc2lvbiBvZiBGbG93IHRoYXRcbi8vIGhhcyB0aGlzIGRlZmluaXRpb24gYnVpbHQtaW4uXG5cbnZhciBoYXNTY2hlZHVsZWRSZXBsYXlBdHRlbXB0ID0gZmFsc2U7IC8vIFRoZSBxdWV1ZSBvZiBkaXNjcmV0ZSBldmVudHMgdG8gYmUgcmVwbGF5ZWQuXG5cbnZhciBxdWV1ZWREaXNjcmV0ZUV2ZW50cyA9IFtdOyAvLyBJbmRpY2F0ZXMgaWYgYW55IGNvbnRpbnVvdXMgZXZlbnQgdGFyZ2V0cyBhcmUgbm9uLW51bGwgZm9yIGVhcmx5IGJhaWxvdXQuXG4vLyBpZiB0aGUgbGFzdCB0YXJnZXQgd2FzIGRlaHlkcmF0ZWQuXG5cbnZhciBxdWV1ZWRGb2N1cyA9IG51bGw7XG52YXIgcXVldWVkRHJhZyA9IG51bGw7XG52YXIgcXVldWVkTW91c2UgPSBudWxsOyAvLyBGb3IgcG9pbnRlciBldmVudHMgdGhlcmUgY2FuIGJlIG9uZSBsYXRlc3QgZXZlbnQgcGVyIHBvaW50ZXJJZC5cblxudmFyIHF1ZXVlZFBvaW50ZXJzID0gbmV3IE1hcCgpO1xudmFyIHF1ZXVlZFBvaW50ZXJDYXB0dXJlcyA9IG5ldyBNYXAoKTsgLy8gV2UgY291bGQgY29uc2lkZXIgcmVwbGF5aW5nIHNlbGVjdGlvbmNoYW5nZSBhbmQgdG91Y2htb3ZlcyB0b28uXG5cbnZhciBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHMgPSBbXTtcbnZhciBkaXNjcmV0ZVJlcGxheWFibGVFdmVudHMgPSBbJ21vdXNlZG93bicsICdtb3VzZXVwJywgJ3RvdWNoY2FuY2VsJywgJ3RvdWNoZW5kJywgJ3RvdWNoc3RhcnQnLCAnYXV4Y2xpY2snLCAnZGJsY2xpY2snLCAncG9pbnRlcmNhbmNlbCcsICdwb2ludGVyZG93bicsICdwb2ludGVydXAnLCAnZHJhZ2VuZCcsICdkcmFnc3RhcnQnLCAnZHJvcCcsICdjb21wb3NpdGlvbmVuZCcsICdjb21wb3NpdGlvbnN0YXJ0JywgJ2tleWRvd24nLCAna2V5cHJlc3MnLCAna2V5dXAnLCAnaW5wdXQnLCAndGV4dElucHV0JywgLy8gSW50ZW50aW9uYWxseSBjYW1lbENhc2Vcbidjb3B5JywgJ2N1dCcsICdwYXN0ZScsICdjbGljaycsICdjaGFuZ2UnLCAnY29udGV4dG1lbnUnLCAncmVzZXQnLCAnc3VibWl0J107XG5mdW5jdGlvbiBpc0Rpc2NyZXRlRXZlbnRUaGF0UmVxdWlyZXNIeWRyYXRpb24oZXZlbnRUeXBlKSB7XG4gIHJldHVybiBkaXNjcmV0ZVJlcGxheWFibGVFdmVudHMuaW5kZXhPZihldmVudFR5cGUpID4gLTE7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVF1ZXVlZFJlcGxheWFibGVFdmVudChibG9ja2VkT24sIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCkge1xuICByZXR1cm4ge1xuICAgIGJsb2NrZWRPbjogYmxvY2tlZE9uLFxuICAgIGRvbUV2ZW50TmFtZTogZG9tRXZlbnROYW1lLFxuICAgIGV2ZW50U3lzdGVtRmxhZ3M6IGV2ZW50U3lzdGVtRmxhZ3MsXG4gICAgbmF0aXZlRXZlbnQ6IG5hdGl2ZUV2ZW50LFxuICAgIHRhcmdldENvbnRhaW5lcnM6IFt0YXJnZXRDb250YWluZXJdXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNsZWFySWZDb250aW51b3VzRXZlbnQoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCkge1xuICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkge1xuICAgIGNhc2UgJ2ZvY3VzaW4nOlxuICAgIGNhc2UgJ2ZvY3Vzb3V0JzpcbiAgICAgIHF1ZXVlZEZvY3VzID0gbnVsbDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnZHJhZ2VudGVyJzpcbiAgICBjYXNlICdkcmFnbGVhdmUnOlxuICAgICAgcXVldWVkRHJhZyA9IG51bGw7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ21vdXNlb3Zlcic6XG4gICAgY2FzZSAnbW91c2VvdXQnOlxuICAgICAgcXVldWVkTW91c2UgPSBudWxsO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdwb2ludGVyb3Zlcic6XG4gICAgY2FzZSAncG9pbnRlcm91dCc6XG4gICAgICB7XG4gICAgICAgIHZhciBwb2ludGVySWQgPSBuYXRpdmVFdmVudC5wb2ludGVySWQ7XG4gICAgICAgIHF1ZXVlZFBvaW50ZXJzLmRlbGV0ZShwb2ludGVySWQpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGNhc2UgJ2dvdHBvaW50ZXJjYXB0dXJlJzpcbiAgICBjYXNlICdsb3N0cG9pbnRlcmNhcHR1cmUnOlxuICAgICAge1xuICAgICAgICB2YXIgX3BvaW50ZXJJZCA9IG5hdGl2ZUV2ZW50LnBvaW50ZXJJZDtcbiAgICAgICAgcXVldWVkUG9pbnRlckNhcHR1cmVzLmRlbGV0ZShfcG9pbnRlcklkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYWNjdW11bGF0ZU9yQ3JlYXRlQ29udGludW91c1F1ZXVlZFJlcGxheWFibGVFdmVudChleGlzdGluZ1F1ZXVlZEV2ZW50LCBibG9ja2VkT24sIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCkge1xuICBpZiAoZXhpc3RpbmdRdWV1ZWRFdmVudCA9PT0gbnVsbCB8fCBleGlzdGluZ1F1ZXVlZEV2ZW50Lm5hdGl2ZUV2ZW50ICE9PSBuYXRpdmVFdmVudCkge1xuICAgIHZhciBxdWV1ZWRFdmVudCA9IGNyZWF0ZVF1ZXVlZFJlcGxheWFibGVFdmVudChibG9ja2VkT24sIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCk7XG5cbiAgICBpZiAoYmxvY2tlZE9uICE9PSBudWxsKSB7XG4gICAgICB2YXIgX2ZpYmVyMiA9IGdldEluc3RhbmNlRnJvbU5vZGUoYmxvY2tlZE9uKTtcblxuICAgICAgaWYgKF9maWJlcjIgIT09IG51bGwpIHtcbiAgICAgICAgLy8gQXR0ZW1wdCB0byBpbmNyZWFzZSB0aGUgcHJpb3JpdHkgb2YgdGhpcyB0YXJnZXQuXG4gICAgICAgIGF0dGVtcHRDb250aW51b3VzSHlkcmF0aW9uKF9maWJlcjIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBxdWV1ZWRFdmVudDtcbiAgfSAvLyBJZiB3ZSBoYXZlIGFscmVhZHkgcXVldWVkIHRoaXMgZXhhY3QgZXZlbnQsIHRoZW4gaXQncyBiZWNhdXNlXG4gIC8vIHRoZSBkaWZmZXJlbnQgZXZlbnQgc3lzdGVtcyBoYXZlIGRpZmZlcmVudCBET00gZXZlbnQgbGlzdGVuZXJzLlxuICAvLyBXZSBjYW4gYWNjdW11bGF0ZSB0aGUgZmxhZ3MsIGFuZCB0aGUgdGFyZ2V0Q29udGFpbmVycywgYW5kXG4gIC8vIHN0b3JlIGEgc2luZ2xlIGV2ZW50IHRvIGJlIHJlcGxheWVkLlxuXG5cbiAgZXhpc3RpbmdRdWV1ZWRFdmVudC5ldmVudFN5c3RlbUZsYWdzIHw9IGV2ZW50U3lzdGVtRmxhZ3M7XG4gIHZhciB0YXJnZXRDb250YWluZXJzID0gZXhpc3RpbmdRdWV1ZWRFdmVudC50YXJnZXRDb250YWluZXJzO1xuXG4gIGlmICh0YXJnZXRDb250YWluZXIgIT09IG51bGwgJiYgdGFyZ2V0Q29udGFpbmVycy5pbmRleE9mKHRhcmdldENvbnRhaW5lcikgPT09IC0xKSB7XG4gICAgdGFyZ2V0Q29udGFpbmVycy5wdXNoKHRhcmdldENvbnRhaW5lcik7XG4gIH1cblxuICByZXR1cm4gZXhpc3RpbmdRdWV1ZWRFdmVudDtcbn1cblxuZnVuY3Rpb24gcXVldWVJZkNvbnRpbnVvdXNFdmVudChibG9ja2VkT24sIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCkge1xuICAvLyBUaGVzZSBzZXQgcmVsYXRlZFRhcmdldCB0byBudWxsIGJlY2F1c2UgdGhlIHJlcGxheWVkIGV2ZW50IHdpbGwgYmUgdHJlYXRlZCBhcyBpZiB3ZVxuICAvLyBtb3ZlZCBmcm9tIG91dHNpZGUgdGhlIHdpbmRvdyAobm8gdGFyZ2V0KSBvbnRvIHRoZSB0YXJnZXQgb25jZSBpdCBoeWRyYXRlcy5cbiAgLy8gSW5zdGVhZCBvZiBtdXRhdGluZyB3ZSBjb3VsZCBjbG9uZSB0aGUgZXZlbnQuXG4gIHN3aXRjaCAoZG9tRXZlbnROYW1lKSB7XG4gICAgY2FzZSAnZm9jdXNpbic6XG4gICAgICB7XG4gICAgICAgIHZhciBmb2N1c0V2ZW50ID0gbmF0aXZlRXZlbnQ7XG4gICAgICAgIHF1ZXVlZEZvY3VzID0gYWNjdW11bGF0ZU9yQ3JlYXRlQ29udGludW91c1F1ZXVlZFJlcGxheWFibGVFdmVudChxdWV1ZWRGb2N1cywgYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgZm9jdXNFdmVudCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgY2FzZSAnZHJhZ2VudGVyJzpcbiAgICAgIHtcbiAgICAgICAgdmFyIGRyYWdFdmVudCA9IG5hdGl2ZUV2ZW50O1xuICAgICAgICBxdWV1ZWREcmFnID0gYWNjdW11bGF0ZU9yQ3JlYXRlQ29udGludW91c1F1ZXVlZFJlcGxheWFibGVFdmVudChxdWV1ZWREcmFnLCBibG9ja2VkT24sIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBkcmFnRXZlbnQpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgIGNhc2UgJ21vdXNlb3Zlcic6XG4gICAgICB7XG4gICAgICAgIHZhciBtb3VzZUV2ZW50ID0gbmF0aXZlRXZlbnQ7XG4gICAgICAgIHF1ZXVlZE1vdXNlID0gYWNjdW11bGF0ZU9yQ3JlYXRlQ29udGludW91c1F1ZXVlZFJlcGxheWFibGVFdmVudChxdWV1ZWRNb3VzZSwgYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgbW91c2VFdmVudCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgY2FzZSAncG9pbnRlcm92ZXInOlxuICAgICAge1xuICAgICAgICB2YXIgcG9pbnRlckV2ZW50ID0gbmF0aXZlRXZlbnQ7XG4gICAgICAgIHZhciBwb2ludGVySWQgPSBwb2ludGVyRXZlbnQucG9pbnRlcklkO1xuICAgICAgICBxdWV1ZWRQb2ludGVycy5zZXQocG9pbnRlcklkLCBhY2N1bXVsYXRlT3JDcmVhdGVDb250aW51b3VzUXVldWVkUmVwbGF5YWJsZUV2ZW50KHF1ZXVlZFBvaW50ZXJzLmdldChwb2ludGVySWQpIHx8IG51bGwsIGJsb2NrZWRPbiwgZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIsIHBvaW50ZXJFdmVudCkpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgIGNhc2UgJ2dvdHBvaW50ZXJjYXB0dXJlJzpcbiAgICAgIHtcbiAgICAgICAgdmFyIF9wb2ludGVyRXZlbnQgPSBuYXRpdmVFdmVudDtcbiAgICAgICAgdmFyIF9wb2ludGVySWQyID0gX3BvaW50ZXJFdmVudC5wb2ludGVySWQ7XG4gICAgICAgIHF1ZXVlZFBvaW50ZXJDYXB0dXJlcy5zZXQoX3BvaW50ZXJJZDIsIGFjY3VtdWxhdGVPckNyZWF0ZUNvbnRpbnVvdXNRdWV1ZWRSZXBsYXlhYmxlRXZlbnQocXVldWVkUG9pbnRlckNhcHR1cmVzLmdldChfcG9pbnRlcklkMikgfHwgbnVsbCwgYmxvY2tlZE9uLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgX3BvaW50ZXJFdmVudCkpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn0gLy8gQ2hlY2sgaWYgdGhpcyB0YXJnZXQgaXMgdW5ibG9ja2VkLiBSZXR1cm5zIHRydWUgaWYgaXQncyB1bmJsb2NrZWQuXG5cbmZ1bmN0aW9uIGF0dGVtcHRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldChxdWV1ZWRUYXJnZXQpIHtcbiAgLy8gVE9ETzogVGhpcyBmdW5jdGlvbiBzaGFyZXMgYSBsb3Qgb2YgbG9naWMgd2l0aCBmaW5kSW5zdGFuY2VCbG9ja2luZ0V2ZW50LlxuICAvLyBUcnkgdG8gdW5pZnkgdGhlbS4gSXQncyBhIGJpdCB0cmlja3kgc2luY2UgaXQgd291bGQgcmVxdWlyZSB0d28gcmV0dXJuXG4gIC8vIHZhbHVlcy5cbiAgdmFyIHRhcmdldEluc3QgPSBnZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZShxdWV1ZWRUYXJnZXQudGFyZ2V0KTtcblxuICBpZiAodGFyZ2V0SW5zdCAhPT0gbnVsbCkge1xuICAgIHZhciBuZWFyZXN0TW91bnRlZCA9IGdldE5lYXJlc3RNb3VudGVkRmliZXIodGFyZ2V0SW5zdCk7XG5cbiAgICBpZiAobmVhcmVzdE1vdW50ZWQgIT09IG51bGwpIHtcbiAgICAgIHZhciB0YWcgPSBuZWFyZXN0TW91bnRlZC50YWc7XG5cbiAgICAgIGlmICh0YWcgPT09IFN1c3BlbnNlQ29tcG9uZW50KSB7XG4gICAgICAgIHZhciBpbnN0YW5jZSA9IGdldFN1c3BlbnNlSW5zdGFuY2VGcm9tRmliZXIobmVhcmVzdE1vdW50ZWQpO1xuXG4gICAgICAgIGlmIChpbnN0YW5jZSAhPT0gbnVsbCkge1xuICAgICAgICAgIC8vIFdlJ3JlIGJsb2NrZWQgb24gaHlkcmF0aW5nIHRoaXMgYm91bmRhcnkuXG4gICAgICAgICAgLy8gSW5jcmVhc2UgaXRzIHByaW9yaXR5LlxuICAgICAgICAgIHF1ZXVlZFRhcmdldC5ibG9ja2VkT24gPSBpbnN0YW5jZTtcbiAgICAgICAgICBhdHRlbXB0SHlkcmF0aW9uQXRQcmlvcml0eShxdWV1ZWRUYXJnZXQucHJpb3JpdHksIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGF0dGVtcHRIeWRyYXRpb25BdEN1cnJlbnRQcmlvcml0eShuZWFyZXN0TW91bnRlZCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHRhZyA9PT0gSG9zdFJvb3QpIHtcbiAgICAgICAgdmFyIHJvb3QgPSBuZWFyZXN0TW91bnRlZC5zdGF0ZU5vZGU7XG5cbiAgICAgICAgaWYgKGlzUm9vdERlaHlkcmF0ZWQocm9vdCkpIHtcbiAgICAgICAgICBxdWV1ZWRUYXJnZXQuYmxvY2tlZE9uID0gZ2V0Q29udGFpbmVyRnJvbUZpYmVyKG5lYXJlc3RNb3VudGVkKTsgLy8gV2UgZG9uJ3QgY3VycmVudGx5IGhhdmUgYSB3YXkgdG8gaW5jcmVhc2UgdGhlIHByaW9yaXR5IG9mXG4gICAgICAgICAgLy8gYSByb290IG90aGVyIHRoYW4gc3luYy5cblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHF1ZXVlZFRhcmdldC5ibG9ja2VkT24gPSBudWxsO1xufVxuXG5mdW5jdGlvbiBxdWV1ZUV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0KHRhcmdldCkge1xuICAvLyBUT0RPOiBUaGlzIHdpbGwgcmVhZCB0aGUgcHJpb3JpdHkgaWYgaXQncyBkaXNwYXRjaGVkIGJ5IHRoZSBSZWFjdFxuICAvLyBldmVudCBzeXN0ZW0gYnV0IG5vdCBuYXRpdmUgZXZlbnRzLiBTaG91bGQgcmVhZCB3aW5kb3cuZXZlbnQudHlwZSwgbGlrZVxuICAvLyB3ZSBkbyBmb3IgdXBkYXRlcyAoZ2V0Q3VycmVudEV2ZW50UHJpb3JpdHkpLlxuICB2YXIgdXBkYXRlUHJpb3JpdHkgPSBnZXRDdXJyZW50VXBkYXRlUHJpb3JpdHkkMSgpO1xuICB2YXIgcXVldWVkVGFyZ2V0ID0ge1xuICAgIGJsb2NrZWRPbjogbnVsbCxcbiAgICB0YXJnZXQ6IHRhcmdldCxcbiAgICBwcmlvcml0eTogdXBkYXRlUHJpb3JpdHlcbiAgfTtcbiAgdmFyIGkgPSAwO1xuXG4gIGZvciAoOyBpIDwgcXVldWVkRXhwbGljaXRIeWRyYXRpb25UYXJnZXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgLy8gU3RvcCBvbmNlIHdlIGhpdCB0aGUgZmlyc3QgdGFyZ2V0IHdpdGggbG93ZXIgcHJpb3JpdHkgdGhhblxuICAgIGlmICghaXNIaWdoZXJFdmVudFByaW9yaXR5KHVwZGF0ZVByaW9yaXR5LCBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHNbaV0ucHJpb3JpdHkpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHMuc3BsaWNlKGksIDAsIHF1ZXVlZFRhcmdldCk7XG5cbiAgaWYgKGkgPT09IDApIHtcbiAgICBhdHRlbXB0RXhwbGljaXRIeWRyYXRpb25UYXJnZXQocXVldWVkVGFyZ2V0KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50KHF1ZXVlZEV2ZW50KSB7XG4gIGlmIChxdWV1ZWRFdmVudC5ibG9ja2VkT24gIT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgdGFyZ2V0Q29udGFpbmVycyA9IHF1ZXVlZEV2ZW50LnRhcmdldENvbnRhaW5lcnM7XG5cbiAgd2hpbGUgKHRhcmdldENvbnRhaW5lcnMubGVuZ3RoID4gMCkge1xuICAgIHZhciB0YXJnZXRDb250YWluZXIgPSB0YXJnZXRDb250YWluZXJzWzBdO1xuICAgIHZhciBuZXh0QmxvY2tlZE9uID0gZmluZEluc3RhbmNlQmxvY2tpbmdFdmVudChxdWV1ZWRFdmVudC5kb21FdmVudE5hbWUsIHF1ZXVlZEV2ZW50LmV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgcXVldWVkRXZlbnQubmF0aXZlRXZlbnQpO1xuXG4gICAgaWYgKG5leHRCbG9ja2VkT24gPT09IG51bGwpIHtcbiAgICAgIHtcbiAgICAgICAgdmFyIG5hdGl2ZUV2ZW50ID0gcXVldWVkRXZlbnQubmF0aXZlRXZlbnQ7XG4gICAgICAgIHZhciBuYXRpdmVFdmVudENsb25lID0gbmV3IG5hdGl2ZUV2ZW50LmNvbnN0cnVjdG9yKG5hdGl2ZUV2ZW50LnR5cGUsIG5hdGl2ZUV2ZW50KTtcbiAgICAgICAgc2V0UmVwbGF5aW5nRXZlbnQobmF0aXZlRXZlbnRDbG9uZSk7XG4gICAgICAgIG5hdGl2ZUV2ZW50LnRhcmdldC5kaXNwYXRjaEV2ZW50KG5hdGl2ZUV2ZW50Q2xvbmUpO1xuICAgICAgICByZXNldFJlcGxheWluZ0V2ZW50KCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFdlJ3JlIHN0aWxsIGJsb2NrZWQuIFRyeSBhZ2FpbiBsYXRlci5cbiAgICAgIHZhciBfZmliZXIzID0gZ2V0SW5zdGFuY2VGcm9tTm9kZShuZXh0QmxvY2tlZE9uKTtcblxuICAgICAgaWYgKF9maWJlcjMgIT09IG51bGwpIHtcbiAgICAgICAgYXR0ZW1wdENvbnRpbnVvdXNIeWRyYXRpb24oX2ZpYmVyMyk7XG4gICAgICB9XG5cbiAgICAgIHF1ZXVlZEV2ZW50LmJsb2NrZWRPbiA9IG5leHRCbG9ja2VkT247XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSAvLyBUaGlzIHRhcmdldCBjb250YWluZXIgd2FzIHN1Y2Nlc3NmdWxseSBkaXNwYXRjaGVkLiBUcnkgdGhlIG5leHQuXG5cblxuICAgIHRhcmdldENvbnRhaW5lcnMuc2hpZnQoKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50SW5NYXAocXVldWVkRXZlbnQsIGtleSwgbWFwKSB7XG4gIGlmIChhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50KHF1ZXVlZEV2ZW50KSkge1xuICAgIG1hcC5kZWxldGUoa2V5KTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXBsYXlVbmJsb2NrZWRFdmVudHMoKSB7XG4gIGhhc1NjaGVkdWxlZFJlcGxheUF0dGVtcHQgPSBmYWxzZTtcblxuXG4gIGlmIChxdWV1ZWRGb2N1cyAhPT0gbnVsbCAmJiBhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50KHF1ZXVlZEZvY3VzKSkge1xuICAgIHF1ZXVlZEZvY3VzID0gbnVsbDtcbiAgfVxuXG4gIGlmIChxdWV1ZWREcmFnICE9PSBudWxsICYmIGF0dGVtcHRSZXBsYXlDb250aW51b3VzUXVldWVkRXZlbnQocXVldWVkRHJhZykpIHtcbiAgICBxdWV1ZWREcmFnID0gbnVsbDtcbiAgfVxuXG4gIGlmIChxdWV1ZWRNb3VzZSAhPT0gbnVsbCAmJiBhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50KHF1ZXVlZE1vdXNlKSkge1xuICAgIHF1ZXVlZE1vdXNlID0gbnVsbDtcbiAgfVxuXG4gIHF1ZXVlZFBvaW50ZXJzLmZvckVhY2goYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudEluTWFwKTtcbiAgcXVldWVkUG9pbnRlckNhcHR1cmVzLmZvckVhY2goYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudEluTWFwKTtcbn1cblxuZnVuY3Rpb24gc2NoZWR1bGVDYWxsYmFja0lmVW5ibG9ja2VkKHF1ZXVlZEV2ZW50LCB1bmJsb2NrZWQpIHtcbiAgaWYgKHF1ZXVlZEV2ZW50LmJsb2NrZWRPbiA9PT0gdW5ibG9ja2VkKSB7XG4gICAgcXVldWVkRXZlbnQuYmxvY2tlZE9uID0gbnVsbDtcblxuICAgIGlmICghaGFzU2NoZWR1bGVkUmVwbGF5QXR0ZW1wdCkge1xuICAgICAgaGFzU2NoZWR1bGVkUmVwbGF5QXR0ZW1wdCA9IHRydWU7IC8vIFNjaGVkdWxlIGEgY2FsbGJhY2sgdG8gYXR0ZW1wdCByZXBsYXlpbmcgYXMgbWFueSBldmVudHMgYXMgYXJlXG4gICAgICAvLyBub3cgdW5ibG9ja2VkLiBUaGlzIGZpcnN0IG1pZ2h0IG5vdCBhY3R1YWxseSBiZSB1bmJsb2NrZWQgeWV0LlxuICAgICAgLy8gV2UgY291bGQgY2hlY2sgaXQgZWFybHkgdG8gYXZvaWQgc2NoZWR1bGluZyBhbiB1bm5lY2Vzc2FyeSBjYWxsYmFjay5cblxuICAgICAgU2NoZWR1bGVyLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2soU2NoZWR1bGVyLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5LCByZXBsYXlVbmJsb2NrZWRFdmVudHMpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZXRyeUlmQmxvY2tlZE9uKHVuYmxvY2tlZCkge1xuICAvLyBNYXJrIGFueXRoaW5nIHRoYXQgd2FzIGJsb2NrZWQgb24gdGhpcyBhcyBubyBsb25nZXIgYmxvY2tlZFxuICAvLyBhbmQgZWxpZ2libGUgZm9yIGEgcmVwbGF5LlxuICBpZiAocXVldWVkRGlzY3JldGVFdmVudHMubGVuZ3RoID4gMCkge1xuICAgIHNjaGVkdWxlQ2FsbGJhY2tJZlVuYmxvY2tlZChxdWV1ZWREaXNjcmV0ZUV2ZW50c1swXSwgdW5ibG9ja2VkKTsgLy8gVGhpcyBpcyBhIGV4cG9uZW50aWFsIHNlYXJjaCBmb3IgZWFjaCBib3VuZGFyeSB0aGF0IGNvbW1pdHMuIEkgdGhpbmsgaXQnc1xuICAgIC8vIHdvcnRoIGl0IGJlY2F1c2Ugd2UgZXhwZWN0IHZlcnkgZmV3IGRpc2NyZXRlIGV2ZW50cyB0byBxdWV1ZSB1cCBhbmQgb25jZVxuICAgIC8vIHdlIGFyZSBhY3R1YWxseSBmdWxseSB1bmJsb2NrZWQgaXQgd2lsbCBiZSBmYXN0IHRvIHJlcGxheSB0aGVtLlxuXG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBxdWV1ZWREaXNjcmV0ZUV2ZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHF1ZXVlZEV2ZW50ID0gcXVldWVkRGlzY3JldGVFdmVudHNbaV07XG5cbiAgICAgIGlmIChxdWV1ZWRFdmVudC5ibG9ja2VkT24gPT09IHVuYmxvY2tlZCkge1xuICAgICAgICBxdWV1ZWRFdmVudC5ibG9ja2VkT24gPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChxdWV1ZWRGb2N1cyAhPT0gbnVsbCkge1xuICAgIHNjaGVkdWxlQ2FsbGJhY2tJZlVuYmxvY2tlZChxdWV1ZWRGb2N1cywgdW5ibG9ja2VkKTtcbiAgfVxuXG4gIGlmIChxdWV1ZWREcmFnICE9PSBudWxsKSB7XG4gICAgc2NoZWR1bGVDYWxsYmFja0lmVW5ibG9ja2VkKHF1ZXVlZERyYWcsIHVuYmxvY2tlZCk7XG4gIH1cblxuICBpZiAocXVldWVkTW91c2UgIT09IG51bGwpIHtcbiAgICBzY2hlZHVsZUNhbGxiYWNrSWZVbmJsb2NrZWQocXVldWVkTW91c2UsIHVuYmxvY2tlZCk7XG4gIH1cblxuICB2YXIgdW5ibG9jayA9IGZ1bmN0aW9uIChxdWV1ZWRFdmVudCkge1xuICAgIHJldHVybiBzY2hlZHVsZUNhbGxiYWNrSWZVbmJsb2NrZWQocXVldWVkRXZlbnQsIHVuYmxvY2tlZCk7XG4gIH07XG5cbiAgcXVldWVkUG9pbnRlcnMuZm9yRWFjaCh1bmJsb2NrKTtcbiAgcXVldWVkUG9pbnRlckNhcHR1cmVzLmZvckVhY2godW5ibG9jayk7XG5cbiAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IHF1ZXVlZEV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0cy5sZW5ndGg7IF9pKyspIHtcbiAgICB2YXIgcXVldWVkVGFyZ2V0ID0gcXVldWVkRXhwbGljaXRIeWRyYXRpb25UYXJnZXRzW19pXTtcblxuICAgIGlmIChxdWV1ZWRUYXJnZXQuYmxvY2tlZE9uID09PSB1bmJsb2NrZWQpIHtcbiAgICAgIHF1ZXVlZFRhcmdldC5ibG9ja2VkT24gPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHdoaWxlIChxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHMubGVuZ3RoID4gMCkge1xuICAgIHZhciBuZXh0RXhwbGljaXRUYXJnZXQgPSBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHNbMF07XG5cbiAgICBpZiAobmV4dEV4cGxpY2l0VGFyZ2V0LmJsb2NrZWRPbiAhPT0gbnVsbCkge1xuICAgICAgLy8gV2UncmUgc3RpbGwgYmxvY2tlZC5cbiAgICAgIGJyZWFrO1xuICAgIH0gZWxzZSB7XG4gICAgICBhdHRlbXB0RXhwbGljaXRIeWRyYXRpb25UYXJnZXQobmV4dEV4cGxpY2l0VGFyZ2V0KTtcblxuICAgICAgaWYgKG5leHRFeHBsaWNpdFRhcmdldC5ibG9ja2VkT24gPT09IG51bGwpIHtcbiAgICAgICAgLy8gV2UncmUgdW5ibG9ja2VkLlxuICAgICAgICBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHMuc2hpZnQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50QmF0Y2hDb25maWc7IC8vIFRPRE86IGNhbiB3ZSBzdG9wIGV4cG9ydGluZyB0aGVzZT9cblxudmFyIF9lbmFibGVkID0gdHJ1ZTsgLy8gVGhpcyBpcyBleHBvcnRlZCBpbiBGQiBidWlsZHMgZm9yIHVzZSBieSBsZWdhY3kgRkIgbGF5ZXIgaW5mcmEuXG4vLyBXZSdkIGxpa2UgdG8gcmVtb3ZlIHRoaXMgYnV0IGl0J3Mgbm90IGNsZWFyIGlmIHRoaXMgaXMgc2FmZS5cblxuZnVuY3Rpb24gc2V0RW5hYmxlZChlbmFibGVkKSB7XG4gIF9lbmFibGVkID0gISFlbmFibGVkO1xufVxuZnVuY3Rpb24gaXNFbmFibGVkKCkge1xuICByZXR1cm4gX2VuYWJsZWQ7XG59XG5mdW5jdGlvbiBjcmVhdGVFdmVudExpc3RlbmVyV3JhcHBlcldpdGhQcmlvcml0eSh0YXJnZXRDb250YWluZXIsIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncykge1xuICB2YXIgZXZlbnRQcmlvcml0eSA9IGdldEV2ZW50UHJpb3JpdHkoZG9tRXZlbnROYW1lKTtcbiAgdmFyIGxpc3RlbmVyV3JhcHBlcjtcblxuICBzd2l0Y2ggKGV2ZW50UHJpb3JpdHkpIHtcbiAgICBjYXNlIERpc2NyZXRlRXZlbnRQcmlvcml0eTpcbiAgICAgIGxpc3RlbmVyV3JhcHBlciA9IGRpc3BhdGNoRGlzY3JldGVFdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBDb250aW51b3VzRXZlbnRQcmlvcml0eTpcbiAgICAgIGxpc3RlbmVyV3JhcHBlciA9IGRpc3BhdGNoQ29udGludW91c0V2ZW50O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIERlZmF1bHRFdmVudFByaW9yaXR5OlxuICAgIGRlZmF1bHQ6XG4gICAgICBsaXN0ZW5lcldyYXBwZXIgPSBkaXNwYXRjaEV2ZW50O1xuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gbGlzdGVuZXJXcmFwcGVyLmJpbmQobnVsbCwgZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIpO1xufVxuXG5mdW5jdGlvbiBkaXNwYXRjaERpc2NyZXRlRXZlbnQoZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCBjb250YWluZXIsIG5hdGl2ZUV2ZW50KSB7XG4gIHZhciBwcmV2aW91c1ByaW9yaXR5ID0gZ2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KCk7XG4gIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb247XG4gIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb24gPSBudWxsO1xuXG4gIHRyeSB7XG4gICAgc2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KERpc2NyZXRlRXZlbnRQcmlvcml0eSk7XG4gICAgZGlzcGF0Y2hFdmVudChkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIGNvbnRhaW5lciwgbmF0aXZlRXZlbnQpO1xuICB9IGZpbmFsbHkge1xuICAgIHNldEN1cnJlbnRVcGRhdGVQcmlvcml0eShwcmV2aW91c1ByaW9yaXR5KTtcbiAgICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZy50cmFuc2l0aW9uID0gcHJldlRyYW5zaXRpb247XG4gIH1cbn1cblxuZnVuY3Rpb24gZGlzcGF0Y2hDb250aW51b3VzRXZlbnQoZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCBjb250YWluZXIsIG5hdGl2ZUV2ZW50KSB7XG4gIHZhciBwcmV2aW91c1ByaW9yaXR5ID0gZ2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KCk7XG4gIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb247XG4gIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb24gPSBudWxsO1xuXG4gIHRyeSB7XG4gICAgc2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KENvbnRpbnVvdXNFdmVudFByaW9yaXR5KTtcbiAgICBkaXNwYXRjaEV2ZW50KGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgY29udGFpbmVyLCBuYXRpdmVFdmVudCk7XG4gIH0gZmluYWxseSB7XG4gICAgc2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KHByZXZpb3VzUHJpb3JpdHkpO1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb24gPSBwcmV2VHJhbnNpdGlvbjtcbiAgfVxufVxuXG5mdW5jdGlvbiBkaXNwYXRjaEV2ZW50KGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCkge1xuICBpZiAoIV9lbmFibGVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAge1xuICAgIGRpc3BhdGNoRXZlbnRXaXRoRW5hYmxlQ2FwdHVyZVBoYXNlU2VsZWN0aXZlSHlkcmF0aW9uV2l0aG91dERpc2NyZXRlRXZlbnRSZXBsYXkoZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIsIG5hdGl2ZUV2ZW50KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBkaXNwYXRjaEV2ZW50V2l0aEVuYWJsZUNhcHR1cmVQaGFzZVNlbGVjdGl2ZUh5ZHJhdGlvbldpdGhvdXREaXNjcmV0ZUV2ZW50UmVwbGF5KGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCkge1xuICB2YXIgYmxvY2tlZE9uID0gZmluZEluc3RhbmNlQmxvY2tpbmdFdmVudChkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lciwgbmF0aXZlRXZlbnQpO1xuXG4gIGlmIChibG9ja2VkT24gPT09IG51bGwpIHtcbiAgICBkaXNwYXRjaEV2ZW50Rm9yUGx1Z2luRXZlbnRTeXN0ZW0oZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCBuYXRpdmVFdmVudCwgcmV0dXJuX3RhcmdldEluc3QsIHRhcmdldENvbnRhaW5lcik7XG4gICAgY2xlYXJJZkNvbnRpbnVvdXNFdmVudChkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAocXVldWVJZkNvbnRpbnVvdXNFdmVudChibG9ja2VkT24sIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCkpIHtcbiAgICBuYXRpdmVFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICByZXR1cm47XG4gIH0gLy8gV2UgbmVlZCB0byBjbGVhciBvbmx5IGlmIHdlIGRpZG4ndCBxdWV1ZSBiZWNhdXNlXG4gIC8vIHF1ZXVlaW5nIGlzIGFjY3VtdWxhdGl2ZS5cblxuXG4gIGNsZWFySWZDb250aW51b3VzRXZlbnQoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCk7XG5cbiAgaWYgKGV2ZW50U3lzdGVtRmxhZ3MgJiBJU19DQVBUVVJFX1BIQVNFICYmIGlzRGlzY3JldGVFdmVudFRoYXRSZXF1aXJlc0h5ZHJhdGlvbihkb21FdmVudE5hbWUpKSB7XG4gICAgd2hpbGUgKGJsb2NrZWRPbiAhPT0gbnVsbCkge1xuICAgICAgdmFyIGZpYmVyID0gZ2V0SW5zdGFuY2VGcm9tTm9kZShibG9ja2VkT24pO1xuXG4gICAgICBpZiAoZmliZXIgIT09IG51bGwpIHtcbiAgICAgICAgYXR0ZW1wdFN5bmNocm9ub3VzSHlkcmF0aW9uKGZpYmVyKTtcbiAgICAgIH1cblxuICAgICAgdmFyIG5leHRCbG9ja2VkT24gPSBmaW5kSW5zdGFuY2VCbG9ja2luZ0V2ZW50KGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyLCBuYXRpdmVFdmVudCk7XG5cbiAgICAgIGlmIChuZXh0QmxvY2tlZE9uID09PSBudWxsKSB7XG4gICAgICAgIGRpc3BhdGNoRXZlbnRGb3JQbHVnaW5FdmVudFN5c3RlbShkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIG5hdGl2ZUV2ZW50LCByZXR1cm5fdGFyZ2V0SW5zdCwgdGFyZ2V0Q29udGFpbmVyKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5leHRCbG9ja2VkT24gPT09IGJsb2NrZWRPbikge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgYmxvY2tlZE9uID0gbmV4dEJsb2NrZWRPbjtcbiAgICB9XG5cbiAgICBpZiAoYmxvY2tlZE9uICE9PSBudWxsKSB7XG4gICAgICBuYXRpdmVFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH0gLy8gVGhpcyBpcyBub3QgcmVwbGF5YWJsZSBzbyB3ZSdsbCBpbnZva2UgaXQgYnV0IHdpdGhvdXQgYSB0YXJnZXQsXG4gIC8vIGluIGNhc2UgdGhlIGV2ZW50IHN5c3RlbSBuZWVkcyB0byB0cmFjZSBpdC5cblxuXG4gIGRpc3BhdGNoRXZlbnRGb3JQbHVnaW5FdmVudFN5c3RlbShkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIG5hdGl2ZUV2ZW50LCBudWxsLCB0YXJnZXRDb250YWluZXIpO1xufVxuXG52YXIgcmV0dXJuX3RhcmdldEluc3QgPSBudWxsOyAvLyBSZXR1cm5zIGEgU3VzcGVuc2VJbnN0YW5jZSBvciBDb250YWluZXIgaWYgaXQncyBibG9ja2VkLlxuLy8gVGhlIHJldHVybl90YXJnZXRJbnN0IGZpZWxkIGFib3ZlIGlzIGNvbmNlcHR1YWxseSBwYXJ0IG9mIHRoZSByZXR1cm4gdmFsdWUuXG5cbmZ1bmN0aW9uIGZpbmRJbnN0YW5jZUJsb2NraW5nRXZlbnQoZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIsIG5hdGl2ZUV2ZW50KSB7XG4gIC8vIFRPRE86IFdhcm4gaWYgX2VuYWJsZWQgaXMgZmFsc2UuXG4gIHJldHVybl90YXJnZXRJbnN0ID0gbnVsbDtcbiAgdmFyIG5hdGl2ZUV2ZW50VGFyZ2V0ID0gZ2V0RXZlbnRUYXJnZXQobmF0aXZlRXZlbnQpO1xuICB2YXIgdGFyZ2V0SW5zdCA9IGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlKG5hdGl2ZUV2ZW50VGFyZ2V0KTtcblxuICBpZiAodGFyZ2V0SW5zdCAhPT0gbnVsbCkge1xuICAgIHZhciBuZWFyZXN0TW91bnRlZCA9IGdldE5lYXJlc3RNb3VudGVkRmliZXIodGFyZ2V0SW5zdCk7XG5cbiAgICBpZiAobmVhcmVzdE1vdW50ZWQgPT09IG51bGwpIHtcbiAgICAgIC8vIFRoaXMgdHJlZSBoYXMgYmVlbiB1bm1vdW50ZWQgYWxyZWFkeS4gRGlzcGF0Y2ggd2l0aG91dCBhIHRhcmdldC5cbiAgICAgIHRhcmdldEluc3QgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgdGFnID0gbmVhcmVzdE1vdW50ZWQudGFnO1xuXG4gICAgICBpZiAodGFnID09PSBTdXNwZW5zZUNvbXBvbmVudCkge1xuICAgICAgICB2YXIgaW5zdGFuY2UgPSBnZXRTdXNwZW5zZUluc3RhbmNlRnJvbUZpYmVyKG5lYXJlc3RNb3VudGVkKTtcblxuICAgICAgICBpZiAoaW5zdGFuY2UgIT09IG51bGwpIHtcbiAgICAgICAgICAvLyBRdWV1ZSB0aGUgZXZlbnQgdG8gYmUgcmVwbGF5ZWQgbGF0ZXIuIEFib3J0IGRpc3BhdGNoaW5nIHNpbmNlIHdlXG4gICAgICAgICAgLy8gZG9uJ3Qgd2FudCB0aGlzIGV2ZW50IGRpc3BhdGNoZWQgdHdpY2UgdGhyb3VnaCB0aGUgZXZlbnQgc3lzdGVtLlxuICAgICAgICAgIC8vIFRPRE86IElmIHRoaXMgaXMgdGhlIGZpcnN0IGRpc2NyZXRlIGV2ZW50IGluIHRoZSBxdWV1ZS4gU2NoZWR1bGUgYW4gaW5jcmVhc2VkXG4gICAgICAgICAgLy8gcHJpb3JpdHkgZm9yIHRoaXMgYm91bmRhcnkuXG4gICAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgICAgICB9IC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbiwgc29tZXRoaW5nIHdlbnQgd3JvbmcgYnV0IHRvIGF2b2lkIGJsb2NraW5nXG4gICAgICAgIC8vIHRoZSB3aG9sZSBzeXN0ZW0sIGRpc3BhdGNoIHRoZSBldmVudCB3aXRob3V0IGEgdGFyZ2V0LlxuICAgICAgICAvLyBUT0RPOiBXYXJuLlxuXG5cbiAgICAgICAgdGFyZ2V0SW5zdCA9IG51bGw7XG4gICAgICB9IGVsc2UgaWYgKHRhZyA9PT0gSG9zdFJvb3QpIHtcbiAgICAgICAgdmFyIHJvb3QgPSBuZWFyZXN0TW91bnRlZC5zdGF0ZU5vZGU7XG5cbiAgICAgICAgaWYgKGlzUm9vdERlaHlkcmF0ZWQocm9vdCkpIHtcbiAgICAgICAgICAvLyBJZiB0aGlzIGhhcHBlbnMgZHVyaW5nIGEgcmVwbGF5IHNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCBpdCBtaWdodCBibG9ja1xuICAgICAgICAgIC8vIHRoZSB3aG9sZSBzeXN0ZW0uXG4gICAgICAgICAgcmV0dXJuIGdldENvbnRhaW5lckZyb21GaWJlcihuZWFyZXN0TW91bnRlZCk7XG4gICAgICAgIH1cblxuICAgICAgICB0YXJnZXRJbnN0ID0gbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAobmVhcmVzdE1vdW50ZWQgIT09IHRhcmdldEluc3QpIHtcbiAgICAgICAgLy8gSWYgd2UgZ2V0IGFuIGV2ZW50IChleDogaW1nIG9ubG9hZCkgYmVmb3JlIGNvbW1pdHRpbmcgdGhhdFxuICAgICAgICAvLyBjb21wb25lbnQncyBtb3VudCwgaWdub3JlIGl0IGZvciBub3cgKHRoYXQgaXMsIHRyZWF0IGl0IGFzIGlmIGl0IHdhcyBhblxuICAgICAgICAvLyBldmVudCBvbiBhIG5vbi1SZWFjdCB0cmVlKS4gV2UgbWlnaHQgYWxzbyBjb25zaWRlciBxdWV1ZWluZyBldmVudHMgYW5kXG4gICAgICAgIC8vIGRpc3BhdGNoaW5nIHRoZW0gYWZ0ZXIgdGhlIG1vdW50LlxuICAgICAgICB0YXJnZXRJbnN0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm5fdGFyZ2V0SW5zdCA9IHRhcmdldEluc3Q7IC8vIFdlJ3JlIG5vdCBibG9ja2VkIG9uIGFueXRoaW5nLlxuXG4gIHJldHVybiBudWxsO1xufVxuZnVuY3Rpb24gZ2V0RXZlbnRQcmlvcml0eShkb21FdmVudE5hbWUpIHtcbiAgc3dpdGNoIChkb21FdmVudE5hbWUpIHtcbiAgICAvLyBVc2VkIGJ5IFNpbXBsZUV2ZW50UGx1Z2luOlxuICAgIGNhc2UgJ2NhbmNlbCc6XG4gICAgY2FzZSAnY2xpY2snOlxuICAgIGNhc2UgJ2Nsb3NlJzpcbiAgICBjYXNlICdjb250ZXh0bWVudSc6XG4gICAgY2FzZSAnY29weSc6XG4gICAgY2FzZSAnY3V0JzpcbiAgICBjYXNlICdhdXhjbGljayc6XG4gICAgY2FzZSAnZGJsY2xpY2snOlxuICAgIGNhc2UgJ2RyYWdlbmQnOlxuICAgIGNhc2UgJ2RyYWdzdGFydCc6XG4gICAgY2FzZSAnZHJvcCc6XG4gICAgY2FzZSAnZm9jdXNpbic6XG4gICAgY2FzZSAnZm9jdXNvdXQnOlxuICAgIGNhc2UgJ2lucHV0JzpcbiAgICBjYXNlICdpbnZhbGlkJzpcbiAgICBjYXNlICdrZXlkb3duJzpcbiAgICBjYXNlICdrZXlwcmVzcyc6XG4gICAgY2FzZSAna2V5dXAnOlxuICAgIGNhc2UgJ21vdXNlZG93bic6XG4gICAgY2FzZSAnbW91c2V1cCc6XG4gICAgY2FzZSAncGFzdGUnOlxuICAgIGNhc2UgJ3BhdXNlJzpcbiAgICBjYXNlICdwbGF5JzpcbiAgICBjYXNlICdwb2ludGVyY2FuY2VsJzpcbiAgICBjYXNlICdwb2ludGVyZG93bic6XG4gICAgY2FzZSAncG9pbnRlcnVwJzpcbiAgICBjYXNlICdyYXRlY2hhbmdlJzpcbiAgICBjYXNlICdyZXNldCc6XG4gICAgY2FzZSAncmVzaXplJzpcbiAgICBjYXNlICdzZWVrZWQnOlxuICAgIGNhc2UgJ3N1Ym1pdCc6XG4gICAgY2FzZSAndG91Y2hjYW5jZWwnOlxuICAgIGNhc2UgJ3RvdWNoZW5kJzpcbiAgICBjYXNlICd0b3VjaHN0YXJ0JzpcbiAgICBjYXNlICd2b2x1bWVjaGFuZ2UnOiAvLyBVc2VkIGJ5IHBvbHlmaWxsczpcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcblxuICAgIGNhc2UgJ2NoYW5nZSc6XG4gICAgY2FzZSAnc2VsZWN0aW9uY2hhbmdlJzpcbiAgICBjYXNlICd0ZXh0SW5wdXQnOlxuICAgIGNhc2UgJ2NvbXBvc2l0aW9uc3RhcnQnOlxuICAgIGNhc2UgJ2NvbXBvc2l0aW9uZW5kJzpcbiAgICBjYXNlICdjb21wb3NpdGlvbnVwZGF0ZSc6IC8vIE9ubHkgZW5hYmxlQ3JlYXRlRXZlbnRIYW5kbGVBUEk6XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWZhbGx0aHJvdWdoXG5cbiAgICBjYXNlICdiZWZvcmVibHVyJzpcbiAgICBjYXNlICdhZnRlcmJsdXInOiAvLyBOb3QgdXNlZCBieSBSZWFjdCBidXQgY291bGQgYmUgYnkgdXNlciBjb2RlOlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuXG4gICAgY2FzZSAnYmVmb3JlaW5wdXQnOlxuICAgIGNhc2UgJ2JsdXInOlxuICAgIGNhc2UgJ2Z1bGxzY3JlZW5jaGFuZ2UnOlxuICAgIGNhc2UgJ2ZvY3VzJzpcbiAgICBjYXNlICdoYXNoY2hhbmdlJzpcbiAgICBjYXNlICdwb3BzdGF0ZSc6XG4gICAgY2FzZSAnc2VsZWN0JzpcbiAgICBjYXNlICdzZWxlY3RzdGFydCc6XG4gICAgICByZXR1cm4gRGlzY3JldGVFdmVudFByaW9yaXR5O1xuXG4gICAgY2FzZSAnZHJhZyc6XG4gICAgY2FzZSAnZHJhZ2VudGVyJzpcbiAgICBjYXNlICdkcmFnZXhpdCc6XG4gICAgY2FzZSAnZHJhZ2xlYXZlJzpcbiAgICBjYXNlICdkcmFnb3Zlcic6XG4gICAgY2FzZSAnbW91c2Vtb3ZlJzpcbiAgICBjYXNlICdtb3VzZW91dCc6XG4gICAgY2FzZSAnbW91c2VvdmVyJzpcbiAgICBjYXNlICdwb2ludGVybW92ZSc6XG4gICAgY2FzZSAncG9pbnRlcm91dCc6XG4gICAgY2FzZSAncG9pbnRlcm92ZXInOlxuICAgIGNhc2UgJ3Njcm9sbCc6XG4gICAgY2FzZSAndG9nZ2xlJzpcbiAgICBjYXNlICd0b3VjaG1vdmUnOlxuICAgIGNhc2UgJ3doZWVsJzogLy8gTm90IHVzZWQgYnkgUmVhY3QgYnV0IGNvdWxkIGJlIGJ5IHVzZXIgY29kZTpcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcblxuICAgIGNhc2UgJ21vdXNlZW50ZXInOlxuICAgIGNhc2UgJ21vdXNlbGVhdmUnOlxuICAgIGNhc2UgJ3BvaW50ZXJlbnRlcic6XG4gICAgY2FzZSAncG9pbnRlcmxlYXZlJzpcbiAgICAgIHJldHVybiBDb250aW51b3VzRXZlbnRQcmlvcml0eTtcblxuICAgIGNhc2UgJ21lc3NhZ2UnOlxuICAgICAge1xuICAgICAgICAvLyBXZSBtaWdodCBiZSBpbiB0aGUgU2NoZWR1bGVyIGNhbGxiYWNrLlxuICAgICAgICAvLyBFdmVudHVhbGx5IHRoaXMgbWVjaGFuaXNtIHdpbGwgYmUgcmVwbGFjZWQgYnkgYSBjaGVja1xuICAgICAgICAvLyBvZiB0aGUgY3VycmVudCBwcmlvcml0eSBvbiB0aGUgbmF0aXZlIHNjaGVkdWxlci5cbiAgICAgICAgdmFyIHNjaGVkdWxlclByaW9yaXR5ID0gZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwoKTtcblxuICAgICAgICBzd2l0Y2ggKHNjaGVkdWxlclByaW9yaXR5KSB7XG4gICAgICAgICAgY2FzZSBJbW1lZGlhdGVQcmlvcml0eTpcbiAgICAgICAgICAgIHJldHVybiBEaXNjcmV0ZUV2ZW50UHJpb3JpdHk7XG5cbiAgICAgICAgICBjYXNlIFVzZXJCbG9ja2luZ1ByaW9yaXR5OlxuICAgICAgICAgICAgcmV0dXJuIENvbnRpbnVvdXNFdmVudFByaW9yaXR5O1xuXG4gICAgICAgICAgY2FzZSBOb3JtYWxQcmlvcml0eTpcbiAgICAgICAgICBjYXNlIExvd1ByaW9yaXR5OlxuICAgICAgICAgICAgLy8gVE9ETzogSGFuZGxlIExvd1NjaGVkdWxlclByaW9yaXR5LCBzb21laG93LiBNYXliZSB0aGUgc2FtZSBsYW5lIGFzIGh5ZHJhdGlvbi5cbiAgICAgICAgICAgIHJldHVybiBEZWZhdWx0RXZlbnRQcmlvcml0eTtcblxuICAgICAgICAgIGNhc2UgSWRsZVByaW9yaXR5OlxuICAgICAgICAgICAgcmV0dXJuIElkbGVFdmVudFByaW9yaXR5O1xuXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBEZWZhdWx0RXZlbnRQcmlvcml0eTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBEZWZhdWx0RXZlbnRQcmlvcml0eTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhZGRFdmVudEJ1YmJsZUxpc3RlbmVyKHRhcmdldCwgZXZlbnRUeXBlLCBsaXN0ZW5lcikge1xuICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGxpc3RlbmVyLCBmYWxzZSk7XG4gIHJldHVybiBsaXN0ZW5lcjtcbn1cbmZ1bmN0aW9uIGFkZEV2ZW50Q2FwdHVyZUxpc3RlbmVyKHRhcmdldCwgZXZlbnRUeXBlLCBsaXN0ZW5lcikge1xuICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGxpc3RlbmVyLCB0cnVlKTtcbiAgcmV0dXJuIGxpc3RlbmVyO1xufVxuZnVuY3Rpb24gYWRkRXZlbnRDYXB0dXJlTGlzdGVuZXJXaXRoUGFzc2l2ZUZsYWcodGFyZ2V0LCBldmVudFR5cGUsIGxpc3RlbmVyLCBwYXNzaXZlKSB7XG4gIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIsIHtcbiAgICBjYXB0dXJlOiB0cnVlLFxuICAgIHBhc3NpdmU6IHBhc3NpdmVcbiAgfSk7XG4gIHJldHVybiBsaXN0ZW5lcjtcbn1cbmZ1bmN0aW9uIGFkZEV2ZW50QnViYmxlTGlzdGVuZXJXaXRoUGFzc2l2ZUZsYWcodGFyZ2V0LCBldmVudFR5cGUsIGxpc3RlbmVyLCBwYXNzaXZlKSB7XG4gIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIsIHtcbiAgICBwYXNzaXZlOiBwYXNzaXZlXG4gIH0pO1xuICByZXR1cm4gbGlzdGVuZXI7XG59XG5cbi8qKlxuICogVGhlc2UgdmFyaWFibGVzIHN0b3JlIGluZm9ybWF0aW9uIGFib3V0IHRleHQgY29udGVudCBvZiBhIHRhcmdldCBub2RlLFxuICogYWxsb3dpbmcgY29tcGFyaXNvbiBvZiBjb250ZW50IGJlZm9yZSBhbmQgYWZ0ZXIgYSBnaXZlbiBldmVudC5cbiAqXG4gKiBJZGVudGlmeSB0aGUgbm9kZSB3aGVyZSBzZWxlY3Rpb24gY3VycmVudGx5IGJlZ2lucywgdGhlbiBvYnNlcnZlXG4gKiBib3RoIGl0cyB0ZXh0IGNvbnRlbnQgYW5kIGl0cyBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBET00uIFNpbmNlIHRoZVxuICogYnJvd3NlciBtYXkgbmF0aXZlbHkgcmVwbGFjZSB0aGUgdGFyZ2V0IG5vZGUgZHVyaW5nIGNvbXBvc2l0aW9uLCB3ZSBjYW5cbiAqIHVzZSBpdHMgcG9zaXRpb24gdG8gZmluZCBpdHMgcmVwbGFjZW1lbnQuXG4gKlxuICpcbiAqL1xudmFyIHJvb3QgPSBudWxsO1xudmFyIHN0YXJ0VGV4dCA9IG51bGw7XG52YXIgZmFsbGJhY2tUZXh0ID0gbnVsbDtcbmZ1bmN0aW9uIGluaXRpYWxpemUobmF0aXZlRXZlbnRUYXJnZXQpIHtcbiAgcm9vdCA9IG5hdGl2ZUV2ZW50VGFyZ2V0O1xuICBzdGFydFRleHQgPSBnZXRUZXh0KCk7XG4gIHJldHVybiB0cnVlO1xufVxuZnVuY3Rpb24gcmVzZXQoKSB7XG4gIHJvb3QgPSBudWxsO1xuICBzdGFydFRleHQgPSBudWxsO1xuICBmYWxsYmFja1RleHQgPSBudWxsO1xufVxuZnVuY3Rpb24gZ2V0RGF0YSgpIHtcbiAgaWYgKGZhbGxiYWNrVGV4dCkge1xuICAgIHJldHVybiBmYWxsYmFja1RleHQ7XG4gIH1cblxuICB2YXIgc3RhcnQ7XG4gIHZhciBzdGFydFZhbHVlID0gc3RhcnRUZXh0O1xuICB2YXIgc3RhcnRMZW5ndGggPSBzdGFydFZhbHVlLmxlbmd0aDtcbiAgdmFyIGVuZDtcbiAgdmFyIGVuZFZhbHVlID0gZ2V0VGV4dCgpO1xuICB2YXIgZW5kTGVuZ3RoID0gZW5kVmFsdWUubGVuZ3RoO1xuXG4gIGZvciAoc3RhcnQgPSAwOyBzdGFydCA8IHN0YXJ0TGVuZ3RoOyBzdGFydCsrKSB7XG4gICAgaWYgKHN0YXJ0VmFsdWVbc3RhcnRdICE9PSBlbmRWYWx1ZVtzdGFydF0pIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHZhciBtaW5FbmQgPSBzdGFydExlbmd0aCAtIHN0YXJ0O1xuXG4gIGZvciAoZW5kID0gMTsgZW5kIDw9IG1pbkVuZDsgZW5kKyspIHtcbiAgICBpZiAoc3RhcnRWYWx1ZVtzdGFydExlbmd0aCAtIGVuZF0gIT09IGVuZFZhbHVlW2VuZExlbmd0aCAtIGVuZF0pIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHZhciBzbGljZVRhaWwgPSBlbmQgPiAxID8gMSAtIGVuZCA6IHVuZGVmaW5lZDtcbiAgZmFsbGJhY2tUZXh0ID0gZW5kVmFsdWUuc2xpY2Uoc3RhcnQsIHNsaWNlVGFpbCk7XG4gIHJldHVybiBmYWxsYmFja1RleHQ7XG59XG5mdW5jdGlvbiBnZXRUZXh0KCkge1xuICBpZiAoJ3ZhbHVlJyBpbiByb290KSB7XG4gICAgcmV0dXJuIHJvb3QudmFsdWU7XG4gIH1cblxuICByZXR1cm4gcm9vdC50ZXh0Q29udGVudDtcbn1cblxuLyoqXG4gKiBgY2hhckNvZGVgIHJlcHJlc2VudHMgdGhlIGFjdHVhbCBcImNoYXJhY3RlciBjb2RlXCIgYW5kIGlzIHNhZmUgdG8gdXNlIHdpdGhcbiAqIGBTdHJpbmcuZnJvbUNoYXJDb2RlYC4gQXMgc3VjaCwgb25seSBrZXlzIHRoYXQgY29ycmVzcG9uZCB0byBwcmludGFibGVcbiAqIGNoYXJhY3RlcnMgcHJvZHVjZSBhIHZhbGlkIGBjaGFyQ29kZWAsIHRoZSBvbmx5IGV4Y2VwdGlvbiB0byB0aGlzIGlzIEVudGVyLlxuICogVGhlIFRhYi1rZXkgaXMgY29uc2lkZXJlZCBub24tcHJpbnRhYmxlIGFuZCBkb2VzIG5vdCBoYXZlIGEgYGNoYXJDb2RlYCxcbiAqIHByZXN1bWFibHkgYmVjYXVzZSBpdCBkb2VzIG5vdCBwcm9kdWNlIGEgdGFiLWNoYXJhY3RlciBpbiBicm93c2Vycy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IE5vcm1hbGl6ZWQgYGNoYXJDb2RlYCBwcm9wZXJ0eS5cbiAqL1xuZnVuY3Rpb24gZ2V0RXZlbnRDaGFyQ29kZShuYXRpdmVFdmVudCkge1xuICB2YXIgY2hhckNvZGU7XG4gIHZhciBrZXlDb2RlID0gbmF0aXZlRXZlbnQua2V5Q29kZTtcblxuICBpZiAoJ2NoYXJDb2RlJyBpbiBuYXRpdmVFdmVudCkge1xuICAgIGNoYXJDb2RlID0gbmF0aXZlRXZlbnQuY2hhckNvZGU7IC8vIEZGIGRvZXMgbm90IHNldCBgY2hhckNvZGVgIGZvciB0aGUgRW50ZXIta2V5LCBjaGVjayBhZ2FpbnN0IGBrZXlDb2RlYC5cblxuICAgIGlmIChjaGFyQ29kZSA9PT0gMCAmJiBrZXlDb2RlID09PSAxMykge1xuICAgICAgY2hhckNvZGUgPSAxMztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gSUU4IGRvZXMgbm90IGltcGxlbWVudCBgY2hhckNvZGVgLCBidXQgYGtleUNvZGVgIGhhcyB0aGUgY29ycmVjdCB2YWx1ZS5cbiAgICBjaGFyQ29kZSA9IGtleUNvZGU7XG4gIH0gLy8gSUUgYW5kIEVkZ2UgKG9uIFdpbmRvd3MpIGFuZCBDaHJvbWUgLyBTYWZhcmkgKG9uIFdpbmRvd3MgYW5kIExpbnV4KVxuICAvLyByZXBvcnQgRW50ZXIgYXMgY2hhckNvZGUgMTAgd2hlbiBjdHJsIGlzIHByZXNzZWQuXG5cblxuICBpZiAoY2hhckNvZGUgPT09IDEwKSB7XG4gICAgY2hhckNvZGUgPSAxMztcbiAgfSAvLyBTb21lIG5vbi1wcmludGFibGUga2V5cyBhcmUgcmVwb3J0ZWQgaW4gYGNoYXJDb2RlYC9ga2V5Q29kZWAsIGRpc2NhcmQgdGhlbS5cbiAgLy8gTXVzdCBub3QgZGlzY2FyZCB0aGUgKG5vbi0pcHJpbnRhYmxlIEVudGVyLWtleS5cblxuXG4gIGlmIChjaGFyQ29kZSA+PSAzMiB8fCBjaGFyQ29kZSA9PT0gMTMpIHtcbiAgICByZXR1cm4gY2hhckNvZGU7XG4gIH1cblxuICByZXR1cm4gMDtcbn1cblxuZnVuY3Rpb24gZnVuY3Rpb25UaGF0UmV0dXJuc1RydWUoKSB7XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBmdW5jdGlvblRoYXRSZXR1cm5zRmFsc2UoKSB7XG4gIHJldHVybiBmYWxzZTtcbn0gLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGEgZmFjdG9yeSBzbyB0aGF0IHdlIGhhdmUgZGlmZmVyZW50IHJldHVybmVkIGNvbnN0cnVjdG9ycy5cbi8vIElmIHdlIGhhZCBhIHNpbmdsZSBjb25zdHJ1Y3RvciwgaXQgd291bGQgYmUgbWVnYW1vcnBoaWMgYW5kIGVuZ2luZXMgd291bGQgZGVvcHQuXG5cblxuZnVuY3Rpb24gY3JlYXRlU3ludGhldGljRXZlbnQoSW50ZXJmYWNlKSB7XG4gIC8qKlxuICAgKiBTeW50aGV0aWMgZXZlbnRzIGFyZSBkaXNwYXRjaGVkIGJ5IGV2ZW50IHBsdWdpbnMsIHR5cGljYWxseSBpbiByZXNwb25zZSB0byBhXG4gICAqIHRvcC1sZXZlbCBldmVudCBkZWxlZ2F0aW9uIGhhbmRsZXIuXG4gICAqXG4gICAqIFRoZXNlIHN5c3RlbXMgc2hvdWxkIGdlbmVyYWxseSB1c2UgcG9vbGluZyB0byByZWR1Y2UgdGhlIGZyZXF1ZW5jeSBvZiBnYXJiYWdlXG4gICAqIGNvbGxlY3Rpb24uIFRoZSBzeXN0ZW0gc2hvdWxkIGNoZWNrIGBpc1BlcnNpc3RlbnRgIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZVxuICAgKiBldmVudCBzaG91bGQgYmUgcmVsZWFzZWQgaW50byB0aGUgcG9vbCBhZnRlciBiZWluZyBkaXNwYXRjaGVkLiBVc2VycyB0aGF0XG4gICAqIG5lZWQgYSBwZXJzaXN0ZWQgZXZlbnQgc2hvdWxkIGludm9rZSBgcGVyc2lzdGAuXG4gICAqXG4gICAqIFN5bnRoZXRpYyBldmVudHMgKGFuZCBzdWJjbGFzc2VzKSBpbXBsZW1lbnQgdGhlIERPTSBMZXZlbCAzIEV2ZW50cyBBUEkgYnlcbiAgICogbm9ybWFsaXppbmcgYnJvd3NlciBxdWlya3MuIFN1YmNsYXNzZXMgZG8gbm90IG5lY2Vzc2FyaWx5IGhhdmUgdG8gaW1wbGVtZW50IGFcbiAgICogRE9NIGludGVyZmFjZTsgY3VzdG9tIGFwcGxpY2F0aW9uLXNwZWNpZmljIGV2ZW50cyBjYW4gYWxzbyBzdWJjbGFzcyB0aGlzLlxuICAgKi9cbiAgZnVuY3Rpb24gU3ludGhldGljQmFzZUV2ZW50KHJlYWN0TmFtZSwgcmVhY3RFdmVudFR5cGUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkge1xuICAgIHRoaXMuX3JlYWN0TmFtZSA9IHJlYWN0TmFtZTtcbiAgICB0aGlzLl90YXJnZXRJbnN0ID0gdGFyZ2V0SW5zdDtcbiAgICB0aGlzLnR5cGUgPSByZWFjdEV2ZW50VHlwZTtcbiAgICB0aGlzLm5hdGl2ZUV2ZW50ID0gbmF0aXZlRXZlbnQ7XG4gICAgdGhpcy50YXJnZXQgPSBuYXRpdmVFdmVudFRhcmdldDtcbiAgICB0aGlzLmN1cnJlbnRUYXJnZXQgPSBudWxsO1xuXG4gICAgZm9yICh2YXIgX3Byb3BOYW1lIGluIEludGVyZmFjZSkge1xuICAgICAgaWYgKCFJbnRlcmZhY2UuaGFzT3duUHJvcGVydHkoX3Byb3BOYW1lKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgdmFyIG5vcm1hbGl6ZSA9IEludGVyZmFjZVtfcHJvcE5hbWVdO1xuXG4gICAgICBpZiAobm9ybWFsaXplKSB7XG4gICAgICAgIHRoaXNbX3Byb3BOYW1lXSA9IG5vcm1hbGl6ZShuYXRpdmVFdmVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzW19wcm9wTmFtZV0gPSBuYXRpdmVFdmVudFtfcHJvcE5hbWVdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBkZWZhdWx0UHJldmVudGVkID0gbmF0aXZlRXZlbnQuZGVmYXVsdFByZXZlbnRlZCAhPSBudWxsID8gbmF0aXZlRXZlbnQuZGVmYXVsdFByZXZlbnRlZCA6IG5hdGl2ZUV2ZW50LnJldHVyblZhbHVlID09PSBmYWxzZTtcblxuICAgIGlmIChkZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICB0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IGZ1bmN0aW9uVGhhdFJldHVybnNUcnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IGZ1bmN0aW9uVGhhdFJldHVybnNGYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkID0gZnVuY3Rpb25UaGF0UmV0dXJuc0ZhbHNlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYXNzaWduKFN5bnRoZXRpY0Jhc2VFdmVudC5wcm90b3R5cGUsIHtcbiAgICBwcmV2ZW50RGVmYXVsdDogZnVuY3Rpb24gKCkge1xuICAgICAgdGhpcy5kZWZhdWx0UHJldmVudGVkID0gdHJ1ZTtcbiAgICAgIHZhciBldmVudCA9IHRoaXMubmF0aXZlRXZlbnQ7XG5cbiAgICAgIGlmICghZXZlbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXZlbnQucHJldmVudERlZmF1bHQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8gJEZsb3dGaXhNZSAtIGZsb3cgaXMgbm90IGF3YXJlIG9mIGB1bmtub3duYCBpbiBJRVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZXZlbnQucmV0dXJuVmFsdWUgIT09ICd1bmtub3duJykge1xuICAgICAgICBldmVudC5yZXR1cm5WYWx1ZSA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IGZ1bmN0aW9uVGhhdFJldHVybnNUcnVlO1xuICAgIH0sXG4gICAgc3RvcFByb3BhZ2F0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgZXZlbnQgPSB0aGlzLm5hdGl2ZUV2ZW50O1xuXG4gICAgICBpZiAoIWV2ZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGV2ZW50LnN0b3BQcm9wYWdhdGlvbikge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgLy8gJEZsb3dGaXhNZSAtIGZsb3cgaXMgbm90IGF3YXJlIG9mIGB1bmtub3duYCBpbiBJRVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZXZlbnQuY2FuY2VsQnViYmxlICE9PSAndW5rbm93bicpIHtcbiAgICAgICAgLy8gVGhlIENoYW5nZUV2ZW50UGx1Z2luIHJlZ2lzdGVycyBhIFwicHJvcGVydHljaGFuZ2VcIiBldmVudCBmb3JcbiAgICAgICAgLy8gSUUuIFRoaXMgZXZlbnQgZG9lcyBub3Qgc3VwcG9ydCBidWJibGluZyBvciBjYW5jZWxsaW5nLCBhbmRcbiAgICAgICAgLy8gYW55IHJlZmVyZW5jZXMgdG8gY2FuY2VsQnViYmxlIHRocm93IFwiTWVtYmVyIG5vdCBmb3VuZFwiLiAgQVxuICAgICAgICAvLyB0eXBlb2YgY2hlY2sgb2YgXCJ1bmtub3duXCIgY2lyY3VtdmVudHMgdGhpcyBpc3N1ZSAoYW5kIGlzIGFsc29cbiAgICAgICAgLy8gSUUgc3BlY2lmaWMpLlxuICAgICAgICBldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkID0gZnVuY3Rpb25UaGF0UmV0dXJuc1RydWU7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIFdlIHJlbGVhc2UgYWxsIGRpc3BhdGNoZWQgYFN5bnRoZXRpY0V2ZW50YHMgYWZ0ZXIgZWFjaCBldmVudCBsb29wLCBhZGRpbmdcbiAgICAgKiB0aGVtIGJhY2sgaW50byB0aGUgcG9vbC4gVGhpcyBhbGxvd3MgYSB3YXkgdG8gaG9sZCBvbnRvIGEgcmVmZXJlbmNlIHRoYXRcbiAgICAgKiB3b24ndCBiZSBhZGRlZCBiYWNrIGludG8gdGhlIHBvb2wuXG4gICAgICovXG4gICAgcGVyc2lzdDogZnVuY3Rpb24gKCkgey8vIE1vZGVybiBldmVudCBzeXN0ZW0gZG9lc24ndCB1c2UgcG9vbGluZy5cbiAgICB9LFxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoaXMgZXZlbnQgc2hvdWxkIGJlIHJlbGVhc2VkIGJhY2sgaW50byB0aGUgcG9vbC5cbiAgICAgKlxuICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgdGhpcyBzaG91bGQgbm90IGJlIHJlbGVhc2VkLCBmYWxzZSBvdGhlcndpc2UuXG4gICAgICovXG4gICAgaXNQZXJzaXN0ZW50OiBmdW5jdGlvblRoYXRSZXR1cm5zVHJ1ZVxuICB9KTtcbiAgcmV0dXJuIFN5bnRoZXRpY0Jhc2VFdmVudDtcbn1cbi8qKlxuICogQGludGVyZmFjZSBFdmVudFxuICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvXG4gKi9cblxuXG52YXIgRXZlbnRJbnRlcmZhY2UgPSB7XG4gIGV2ZW50UGhhc2U6IDAsXG4gIGJ1YmJsZXM6IDAsXG4gIGNhbmNlbGFibGU6IDAsXG4gIHRpbWVTdGFtcDogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgcmV0dXJuIGV2ZW50LnRpbWVTdGFtcCB8fCBEYXRlLm5vdygpO1xuICB9LFxuICBkZWZhdWx0UHJldmVudGVkOiAwLFxuICBpc1RydXN0ZWQ6IDBcbn07XG52YXIgU3ludGhldGljRXZlbnQgPSBjcmVhdGVTeW50aGV0aWNFdmVudChFdmVudEludGVyZmFjZSk7XG5cbnZhciBVSUV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBFdmVudEludGVyZmFjZSwge1xuICB2aWV3OiAwLFxuICBkZXRhaWw6IDBcbn0pO1xuXG52YXIgU3ludGhldGljVUlFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFVJRXZlbnRJbnRlcmZhY2UpO1xudmFyIGxhc3RNb3ZlbWVudFg7XG52YXIgbGFzdE1vdmVtZW50WTtcbnZhciBsYXN0TW91c2VFdmVudDtcblxuZnVuY3Rpb24gdXBkYXRlTW91c2VNb3ZlbWVudFBvbHlmaWxsU3RhdGUoZXZlbnQpIHtcbiAgaWYgKGV2ZW50ICE9PSBsYXN0TW91c2VFdmVudCkge1xuICAgIGlmIChsYXN0TW91c2VFdmVudCAmJiBldmVudC50eXBlID09PSAnbW91c2Vtb3ZlJykge1xuICAgICAgbGFzdE1vdmVtZW50WCA9IGV2ZW50LnNjcmVlblggLSBsYXN0TW91c2VFdmVudC5zY3JlZW5YO1xuICAgICAgbGFzdE1vdmVtZW50WSA9IGV2ZW50LnNjcmVlblkgLSBsYXN0TW91c2VFdmVudC5zY3JlZW5ZO1xuICAgIH0gZWxzZSB7XG4gICAgICBsYXN0TW92ZW1lbnRYID0gMDtcbiAgICAgIGxhc3RNb3ZlbWVudFkgPSAwO1xuICAgIH1cblxuICAgIGxhc3RNb3VzZUV2ZW50ID0gZXZlbnQ7XG4gIH1cbn1cbi8qKlxuICogQGludGVyZmFjZSBNb3VzZUV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy9cbiAqL1xuXG5cbnZhciBNb3VzZUV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBVSUV2ZW50SW50ZXJmYWNlLCB7XG4gIHNjcmVlblg6IDAsXG4gIHNjcmVlblk6IDAsXG4gIGNsaWVudFg6IDAsXG4gIGNsaWVudFk6IDAsXG4gIHBhZ2VYOiAwLFxuICBwYWdlWTogMCxcbiAgY3RybEtleTogMCxcbiAgc2hpZnRLZXk6IDAsXG4gIGFsdEtleTogMCxcbiAgbWV0YUtleTogMCxcbiAgZ2V0TW9kaWZpZXJTdGF0ZTogZ2V0RXZlbnRNb2RpZmllclN0YXRlLFxuICBidXR0b246IDAsXG4gIGJ1dHRvbnM6IDAsXG4gIHJlbGF0ZWRUYXJnZXQ6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIGlmIChldmVudC5yZWxhdGVkVGFyZ2V0ID09PSB1bmRlZmluZWQpIHJldHVybiBldmVudC5mcm9tRWxlbWVudCA9PT0gZXZlbnQuc3JjRWxlbWVudCA/IGV2ZW50LnRvRWxlbWVudCA6IGV2ZW50LmZyb21FbGVtZW50O1xuICAgIHJldHVybiBldmVudC5yZWxhdGVkVGFyZ2V0O1xuICB9LFxuICBtb3ZlbWVudFg6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIGlmICgnbW92ZW1lbnRYJyBpbiBldmVudCkge1xuICAgICAgcmV0dXJuIGV2ZW50Lm1vdmVtZW50WDtcbiAgICB9XG5cbiAgICB1cGRhdGVNb3VzZU1vdmVtZW50UG9seWZpbGxTdGF0ZShldmVudCk7XG4gICAgcmV0dXJuIGxhc3RNb3ZlbWVudFg7XG4gIH0sXG4gIG1vdmVtZW50WTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgaWYgKCdtb3ZlbWVudFknIGluIGV2ZW50KSB7XG4gICAgICByZXR1cm4gZXZlbnQubW92ZW1lbnRZO1xuICAgIH0gLy8gRG9uJ3QgbmVlZCB0byBjYWxsIHVwZGF0ZU1vdXNlTW92ZW1lbnRQb2x5ZmlsbFN0YXRlKCkgaGVyZVxuICAgIC8vIGJlY2F1c2UgaXQncyBndWFyYW50ZWVkIHRvIGhhdmUgYWxyZWFkeSBydW4gd2hlbiBtb3ZlbWVudFhcbiAgICAvLyB3YXMgY29waWVkLlxuXG5cbiAgICByZXR1cm4gbGFzdE1vdmVtZW50WTtcbiAgfVxufSk7XG5cbnZhciBTeW50aGV0aWNNb3VzZUV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoTW91c2VFdmVudEludGVyZmFjZSk7XG4vKipcbiAqIEBpbnRlcmZhY2UgRHJhZ0V2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy9cbiAqL1xuXG52YXIgRHJhZ0V2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBNb3VzZUV2ZW50SW50ZXJmYWNlLCB7XG4gIGRhdGFUcmFuc2ZlcjogMFxufSk7XG5cbnZhciBTeW50aGV0aWNEcmFnRXZlbnQgPSBjcmVhdGVTeW50aGV0aWNFdmVudChEcmFnRXZlbnRJbnRlcmZhY2UpO1xuLyoqXG4gKiBAaW50ZXJmYWNlIEZvY3VzRXZlbnRcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtRXZlbnRzL1xuICovXG5cbnZhciBGb2N1c0V2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBVSUV2ZW50SW50ZXJmYWNlLCB7XG4gIHJlbGF0ZWRUYXJnZXQ6IDBcbn0pO1xuXG52YXIgU3ludGhldGljRm9jdXNFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KEZvY3VzRXZlbnRJbnRlcmZhY2UpO1xuLyoqXG4gKiBAaW50ZXJmYWNlIEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYW5pbWF0aW9ucy8jQW5pbWF0aW9uRXZlbnQtaW50ZXJmYWNlXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9BbmltYXRpb25FdmVudFxuICovXG5cbnZhciBBbmltYXRpb25FdmVudEludGVyZmFjZSA9IGFzc2lnbih7fSwgRXZlbnRJbnRlcmZhY2UsIHtcbiAgYW5pbWF0aW9uTmFtZTogMCxcbiAgZWxhcHNlZFRpbWU6IDAsXG4gIHBzZXVkb0VsZW1lbnQ6IDBcbn0pO1xuXG52YXIgU3ludGhldGljQW5pbWF0aW9uRXZlbnQgPSBjcmVhdGVTeW50aGV0aWNFdmVudChBbmltYXRpb25FdmVudEludGVyZmFjZSk7XG4vKipcbiAqIEBpbnRlcmZhY2UgRXZlbnRcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvY2xpcGJvYXJkLWFwaXMvXG4gKi9cblxudmFyIENsaXBib2FyZEV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBFdmVudEludGVyZmFjZSwge1xuICBjbGlwYm9hcmREYXRhOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICByZXR1cm4gJ2NsaXBib2FyZERhdGEnIGluIGV2ZW50ID8gZXZlbnQuY2xpcGJvYXJkRGF0YSA6IHdpbmRvdy5jbGlwYm9hcmREYXRhO1xuICB9XG59KTtcblxudmFyIFN5bnRoZXRpY0NsaXBib2FyZEV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoQ2xpcGJvYXJkRXZlbnRJbnRlcmZhY2UpO1xuLyoqXG4gKiBAaW50ZXJmYWNlIEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnRzLWNvbXBvc2l0aW9uZXZlbnRzXG4gKi9cblxudmFyIENvbXBvc2l0aW9uRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIEV2ZW50SW50ZXJmYWNlLCB7XG4gIGRhdGE6IDBcbn0pO1xuXG52YXIgU3ludGhldGljQ29tcG9zaXRpb25FdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KENvbXBvc2l0aW9uRXZlbnRJbnRlcmZhY2UpO1xuLyoqXG4gKiBAaW50ZXJmYWNlIEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMTMvV0QtRE9NLUxldmVsLTMtRXZlbnRzLTIwMTMxMTA1XG4gKiAgICAgIC8jZXZlbnRzLWlucHV0ZXZlbnRzXG4gKi9cbi8vIEhhcHBlbnMgdG8gc2hhcmUgdGhlIHNhbWUgbGlzdCBmb3Igbm93LlxuXG52YXIgU3ludGhldGljSW5wdXRFdmVudCA9IFN5bnRoZXRpY0NvbXBvc2l0aW9uRXZlbnQ7XG4vKipcbiAqIE5vcm1hbGl6YXRpb24gb2YgZGVwcmVjYXRlZCBIVE1MNSBga2V5YCB2YWx1ZXNcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkRXZlbnQjS2V5X25hbWVzXG4gKi9cblxudmFyIG5vcm1hbGl6ZUtleSA9IHtcbiAgRXNjOiAnRXNjYXBlJyxcbiAgU3BhY2ViYXI6ICcgJyxcbiAgTGVmdDogJ0Fycm93TGVmdCcsXG4gIFVwOiAnQXJyb3dVcCcsXG4gIFJpZ2h0OiAnQXJyb3dSaWdodCcsXG4gIERvd246ICdBcnJvd0Rvd24nLFxuICBEZWw6ICdEZWxldGUnLFxuICBXaW46ICdPUycsXG4gIE1lbnU6ICdDb250ZXh0TWVudScsXG4gIEFwcHM6ICdDb250ZXh0TWVudScsXG4gIFNjcm9sbDogJ1Njcm9sbExvY2snLFxuICBNb3pQcmludGFibGVLZXk6ICdVbmlkZW50aWZpZWQnXG59O1xuLyoqXG4gKiBUcmFuc2xhdGlvbiBmcm9tIGxlZ2FjeSBga2V5Q29kZWAgdG8gSFRNTDUgYGtleWBcbiAqIE9ubHkgc3BlY2lhbCBrZXlzIHN1cHBvcnRlZCwgYWxsIG90aGVycyBkZXBlbmQgb24ga2V5Ym9hcmQgbGF5b3V0IG9yIGJyb3dzZXJcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkRXZlbnQjS2V5X25hbWVzXG4gKi9cblxudmFyIHRyYW5zbGF0ZVRvS2V5ID0ge1xuICAnOCc6ICdCYWNrc3BhY2UnLFxuICAnOSc6ICdUYWInLFxuICAnMTInOiAnQ2xlYXInLFxuICAnMTMnOiAnRW50ZXInLFxuICAnMTYnOiAnU2hpZnQnLFxuICAnMTcnOiAnQ29udHJvbCcsXG4gICcxOCc6ICdBbHQnLFxuICAnMTknOiAnUGF1c2UnLFxuICAnMjAnOiAnQ2Fwc0xvY2snLFxuICAnMjcnOiAnRXNjYXBlJyxcbiAgJzMyJzogJyAnLFxuICAnMzMnOiAnUGFnZVVwJyxcbiAgJzM0JzogJ1BhZ2VEb3duJyxcbiAgJzM1JzogJ0VuZCcsXG4gICczNic6ICdIb21lJyxcbiAgJzM3JzogJ0Fycm93TGVmdCcsXG4gICczOCc6ICdBcnJvd1VwJyxcbiAgJzM5JzogJ0Fycm93UmlnaHQnLFxuICAnNDAnOiAnQXJyb3dEb3duJyxcbiAgJzQ1JzogJ0luc2VydCcsXG4gICc0Nic6ICdEZWxldGUnLFxuICAnMTEyJzogJ0YxJyxcbiAgJzExMyc6ICdGMicsXG4gICcxMTQnOiAnRjMnLFxuICAnMTE1JzogJ0Y0JyxcbiAgJzExNic6ICdGNScsXG4gICcxMTcnOiAnRjYnLFxuICAnMTE4JzogJ0Y3JyxcbiAgJzExOSc6ICdGOCcsXG4gICcxMjAnOiAnRjknLFxuICAnMTIxJzogJ0YxMCcsXG4gICcxMjInOiAnRjExJyxcbiAgJzEyMyc6ICdGMTInLFxuICAnMTQ0JzogJ051bUxvY2snLFxuICAnMTQ1JzogJ1Njcm9sbExvY2snLFxuICAnMjI0JzogJ01ldGEnXG59O1xuLyoqXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnQgTmF0aXZlIGJyb3dzZXIgZXZlbnQuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IE5vcm1hbGl6ZWQgYGtleWAgcHJvcGVydHkuXG4gKi9cblxuZnVuY3Rpb24gZ2V0RXZlbnRLZXkobmF0aXZlRXZlbnQpIHtcbiAgaWYgKG5hdGl2ZUV2ZW50LmtleSkge1xuICAgIC8vIE5vcm1hbGl6ZSBpbmNvbnNpc3RlbnQgdmFsdWVzIHJlcG9ydGVkIGJ5IGJyb3dzZXJzIGR1ZSB0b1xuICAgIC8vIGltcGxlbWVudGF0aW9ucyBvZiBhIHdvcmtpbmcgZHJhZnQgc3BlY2lmaWNhdGlvbi5cbiAgICAvLyBGaXJlRm94IGltcGxlbWVudHMgYGtleWAgYnV0IHJldHVybnMgYE1velByaW50YWJsZUtleWAgZm9yIGFsbFxuICAgIC8vIHByaW50YWJsZSBjaGFyYWN0ZXJzIChub3JtYWxpemVkIHRvIGBVbmlkZW50aWZpZWRgKSwgaWdub3JlIGl0LlxuICAgIHZhciBrZXkgPSBub3JtYWxpemVLZXlbbmF0aXZlRXZlbnQua2V5XSB8fCBuYXRpdmVFdmVudC5rZXk7XG5cbiAgICBpZiAoa2V5ICE9PSAnVW5pZGVudGlmaWVkJykge1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG4gIH0gLy8gQnJvd3NlciBkb2VzIG5vdCBpbXBsZW1lbnQgYGtleWAsIHBvbHlmaWxsIGFzIG11Y2ggb2YgaXQgYXMgd2UgY2FuLlxuXG5cbiAgaWYgKG5hdGl2ZUV2ZW50LnR5cGUgPT09ICdrZXlwcmVzcycpIHtcbiAgICB2YXIgY2hhckNvZGUgPSBnZXRFdmVudENoYXJDb2RlKG5hdGl2ZUV2ZW50KTsgLy8gVGhlIGVudGVyLWtleSBpcyB0ZWNobmljYWxseSBib3RoIHByaW50YWJsZSBhbmQgbm9uLXByaW50YWJsZSBhbmQgY2FuXG4gICAgLy8gdGh1cyBiZSBjYXB0dXJlZCBieSBga2V5cHJlc3NgLCBubyBvdGhlciBub24tcHJpbnRhYmxlIGtleSBzaG91bGQuXG5cbiAgICByZXR1cm4gY2hhckNvZGUgPT09IDEzID8gJ0VudGVyJyA6IFN0cmluZy5mcm9tQ2hhckNvZGUoY2hhckNvZGUpO1xuICB9XG5cbiAgaWYgKG5hdGl2ZUV2ZW50LnR5cGUgPT09ICdrZXlkb3duJyB8fCBuYXRpdmVFdmVudC50eXBlID09PSAna2V5dXAnKSB7XG4gICAgLy8gV2hpbGUgdXNlciBrZXlib2FyZCBsYXlvdXQgZGV0ZXJtaW5lcyB0aGUgYWN0dWFsIG1lYW5pbmcgb2YgZWFjaFxuICAgIC8vIGBrZXlDb2RlYCB2YWx1ZSwgYWxtb3N0IGFsbCBmdW5jdGlvbiBrZXlzIGhhdmUgYSB1bml2ZXJzYWwgdmFsdWUuXG4gICAgcmV0dXJuIHRyYW5zbGF0ZVRvS2V5W25hdGl2ZUV2ZW50LmtleUNvZGVdIHx8ICdVbmlkZW50aWZpZWQnO1xuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuLyoqXG4gKiBUcmFuc2xhdGlvbiBmcm9tIG1vZGlmaWVyIGtleSB0byB0aGUgYXNzb2NpYXRlZCBwcm9wZXJ0eSBpbiB0aGUgZXZlbnQuXG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8ja2V5cy1Nb2RpZmllcnNcbiAqL1xuXG5cbnZhciBtb2RpZmllcktleVRvUHJvcCA9IHtcbiAgQWx0OiAnYWx0S2V5JyxcbiAgQ29udHJvbDogJ2N0cmxLZXknLFxuICBNZXRhOiAnbWV0YUtleScsXG4gIFNoaWZ0OiAnc2hpZnRLZXknXG59OyAvLyBPbGRlciBicm93c2VycyAoU2FmYXJpIDw9IDEwLCBpT1MgU2FmYXJpIDw9IDEwLjIpIGRvIG5vdCBzdXBwb3J0XG4vLyBnZXRNb2RpZmllclN0YXRlLiBJZiBnZXRNb2RpZmllclN0YXRlIGlzIG5vdCBzdXBwb3J0ZWQsIHdlIG1hcCBpdCB0byBhIHNldCBvZlxuLy8gbW9kaWZpZXIga2V5cyBleHBvc2VkIGJ5IHRoZSBldmVudC4gSW4gdGhpcyBjYXNlLCBMb2NrLWtleXMgYXJlIG5vdCBzdXBwb3J0ZWQuXG5cbmZ1bmN0aW9uIG1vZGlmaWVyU3RhdGVHZXR0ZXIoa2V5QXJnKSB7XG4gIHZhciBzeW50aGV0aWNFdmVudCA9IHRoaXM7XG4gIHZhciBuYXRpdmVFdmVudCA9IHN5bnRoZXRpY0V2ZW50Lm5hdGl2ZUV2ZW50O1xuXG4gIGlmIChuYXRpdmVFdmVudC5nZXRNb2RpZmllclN0YXRlKSB7XG4gICAgcmV0dXJuIG5hdGl2ZUV2ZW50LmdldE1vZGlmaWVyU3RhdGUoa2V5QXJnKTtcbiAgfVxuXG4gIHZhciBrZXlQcm9wID0gbW9kaWZpZXJLZXlUb1Byb3Bba2V5QXJnXTtcbiAgcmV0dXJuIGtleVByb3AgPyAhIW5hdGl2ZUV2ZW50W2tleVByb3BdIDogZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGdldEV2ZW50TW9kaWZpZXJTdGF0ZShuYXRpdmVFdmVudCkge1xuICByZXR1cm4gbW9kaWZpZXJTdGF0ZUdldHRlcjtcbn1cbi8qKlxuICogQGludGVyZmFjZSBLZXlib2FyZEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy9cbiAqL1xuXG5cbnZhciBLZXlib2FyZEV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBVSUV2ZW50SW50ZXJmYWNlLCB7XG4gIGtleTogZ2V0RXZlbnRLZXksXG4gIGNvZGU6IDAsXG4gIGxvY2F0aW9uOiAwLFxuICBjdHJsS2V5OiAwLFxuICBzaGlmdEtleTogMCxcbiAgYWx0S2V5OiAwLFxuICBtZXRhS2V5OiAwLFxuICByZXBlYXQ6IDAsXG4gIGxvY2FsZTogMCxcbiAgZ2V0TW9kaWZpZXJTdGF0ZTogZ2V0RXZlbnRNb2RpZmllclN0YXRlLFxuICAvLyBMZWdhY3kgSW50ZXJmYWNlXG4gIGNoYXJDb2RlOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAvLyBgY2hhckNvZGVgIGlzIHRoZSByZXN1bHQgb2YgYSBLZXlQcmVzcyBldmVudCBhbmQgcmVwcmVzZW50cyB0aGUgdmFsdWUgb2ZcbiAgICAvLyB0aGUgYWN0dWFsIHByaW50YWJsZSBjaGFyYWN0ZXIuXG4gICAgLy8gS2V5UHJlc3MgaXMgZGVwcmVjYXRlZCwgYnV0IGl0cyByZXBsYWNlbWVudCBpcyBub3QgeWV0IGZpbmFsIGFuZCBub3RcbiAgICAvLyBpbXBsZW1lbnRlZCBpbiBhbnkgbWFqb3IgYnJvd3Nlci4gT25seSBLZXlQcmVzcyBoYXMgY2hhckNvZGUuXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdrZXlwcmVzcycpIHtcbiAgICAgIHJldHVybiBnZXRFdmVudENoYXJDb2RlKGV2ZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfSxcbiAga2V5Q29kZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgLy8gYGtleUNvZGVgIGlzIHRoZSByZXN1bHQgb2YgYSBLZXlEb3duL1VwIGV2ZW50IGFuZCByZXByZXNlbnRzIHRoZSB2YWx1ZSBvZlxuICAgIC8vIHBoeXNpY2FsIGtleWJvYXJkIGtleS5cbiAgICAvLyBUaGUgYWN0dWFsIG1lYW5pbmcgb2YgdGhlIHZhbHVlIGRlcGVuZHMgb24gdGhlIHVzZXJzJyBrZXlib2FyZCBsYXlvdXRcbiAgICAvLyB3aGljaCBjYW5ub3QgYmUgZGV0ZWN0ZWQuIEFzc3VtaW5nIHRoYXQgaXQgaXMgYSBVUyBrZXlib2FyZCBsYXlvdXRcbiAgICAvLyBwcm92aWRlcyBhIHN1cnByaXNpbmdseSBhY2N1cmF0ZSBtYXBwaW5nIGZvciBVUyBhbmQgRXVyb3BlYW4gdXNlcnMuXG4gICAgLy8gRHVlIHRvIHRoaXMsIGl0IGlzIGxlZnQgdG8gdGhlIHVzZXIgdG8gaW1wbGVtZW50IGF0IHRoaXMgdGltZS5cbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2tleWRvd24nIHx8IGV2ZW50LnR5cGUgPT09ICdrZXl1cCcpIHtcbiAgICAgIHJldHVybiBldmVudC5rZXlDb2RlO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9LFxuICB3aGljaDogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgLy8gYHdoaWNoYCBpcyBhbiBhbGlhcyBmb3IgZWl0aGVyIGBrZXlDb2RlYCBvciBgY2hhckNvZGVgIGRlcGVuZGluZyBvbiB0aGVcbiAgICAvLyB0eXBlIG9mIHRoZSBldmVudC5cbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2tleXByZXNzJykge1xuICAgICAgcmV0dXJuIGdldEV2ZW50Q2hhckNvZGUoZXZlbnQpO1xuICAgIH1cblxuICAgIGlmIChldmVudC50eXBlID09PSAna2V5ZG93bicgfHwgZXZlbnQudHlwZSA9PT0gJ2tleXVwJykge1xuICAgICAgcmV0dXJuIGV2ZW50LmtleUNvZGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cbn0pO1xuXG52YXIgU3ludGhldGljS2V5Ym9hcmRFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KEtleWJvYXJkRXZlbnRJbnRlcmZhY2UpO1xuLyoqXG4gKiBAaW50ZXJmYWNlIFBvaW50ZXJFdmVudFxuICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi9wb2ludGVyZXZlbnRzL1xuICovXG5cbnZhciBQb2ludGVyRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIE1vdXNlRXZlbnRJbnRlcmZhY2UsIHtcbiAgcG9pbnRlcklkOiAwLFxuICB3aWR0aDogMCxcbiAgaGVpZ2h0OiAwLFxuICBwcmVzc3VyZTogMCxcbiAgdGFuZ2VudGlhbFByZXNzdXJlOiAwLFxuICB0aWx0WDogMCxcbiAgdGlsdFk6IDAsXG4gIHR3aXN0OiAwLFxuICBwb2ludGVyVHlwZTogMCxcbiAgaXNQcmltYXJ5OiAwXG59KTtcblxudmFyIFN5bnRoZXRpY1BvaW50ZXJFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFBvaW50ZXJFdmVudEludGVyZmFjZSk7XG4vKipcbiAqIEBpbnRlcmZhY2UgVG91Y2hFdmVudFxuICogQHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi90b3VjaC1ldmVudHMvXG4gKi9cblxudmFyIFRvdWNoRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIFVJRXZlbnRJbnRlcmZhY2UsIHtcbiAgdG91Y2hlczogMCxcbiAgdGFyZ2V0VG91Y2hlczogMCxcbiAgY2hhbmdlZFRvdWNoZXM6IDAsXG4gIGFsdEtleTogMCxcbiAgbWV0YUtleTogMCxcbiAgY3RybEtleTogMCxcbiAgc2hpZnRLZXk6IDAsXG4gIGdldE1vZGlmaWVyU3RhdGU6IGdldEV2ZW50TW9kaWZpZXJTdGF0ZVxufSk7XG5cbnZhciBTeW50aGV0aWNUb3VjaEV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoVG91Y2hFdmVudEludGVyZmFjZSk7XG4vKipcbiAqIEBpbnRlcmZhY2UgRXZlbnRcbiAqIEBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvMjAwOS9XRC1jc3MzLXRyYW5zaXRpb25zLTIwMDkwMzIwLyN0cmFuc2l0aW9uLWV2ZW50cy1cbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1RyYW5zaXRpb25FdmVudFxuICovXG5cbnZhciBUcmFuc2l0aW9uRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIEV2ZW50SW50ZXJmYWNlLCB7XG4gIHByb3BlcnR5TmFtZTogMCxcbiAgZWxhcHNlZFRpbWU6IDAsXG4gIHBzZXVkb0VsZW1lbnQ6IDBcbn0pO1xuXG52YXIgU3ludGhldGljVHJhbnNpdGlvbkV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoVHJhbnNpdGlvbkV2ZW50SW50ZXJmYWNlKTtcbi8qKlxuICogQGludGVyZmFjZSBXaGVlbEV2ZW50XG4gKiBAc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy9cbiAqL1xuXG52YXIgV2hlZWxFdmVudEludGVyZmFjZSA9IGFzc2lnbih7fSwgTW91c2VFdmVudEludGVyZmFjZSwge1xuICBkZWx0YVg6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIHJldHVybiAnZGVsdGFYJyBpbiBldmVudCA/IGV2ZW50LmRlbHRhWCA6IC8vIEZhbGxiYWNrIHRvIGB3aGVlbERlbHRhWGAgZm9yIFdlYmtpdCBhbmQgbm9ybWFsaXplIChyaWdodCBpcyBwb3NpdGl2ZSkuXG4gICAgJ3doZWVsRGVsdGFYJyBpbiBldmVudCA/IC1ldmVudC53aGVlbERlbHRhWCA6IDA7XG4gIH0sXG4gIGRlbHRhWTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgcmV0dXJuICdkZWx0YVknIGluIGV2ZW50ID8gZXZlbnQuZGVsdGFZIDogLy8gRmFsbGJhY2sgdG8gYHdoZWVsRGVsdGFZYCBmb3IgV2Via2l0IGFuZCBub3JtYWxpemUgKGRvd24gaXMgcG9zaXRpdmUpLlxuICAgICd3aGVlbERlbHRhWScgaW4gZXZlbnQgPyAtZXZlbnQud2hlZWxEZWx0YVkgOiAvLyBGYWxsYmFjayB0byBgd2hlZWxEZWx0YWAgZm9yIElFPDkgYW5kIG5vcm1hbGl6ZSAoZG93biBpcyBwb3NpdGl2ZSkuXG4gICAgJ3doZWVsRGVsdGEnIGluIGV2ZW50ID8gLWV2ZW50LndoZWVsRGVsdGEgOiAwO1xuICB9LFxuICBkZWx0YVo6IDAsXG4gIC8vIEJyb3dzZXJzIHdpdGhvdXQgXCJkZWx0YU1vZGVcIiBpcyByZXBvcnRpbmcgaW4gcmF3IHdoZWVsIGRlbHRhIHdoZXJlIG9uZVxuICAvLyBub3RjaCBvbiB0aGUgc2Nyb2xsIGlzIGFsd2F5cyArLy0gMTIwLCByb3VnaGx5IGVxdWl2YWxlbnQgdG8gcGl4ZWxzLlxuICAvLyBBIGdvb2QgYXBwcm94aW1hdGlvbiBvZiBET01fREVMVEFfTElORSAoMSkgaXMgNSUgb2Ygdmlld3BvcnQgc2l6ZSBvclxuICAvLyB+NDAgcGl4ZWxzLCBmb3IgRE9NX0RFTFRBX1NDUkVFTiAoMikgaXQgaXMgODcuNSUgb2Ygdmlld3BvcnQgc2l6ZS5cbiAgZGVsdGFNb2RlOiAwXG59KTtcblxudmFyIFN5bnRoZXRpY1doZWVsRXZlbnQgPSBjcmVhdGVTeW50aGV0aWNFdmVudChXaGVlbEV2ZW50SW50ZXJmYWNlKTtcblxudmFyIEVORF9LRVlDT0RFUyA9IFs5LCAxMywgMjcsIDMyXTsgLy8gVGFiLCBSZXR1cm4sIEVzYywgU3BhY2VcblxudmFyIFNUQVJUX0tFWUNPREUgPSAyMjk7XG52YXIgY2FuVXNlQ29tcG9zaXRpb25FdmVudCA9IGNhblVzZURPTSAmJiAnQ29tcG9zaXRpb25FdmVudCcgaW4gd2luZG93O1xudmFyIGRvY3VtZW50TW9kZSA9IG51bGw7XG5cbmlmIChjYW5Vc2VET00gJiYgJ2RvY3VtZW50TW9kZScgaW4gZG9jdW1lbnQpIHtcbiAgZG9jdW1lbnRNb2RlID0gZG9jdW1lbnQuZG9jdW1lbnRNb2RlO1xufSAvLyBXZWJraXQgb2ZmZXJzIGEgdmVyeSB1c2VmdWwgYHRleHRJbnB1dGAgZXZlbnQgdGhhdCBjYW4gYmUgdXNlZCB0b1xuLy8gZGlyZWN0bHkgcmVwcmVzZW50IGBiZWZvcmVJbnB1dGAuIFRoZSBJRSBgdGV4dGlucHV0YCBldmVudCBpcyBub3QgYXNcbi8vIHVzZWZ1bCwgc28gd2UgZG9uJ3QgdXNlIGl0LlxuXG5cbnZhciBjYW5Vc2VUZXh0SW5wdXRFdmVudCA9IGNhblVzZURPTSAmJiAnVGV4dEV2ZW50JyBpbiB3aW5kb3cgJiYgIWRvY3VtZW50TW9kZTsgLy8gSW4gSUU5Kywgd2UgaGF2ZSBhY2Nlc3MgdG8gY29tcG9zaXRpb24gZXZlbnRzLCBidXQgdGhlIGRhdGEgc3VwcGxpZWRcbi8vIGJ5IHRoZSBuYXRpdmUgY29tcG9zaXRpb25lbmQgZXZlbnQgbWF5IGJlIGluY29ycmVjdC4gSmFwYW5lc2UgaWRlb2dyYXBoaWNcbi8vIHNwYWNlcywgZm9yIGluc3RhbmNlIChcXHUzMDAwKSBhcmUgbm90IHJlY29yZGVkIGNvcnJlY3RseS5cblxudmFyIHVzZUZhbGxiYWNrQ29tcG9zaXRpb25EYXRhID0gY2FuVXNlRE9NICYmICghY2FuVXNlQ29tcG9zaXRpb25FdmVudCB8fCBkb2N1bWVudE1vZGUgJiYgZG9jdW1lbnRNb2RlID4gOCAmJiBkb2N1bWVudE1vZGUgPD0gMTEpO1xudmFyIFNQQUNFQkFSX0NPREUgPSAzMjtcbnZhciBTUEFDRUJBUl9DSEFSID0gU3RyaW5nLmZyb21DaGFyQ29kZShTUEFDRUJBUl9DT0RFKTtcblxuZnVuY3Rpb24gcmVnaXN0ZXJFdmVudHMoKSB7XG4gIHJlZ2lzdGVyVHdvUGhhc2VFdmVudCgnb25CZWZvcmVJbnB1dCcsIFsnY29tcG9zaXRpb25lbmQnLCAna2V5cHJlc3MnLCAndGV4dElucHV0JywgJ3Bhc3RlJ10pO1xuICByZWdpc3RlclR3b1BoYXNlRXZlbnQoJ29uQ29tcG9zaXRpb25FbmQnLCBbJ2NvbXBvc2l0aW9uZW5kJywgJ2ZvY3Vzb3V0JywgJ2tleWRvd24nLCAna2V5cHJlc3MnLCAna2V5dXAnLCAnbW91c2Vkb3duJ10pO1xuICByZWdpc3RlclR3b1BoYXNlRXZlbnQoJ29uQ29tcG9zaXRpb25TdGFydCcsIFsnY29tcG9zaXRpb25zdGFydCcsICdmb2N1c291dCcsICdrZXlkb3duJywgJ2tleXByZXNzJywgJ2tleXVwJywgJ21vdXNlZG93biddKTtcbiAgcmVnaXN0ZXJUd29QaGFzZUV2ZW50KCdvbkNvbXBvc2l0aW9uVXBkYXRlJywgWydjb21wb3NpdGlvbnVwZGF0ZScsICdmb2N1c291dCcsICdrZXlkb3duJywgJ2tleXByZXNzJywgJ2tleXVwJywgJ21vdXNlZG93biddKTtcbn0gLy8gVHJhY2sgd2hldGhlciB3ZSd2ZSBldmVyIGhhbmRsZWQgYSBrZXlwcmVzcyBvbiB0aGUgc3BhY2Uga2V5LlxuXG5cbnZhciBoYXNTcGFjZUtleXByZXNzID0gZmFsc2U7XG4vKipcbiAqIFJldHVybiB3aGV0aGVyIGEgbmF0aXZlIGtleXByZXNzIGV2ZW50IGlzIGFzc3VtZWQgdG8gYmUgYSBjb21tYW5kLlxuICogVGhpcyBpcyByZXF1aXJlZCBiZWNhdXNlIEZpcmVmb3ggZmlyZXMgYGtleXByZXNzYCBldmVudHMgZm9yIGtleSBjb21tYW5kc1xuICogKGN1dCwgY29weSwgc2VsZWN0LWFsbCwgZXRjLikgZXZlbiB0aG91Z2ggbm8gY2hhcmFjdGVyIGlzIGluc2VydGVkLlxuICovXG5cbmZ1bmN0aW9uIGlzS2V5cHJlc3NDb21tYW5kKG5hdGl2ZUV2ZW50KSB7XG4gIHJldHVybiAobmF0aXZlRXZlbnQuY3RybEtleSB8fCBuYXRpdmVFdmVudC5hbHRLZXkgfHwgbmF0aXZlRXZlbnQubWV0YUtleSkgJiYgLy8gY3RybEtleSAmJiBhbHRLZXkgaXMgZXF1aXZhbGVudCB0byBBbHRHciwgYW5kIGlzIG5vdCBhIGNvbW1hbmQuXG4gICEobmF0aXZlRXZlbnQuY3RybEtleSAmJiBuYXRpdmVFdmVudC5hbHRLZXkpO1xufVxuLyoqXG4gKiBUcmFuc2xhdGUgbmF0aXZlIHRvcCBsZXZlbCBldmVudHMgaW50byBldmVudCB0eXBlcy5cbiAqL1xuXG5cbmZ1bmN0aW9uIGdldENvbXBvc2l0aW9uRXZlbnRUeXBlKGRvbUV2ZW50TmFtZSkge1xuICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkge1xuICAgIGNhc2UgJ2NvbXBvc2l0aW9uc3RhcnQnOlxuICAgICAgcmV0dXJuICdvbkNvbXBvc2l0aW9uU3RhcnQnO1xuXG4gICAgY2FzZSAnY29tcG9zaXRpb25lbmQnOlxuICAgICAgcmV0dXJuICdvbkNvbXBvc2l0aW9uRW5kJztcblxuICAgIGNhc2UgJ2NvbXBvc2l0aW9udXBkYXRlJzpcbiAgICAgIHJldHVybiAnb25Db21wb3NpdGlvblVwZGF0ZSc7XG4gIH1cbn1cbi8qKlxuICogRG9lcyBvdXIgZmFsbGJhY2sgYmVzdC1ndWVzcyBtb2RlbCB0aGluayB0aGlzIGV2ZW50IHNpZ25pZmllcyB0aGF0XG4gKiBjb21wb3NpdGlvbiBoYXMgYmVndW4/XG4gKi9cblxuXG5mdW5jdGlvbiBpc0ZhbGxiYWNrQ29tcG9zaXRpb25TdGFydChkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KSB7XG4gIHJldHVybiBkb21FdmVudE5hbWUgPT09ICdrZXlkb3duJyAmJiBuYXRpdmVFdmVudC5rZXlDb2RlID09PSBTVEFSVF9LRVlDT0RFO1xufVxuLyoqXG4gKiBEb2VzIG91ciBmYWxsYmFjayBtb2RlIHRoaW5rIHRoYXQgdGhpcyBldmVudCBpcyB0aGUgZW5kIG9mIGNvbXBvc2l0aW9uP1xuICovXG5cblxuZnVuY3Rpb24gaXNGYWxsYmFja0NvbXBvc2l0aW9uRW5kKGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpIHtcbiAgc3dpdGNoIChkb21FdmVudE5hbWUpIHtcbiAgICBjYXNlICdrZXl1cCc6XG4gICAgICAvLyBDb21tYW5kIGtleXMgaW5zZXJ0IG9yIGNsZWFyIElNRSBpbnB1dC5cbiAgICAgIHJldHVybiBFTkRfS0VZQ09ERVMuaW5kZXhPZihuYXRpdmVFdmVudC5rZXlDb2RlKSAhPT0gLTE7XG5cbiAgICBjYXNlICdrZXlkb3duJzpcbiAgICAgIC8vIEV4cGVjdCBJTUUga2V5Q29kZSBvbiBlYWNoIGtleWRvd24uIElmIHdlIGdldCBhbnkgb3RoZXJcbiAgICAgIC8vIGNvZGUgd2UgbXVzdCBoYXZlIGV4aXRlZCBlYXJsaWVyLlxuICAgICAgcmV0dXJuIG5hdGl2ZUV2ZW50LmtleUNvZGUgIT09IFNUQVJUX0tFWUNPREU7XG5cbiAgICBjYXNlICdrZXlwcmVzcyc6XG4gICAgY2FzZSAnbW91c2Vkb3duJzpcbiAgICBjYXNlICdmb2N1c291dCc6XG4gICAgICAvLyBFdmVudHMgYXJlIG5vdCBwb3NzaWJsZSB3aXRob3V0IGNhbmNlbGxpbmcgSU1FLlxuICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4vKipcbiAqIEdvb2dsZSBJbnB1dCBUb29scyBwcm92aWRlcyBjb21wb3NpdGlvbiBkYXRhIHZpYSBhIEN1c3RvbUV2ZW50LFxuICogd2l0aCB0aGUgYGRhdGFgIHByb3BlcnR5IHBvcHVsYXRlZCBpbiB0aGUgYGRldGFpbGAgb2JqZWN0LiBJZiB0aGlzXG4gKiBpcyBhdmFpbGFibGUgb24gdGhlIGV2ZW50IG9iamVjdCwgdXNlIGl0LiBJZiBub3QsIHRoaXMgaXMgYSBwbGFpblxuICogY29tcG9zaXRpb24gZXZlbnQgYW5kIHdlIGhhdmUgbm90aGluZyBzcGVjaWFsIHRvIGV4dHJhY3QuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IG5hdGl2ZUV2ZW50XG4gKiBAcmV0dXJuIHs/c3RyaW5nfVxuICovXG5cblxuZnVuY3Rpb24gZ2V0RGF0YUZyb21DdXN0b21FdmVudChuYXRpdmVFdmVudCkge1xuICB2YXIgZGV0YWlsID0gbmF0aXZlRXZlbnQuZGV0YWlsO1xuXG4gIGlmICh0eXBlb2YgZGV0YWlsID09PSAnb2JqZWN0JyAmJiAnZGF0YScgaW4gZGV0YWlsKSB7XG4gICAgcmV0dXJuIGRldGFpbC5kYXRhO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG4vKipcbiAqIENoZWNrIGlmIGEgY29tcG9zaXRpb24gZXZlbnQgd2FzIHRyaWdnZXJlZCBieSBLb3JlYW4gSU1FLlxuICogT3VyIGZhbGxiYWNrIG1vZGUgZG9lcyBub3Qgd29yayB3ZWxsIHdpdGggSUUncyBLb3JlYW4gSU1FLFxuICogc28ganVzdCB1c2UgbmF0aXZlIGNvbXBvc2l0aW9uIGV2ZW50cyB3aGVuIEtvcmVhbiBJTUUgaXMgdXNlZC5cbiAqIEFsdGhvdWdoIENvbXBvc2l0aW9uRXZlbnQubG9jYWxlIHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQsXG4gKiBpdCBpcyBhdmFpbGFibGUgaW4gSUUsIHdoZXJlIG91ciBmYWxsYmFjayBtb2RlIGlzIGVuYWJsZWQuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IG5hdGl2ZUV2ZW50XG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5cblxuZnVuY3Rpb24gaXNVc2luZ0tvcmVhbklNRShuYXRpdmVFdmVudCkge1xuICByZXR1cm4gbmF0aXZlRXZlbnQubG9jYWxlID09PSAna28nO1xufSAvLyBUcmFjayB0aGUgY3VycmVudCBJTUUgY29tcG9zaXRpb24gc3RhdHVzLCBpZiBhbnkuXG5cblxudmFyIGlzQ29tcG9zaW5nID0gZmFsc2U7XG4vKipcbiAqIEByZXR1cm4gez9vYmplY3R9IEEgU3ludGhldGljQ29tcG9zaXRpb25FdmVudC5cbiAqL1xuXG5mdW5jdGlvbiBleHRyYWN0Q29tcG9zaXRpb25FdmVudChkaXNwYXRjaFF1ZXVlLCBkb21FdmVudE5hbWUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkge1xuICB2YXIgZXZlbnRUeXBlO1xuICB2YXIgZmFsbGJhY2tEYXRhO1xuXG4gIGlmIChjYW5Vc2VDb21wb3NpdGlvbkV2ZW50KSB7XG4gICAgZXZlbnRUeXBlID0gZ2V0Q29tcG9zaXRpb25FdmVudFR5cGUoZG9tRXZlbnROYW1lKTtcbiAgfSBlbHNlIGlmICghaXNDb21wb3NpbmcpIHtcbiAgICBpZiAoaXNGYWxsYmFja0NvbXBvc2l0aW9uU3RhcnQoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCkpIHtcbiAgICAgIGV2ZW50VHlwZSA9ICdvbkNvbXBvc2l0aW9uU3RhcnQnO1xuICAgIH1cbiAgfSBlbHNlIGlmIChpc0ZhbGxiYWNrQ29tcG9zaXRpb25FbmQoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCkpIHtcbiAgICBldmVudFR5cGUgPSAnb25Db21wb3NpdGlvbkVuZCc7XG4gIH1cblxuICBpZiAoIWV2ZW50VHlwZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHVzZUZhbGxiYWNrQ29tcG9zaXRpb25EYXRhICYmICFpc1VzaW5nS29yZWFuSU1FKG5hdGl2ZUV2ZW50KSkge1xuICAgIC8vIFRoZSBjdXJyZW50IGNvbXBvc2l0aW9uIGlzIHN0b3JlZCBzdGF0aWNhbGx5IGFuZCBtdXN0IG5vdCBiZVxuICAgIC8vIG92ZXJ3cml0dGVuIHdoaWxlIGNvbXBvc2l0aW9uIGNvbnRpbnVlcy5cbiAgICBpZiAoIWlzQ29tcG9zaW5nICYmIGV2ZW50VHlwZSA9PT0gJ29uQ29tcG9zaXRpb25TdGFydCcpIHtcbiAgICAgIGlzQ29tcG9zaW5nID0gaW5pdGlhbGl6ZShuYXRpdmVFdmVudFRhcmdldCk7XG4gICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT09ICdvbkNvbXBvc2l0aW9uRW5kJykge1xuICAgICAgaWYgKGlzQ29tcG9zaW5nKSB7XG4gICAgICAgIGZhbGxiYWNrRGF0YSA9IGdldERhdGEoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgbGlzdGVuZXJzID0gYWNjdW11bGF0ZVR3b1BoYXNlTGlzdGVuZXJzKHRhcmdldEluc3QsIGV2ZW50VHlwZSk7XG5cbiAgaWYgKGxpc3RlbmVycy5sZW5ndGggPiAwKSB7XG4gICAgdmFyIGV2ZW50ID0gbmV3IFN5bnRoZXRpY0NvbXBvc2l0aW9uRXZlbnQoZXZlbnRUeXBlLCBkb21FdmVudE5hbWUsIG51bGwsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG4gICAgZGlzcGF0Y2hRdWV1ZS5wdXNoKHtcbiAgICAgIGV2ZW50OiBldmVudCxcbiAgICAgIGxpc3RlbmVyczogbGlzdGVuZXJzXG4gICAgfSk7XG5cbiAgICBpZiAoZmFsbGJhY2tEYXRhKSB7XG4gICAgICAvLyBJbmplY3QgZGF0YSBnZW5lcmF0ZWQgZnJvbSBmYWxsYmFjayBwYXRoIGludG8gdGhlIHN5bnRoZXRpYyBldmVudC5cbiAgICAgIC8vIFRoaXMgbWF0Y2hlcyB0aGUgcHJvcGVydHkgb2YgbmF0aXZlIENvbXBvc2l0aW9uRXZlbnRJbnRlcmZhY2UuXG4gICAgICBldmVudC5kYXRhID0gZmFsbGJhY2tEYXRhO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgY3VzdG9tRGF0YSA9IGdldERhdGFGcm9tQ3VzdG9tRXZlbnQobmF0aXZlRXZlbnQpO1xuXG4gICAgICBpZiAoY3VzdG9tRGF0YSAhPT0gbnVsbCkge1xuICAgICAgICBldmVudC5kYXRhID0gY3VzdG9tRGF0YTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0TmF0aXZlQmVmb3JlSW5wdXRDaGFycyhkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KSB7XG4gIHN3aXRjaCAoZG9tRXZlbnROYW1lKSB7XG4gICAgY2FzZSAnY29tcG9zaXRpb25lbmQnOlxuICAgICAgcmV0dXJuIGdldERhdGFGcm9tQ3VzdG9tRXZlbnQobmF0aXZlRXZlbnQpO1xuXG4gICAgY2FzZSAna2V5cHJlc3MnOlxuICAgICAgLyoqXG4gICAgICAgKiBJZiBuYXRpdmUgYHRleHRJbnB1dGAgZXZlbnRzIGFyZSBhdmFpbGFibGUsIG91ciBnb2FsIGlzIHRvIG1ha2VcbiAgICAgICAqIHVzZSBvZiB0aGVtLiBIb3dldmVyLCB0aGVyZSBpcyBhIHNwZWNpYWwgY2FzZTogdGhlIHNwYWNlYmFyIGtleS5cbiAgICAgICAqIEluIFdlYmtpdCwgcHJldmVudGluZyBkZWZhdWx0IG9uIGEgc3BhY2ViYXIgYHRleHRJbnB1dGAgZXZlbnRcbiAgICAgICAqIGNhbmNlbHMgY2hhcmFjdGVyIGluc2VydGlvbiwgYnV0IGl0ICphbHNvKiBjYXVzZXMgdGhlIGJyb3dzZXJcbiAgICAgICAqIHRvIGZhbGwgYmFjayB0byBpdHMgZGVmYXVsdCBzcGFjZWJhciBiZWhhdmlvciBvZiBzY3JvbGxpbmcgdGhlXG4gICAgICAgKiBwYWdlLlxuICAgICAgICpcbiAgICAgICAqIFRyYWNraW5nIGF0OlxuICAgICAgICogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTM1NTEwM1xuICAgICAgICpcbiAgICAgICAqIFRvIGF2b2lkIHRoaXMgaXNzdWUsIHVzZSB0aGUga2V5cHJlc3MgZXZlbnQgYXMgaWYgbm8gYHRleHRJbnB1dGBcbiAgICAgICAqIGV2ZW50IGlzIGF2YWlsYWJsZS5cbiAgICAgICAqL1xuICAgICAgdmFyIHdoaWNoID0gbmF0aXZlRXZlbnQud2hpY2g7XG5cbiAgICAgIGlmICh3aGljaCAhPT0gU1BBQ0VCQVJfQ09ERSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgaGFzU3BhY2VLZXlwcmVzcyA9IHRydWU7XG4gICAgICByZXR1cm4gU1BBQ0VCQVJfQ0hBUjtcblxuICAgIGNhc2UgJ3RleHRJbnB1dCc6XG4gICAgICAvLyBSZWNvcmQgdGhlIGNoYXJhY3RlcnMgdG8gYmUgYWRkZWQgdG8gdGhlIERPTS5cbiAgICAgIHZhciBjaGFycyA9IG5hdGl2ZUV2ZW50LmRhdGE7IC8vIElmIGl0J3MgYSBzcGFjZWJhciBjaGFyYWN0ZXIsIGFzc3VtZSB0aGF0IHdlIGhhdmUgYWxyZWFkeSBoYW5kbGVkXG4gICAgICAvLyBpdCBhdCB0aGUga2V5cHJlc3MgbGV2ZWwgYW5kIGJhaWwgaW1tZWRpYXRlbHkuIEFuZHJvaWQgQ2hyb21lXG4gICAgICAvLyBkb2Vzbid0IGdpdmUgdXMga2V5Y29kZXMsIHNvIHdlIG5lZWQgdG8gaWdub3JlIGl0LlxuXG4gICAgICBpZiAoY2hhcnMgPT09IFNQQUNFQkFSX0NIQVIgJiYgaGFzU3BhY2VLZXlwcmVzcykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNoYXJzO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIC8vIEZvciBvdGhlciBuYXRpdmUgZXZlbnQgdHlwZXMsIGRvIG5vdGhpbmcuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuLyoqXG4gKiBGb3IgYnJvd3NlcnMgdGhhdCBkbyBub3QgcHJvdmlkZSB0aGUgYHRleHRJbnB1dGAgZXZlbnQsIGV4dHJhY3QgdGhlXG4gKiBhcHByb3ByaWF0ZSBzdHJpbmcgdG8gdXNlIGZvciBTeW50aGV0aWNJbnB1dEV2ZW50LlxuICovXG5cblxuZnVuY3Rpb24gZ2V0RmFsbGJhY2tCZWZvcmVJbnB1dENoYXJzKGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpIHtcbiAgLy8gSWYgd2UgYXJlIGN1cnJlbnRseSBjb21wb3NpbmcgKElNRSkgYW5kIHVzaW5nIGEgZmFsbGJhY2sgdG8gZG8gc28sXG4gIC8vIHRyeSB0byBleHRyYWN0IHRoZSBjb21wb3NlZCBjaGFyYWN0ZXJzIGZyb20gdGhlIGZhbGxiYWNrIG9iamVjdC5cbiAgLy8gSWYgY29tcG9zaXRpb24gZXZlbnQgaXMgYXZhaWxhYmxlLCB3ZSBleHRyYWN0IGEgc3RyaW5nIG9ubHkgYXRcbiAgLy8gY29tcG9zaXRpb25ldmVudCwgb3RoZXJ3aXNlIGV4dHJhY3QgaXQgYXQgZmFsbGJhY2sgZXZlbnRzLlxuICBpZiAoaXNDb21wb3NpbmcpIHtcbiAgICBpZiAoZG9tRXZlbnROYW1lID09PSAnY29tcG9zaXRpb25lbmQnIHx8ICFjYW5Vc2VDb21wb3NpdGlvbkV2ZW50ICYmIGlzRmFsbGJhY2tDb21wb3NpdGlvbkVuZChkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KSkge1xuICAgICAgdmFyIGNoYXJzID0gZ2V0RGF0YSgpO1xuICAgICAgcmVzZXQoKTtcbiAgICAgIGlzQ29tcG9zaW5nID0gZmFsc2U7XG4gICAgICByZXR1cm4gY2hhcnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkge1xuICAgIGNhc2UgJ3Bhc3RlJzpcbiAgICAgIC8vIElmIGEgcGFzdGUgZXZlbnQgb2NjdXJzIGFmdGVyIGEga2V5cHJlc3MsIHRocm93IG91dCB0aGUgaW5wdXRcbiAgICAgIC8vIGNoYXJzLiBQYXN0ZSBldmVudHMgc2hvdWxkIG5vdCBsZWFkIHRvIEJlZm9yZUlucHV0IGV2ZW50cy5cbiAgICAgIHJldHVybiBudWxsO1xuXG4gICAgY2FzZSAna2V5cHJlc3MnOlxuICAgICAgLyoqXG4gICAgICAgKiBBcyBvZiB2MjcsIEZpcmVmb3ggbWF5IGZpcmUga2V5cHJlc3MgZXZlbnRzIGV2ZW4gd2hlbiBubyBjaGFyYWN0ZXJcbiAgICAgICAqIHdpbGwgYmUgaW5zZXJ0ZWQuIEEgZmV3IHBvc3NpYmlsaXRpZXM6XG4gICAgICAgKlxuICAgICAgICogLSBgd2hpY2hgIGlzIGAwYC4gQXJyb3cga2V5cywgRXNjIGtleSwgZXRjLlxuICAgICAgICpcbiAgICAgICAqIC0gYHdoaWNoYCBpcyB0aGUgcHJlc3NlZCBrZXkgY29kZSwgYnV0IG5vIGNoYXIgaXMgYXZhaWxhYmxlLlxuICAgICAgICogICBFeDogJ0FsdEdyICsgZGAgaW4gUG9saXNoLiBUaGVyZSBpcyBubyBtb2RpZmllZCBjaGFyYWN0ZXIgZm9yXG4gICAgICAgKiAgIHRoaXMga2V5IGNvbWJpbmF0aW9uIGFuZCBubyBjaGFyYWN0ZXIgaXMgaW5zZXJ0ZWQgaW50byB0aGVcbiAgICAgICAqICAgZG9jdW1lbnQsIGJ1dCBGRiBmaXJlcyB0aGUga2V5cHJlc3MgZm9yIGNoYXIgY29kZSBgMTAwYCBhbnl3YXkuXG4gICAgICAgKiAgIE5vIGBpbnB1dGAgZXZlbnQgd2lsbCBvY2N1ci5cbiAgICAgICAqXG4gICAgICAgKiAtIGB3aGljaGAgaXMgdGhlIHByZXNzZWQga2V5IGNvZGUsIGJ1dCBhIGNvbW1hbmQgY29tYmluYXRpb24gaXNcbiAgICAgICAqICAgYmVpbmcgdXNlZC4gRXg6IGBDbWQrQ2AuIE5vIGNoYXJhY3RlciBpcyBpbnNlcnRlZCwgYW5kIG5vXG4gICAgICAgKiAgIGBpbnB1dGAgZXZlbnQgd2lsbCBvY2N1ci5cbiAgICAgICAqL1xuICAgICAgaWYgKCFpc0tleXByZXNzQ29tbWFuZChuYXRpdmVFdmVudCkpIHtcbiAgICAgICAgLy8gSUUgZmlyZXMgdGhlIGBrZXlwcmVzc2AgZXZlbnQgd2hlbiBhIHVzZXIgdHlwZXMgYW4gZW1vamkgdmlhXG4gICAgICAgIC8vIFRvdWNoIGtleWJvYXJkIG9mIFdpbmRvd3MuICBJbiBzdWNoIGEgY2FzZSwgdGhlIGBjaGFyYCBwcm9wZXJ0eVxuICAgICAgICAvLyBob2xkcyBhbiBlbW9qaSBjaGFyYWN0ZXIgbGlrZSBgXFx1RDgzRFxcdURFMEFgLiAgQmVjYXVzZSBpdHMgbGVuZ3RoXG4gICAgICAgIC8vIGlzIDIsIHRoZSBwcm9wZXJ0eSBgd2hpY2hgIGRvZXMgbm90IHJlcHJlc2VudCBhbiBlbW9qaSBjb3JyZWN0bHkuXG4gICAgICAgIC8vIEluIHN1Y2ggYSBjYXNlLCB3ZSBkaXJlY3RseSByZXR1cm4gdGhlIGBjaGFyYCBwcm9wZXJ0eSBpbnN0ZWFkIG9mXG4gICAgICAgIC8vIHVzaW5nIGB3aGljaGAuXG4gICAgICAgIGlmIChuYXRpdmVFdmVudC5jaGFyICYmIG5hdGl2ZUV2ZW50LmNoYXIubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHJldHVybiBuYXRpdmVFdmVudC5jaGFyO1xuICAgICAgICB9IGVsc2UgaWYgKG5hdGl2ZUV2ZW50LndoaWNoKSB7XG4gICAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUobmF0aXZlRXZlbnQud2hpY2gpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuXG4gICAgY2FzZSAnY29tcG9zaXRpb25lbmQnOlxuICAgICAgcmV0dXJuIHVzZUZhbGxiYWNrQ29tcG9zaXRpb25EYXRhICYmICFpc1VzaW5nS29yZWFuSU1FKG5hdGl2ZUV2ZW50KSA/IG51bGwgOiBuYXRpdmVFdmVudC5kYXRhO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59XG4vKipcbiAqIEV4dHJhY3QgYSBTeW50aGV0aWNJbnB1dEV2ZW50IGZvciBgYmVmb3JlSW5wdXRgLCBiYXNlZCBvbiBlaXRoZXIgbmF0aXZlXG4gKiBgdGV4dElucHV0YCBvciBmYWxsYmFjayBiZWhhdmlvci5cbiAqXG4gKiBAcmV0dXJuIHs/b2JqZWN0fSBBIFN5bnRoZXRpY0lucHV0RXZlbnQuXG4gKi9cblxuXG5mdW5jdGlvbiBleHRyYWN0QmVmb3JlSW5wdXRFdmVudChkaXNwYXRjaFF1ZXVlLCBkb21FdmVudE5hbWUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCkge1xuICB2YXIgY2hhcnM7XG5cbiAgaWYgKGNhblVzZVRleHRJbnB1dEV2ZW50KSB7XG4gICAgY2hhcnMgPSBnZXROYXRpdmVCZWZvcmVJbnB1dENoYXJzKGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpO1xuICB9IGVsc2Uge1xuICAgIGNoYXJzID0gZ2V0RmFsbGJhY2tCZWZvcmVJbnB1dENoYXJzKGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpO1xuICB9IC8vIElmIG5vIGNoYXJhY3RlcnMgYXJlIGJlaW5nIGluc2VydGVkLCBubyBCZWZvcmVJbnB1dCBldmVudCBzaG91bGRcbiAgLy8gYmUgZmlyZWQuXG5cblxuICBpZiAoIWNoYXJzKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgbGlzdGVuZXJzID0gYWNjdW11bGF0ZVR3b1BoYXNlTGlzdGVuZXJzKHRhcmdldEluc3QsICdvbkJlZm9yZUlucHV0Jyk7XG5cbiAgaWYgKGxpc3RlbmVycy5sZW5ndGggPiAwKSB7XG4gICAgdmFyIGV2ZW50ID0gbmV3IFN5bnRoZXRpY0lucHV0RXZlbnQoJ29uQmVmb3JlSW5wdXQnLCAnYmVmb3JlaW5wdXQnLCBudWxsLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICAgIGRpc3BhdGNoUXVldWUucHVzaCh7XG4gICAgICBldmVudDogZXZlbnQsXG4gICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1xuICAgIH0pO1xuICAgIGV2ZW50LmRhdGEgPSBjaGFycztcbiAgfVxufVxuLyoqXG4gKiBDcmVhdGUgYW4gYG9uQmVmb3JlSW5wdXRgIGV2ZW50IHRvIG1hdGNoXG4gKiBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDEzL1dELURPTS1MZXZlbC0zLUV2ZW50cy0yMDEzMTEwNS8jZXZlbnRzLWlucHV0ZXZlbnRzLlxuICpcbiAqIFRoaXMgZXZlbnQgcGx1Z2luIGlzIGJhc2VkIG9uIHRoZSBuYXRpdmUgYHRleHRJbnB1dGAgZXZlbnRcbiAqIGF2YWlsYWJsZSBpbiBDaHJvbWUsIFNhZmFyaSwgT3BlcmEsIGFuZCBJRS4gVGhpcyBldmVudCBmaXJlcyBhZnRlclxuICogYG9uS2V5UHJlc3NgIGFuZCBgb25Db21wb3NpdGlvbkVuZGAsIGJ1dCBiZWZvcmUgYG9uSW5wdXRgLlxuICpcbiAqIGBiZWZvcmVJbnB1dGAgaXMgc3BlYydkIGJ1dCBub3QgaW1wbGVtZW50ZWQgaW4gYW55IGJyb3dzZXJzLCBhbmRcbiAqIHRoZSBgaW5wdXRgIGV2ZW50IGRvZXMgbm90IHByb3ZpZGUgYW55IHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB3aGF0IGhhc1xuICogYWN0dWFsbHkgYmVlbiBhZGRlZCwgY29udHJhcnkgdG8gdGhlIHNwZWMuIFRodXMsIGB0ZXh0SW5wdXRgIGlzIHRoZSBiZXN0XG4gKiBhdmFpbGFibGUgZXZlbnQgdG8gaWRlbnRpZnkgdGhlIGNoYXJhY3RlcnMgdGhhdCBoYXZlIGFjdHVhbGx5IGJlZW4gaW5zZXJ0ZWRcbiAqIGludG8gdGhlIHRhcmdldCBub2RlLlxuICpcbiAqIFRoaXMgcGx1Z2luIGlzIGFsc28gcmVzcG9uc2libGUgZm9yIGVtaXR0aW5nIGBjb21wb3NpdGlvbmAgZXZlbnRzLCB0aHVzXG4gKiBhbGxvd2luZyB1cyB0byBzaGFyZSBjb21wb3NpdGlvbiBmYWxsYmFjayBjb2RlIGZvciBib3RoIGBiZWZvcmVJbnB1dGAgYW5kXG4gKiBgY29tcG9zaXRpb25gIGV2ZW50IHR5cGVzLlxuICovXG5cblxuZnVuY3Rpb24gZXh0cmFjdEV2ZW50cyhkaXNwYXRjaFF1ZXVlLCBkb21FdmVudE5hbWUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyKSB7XG4gIGV4dHJhY3RDb21wb3NpdGlvbkV2ZW50KGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgZXh0cmFjdEJlZm9yZUlucHV0RXZlbnQoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xufVxuXG4vKipcbiAqIEBzZWUgaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdGhlLWlucHV0LWVsZW1lbnQuaHRtbCNpbnB1dC10eXBlLWF0dHItc3VtbWFyeVxuICovXG52YXIgc3VwcG9ydGVkSW5wdXRUeXBlcyA9IHtcbiAgY29sb3I6IHRydWUsXG4gIGRhdGU6IHRydWUsXG4gIGRhdGV0aW1lOiB0cnVlLFxuICAnZGF0ZXRpbWUtbG9jYWwnOiB0cnVlLFxuICBlbWFpbDogdHJ1ZSxcbiAgbW9udGg6IHRydWUsXG4gIG51bWJlcjogdHJ1ZSxcbiAgcGFzc3dvcmQ6IHRydWUsXG4gIHJhbmdlOiB0cnVlLFxuICBzZWFyY2g6IHRydWUsXG4gIHRlbDogdHJ1ZSxcbiAgdGV4dDogdHJ1ZSxcbiAgdGltZTogdHJ1ZSxcbiAgdXJsOiB0cnVlLFxuICB3ZWVrOiB0cnVlXG59O1xuXG5mdW5jdGlvbiBpc1RleHRJbnB1dEVsZW1lbnQoZWxlbSkge1xuICB2YXIgbm9kZU5hbWUgPSBlbGVtICYmIGVsZW0ubm9kZU5hbWUgJiYgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuXG4gIGlmIChub2RlTmFtZSA9PT0gJ2lucHV0Jykge1xuICAgIHJldHVybiAhIXN1cHBvcnRlZElucHV0VHlwZXNbZWxlbS50eXBlXTtcbiAgfVxuXG4gIGlmIChub2RlTmFtZSA9PT0gJ3RleHRhcmVhJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhbiBldmVudCBpcyBzdXBwb3J0ZWQgaW4gdGhlIGN1cnJlbnQgZXhlY3V0aW9uIGVudmlyb25tZW50LlxuICpcbiAqIE5PVEU6IFRoaXMgd2lsbCBub3Qgd29yayBjb3JyZWN0bHkgZm9yIG5vbi1nZW5lcmljIGV2ZW50cyBzdWNoIGFzIGBjaGFuZ2VgLFxuICogYHJlc2V0YCwgYGxvYWRgLCBgZXJyb3JgLCBhbmQgYHNlbGVjdGAuXG4gKlxuICogQm9ycm93cyBmcm9tIE1vZGVybml6ci5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lU3VmZml4IEV2ZW50IG5hbWUsIGUuZy4gXCJjbGlja1wiLlxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgZXZlbnQgaXMgc3VwcG9ydGVkLlxuICogQGludGVybmFsXG4gKiBAbGljZW5zZSBNb2Rlcm5penIgMy4wLjBwcmUgKEN1c3RvbSBCdWlsZCkgfCBNSVRcbiAqL1xuXG5mdW5jdGlvbiBpc0V2ZW50U3VwcG9ydGVkKGV2ZW50TmFtZVN1ZmZpeCkge1xuICBpZiAoIWNhblVzZURPTSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBldmVudE5hbWUgPSAnb24nICsgZXZlbnROYW1lU3VmZml4O1xuICB2YXIgaXNTdXBwb3J0ZWQgPSAoZXZlbnROYW1lIGluIGRvY3VtZW50KTtcblxuICBpZiAoIWlzU3VwcG9ydGVkKSB7XG4gICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShldmVudE5hbWUsICdyZXR1cm47Jyk7XG4gICAgaXNTdXBwb3J0ZWQgPSB0eXBlb2YgZWxlbWVudFtldmVudE5hbWVdID09PSAnZnVuY3Rpb24nO1xuICB9XG5cbiAgcmV0dXJuIGlzU3VwcG9ydGVkO1xufVxuXG5mdW5jdGlvbiByZWdpc3RlckV2ZW50cyQxKCkge1xuICByZWdpc3RlclR3b1BoYXNlRXZlbnQoJ29uQ2hhbmdlJywgWydjaGFuZ2UnLCAnY2xpY2snLCAnZm9jdXNpbicsICdmb2N1c291dCcsICdpbnB1dCcsICdrZXlkb3duJywgJ2tleXVwJywgJ3NlbGVjdGlvbmNoYW5nZSddKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQW5kQWNjdW11bGF0ZUNoYW5nZUV2ZW50KGRpc3BhdGNoUXVldWUsIGluc3QsIG5hdGl2ZUV2ZW50LCB0YXJnZXQpIHtcbiAgLy8gRmxhZyB0aGlzIGV2ZW50IGxvb3AgYXMgbmVlZGluZyBzdGF0ZSByZXN0b3JlLlxuICBlbnF1ZXVlU3RhdGVSZXN0b3JlKHRhcmdldCk7XG4gIHZhciBsaXN0ZW5lcnMgPSBhY2N1bXVsYXRlVHdvUGhhc2VMaXN0ZW5lcnMoaW5zdCwgJ29uQ2hhbmdlJyk7XG5cbiAgaWYgKGxpc3RlbmVycy5sZW5ndGggPiAwKSB7XG4gICAgdmFyIGV2ZW50ID0gbmV3IFN5bnRoZXRpY0V2ZW50KCdvbkNoYW5nZScsICdjaGFuZ2UnLCBudWxsLCBuYXRpdmVFdmVudCwgdGFyZ2V0KTtcbiAgICBkaXNwYXRjaFF1ZXVlLnB1c2goe1xuICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgbGlzdGVuZXJzOiBsaXN0ZW5lcnNcbiAgICB9KTtcbiAgfVxufVxuLyoqXG4gKiBGb3IgSUUgc2hpbXNcbiAqL1xuXG5cbnZhciBhY3RpdmVFbGVtZW50ID0gbnVsbDtcbnZhciBhY3RpdmVFbGVtZW50SW5zdCA9IG51bGw7XG4vKipcbiAqIFNFQ1RJT046IGhhbmRsZSBgY2hhbmdlYCBldmVudFxuICovXG5cbmZ1bmN0aW9uIHNob3VsZFVzZUNoYW5nZUV2ZW50KGVsZW0pIHtcbiAgdmFyIG5vZGVOYW1lID0gZWxlbS5ub2RlTmFtZSAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBub2RlTmFtZSA9PT0gJ3NlbGVjdCcgfHwgbm9kZU5hbWUgPT09ICdpbnB1dCcgJiYgZWxlbS50eXBlID09PSAnZmlsZSc7XG59XG5cbmZ1bmN0aW9uIG1hbnVhbERpc3BhdGNoQ2hhbmdlRXZlbnQobmF0aXZlRXZlbnQpIHtcbiAgdmFyIGRpc3BhdGNoUXVldWUgPSBbXTtcbiAgY3JlYXRlQW5kQWNjdW11bGF0ZUNoYW5nZUV2ZW50KGRpc3BhdGNoUXVldWUsIGFjdGl2ZUVsZW1lbnRJbnN0LCBuYXRpdmVFdmVudCwgZ2V0RXZlbnRUYXJnZXQobmF0aXZlRXZlbnQpKTsgLy8gSWYgY2hhbmdlIGFuZCBwcm9wZXJ0eWNoYW5nZSBidWJibGVkLCB3ZSdkIGp1c3QgYmluZCB0byBpdCBsaWtlIGFsbCB0aGVcbiAgLy8gb3RoZXIgZXZlbnRzIGFuZCBoYXZlIGl0IGdvIHRocm91Z2ggUmVhY3RCcm93c2VyRXZlbnRFbWl0dGVyLiBTaW5jZSBpdFxuICAvLyBkb2Vzbid0LCB3ZSBtYW51YWxseSBsaXN0ZW4gZm9yIHRoZSBldmVudHMgYW5kIHNvIHdlIGhhdmUgdG8gZW5xdWV1ZSBhbmRcbiAgLy8gcHJvY2VzcyB0aGUgYWJzdHJhY3QgZXZlbnQgbWFudWFsbHkuXG4gIC8vXG4gIC8vIEJhdGNoaW5nIGlzIG5lY2Vzc2FyeSBoZXJlIGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IGFsbCBldmVudCBoYW5kbGVycyBydW5cbiAgLy8gYmVmb3JlIHRoZSBuZXh0IHJlcmVuZGVyIChpbmNsdWRpbmcgZXZlbnQgaGFuZGxlcnMgYXR0YWNoZWQgdG8gYW5jZXN0b3JcbiAgLy8gZWxlbWVudHMgaW5zdGVhZCBvZiBkaXJlY3RseSBvbiB0aGUgaW5wdXQpLiBXaXRob3V0IHRoaXMsIGNvbnRyb2xsZWRcbiAgLy8gY29tcG9uZW50cyBkb24ndCB3b3JrIHByb3Blcmx5IGluIGNvbmp1bmN0aW9uIHdpdGggZXZlbnQgYnViYmxpbmcgYmVjYXVzZVxuICAvLyB0aGUgY29tcG9uZW50IGlzIHJlcmVuZGVyZWQgYW5kIHRoZSB2YWx1ZSByZXZlcnRlZCBiZWZvcmUgYWxsIHRoZSBldmVudFxuICAvLyBoYW5kbGVycyBjYW4gcnVuLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy83MDguXG5cbiAgYmF0Y2hlZFVwZGF0ZXMocnVuRXZlbnRJbkJhdGNoLCBkaXNwYXRjaFF1ZXVlKTtcbn1cblxuZnVuY3Rpb24gcnVuRXZlbnRJbkJhdGNoKGRpc3BhdGNoUXVldWUpIHtcbiAgcHJvY2Vzc0Rpc3BhdGNoUXVldWUoZGlzcGF0Y2hRdWV1ZSwgMCk7XG59XG5cbmZ1bmN0aW9uIGdldEluc3RJZlZhbHVlQ2hhbmdlZCh0YXJnZXRJbnN0KSB7XG4gIHZhciB0YXJnZXROb2RlID0gZ2V0Tm9kZUZyb21JbnN0YW5jZSh0YXJnZXRJbnN0KTtcblxuICBpZiAodXBkYXRlVmFsdWVJZkNoYW5nZWQodGFyZ2V0Tm9kZSkpIHtcbiAgICByZXR1cm4gdGFyZ2V0SW5zdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRUYXJnZXRJbnN0Rm9yQ2hhbmdlRXZlbnQoZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0KSB7XG4gIGlmIChkb21FdmVudE5hbWUgPT09ICdjaGFuZ2UnKSB7XG4gICAgcmV0dXJuIHRhcmdldEluc3Q7XG4gIH1cbn1cbi8qKlxuICogU0VDVElPTjogaGFuZGxlIGBpbnB1dGAgZXZlbnRcbiAqL1xuXG5cbnZhciBpc0lucHV0RXZlbnRTdXBwb3J0ZWQgPSBmYWxzZTtcblxuaWYgKGNhblVzZURPTSkge1xuICAvLyBJRTkgY2xhaW1zIHRvIHN1cHBvcnQgdGhlIGlucHV0IGV2ZW50IGJ1dCBmYWlscyB0byB0cmlnZ2VyIGl0IHdoZW5cbiAgLy8gZGVsZXRpbmcgdGV4dCwgc28gd2UgaWdub3JlIGl0cyBpbnB1dCBldmVudHMuXG4gIGlzSW5wdXRFdmVudFN1cHBvcnRlZCA9IGlzRXZlbnRTdXBwb3J0ZWQoJ2lucHV0JykgJiYgKCFkb2N1bWVudC5kb2N1bWVudE1vZGUgfHwgZG9jdW1lbnQuZG9jdW1lbnRNb2RlID4gOSk7XG59XG4vKipcbiAqIChGb3IgSUUgPD05KSBTdGFydHMgdHJhY2tpbmcgcHJvcGVydHljaGFuZ2UgZXZlbnRzIG9uIHRoZSBwYXNzZWQtaW4gZWxlbWVudFxuICogYW5kIG92ZXJyaWRlIHRoZSB2YWx1ZSBwcm9wZXJ0eSBzbyB0aGF0IHdlIGNhbiBkaXN0aW5ndWlzaCB1c2VyIGV2ZW50cyBmcm9tXG4gKiB2YWx1ZSBjaGFuZ2VzIGluIEpTLlxuICovXG5cblxuZnVuY3Rpb24gc3RhcnRXYXRjaGluZ0ZvclZhbHVlQ2hhbmdlKHRhcmdldCwgdGFyZ2V0SW5zdCkge1xuICBhY3RpdmVFbGVtZW50ID0gdGFyZ2V0O1xuICBhY3RpdmVFbGVtZW50SW5zdCA9IHRhcmdldEluc3Q7XG4gIGFjdGl2ZUVsZW1lbnQuYXR0YWNoRXZlbnQoJ29ucHJvcGVydHljaGFuZ2UnLCBoYW5kbGVQcm9wZXJ0eUNoYW5nZSk7XG59XG4vKipcbiAqIChGb3IgSUUgPD05KSBSZW1vdmVzIHRoZSBldmVudCBsaXN0ZW5lcnMgZnJvbSB0aGUgY3VycmVudGx5LXRyYWNrZWQgZWxlbWVudCxcbiAqIGlmIGFueSBleGlzdHMuXG4gKi9cblxuXG5mdW5jdGlvbiBzdG9wV2F0Y2hpbmdGb3JWYWx1ZUNoYW5nZSgpIHtcbiAgaWYgKCFhY3RpdmVFbGVtZW50KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgYWN0aXZlRWxlbWVudC5kZXRhY2hFdmVudCgnb25wcm9wZXJ0eWNoYW5nZScsIGhhbmRsZVByb3BlcnR5Q2hhbmdlKTtcbiAgYWN0aXZlRWxlbWVudCA9IG51bGw7XG4gIGFjdGl2ZUVsZW1lbnRJbnN0ID0gbnVsbDtcbn1cbi8qKlxuICogKEZvciBJRSA8PTkpIEhhbmRsZXMgYSBwcm9wZXJ0eWNoYW5nZSBldmVudCwgc2VuZGluZyBhIGBjaGFuZ2VgIGV2ZW50IGlmXG4gKiB0aGUgdmFsdWUgb2YgdGhlIGFjdGl2ZSBlbGVtZW50IGhhcyBjaGFuZ2VkLlxuICovXG5cblxuZnVuY3Rpb24gaGFuZGxlUHJvcGVydHlDaGFuZ2UobmF0aXZlRXZlbnQpIHtcbiAgaWYgKG5hdGl2ZUV2ZW50LnByb3BlcnR5TmFtZSAhPT0gJ3ZhbHVlJykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChnZXRJbnN0SWZWYWx1ZUNoYW5nZWQoYWN0aXZlRWxlbWVudEluc3QpKSB7XG4gICAgbWFudWFsRGlzcGF0Y2hDaGFuZ2VFdmVudChuYXRpdmVFdmVudCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlRXZlbnRzRm9ySW5wdXRFdmVudFBvbHlmaWxsKGRvbUV2ZW50TmFtZSwgdGFyZ2V0LCB0YXJnZXRJbnN0KSB7XG4gIGlmIChkb21FdmVudE5hbWUgPT09ICdmb2N1c2luJykge1xuICAgIC8vIEluIElFOSwgcHJvcGVydHljaGFuZ2UgZmlyZXMgZm9yIG1vc3QgaW5wdXQgZXZlbnRzIGJ1dCBpcyBidWdneSBhbmRcbiAgICAvLyBkb2Vzbid0IGZpcmUgd2hlbiB0ZXh0IGlzIGRlbGV0ZWQsIGJ1dCBjb252ZW5pZW50bHksIHNlbGVjdGlvbmNoYW5nZVxuICAgIC8vIGFwcGVhcnMgdG8gZmlyZSBpbiBhbGwgb2YgdGhlIHJlbWFpbmluZyBjYXNlcyBzbyB3ZSBjYXRjaCB0aG9zZSBhbmRcbiAgICAvLyBmb3J3YXJkIHRoZSBldmVudCBpZiB0aGUgdmFsdWUgaGFzIGNoYW5nZWRcbiAgICAvLyBJbiBlaXRoZXIgY2FzZSwgd2UgZG9uJ3Qgd2FudCB0byBjYWxsIHRoZSBldmVudCBoYW5kbGVyIGlmIHRoZSB2YWx1ZVxuICAgIC8vIGlzIGNoYW5nZWQgZnJvbSBKUyBzbyB3ZSByZWRlZmluZSBhIHNldHRlciBmb3IgYC52YWx1ZWAgdGhhdCB1cGRhdGVzXG4gICAgLy8gb3VyIGFjdGl2ZUVsZW1lbnRWYWx1ZSB2YXJpYWJsZSwgYWxsb3dpbmcgdXMgdG8gaWdub3JlIHRob3NlIGNoYW5nZXNcbiAgICAvL1xuICAgIC8vIHN0b3BXYXRjaGluZygpIHNob3VsZCBiZSBhIG5vb3AgaGVyZSBidXQgd2UgY2FsbCBpdCBqdXN0IGluIGNhc2Ugd2VcbiAgICAvLyBtaXNzZWQgYSBibHVyIGV2ZW50IHNvbWVob3cuXG4gICAgc3RvcFdhdGNoaW5nRm9yVmFsdWVDaGFuZ2UoKTtcbiAgICBzdGFydFdhdGNoaW5nRm9yVmFsdWVDaGFuZ2UodGFyZ2V0LCB0YXJnZXRJbnN0KTtcbiAgfSBlbHNlIGlmIChkb21FdmVudE5hbWUgPT09ICdmb2N1c291dCcpIHtcbiAgICBzdG9wV2F0Y2hpbmdGb3JWYWx1ZUNoYW5nZSgpO1xuICB9XG59IC8vIEZvciBJRTggYW5kIElFOS5cblxuXG5mdW5jdGlvbiBnZXRUYXJnZXRJbnN0Rm9ySW5wdXRFdmVudFBvbHlmaWxsKGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCkge1xuICBpZiAoZG9tRXZlbnROYW1lID09PSAnc2VsZWN0aW9uY2hhbmdlJyB8fCBkb21FdmVudE5hbWUgPT09ICdrZXl1cCcgfHwgZG9tRXZlbnROYW1lID09PSAna2V5ZG93bicpIHtcbiAgICAvLyBPbiB0aGUgc2VsZWN0aW9uY2hhbmdlIGV2ZW50LCB0aGUgdGFyZ2V0IGlzIGp1c3QgZG9jdW1lbnQgd2hpY2ggaXNuJ3RcbiAgICAvLyBoZWxwZnVsIGZvciB1cyBzbyBqdXN0IGNoZWNrIGFjdGl2ZUVsZW1lbnQgaW5zdGVhZC5cbiAgICAvL1xuICAgIC8vIDk5JSBvZiB0aGUgdGltZSwga2V5ZG93biBhbmQga2V5dXAgYXJlbid0IG5lY2Vzc2FyeS4gSUU4IGZhaWxzIHRvIGZpcmVcbiAgICAvLyBwcm9wZXJ0eWNoYW5nZSBvbiB0aGUgZmlyc3QgaW5wdXQgZXZlbnQgYWZ0ZXIgc2V0dGluZyBgdmFsdWVgIGZyb20gYVxuICAgIC8vIHNjcmlwdCBhbmQgZmlyZXMgb25seSBrZXlkb3duLCBrZXlwcmVzcywga2V5dXAuIENhdGNoaW5nIGtleXVwIHVzdWFsbHlcbiAgICAvLyBnZXRzIGl0IGFuZCBjYXRjaGluZyBrZXlkb3duIGxldHMgdXMgZmlyZSBhbiBldmVudCBmb3IgdGhlIGZpcnN0XG4gICAgLy8ga2V5c3Ryb2tlIGlmIHVzZXIgZG9lcyBhIGtleSByZXBlYXQgKGl0J2xsIGJlIGEgbGl0dGxlIGRlbGF5ZWQ6IHJpZ2h0XG4gICAgLy8gYmVmb3JlIHRoZSBzZWNvbmQga2V5c3Ryb2tlKS4gT3RoZXIgaW5wdXQgbWV0aG9kcyAoZS5nLiwgcGFzdGUpIHNlZW0gdG9cbiAgICAvLyBmaXJlIHNlbGVjdGlvbmNoYW5nZSBub3JtYWxseS5cbiAgICByZXR1cm4gZ2V0SW5zdElmVmFsdWVDaGFuZ2VkKGFjdGl2ZUVsZW1lbnRJbnN0KTtcbiAgfVxufVxuLyoqXG4gKiBTRUNUSU9OOiBoYW5kbGUgYGNsaWNrYCBldmVudFxuICovXG5cblxuZnVuY3Rpb24gc2hvdWxkVXNlQ2xpY2tFdmVudChlbGVtKSB7XG4gIC8vIFVzZSB0aGUgYGNsaWNrYCBldmVudCB0byBkZXRlY3QgY2hhbmdlcyB0byBjaGVja2JveCBhbmQgcmFkaW8gaW5wdXRzLlxuICAvLyBUaGlzIGFwcHJvYWNoIHdvcmtzIGFjcm9zcyBhbGwgYnJvd3NlcnMsIHdoZXJlYXMgYGNoYW5nZWAgZG9lcyBub3QgZmlyZVxuICAvLyB1bnRpbCBgYmx1cmAgaW4gSUU4LlxuICB2YXIgbm9kZU5hbWUgPSBlbGVtLm5vZGVOYW1lO1xuICByZXR1cm4gbm9kZU5hbWUgJiYgbm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2lucHV0JyAmJiAoZWxlbS50eXBlID09PSAnY2hlY2tib3gnIHx8IGVsZW0udHlwZSA9PT0gJ3JhZGlvJyk7XG59XG5cbmZ1bmN0aW9uIGdldFRhcmdldEluc3RGb3JDbGlja0V2ZW50KGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCkge1xuICBpZiAoZG9tRXZlbnROYW1lID09PSAnY2xpY2snKSB7XG4gICAgcmV0dXJuIGdldEluc3RJZlZhbHVlQ2hhbmdlZCh0YXJnZXRJbnN0KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRUYXJnZXRJbnN0Rm9ySW5wdXRPckNoYW5nZUV2ZW50KGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCkge1xuICBpZiAoZG9tRXZlbnROYW1lID09PSAnaW5wdXQnIHx8IGRvbUV2ZW50TmFtZSA9PT0gJ2NoYW5nZScpIHtcbiAgICByZXR1cm4gZ2V0SW5zdElmVmFsdWVDaGFuZ2VkKHRhcmdldEluc3QpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUNvbnRyb2xsZWRJbnB1dEJsdXIobm9kZSkge1xuICB2YXIgc3RhdGUgPSBub2RlLl93cmFwcGVyU3RhdGU7XG5cbiAgaWYgKCFzdGF0ZSB8fCAhc3RhdGUuY29udHJvbGxlZCB8fCBub2RlLnR5cGUgIT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAge1xuICAgIC8vIElmIGNvbnRyb2xsZWQsIGFzc2lnbiB0aGUgdmFsdWUgYXR0cmlidXRlIHRvIHRoZSBjdXJyZW50IHZhbHVlIG9uIGJsdXJcbiAgICBzZXREZWZhdWx0VmFsdWUobm9kZSwgJ251bWJlcicsIG5vZGUudmFsdWUpO1xuICB9XG59XG4vKipcbiAqIFRoaXMgcGx1Z2luIGNyZWF0ZXMgYW4gYG9uQ2hhbmdlYCBldmVudCB0aGF0IG5vcm1hbGl6ZXMgY2hhbmdlIGV2ZW50c1xuICogYWNyb3NzIGZvcm0gZWxlbWVudHMuIFRoaXMgZXZlbnQgZmlyZXMgYXQgYSB0aW1lIHdoZW4gaXQncyBwb3NzaWJsZSB0b1xuICogY2hhbmdlIHRoZSBlbGVtZW50J3MgdmFsdWUgd2l0aG91dCBzZWVpbmcgYSBmbGlja2VyLlxuICpcbiAqIFN1cHBvcnRlZCBlbGVtZW50cyBhcmU6XG4gKiAtIGlucHV0IChzZWUgYGlzVGV4dElucHV0RWxlbWVudGApXG4gKiAtIHRleHRhcmVhXG4gKiAtIHNlbGVjdFxuICovXG5cblxuZnVuY3Rpb24gZXh0cmFjdEV2ZW50cyQxKGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0LCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIpIHtcbiAgdmFyIHRhcmdldE5vZGUgPSB0YXJnZXRJbnN0ID8gZ2V0Tm9kZUZyb21JbnN0YW5jZSh0YXJnZXRJbnN0KSA6IHdpbmRvdztcbiAgdmFyIGdldFRhcmdldEluc3RGdW5jLCBoYW5kbGVFdmVudEZ1bmM7XG5cbiAgaWYgKHNob3VsZFVzZUNoYW5nZUV2ZW50KHRhcmdldE5vZGUpKSB7XG4gICAgZ2V0VGFyZ2V0SW5zdEZ1bmMgPSBnZXRUYXJnZXRJbnN0Rm9yQ2hhbmdlRXZlbnQ7XG4gIH0gZWxzZSBpZiAoaXNUZXh0SW5wdXRFbGVtZW50KHRhcmdldE5vZGUpKSB7XG4gICAgaWYgKGlzSW5wdXRFdmVudFN1cHBvcnRlZCkge1xuICAgICAgZ2V0VGFyZ2V0SW5zdEZ1bmMgPSBnZXRUYXJnZXRJbnN0Rm9ySW5wdXRPckNoYW5nZUV2ZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICBnZXRUYXJnZXRJbnN0RnVuYyA9IGdldFRhcmdldEluc3RGb3JJbnB1dEV2ZW50UG9seWZpbGw7XG4gICAgICBoYW5kbGVFdmVudEZ1bmMgPSBoYW5kbGVFdmVudHNGb3JJbnB1dEV2ZW50UG9seWZpbGw7XG4gICAgfVxuICB9IGVsc2UgaWYgKHNob3VsZFVzZUNsaWNrRXZlbnQodGFyZ2V0Tm9kZSkpIHtcbiAgICBnZXRUYXJnZXRJbnN0RnVuYyA9IGdldFRhcmdldEluc3RGb3JDbGlja0V2ZW50O1xuICB9XG5cbiAgaWYgKGdldFRhcmdldEluc3RGdW5jKSB7XG4gICAgdmFyIGluc3QgPSBnZXRUYXJnZXRJbnN0RnVuYyhkb21FdmVudE5hbWUsIHRhcmdldEluc3QpO1xuXG4gICAgaWYgKGluc3QpIHtcbiAgICAgIGNyZWF0ZUFuZEFjY3VtdWxhdGVDaGFuZ2VFdmVudChkaXNwYXRjaFF1ZXVlLCBpbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGlmIChoYW5kbGVFdmVudEZ1bmMpIHtcbiAgICBoYW5kbGVFdmVudEZ1bmMoZG9tRXZlbnROYW1lLCB0YXJnZXROb2RlLCB0YXJnZXRJbnN0KTtcbiAgfSAvLyBXaGVuIGJsdXJyaW5nLCBzZXQgdGhlIHZhbHVlIGF0dHJpYnV0ZSBmb3IgbnVtYmVyIGlucHV0c1xuXG5cbiAgaWYgKGRvbUV2ZW50TmFtZSA9PT0gJ2ZvY3Vzb3V0Jykge1xuICAgIGhhbmRsZUNvbnRyb2xsZWRJbnB1dEJsdXIodGFyZ2V0Tm9kZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVnaXN0ZXJFdmVudHMkMigpIHtcbiAgcmVnaXN0ZXJEaXJlY3RFdmVudCgnb25Nb3VzZUVudGVyJywgWydtb3VzZW91dCcsICdtb3VzZW92ZXInXSk7XG4gIHJlZ2lzdGVyRGlyZWN0RXZlbnQoJ29uTW91c2VMZWF2ZScsIFsnbW91c2VvdXQnLCAnbW91c2VvdmVyJ10pO1xuICByZWdpc3RlckRpcmVjdEV2ZW50KCdvblBvaW50ZXJFbnRlcicsIFsncG9pbnRlcm91dCcsICdwb2ludGVyb3ZlciddKTtcbiAgcmVnaXN0ZXJEaXJlY3RFdmVudCgnb25Qb2ludGVyTGVhdmUnLCBbJ3BvaW50ZXJvdXQnLCAncG9pbnRlcm92ZXInXSk7XG59XG4vKipcbiAqIEZvciBhbG1vc3QgZXZlcnkgaW50ZXJhY3Rpb24gd2UgY2FyZSBhYm91dCwgdGhlcmUgd2lsbCBiZSBib3RoIGEgdG9wLWxldmVsXG4gKiBgbW91c2VvdmVyYCBhbmQgYG1vdXNlb3V0YCBldmVudCB0aGF0IG9jY3Vycy4gT25seSB1c2UgYG1vdXNlb3V0YCBzbyB0aGF0XG4gKiB3ZSBkbyBub3QgZXh0cmFjdCBkdXBsaWNhdGUgZXZlbnRzLiBIb3dldmVyLCBtb3ZpbmcgdGhlIG1vdXNlIGludG8gdGhlXG4gKiBicm93c2VyIGZyb20gb3V0c2lkZSB3aWxsIG5vdCBmaXJlIGEgYG1vdXNlb3V0YCBldmVudC4gSW4gdGhpcyBjYXNlLCB3ZSB1c2VcbiAqIHRoZSBgbW91c2VvdmVyYCB0b3AtbGV2ZWwgZXZlbnQuXG4gKi9cblxuXG5mdW5jdGlvbiBleHRyYWN0RXZlbnRzJDIoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lcikge1xuICB2YXIgaXNPdmVyRXZlbnQgPSBkb21FdmVudE5hbWUgPT09ICdtb3VzZW92ZXInIHx8IGRvbUV2ZW50TmFtZSA9PT0gJ3BvaW50ZXJvdmVyJztcbiAgdmFyIGlzT3V0RXZlbnQgPSBkb21FdmVudE5hbWUgPT09ICdtb3VzZW91dCcgfHwgZG9tRXZlbnROYW1lID09PSAncG9pbnRlcm91dCc7XG5cbiAgaWYgKGlzT3ZlckV2ZW50ICYmICFpc1JlcGxheWluZ0V2ZW50KG5hdGl2ZUV2ZW50KSkge1xuICAgIC8vIElmIHRoaXMgaXMgYW4gb3ZlciBldmVudCB3aXRoIGEgdGFyZ2V0LCB3ZSBtaWdodCBoYXZlIGFscmVhZHkgZGlzcGF0Y2hlZFxuICAgIC8vIHRoZSBldmVudCBpbiB0aGUgb3V0IGV2ZW50IG9mIHRoZSBvdGhlciB0YXJnZXQuIElmIHRoaXMgaXMgcmVwbGF5ZWQsXG4gICAgLy8gdGhlbiBpdCdzIGJlY2F1c2Ugd2UgY291bGRuJ3QgZGlzcGF0Y2ggYWdhaW5zdCB0aGlzIHRhcmdldCBwcmV2aW91c2x5XG4gICAgLy8gc28gd2UgaGF2ZSB0byBkbyBpdCBub3cgaW5zdGVhZC5cbiAgICB2YXIgcmVsYXRlZCA9IG5hdGl2ZUV2ZW50LnJlbGF0ZWRUYXJnZXQgfHwgbmF0aXZlRXZlbnQuZnJvbUVsZW1lbnQ7XG5cbiAgICBpZiAocmVsYXRlZCkge1xuICAgICAgLy8gSWYgdGhlIHJlbGF0ZWQgbm9kZSBpcyBtYW5hZ2VkIGJ5IFJlYWN0LCB3ZSBjYW4gYXNzdW1lIHRoYXQgd2UgaGF2ZVxuICAgICAgLy8gYWxyZWFkeSBkaXNwYXRjaGVkIHRoZSBjb3JyZXNwb25kaW5nIGV2ZW50cyBkdXJpbmcgaXRzIG1vdXNlb3V0LlxuICAgICAgaWYgKGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlKHJlbGF0ZWQpIHx8IGlzQ29udGFpbmVyTWFya2VkQXNSb290KHJlbGF0ZWQpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoIWlzT3V0RXZlbnQgJiYgIWlzT3ZlckV2ZW50KSB7XG4gICAgLy8gTXVzdCBub3QgYmUgYSBtb3VzZSBvciBwb2ludGVyIGluIG9yIG91dCAtIGlnbm9yaW5nLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciB3aW47IC8vIFRPRE86IHdoeSBpcyB0aGlzIG51bGxhYmxlIGluIHRoZSB0eXBlcyBidXQgd2UgcmVhZCBmcm9tIGl0P1xuXG4gIGlmIChuYXRpdmVFdmVudFRhcmdldC53aW5kb3cgPT09IG5hdGl2ZUV2ZW50VGFyZ2V0KSB7XG4gICAgLy8gYG5hdGl2ZUV2ZW50VGFyZ2V0YCBpcyBwcm9iYWJseSBhIHdpbmRvdyBvYmplY3QuXG4gICAgd2luID0gbmF0aXZlRXZlbnRUYXJnZXQ7XG4gIH0gZWxzZSB7XG4gICAgLy8gVE9ETzogRmlndXJlIG91dCB3aHkgYG93bmVyRG9jdW1lbnRgIGlzIHNvbWV0aW1lcyB1bmRlZmluZWQgaW4gSUU4LlxuICAgIHZhciBkb2MgPSBuYXRpdmVFdmVudFRhcmdldC5vd25lckRvY3VtZW50O1xuXG4gICAgaWYgKGRvYykge1xuICAgICAgd2luID0gZG9jLmRlZmF1bHRWaWV3IHx8IGRvYy5wYXJlbnRXaW5kb3c7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdpbiA9IHdpbmRvdztcbiAgICB9XG4gIH1cblxuICB2YXIgZnJvbTtcbiAgdmFyIHRvO1xuXG4gIGlmIChpc091dEV2ZW50KSB7XG4gICAgdmFyIF9yZWxhdGVkID0gbmF0aXZlRXZlbnQucmVsYXRlZFRhcmdldCB8fCBuYXRpdmVFdmVudC50b0VsZW1lbnQ7XG5cbiAgICBmcm9tID0gdGFyZ2V0SW5zdDtcbiAgICB0byA9IF9yZWxhdGVkID8gZ2V0Q2xvc2VzdEluc3RhbmNlRnJvbU5vZGUoX3JlbGF0ZWQpIDogbnVsbDtcblxuICAgIGlmICh0byAhPT0gbnVsbCkge1xuICAgICAgdmFyIG5lYXJlc3RNb3VudGVkID0gZ2V0TmVhcmVzdE1vdW50ZWRGaWJlcih0byk7XG5cbiAgICAgIGlmICh0byAhPT0gbmVhcmVzdE1vdW50ZWQgfHwgdG8udGFnICE9PSBIb3N0Q29tcG9uZW50ICYmIHRvLnRhZyAhPT0gSG9zdFRleHQpIHtcbiAgICAgICAgdG8gPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBNb3ZpbmcgdG8gYSBub2RlIGZyb20gb3V0c2lkZSB0aGUgd2luZG93LlxuICAgIGZyb20gPSBudWxsO1xuICAgIHRvID0gdGFyZ2V0SW5zdDtcbiAgfVxuXG4gIGlmIChmcm9tID09PSB0bykge1xuICAgIC8vIE5vdGhpbmcgcGVydGFpbnMgdG8gb3VyIG1hbmFnZWQgY29tcG9uZW50cy5cbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljTW91c2VFdmVudDtcbiAgdmFyIGxlYXZlRXZlbnRUeXBlID0gJ29uTW91c2VMZWF2ZSc7XG4gIHZhciBlbnRlckV2ZW50VHlwZSA9ICdvbk1vdXNlRW50ZXInO1xuICB2YXIgZXZlbnRUeXBlUHJlZml4ID0gJ21vdXNlJztcblxuICBpZiAoZG9tRXZlbnROYW1lID09PSAncG9pbnRlcm91dCcgfHwgZG9tRXZlbnROYW1lID09PSAncG9pbnRlcm92ZXInKSB7XG4gICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljUG9pbnRlckV2ZW50O1xuICAgIGxlYXZlRXZlbnRUeXBlID0gJ29uUG9pbnRlckxlYXZlJztcbiAgICBlbnRlckV2ZW50VHlwZSA9ICdvblBvaW50ZXJFbnRlcic7XG4gICAgZXZlbnRUeXBlUHJlZml4ID0gJ3BvaW50ZXInO1xuICB9XG5cbiAgdmFyIGZyb21Ob2RlID0gZnJvbSA9PSBudWxsID8gd2luIDogZ2V0Tm9kZUZyb21JbnN0YW5jZShmcm9tKTtcbiAgdmFyIHRvTm9kZSA9IHRvID09IG51bGwgPyB3aW4gOiBnZXROb2RlRnJvbUluc3RhbmNlKHRvKTtcbiAgdmFyIGxlYXZlID0gbmV3IFN5bnRoZXRpY0V2ZW50Q3RvcihsZWF2ZUV2ZW50VHlwZSwgZXZlbnRUeXBlUHJlZml4ICsgJ2xlYXZlJywgZnJvbSwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgbGVhdmUudGFyZ2V0ID0gZnJvbU5vZGU7XG4gIGxlYXZlLnJlbGF0ZWRUYXJnZXQgPSB0b05vZGU7XG4gIHZhciBlbnRlciA9IG51bGw7IC8vIFdlIHNob3VsZCBvbmx5IHByb2Nlc3MgdGhpcyBuYXRpdmVFdmVudCBpZiB3ZSBhcmUgcHJvY2Vzc2luZ1xuICAvLyB0aGUgZmlyc3QgYW5jZXN0b3IuIE5leHQgdGltZSwgd2Ugd2lsbCBpZ25vcmUgdGhlIGV2ZW50LlxuXG4gIHZhciBuYXRpdmVUYXJnZXRJbnN0ID0gZ2V0Q2xvc2VzdEluc3RhbmNlRnJvbU5vZGUobmF0aXZlRXZlbnRUYXJnZXQpO1xuXG4gIGlmIChuYXRpdmVUYXJnZXRJbnN0ID09PSB0YXJnZXRJbnN0KSB7XG4gICAgdmFyIGVudGVyRXZlbnQgPSBuZXcgU3ludGhldGljRXZlbnRDdG9yKGVudGVyRXZlbnRUeXBlLCBldmVudFR5cGVQcmVmaXggKyAnZW50ZXInLCB0bywgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICBlbnRlckV2ZW50LnRhcmdldCA9IHRvTm9kZTtcbiAgICBlbnRlckV2ZW50LnJlbGF0ZWRUYXJnZXQgPSBmcm9tTm9kZTtcbiAgICBlbnRlciA9IGVudGVyRXZlbnQ7XG4gIH1cblxuICBhY2N1bXVsYXRlRW50ZXJMZWF2ZVR3b1BoYXNlTGlzdGVuZXJzKGRpc3BhdGNoUXVldWUsIGxlYXZlLCBlbnRlciwgZnJvbSwgdG8pO1xufVxuXG4vKipcbiAqIGlubGluZWQgT2JqZWN0LmlzIHBvbHlmaWxsIHRvIGF2b2lkIHJlcXVpcmluZyBjb25zdW1lcnMgc2hpcCB0aGVpciBvd25cbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL09iamVjdC9pc1xuICovXG5mdW5jdGlvbiBpcyh4LCB5KSB7XG4gIHJldHVybiB4ID09PSB5ICYmICh4ICE9PSAwIHx8IDEgLyB4ID09PSAxIC8geSkgfHwgeCAhPT0geCAmJiB5ICE9PSB5IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gIDtcbn1cblxudmFyIG9iamVjdElzID0gdHlwZW9mIE9iamVjdC5pcyA9PT0gJ2Z1bmN0aW9uJyA/IE9iamVjdC5pcyA6IGlzO1xuXG4vKipcbiAqIFBlcmZvcm1zIGVxdWFsaXR5IGJ5IGl0ZXJhdGluZyB0aHJvdWdoIGtleXMgb24gYW4gb2JqZWN0IGFuZCByZXR1cm5pbmcgZmFsc2VcbiAqIHdoZW4gYW55IGtleSBoYXMgdmFsdWVzIHdoaWNoIGFyZSBub3Qgc3RyaWN0bHkgZXF1YWwgYmV0d2VlbiB0aGUgYXJndW1lbnRzLlxuICogUmV0dXJucyB0cnVlIHdoZW4gdGhlIHZhbHVlcyBvZiBhbGwga2V5cyBhcmUgc3RyaWN0bHkgZXF1YWwuXG4gKi9cblxuZnVuY3Rpb24gc2hhbGxvd0VxdWFsKG9iakEsIG9iakIpIHtcbiAgaWYgKG9iamVjdElzKG9iakEsIG9iakIpKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAodHlwZW9mIG9iakEgIT09ICdvYmplY3QnIHx8IG9iakEgPT09IG51bGwgfHwgdHlwZW9mIG9iakIgIT09ICdvYmplY3QnIHx8IG9iakIgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIga2V5c0EgPSBPYmplY3Qua2V5cyhvYmpBKTtcbiAgdmFyIGtleXNCID0gT2JqZWN0LmtleXMob2JqQik7XG5cbiAgaWYgKGtleXNBLmxlbmd0aCAhPT0ga2V5c0IubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IC8vIFRlc3QgZm9yIEEncyBrZXlzIGRpZmZlcmVudCBmcm9tIEIuXG5cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXNBLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGN1cnJlbnRLZXkgPSBrZXlzQVtpXTtcblxuICAgIGlmICghaGFzT3duUHJvcGVydHkuY2FsbChvYmpCLCBjdXJyZW50S2V5KSB8fCAhb2JqZWN0SXMob2JqQVtjdXJyZW50S2V5XSwgb2JqQltjdXJyZW50S2V5XSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBHaXZlbiBhbnkgbm9kZSByZXR1cm4gdGhlIGZpcnN0IGxlYWYgbm9kZSB3aXRob3V0IGNoaWxkcmVuLlxuICpcbiAqIEBwYXJhbSB7RE9NRWxlbWVudHxET01UZXh0Tm9kZX0gbm9kZVxuICogQHJldHVybiB7RE9NRWxlbWVudHxET01UZXh0Tm9kZX1cbiAqL1xuXG5mdW5jdGlvbiBnZXRMZWFmTm9kZShub2RlKSB7XG4gIHdoaWxlIChub2RlICYmIG5vZGUuZmlyc3RDaGlsZCkge1xuICAgIG5vZGUgPSBub2RlLmZpcnN0Q2hpbGQ7XG4gIH1cblxuICByZXR1cm4gbm9kZTtcbn1cbi8qKlxuICogR2V0IHRoZSBuZXh0IHNpYmxpbmcgd2l0aGluIGEgY29udGFpbmVyLiBUaGlzIHdpbGwgd2FsayB1cCB0aGVcbiAqIERPTSBpZiBhIG5vZGUncyBzaWJsaW5ncyBoYXZlIGJlZW4gZXhoYXVzdGVkLlxuICpcbiAqIEBwYXJhbSB7RE9NRWxlbWVudHxET01UZXh0Tm9kZX0gbm9kZVxuICogQHJldHVybiB7P0RPTUVsZW1lbnR8RE9NVGV4dE5vZGV9XG4gKi9cblxuXG5mdW5jdGlvbiBnZXRTaWJsaW5nTm9kZShub2RlKSB7XG4gIHdoaWxlIChub2RlKSB7XG4gICAgaWYgKG5vZGUubmV4dFNpYmxpbmcpIHtcbiAgICAgIHJldHVybiBub2RlLm5leHRTaWJsaW5nO1xuICAgIH1cblxuICAgIG5vZGUgPSBub2RlLnBhcmVudE5vZGU7XG4gIH1cbn1cbi8qKlxuICogR2V0IG9iamVjdCBkZXNjcmliaW5nIHRoZSBub2RlcyB3aGljaCBjb250YWluIGNoYXJhY3RlcnMgYXQgb2Zmc2V0LlxuICpcbiAqIEBwYXJhbSB7RE9NRWxlbWVudHxET01UZXh0Tm9kZX0gcm9vdFxuICogQHBhcmFtIHtudW1iZXJ9IG9mZnNldFxuICogQHJldHVybiB7P29iamVjdH1cbiAqL1xuXG5cbmZ1bmN0aW9uIGdldE5vZGVGb3JDaGFyYWN0ZXJPZmZzZXQocm9vdCwgb2Zmc2V0KSB7XG4gIHZhciBub2RlID0gZ2V0TGVhZk5vZGUocm9vdCk7XG4gIHZhciBub2RlU3RhcnQgPSAwO1xuICB2YXIgbm9kZUVuZCA9IDA7XG5cbiAgd2hpbGUgKG5vZGUpIHtcbiAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gVEVYVF9OT0RFKSB7XG4gICAgICBub2RlRW5kID0gbm9kZVN0YXJ0ICsgbm9kZS50ZXh0Q29udGVudC5sZW5ndGg7XG5cbiAgICAgIGlmIChub2RlU3RhcnQgPD0gb2Zmc2V0ICYmIG5vZGVFbmQgPj0gb2Zmc2V0KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbm9kZTogbm9kZSxcbiAgICAgICAgICBvZmZzZXQ6IG9mZnNldCAtIG5vZGVTdGFydFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBub2RlU3RhcnQgPSBub2RlRW5kO1xuICAgIH1cblxuICAgIG5vZGUgPSBnZXRMZWFmTm9kZShnZXRTaWJsaW5nTm9kZShub2RlKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0ge0RPTUVsZW1lbnR9IG91dGVyTm9kZVxuICogQHJldHVybiB7P29iamVjdH1cbiAqL1xuXG5mdW5jdGlvbiBnZXRPZmZzZXRzKG91dGVyTm9kZSkge1xuICB2YXIgb3duZXJEb2N1bWVudCA9IG91dGVyTm9kZS5vd25lckRvY3VtZW50O1xuICB2YXIgd2luID0gb3duZXJEb2N1bWVudCAmJiBvd25lckRvY3VtZW50LmRlZmF1bHRWaWV3IHx8IHdpbmRvdztcbiAgdmFyIHNlbGVjdGlvbiA9IHdpbi5nZXRTZWxlY3Rpb24gJiYgd2luLmdldFNlbGVjdGlvbigpO1xuXG4gIGlmICghc2VsZWN0aW9uIHx8IHNlbGVjdGlvbi5yYW5nZUNvdW50ID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgYW5jaG9yTm9kZSA9IHNlbGVjdGlvbi5hbmNob3JOb2RlLFxuICAgICAgYW5jaG9yT2Zmc2V0ID0gc2VsZWN0aW9uLmFuY2hvck9mZnNldCxcbiAgICAgIGZvY3VzTm9kZSA9IHNlbGVjdGlvbi5mb2N1c05vZGUsXG4gICAgICBmb2N1c09mZnNldCA9IHNlbGVjdGlvbi5mb2N1c09mZnNldDsgLy8gSW4gRmlyZWZveCwgYW5jaG9yTm9kZSBhbmQgZm9jdXNOb2RlIGNhbiBiZSBcImFub255bW91cyBkaXZzXCIsIGUuZy4gdGhlXG4gIC8vIHVwL2Rvd24gYnV0dG9ucyBvbiBhbiA8aW5wdXQgdHlwZT1cIm51bWJlclwiPi4gQW5vbnltb3VzIGRpdnMgZG8gbm90IHNlZW0gdG9cbiAgLy8gZXhwb3NlIHByb3BlcnRpZXMsIHRyaWdnZXJpbmcgYSBcIlBlcm1pc3Npb24gZGVuaWVkIGVycm9yXCIgaWYgYW55IG9mIGl0c1xuICAvLyBwcm9wZXJ0aWVzIGFyZSBhY2Nlc3NlZC4gVGhlIG9ubHkgc2VlbWluZ2x5IHBvc3NpYmxlIHdheSB0byBhdm9pZCBlcnJvcmluZ1xuICAvLyBpcyB0byBhY2Nlc3MgYSBwcm9wZXJ0eSB0aGF0IHR5cGljYWxseSB3b3JrcyBmb3Igbm9uLWFub255bW91cyBkaXZzIGFuZFxuICAvLyBjYXRjaCBhbnkgZXJyb3IgdGhhdCBtYXkgb3RoZXJ3aXNlIGFyaXNlLiBTZWVcbiAgLy8gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NDI3XG5cbiAgdHJ5IHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtZXhwcmVzc2lvbnMgKi9cbiAgICBhbmNob3JOb2RlLm5vZGVUeXBlO1xuICAgIGZvY3VzTm9kZS5ub2RlVHlwZTtcbiAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXVudXNlZC1leHByZXNzaW9ucyAqL1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gZ2V0TW9kZXJuT2Zmc2V0c0Zyb21Qb2ludHMob3V0ZXJOb2RlLCBhbmNob3JOb2RlLCBhbmNob3JPZmZzZXQsIGZvY3VzTm9kZSwgZm9jdXNPZmZzZXQpO1xufVxuLyoqXG4gKiBSZXR1cm5zIHtzdGFydCwgZW5kfSB3aGVyZSBgc3RhcnRgIGlzIHRoZSBjaGFyYWN0ZXIvY29kZXBvaW50IGluZGV4IG9mXG4gKiAoYW5jaG9yTm9kZSwgYW5jaG9yT2Zmc2V0KSB3aXRoaW4gdGhlIHRleHRDb250ZW50IG9mIGBvdXRlck5vZGVgLCBhbmRcbiAqIGBlbmRgIGlzIHRoZSBpbmRleCBvZiAoZm9jdXNOb2RlLCBmb2N1c09mZnNldCkuXG4gKlxuICogUmV0dXJucyBudWxsIGlmIHlvdSBwYXNzIGluIGdhcmJhZ2UgaW5wdXQgYnV0IHdlIHNob3VsZCBwcm9iYWJseSBqdXN0IGNyYXNoLlxuICpcbiAqIEV4cG9ydGVkIG9ubHkgZm9yIHRlc3RpbmcuXG4gKi9cblxuZnVuY3Rpb24gZ2V0TW9kZXJuT2Zmc2V0c0Zyb21Qb2ludHMob3V0ZXJOb2RlLCBhbmNob3JOb2RlLCBhbmNob3JPZmZzZXQsIGZvY3VzTm9kZSwgZm9jdXNPZmZzZXQpIHtcbiAgdmFyIGxlbmd0aCA9IDA7XG4gIHZhciBzdGFydCA9IC0xO1xuICB2YXIgZW5kID0gLTE7XG4gIHZhciBpbmRleFdpdGhpbkFuY2hvciA9IDA7XG4gIHZhciBpbmRleFdpdGhpbkZvY3VzID0gMDtcbiAgdmFyIG5vZGUgPSBvdXRlck5vZGU7XG4gIHZhciBwYXJlbnROb2RlID0gbnVsbDtcblxuICBvdXRlcjogd2hpbGUgKHRydWUpIHtcbiAgICB2YXIgbmV4dCA9IG51bGw7XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKG5vZGUgPT09IGFuY2hvck5vZGUgJiYgKGFuY2hvck9mZnNldCA9PT0gMCB8fCBub2RlLm5vZGVUeXBlID09PSBURVhUX05PREUpKSB7XG4gICAgICAgIHN0YXJ0ID0gbGVuZ3RoICsgYW5jaG9yT2Zmc2V0O1xuICAgICAgfVxuXG4gICAgICBpZiAobm9kZSA9PT0gZm9jdXNOb2RlICYmIChmb2N1c09mZnNldCA9PT0gMCB8fCBub2RlLm5vZGVUeXBlID09PSBURVhUX05PREUpKSB7XG4gICAgICAgIGVuZCA9IGxlbmd0aCArIGZvY3VzT2Zmc2V0O1xuICAgICAgfVxuXG4gICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gVEVYVF9OT0RFKSB7XG4gICAgICAgIGxlbmd0aCArPSBub2RlLm5vZGVWYWx1ZS5sZW5ndGg7XG4gICAgICB9XG5cbiAgICAgIGlmICgobmV4dCA9IG5vZGUuZmlyc3RDaGlsZCkgPT09IG51bGwpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9IC8vIE1vdmluZyBmcm9tIGBub2RlYCB0byBpdHMgZmlyc3QgY2hpbGQgYG5leHRgLlxuXG5cbiAgICAgIHBhcmVudE5vZGUgPSBub2RlO1xuICAgICAgbm9kZSA9IG5leHQ7XG4gICAgfVxuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGlmIChub2RlID09PSBvdXRlck5vZGUpIHtcbiAgICAgICAgLy8gSWYgYG91dGVyTm9kZWAgaGFzIGNoaWxkcmVuLCB0aGlzIGlzIGFsd2F5cyB0aGUgc2Vjb25kIHRpbWUgdmlzaXRpbmdcbiAgICAgICAgLy8gaXQuIElmIGl0IGhhcyBubyBjaGlsZHJlbiwgdGhpcyBpcyBzdGlsbCB0aGUgZmlyc3QgbG9vcCwgYW5kIHRoZSBvbmx5XG4gICAgICAgIC8vIHZhbGlkIHNlbGVjdGlvbiBpcyBhbmNob3JOb2RlIGFuZCBmb2N1c05vZGUgYm90aCBlcXVhbCB0byB0aGlzIG5vZGVcbiAgICAgICAgLy8gYW5kIGJvdGggb2Zmc2V0cyAwLCBpbiB3aGljaCBjYXNlIHdlIHdpbGwgaGF2ZSBoYW5kbGVkIGFib3ZlLlxuICAgICAgICBicmVhayBvdXRlcjtcbiAgICAgIH1cblxuICAgICAgaWYgKHBhcmVudE5vZGUgPT09IGFuY2hvck5vZGUgJiYgKytpbmRleFdpdGhpbkFuY2hvciA9PT0gYW5jaG9yT2Zmc2V0KSB7XG4gICAgICAgIHN0YXJ0ID0gbGVuZ3RoO1xuICAgICAgfVxuXG4gICAgICBpZiAocGFyZW50Tm9kZSA9PT0gZm9jdXNOb2RlICYmICsraW5kZXhXaXRoaW5Gb2N1cyA9PT0gZm9jdXNPZmZzZXQpIHtcbiAgICAgICAgZW5kID0gbGVuZ3RoO1xuICAgICAgfVxuXG4gICAgICBpZiAoKG5leHQgPSBub2RlLm5leHRTaWJsaW5nKSAhPT0gbnVsbCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgbm9kZSA9IHBhcmVudE5vZGU7XG4gICAgICBwYXJlbnROb2RlID0gbm9kZS5wYXJlbnROb2RlO1xuICAgIH0gLy8gTW92aW5nIGZyb20gYG5vZGVgIHRvIGl0cyBuZXh0IHNpYmxpbmcgYG5leHRgLlxuXG5cbiAgICBub2RlID0gbmV4dDtcbiAgfVxuXG4gIGlmIChzdGFydCA9PT0gLTEgfHwgZW5kID09PSAtMSkge1xuICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi4gKFdvdWxkIGhhcHBlbiBpZiB0aGUgYW5jaG9yL2ZvY3VzIG5vZGVzIGFyZW4ndFxuICAgIC8vIGFjdHVhbGx5IGluc2lkZSB0aGUgcGFzc2VkLWluIG5vZGUuKVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFydDogc3RhcnQsXG4gICAgZW5kOiBlbmRcbiAgfTtcbn1cbi8qKlxuICogSW4gbW9kZXJuIG5vbi1JRSBicm93c2Vycywgd2UgY2FuIHN1cHBvcnQgYm90aCBmb3J3YXJkIGFuZCBiYWNrd2FyZFxuICogc2VsZWN0aW9ucy5cbiAqXG4gKiBOb3RlOiBJRTEwKyBzdXBwb3J0cyB0aGUgU2VsZWN0aW9uIG9iamVjdCwgYnV0IGl0IGRvZXMgbm90IHN1cHBvcnRcbiAqIHRoZSBgZXh0ZW5kYCBtZXRob2QsIHdoaWNoIG1lYW5zIHRoYXQgZXZlbiBpbiBtb2Rlcm4gSUUsIGl0J3Mgbm90IHBvc3NpYmxlXG4gKiB0byBwcm9ncmFtbWF0aWNhbGx5IGNyZWF0ZSBhIGJhY2t3YXJkIHNlbGVjdGlvbi4gVGh1cywgZm9yIGFsbCBJRVxuICogdmVyc2lvbnMsIHdlIHVzZSB0aGUgb2xkIElFIEFQSSB0byBjcmVhdGUgb3VyIHNlbGVjdGlvbnMuXG4gKlxuICogQHBhcmFtIHtET01FbGVtZW50fERPTVRleHROb2RlfSBub2RlXG4gKiBAcGFyYW0ge29iamVjdH0gb2Zmc2V0c1xuICovXG5cbmZ1bmN0aW9uIHNldE9mZnNldHMobm9kZSwgb2Zmc2V0cykge1xuICB2YXIgZG9jID0gbm9kZS5vd25lckRvY3VtZW50IHx8IGRvY3VtZW50O1xuICB2YXIgd2luID0gZG9jICYmIGRvYy5kZWZhdWx0VmlldyB8fCB3aW5kb3c7IC8vIEVkZ2UgZmFpbHMgd2l0aCBcIk9iamVjdCBleHBlY3RlZFwiIGluIHNvbWUgc2NlbmFyaW9zLlxuICAvLyAoRm9yIGluc3RhbmNlOiBUaW55TUNFIGVkaXRvciB1c2VkIGluIGEgbGlzdCBjb21wb25lbnQgdGhhdCBzdXBwb3J0cyBwYXN0aW5nIHRvIGFkZCBtb3JlLFxuICAvLyBmYWlscyB3aGVuIHBhc3RpbmcgMTAwKyBpdGVtcylcblxuICBpZiAoIXdpbi5nZXRTZWxlY3Rpb24pIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgc2VsZWN0aW9uID0gd2luLmdldFNlbGVjdGlvbigpO1xuICB2YXIgbGVuZ3RoID0gbm9kZS50ZXh0Q29udGVudC5sZW5ndGg7XG4gIHZhciBzdGFydCA9IE1hdGgubWluKG9mZnNldHMuc3RhcnQsIGxlbmd0aCk7XG4gIHZhciBlbmQgPSBvZmZzZXRzLmVuZCA9PT0gdW5kZWZpbmVkID8gc3RhcnQgOiBNYXRoLm1pbihvZmZzZXRzLmVuZCwgbGVuZ3RoKTsgLy8gSUUgMTEgdXNlcyBtb2Rlcm4gc2VsZWN0aW9uLCBidXQgZG9lc24ndCBzdXBwb3J0IHRoZSBleHRlbmQgbWV0aG9kLlxuICAvLyBGbGlwIGJhY2t3YXJkIHNlbGVjdGlvbnMsIHNvIHdlIGNhbiBzZXQgd2l0aCBhIHNpbmdsZSByYW5nZS5cblxuICBpZiAoIXNlbGVjdGlvbi5leHRlbmQgJiYgc3RhcnQgPiBlbmQpIHtcbiAgICB2YXIgdGVtcCA9IGVuZDtcbiAgICBlbmQgPSBzdGFydDtcbiAgICBzdGFydCA9IHRlbXA7XG4gIH1cblxuICB2YXIgc3RhcnRNYXJrZXIgPSBnZXROb2RlRm9yQ2hhcmFjdGVyT2Zmc2V0KG5vZGUsIHN0YXJ0KTtcbiAgdmFyIGVuZE1hcmtlciA9IGdldE5vZGVGb3JDaGFyYWN0ZXJPZmZzZXQobm9kZSwgZW5kKTtcblxuICBpZiAoc3RhcnRNYXJrZXIgJiYgZW5kTWFya2VyKSB7XG4gICAgaWYgKHNlbGVjdGlvbi5yYW5nZUNvdW50ID09PSAxICYmIHNlbGVjdGlvbi5hbmNob3JOb2RlID09PSBzdGFydE1hcmtlci5ub2RlICYmIHNlbGVjdGlvbi5hbmNob3JPZmZzZXQgPT09IHN0YXJ0TWFya2VyLm9mZnNldCAmJiBzZWxlY3Rpb24uZm9jdXNOb2RlID09PSBlbmRNYXJrZXIubm9kZSAmJiBzZWxlY3Rpb24uZm9jdXNPZmZzZXQgPT09IGVuZE1hcmtlci5vZmZzZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgcmFuZ2UgPSBkb2MuY3JlYXRlUmFuZ2UoKTtcbiAgICByYW5nZS5zZXRTdGFydChzdGFydE1hcmtlci5ub2RlLCBzdGFydE1hcmtlci5vZmZzZXQpO1xuICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcblxuICAgIGlmIChzdGFydCA+IGVuZCkge1xuICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKTtcbiAgICAgIHNlbGVjdGlvbi5leHRlbmQoZW5kTWFya2VyLm5vZGUsIGVuZE1hcmtlci5vZmZzZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByYW5nZS5zZXRFbmQoZW5kTWFya2VyLm5vZGUsIGVuZE1hcmtlci5vZmZzZXQpO1xuICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNUZXh0Tm9kZShub2RlKSB7XG4gIHJldHVybiBub2RlICYmIG5vZGUubm9kZVR5cGUgPT09IFRFWFRfTk9ERTtcbn1cblxuZnVuY3Rpb24gY29udGFpbnNOb2RlKG91dGVyTm9kZSwgaW5uZXJOb2RlKSB7XG4gIGlmICghb3V0ZXJOb2RlIHx8ICFpbm5lck5vZGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gZWxzZSBpZiAob3V0ZXJOb2RlID09PSBpbm5lck5vZGUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIGlmIChpc1RleHROb2RlKG91dGVyTm9kZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gZWxzZSBpZiAoaXNUZXh0Tm9kZShpbm5lck5vZGUpKSB7XG4gICAgcmV0dXJuIGNvbnRhaW5zTm9kZShvdXRlck5vZGUsIGlubmVyTm9kZS5wYXJlbnROb2RlKTtcbiAgfSBlbHNlIGlmICgnY29udGFpbnMnIGluIG91dGVyTm9kZSkge1xuICAgIHJldHVybiBvdXRlck5vZGUuY29udGFpbnMoaW5uZXJOb2RlKTtcbiAgfSBlbHNlIGlmIChvdXRlck5vZGUuY29tcGFyZURvY3VtZW50UG9zaXRpb24pIHtcbiAgICByZXR1cm4gISEob3V0ZXJOb2RlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGlubmVyTm9kZSkgJiAxNik7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzSW5Eb2N1bWVudChub2RlKSB7XG4gIHJldHVybiBub2RlICYmIG5vZGUub3duZXJEb2N1bWVudCAmJiBjb250YWluc05vZGUobm9kZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgbm9kZSk7XG59XG5cbmZ1bmN0aW9uIGlzU2FtZU9yaWdpbkZyYW1lKGlmcmFtZSkge1xuICB0cnkge1xuICAgIC8vIEFjY2Vzc2luZyB0aGUgY29udGVudERvY3VtZW50IG9mIGEgSFRNTElmcmFtZUVsZW1lbnQgY2FuIGNhdXNlIHRoZSBicm93c2VyXG4gICAgLy8gdG8gdGhyb3csIGUuZy4gaWYgaXQgaGFzIGEgY3Jvc3Mtb3JpZ2luIHNyYyBhdHRyaWJ1dGUuXG4gICAgLy8gU2FmYXJpIHdpbGwgc2hvdyBhbiBlcnJvciBpbiB0aGUgY29uc29sZSB3aGVuIHRoZSBhY2Nlc3MgcmVzdWx0cyBpbiBcIkJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpblwiLiBlLmc6XG4gICAgLy8gaWZyYW1lLmNvbnRlbnREb2N1bWVudC5kZWZhdWx0VmlldztcbiAgICAvLyBBIHNhZmV0eSB3YXkgaXMgdG8gYWNjZXNzIG9uZSBvZiB0aGUgY3Jvc3Mgb3JpZ2luIHByb3BlcnRpZXM6IFdpbmRvdyBvciBMb2NhdGlvblxuICAgIC8vIFdoaWNoIG1pZ2h0IHJlc3VsdCBpbiBcIlNlY3VyaXR5RXJyb3JcIiBET00gRXhjZXB0aW9uIGFuZCBpdCBpcyBjb21wYXRpYmxlIHRvIFNhZmFyaS5cbiAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9icm93c2Vycy5odG1sI2ludGVncmF0aW9uLXdpdGgtaWRsXG4gICAgcmV0dXJuIHR5cGVvZiBpZnJhbWUuY29udGVudFdpbmRvdy5sb2NhdGlvbi5ocmVmID09PSAnc3RyaW5nJztcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEFjdGl2ZUVsZW1lbnREZWVwKCkge1xuICB2YXIgd2luID0gd2luZG93O1xuICB2YXIgZWxlbWVudCA9IGdldEFjdGl2ZUVsZW1lbnQoKTtcblxuICB3aGlsZSAoZWxlbWVudCBpbnN0YW5jZW9mIHdpbi5IVE1MSUZyYW1lRWxlbWVudCkge1xuICAgIGlmIChpc1NhbWVPcmlnaW5GcmFtZShlbGVtZW50KSkge1xuICAgICAgd2luID0gZWxlbWVudC5jb250ZW50V2luZG93O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9XG5cbiAgICBlbGVtZW50ID0gZ2V0QWN0aXZlRWxlbWVudCh3aW4uZG9jdW1lbnQpO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnQ7XG59XG4vKipcbiAqIEBSZWFjdElucHV0U2VsZWN0aW9uOiBSZWFjdCBpbnB1dCBzZWxlY3Rpb24gbW9kdWxlLiBCYXNlZCBvbiBTZWxlY3Rpb24uanMsXG4gKiBidXQgbW9kaWZpZWQgdG8gYmUgc3VpdGFibGUgZm9yIHJlYWN0IGFuZCBoYXMgYSBjb3VwbGUgb2YgYnVnIGZpeGVzIChkb2Vzbid0XG4gKiBhc3N1bWUgYnV0dG9ucyBoYXZlIHJhbmdlIHNlbGVjdGlvbnMgYWxsb3dlZCkuXG4gKiBJbnB1dCBzZWxlY3Rpb24gbW9kdWxlIGZvciBSZWFjdC5cbiAqL1xuXG4vKipcbiAqIEBoYXNTZWxlY3Rpb25DYXBhYmlsaXRpZXM6IHdlIGdldCB0aGUgZWxlbWVudCB0eXBlcyB0aGF0IHN1cHBvcnQgc2VsZWN0aW9uXG4gKiBmcm9tIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2RvLW5vdC1hcHBseSwgbG9va2luZyBhdCBgc2VsZWN0aW9uU3RhcnRgXG4gKiBhbmQgYHNlbGVjdGlvbkVuZGAgcm93cy5cbiAqL1xuXG5cbmZ1bmN0aW9uIGhhc1NlbGVjdGlvbkNhcGFiaWxpdGllcyhlbGVtKSB7XG4gIHZhciBub2RlTmFtZSA9IGVsZW0gJiYgZWxlbS5ub2RlTmFtZSAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBub2RlTmFtZSAmJiAobm9kZU5hbWUgPT09ICdpbnB1dCcgJiYgKGVsZW0udHlwZSA9PT0gJ3RleHQnIHx8IGVsZW0udHlwZSA9PT0gJ3NlYXJjaCcgfHwgZWxlbS50eXBlID09PSAndGVsJyB8fCBlbGVtLnR5cGUgPT09ICd1cmwnIHx8IGVsZW0udHlwZSA9PT0gJ3Bhc3N3b3JkJykgfHwgbm9kZU5hbWUgPT09ICd0ZXh0YXJlYScgfHwgZWxlbS5jb250ZW50RWRpdGFibGUgPT09ICd0cnVlJyk7XG59XG5mdW5jdGlvbiBnZXRTZWxlY3Rpb25JbmZvcm1hdGlvbigpIHtcbiAgdmFyIGZvY3VzZWRFbGVtID0gZ2V0QWN0aXZlRWxlbWVudERlZXAoKTtcbiAgcmV0dXJuIHtcbiAgICBmb2N1c2VkRWxlbTogZm9jdXNlZEVsZW0sXG4gICAgc2VsZWN0aW9uUmFuZ2U6IGhhc1NlbGVjdGlvbkNhcGFiaWxpdGllcyhmb2N1c2VkRWxlbSkgPyBnZXRTZWxlY3Rpb24oZm9jdXNlZEVsZW0pIDogbnVsbFxuICB9O1xufVxuLyoqXG4gKiBAcmVzdG9yZVNlbGVjdGlvbjogSWYgYW55IHNlbGVjdGlvbiBpbmZvcm1hdGlvbiB3YXMgcG90ZW50aWFsbHkgbG9zdCxcbiAqIHJlc3RvcmUgaXQuIFRoaXMgaXMgdXNlZnVsIHdoZW4gcGVyZm9ybWluZyBvcGVyYXRpb25zIHRoYXQgY291bGQgcmVtb3ZlIGRvbVxuICogbm9kZXMgYW5kIHBsYWNlIHRoZW0gYmFjayBpbiwgcmVzdWx0aW5nIGluIGZvY3VzIGJlaW5nIGxvc3QuXG4gKi9cblxuZnVuY3Rpb24gcmVzdG9yZVNlbGVjdGlvbihwcmlvclNlbGVjdGlvbkluZm9ybWF0aW9uKSB7XG4gIHZhciBjdXJGb2N1c2VkRWxlbSA9IGdldEFjdGl2ZUVsZW1lbnREZWVwKCk7XG4gIHZhciBwcmlvckZvY3VzZWRFbGVtID0gcHJpb3JTZWxlY3Rpb25JbmZvcm1hdGlvbi5mb2N1c2VkRWxlbTtcbiAgdmFyIHByaW9yU2VsZWN0aW9uUmFuZ2UgPSBwcmlvclNlbGVjdGlvbkluZm9ybWF0aW9uLnNlbGVjdGlvblJhbmdlO1xuXG4gIGlmIChjdXJGb2N1c2VkRWxlbSAhPT0gcHJpb3JGb2N1c2VkRWxlbSAmJiBpc0luRG9jdW1lbnQocHJpb3JGb2N1c2VkRWxlbSkpIHtcbiAgICBpZiAocHJpb3JTZWxlY3Rpb25SYW5nZSAhPT0gbnVsbCAmJiBoYXNTZWxlY3Rpb25DYXBhYmlsaXRpZXMocHJpb3JGb2N1c2VkRWxlbSkpIHtcbiAgICAgIHNldFNlbGVjdGlvbihwcmlvckZvY3VzZWRFbGVtLCBwcmlvclNlbGVjdGlvblJhbmdlKTtcbiAgICB9IC8vIEZvY3VzaW5nIGEgbm9kZSBjYW4gY2hhbmdlIHRoZSBzY3JvbGwgcG9zaXRpb24sIHdoaWNoIGlzIHVuZGVzaXJhYmxlXG5cblxuICAgIHZhciBhbmNlc3RvcnMgPSBbXTtcbiAgICB2YXIgYW5jZXN0b3IgPSBwcmlvckZvY3VzZWRFbGVtO1xuXG4gICAgd2hpbGUgKGFuY2VzdG9yID0gYW5jZXN0b3IucGFyZW50Tm9kZSkge1xuICAgICAgaWYgKGFuY2VzdG9yLm5vZGVUeXBlID09PSBFTEVNRU5UX05PREUpIHtcbiAgICAgICAgYW5jZXN0b3JzLnB1c2goe1xuICAgICAgICAgIGVsZW1lbnQ6IGFuY2VzdG9yLFxuICAgICAgICAgIGxlZnQ6IGFuY2VzdG9yLnNjcm9sbExlZnQsXG4gICAgICAgICAgdG9wOiBhbmNlc3Rvci5zY3JvbGxUb3BcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBwcmlvckZvY3VzZWRFbGVtLmZvY3VzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwcmlvckZvY3VzZWRFbGVtLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhbmNlc3RvcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBpbmZvID0gYW5jZXN0b3JzW2ldO1xuICAgICAgaW5mby5lbGVtZW50LnNjcm9sbExlZnQgPSBpbmZvLmxlZnQ7XG4gICAgICBpbmZvLmVsZW1lbnQuc2Nyb2xsVG9wID0gaW5mby50b3A7XG4gICAgfVxuICB9XG59XG4vKipcbiAqIEBnZXRTZWxlY3Rpb246IEdldHMgdGhlIHNlbGVjdGlvbiBib3VuZHMgb2YgYSBmb2N1c2VkIHRleHRhcmVhLCBpbnB1dCBvclxuICogY29udGVudEVkaXRhYmxlIG5vZGUuXG4gKiAtQGlucHV0OiBMb29rIHVwIHNlbGVjdGlvbiBib3VuZHMgb2YgdGhpcyBpbnB1dFxuICogLUByZXR1cm4ge3N0YXJ0OiBzZWxlY3Rpb25TdGFydCwgZW5kOiBzZWxlY3Rpb25FbmR9XG4gKi9cblxuZnVuY3Rpb24gZ2V0U2VsZWN0aW9uKGlucHV0KSB7XG4gIHZhciBzZWxlY3Rpb247XG5cbiAgaWYgKCdzZWxlY3Rpb25TdGFydCcgaW4gaW5wdXQpIHtcbiAgICAvLyBNb2Rlcm4gYnJvd3NlciB3aXRoIGlucHV0IG9yIHRleHRhcmVhLlxuICAgIHNlbGVjdGlvbiA9IHtcbiAgICAgIHN0YXJ0OiBpbnB1dC5zZWxlY3Rpb25TdGFydCxcbiAgICAgIGVuZDogaW5wdXQuc2VsZWN0aW9uRW5kXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICAvLyBDb250ZW50IGVkaXRhYmxlIG9yIG9sZCBJRSB0ZXh0YXJlYS5cbiAgICBzZWxlY3Rpb24gPSBnZXRPZmZzZXRzKGlucHV0KTtcbiAgfVxuXG4gIHJldHVybiBzZWxlY3Rpb24gfHwge1xuICAgIHN0YXJ0OiAwLFxuICAgIGVuZDogMFxuICB9O1xufVxuLyoqXG4gKiBAc2V0U2VsZWN0aW9uOiBTZXRzIHRoZSBzZWxlY3Rpb24gYm91bmRzIG9mIGEgdGV4dGFyZWEgb3IgaW5wdXQgYW5kIGZvY3VzZXNcbiAqIHRoZSBpbnB1dC5cbiAqIC1AaW5wdXQgICAgIFNldCBzZWxlY3Rpb24gYm91bmRzIG9mIHRoaXMgaW5wdXQgb3IgdGV4dGFyZWFcbiAqIC1Ab2Zmc2V0cyAgIE9iamVjdCBvZiBzYW1lIGZvcm0gdGhhdCBpcyByZXR1cm5lZCBmcm9tIGdldCpcbiAqL1xuXG5mdW5jdGlvbiBzZXRTZWxlY3Rpb24oaW5wdXQsIG9mZnNldHMpIHtcbiAgdmFyIHN0YXJ0ID0gb2Zmc2V0cy5zdGFydDtcbiAgdmFyIGVuZCA9IG9mZnNldHMuZW5kO1xuXG4gIGlmIChlbmQgPT09IHVuZGVmaW5lZCkge1xuICAgIGVuZCA9IHN0YXJ0O1xuICB9XG5cbiAgaWYgKCdzZWxlY3Rpb25TdGFydCcgaW4gaW5wdXQpIHtcbiAgICBpbnB1dC5zZWxlY3Rpb25TdGFydCA9IHN0YXJ0O1xuICAgIGlucHV0LnNlbGVjdGlvbkVuZCA9IE1hdGgubWluKGVuZCwgaW5wdXQudmFsdWUubGVuZ3RoKTtcbiAgfSBlbHNlIHtcbiAgICBzZXRPZmZzZXRzKGlucHV0LCBvZmZzZXRzKTtcbiAgfVxufVxuXG52YXIgc2tpcFNlbGVjdGlvbkNoYW5nZUV2ZW50ID0gY2FuVXNlRE9NICYmICdkb2N1bWVudE1vZGUnIGluIGRvY3VtZW50ICYmIGRvY3VtZW50LmRvY3VtZW50TW9kZSA8PSAxMTtcblxuZnVuY3Rpb24gcmVnaXN0ZXJFdmVudHMkMygpIHtcbiAgcmVnaXN0ZXJUd29QaGFzZUV2ZW50KCdvblNlbGVjdCcsIFsnZm9jdXNvdXQnLCAnY29udGV4dG1lbnUnLCAnZHJhZ2VuZCcsICdmb2N1c2luJywgJ2tleWRvd24nLCAna2V5dXAnLCAnbW91c2Vkb3duJywgJ21vdXNldXAnLCAnc2VsZWN0aW9uY2hhbmdlJ10pO1xufVxuXG52YXIgYWN0aXZlRWxlbWVudCQxID0gbnVsbDtcbnZhciBhY3RpdmVFbGVtZW50SW5zdCQxID0gbnVsbDtcbnZhciBsYXN0U2VsZWN0aW9uID0gbnVsbDtcbnZhciBtb3VzZURvd24gPSBmYWxzZTtcbi8qKlxuICogR2V0IGFuIG9iamVjdCB3aGljaCBpcyBhIHVuaXF1ZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgY3VycmVudCBzZWxlY3Rpb24uXG4gKlxuICogVGhlIHJldHVybiB2YWx1ZSB3aWxsIG5vdCBiZSBjb25zaXN0ZW50IGFjcm9zcyBub2RlcyBvciBicm93c2VycywgYnV0XG4gKiB0d28gaWRlbnRpY2FsIHNlbGVjdGlvbnMgb24gdGhlIHNhbWUgbm9kZSB3aWxsIHJldHVybiBpZGVudGljYWwgb2JqZWN0cy5cbiAqL1xuXG5mdW5jdGlvbiBnZXRTZWxlY3Rpb24kMShub2RlKSB7XG4gIGlmICgnc2VsZWN0aW9uU3RhcnQnIGluIG5vZGUgJiYgaGFzU2VsZWN0aW9uQ2FwYWJpbGl0aWVzKG5vZGUpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0OiBub2RlLnNlbGVjdGlvblN0YXJ0LFxuICAgICAgZW5kOiBub2RlLnNlbGVjdGlvbkVuZFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgdmFyIHdpbiA9IG5vZGUub3duZXJEb2N1bWVudCAmJiBub2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgfHwgd2luZG93O1xuICAgIHZhciBzZWxlY3Rpb24gPSB3aW4uZ2V0U2VsZWN0aW9uKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFuY2hvck5vZGU6IHNlbGVjdGlvbi5hbmNob3JOb2RlLFxuICAgICAgYW5jaG9yT2Zmc2V0OiBzZWxlY3Rpb24uYW5jaG9yT2Zmc2V0LFxuICAgICAgZm9jdXNOb2RlOiBzZWxlY3Rpb24uZm9jdXNOb2RlLFxuICAgICAgZm9jdXNPZmZzZXQ6IHNlbGVjdGlvbi5mb2N1c09mZnNldFxuICAgIH07XG4gIH1cbn1cbi8qKlxuICogR2V0IGRvY3VtZW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgZXZlbnQgdGFyZ2V0LlxuICovXG5cblxuZnVuY3Rpb24gZ2V0RXZlbnRUYXJnZXREb2N1bWVudChldmVudFRhcmdldCkge1xuICByZXR1cm4gZXZlbnRUYXJnZXQud2luZG93ID09PSBldmVudFRhcmdldCA/IGV2ZW50VGFyZ2V0LmRvY3VtZW50IDogZXZlbnRUYXJnZXQubm9kZVR5cGUgPT09IERPQ1VNRU5UX05PREUgPyBldmVudFRhcmdldCA6IGV2ZW50VGFyZ2V0Lm93bmVyRG9jdW1lbnQ7XG59XG4vKipcbiAqIFBvbGwgc2VsZWN0aW9uIHRvIHNlZSB3aGV0aGVyIGl0J3MgY2hhbmdlZC5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gbmF0aXZlRXZlbnRcbiAqIEBwYXJhbSB7b2JqZWN0fSBuYXRpdmVFdmVudFRhcmdldFxuICogQHJldHVybiB7P1N5bnRoZXRpY0V2ZW50fVxuICovXG5cblxuZnVuY3Rpb24gY29uc3RydWN0U2VsZWN0RXZlbnQoZGlzcGF0Y2hRdWV1ZSwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KSB7XG4gIC8vIEVuc3VyZSB3ZSBoYXZlIHRoZSByaWdodCBlbGVtZW50LCBhbmQgdGhhdCB0aGUgdXNlciBpcyBub3QgZHJhZ2dpbmcgYVxuICAvLyBzZWxlY3Rpb24gKHRoaXMgbWF0Y2hlcyBuYXRpdmUgYHNlbGVjdGAgZXZlbnQgYmVoYXZpb3IpLiBJbiBIVE1MNSwgc2VsZWN0XG4gIC8vIGZpcmVzIG9ubHkgb24gaW5wdXQgYW5kIHRleHRhcmVhIHRodXMgaWYgdGhlcmUncyBubyBmb2N1c2VkIGVsZW1lbnQgd2VcbiAgLy8gd29uJ3QgZGlzcGF0Y2guXG4gIHZhciBkb2MgPSBnZXRFdmVudFRhcmdldERvY3VtZW50KG5hdGl2ZUV2ZW50VGFyZ2V0KTtcblxuICBpZiAobW91c2VEb3duIHx8IGFjdGl2ZUVsZW1lbnQkMSA9PSBudWxsIHx8IGFjdGl2ZUVsZW1lbnQkMSAhPT0gZ2V0QWN0aXZlRWxlbWVudChkb2MpKSB7XG4gICAgcmV0dXJuO1xuICB9IC8vIE9ubHkgZmlyZSB3aGVuIHNlbGVjdGlvbiBoYXMgYWN0dWFsbHkgY2hhbmdlZC5cblxuXG4gIHZhciBjdXJyZW50U2VsZWN0aW9uID0gZ2V0U2VsZWN0aW9uJDEoYWN0aXZlRWxlbWVudCQxKTtcblxuICBpZiAoIWxhc3RTZWxlY3Rpb24gfHwgIXNoYWxsb3dFcXVhbChsYXN0U2VsZWN0aW9uLCBjdXJyZW50U2VsZWN0aW9uKSkge1xuICAgIGxhc3RTZWxlY3Rpb24gPSBjdXJyZW50U2VsZWN0aW9uO1xuICAgIHZhciBsaXN0ZW5lcnMgPSBhY2N1bXVsYXRlVHdvUGhhc2VMaXN0ZW5lcnMoYWN0aXZlRWxlbWVudEluc3QkMSwgJ29uU2VsZWN0Jyk7XG5cbiAgICBpZiAobGlzdGVuZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHZhciBldmVudCA9IG5ldyBTeW50aGV0aWNFdmVudCgnb25TZWxlY3QnLCAnc2VsZWN0JywgbnVsbCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICAgIGRpc3BhdGNoUXVldWUucHVzaCh7XG4gICAgICAgIGV2ZW50OiBldmVudCxcbiAgICAgICAgbGlzdGVuZXJzOiBsaXN0ZW5lcnNcbiAgICAgIH0pO1xuICAgICAgZXZlbnQudGFyZ2V0ID0gYWN0aXZlRWxlbWVudCQxO1xuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBUaGlzIHBsdWdpbiBjcmVhdGVzIGFuIGBvblNlbGVjdGAgZXZlbnQgdGhhdCBub3JtYWxpemVzIHNlbGVjdCBldmVudHNcbiAqIGFjcm9zcyBmb3JtIGVsZW1lbnRzLlxuICpcbiAqIFN1cHBvcnRlZCBlbGVtZW50cyBhcmU6XG4gKiAtIGlucHV0IChzZWUgYGlzVGV4dElucHV0RWxlbWVudGApXG4gKiAtIHRleHRhcmVhXG4gKiAtIGNvbnRlbnRFZGl0YWJsZVxuICpcbiAqIFRoaXMgZGlmZmVycyBmcm9tIG5hdGl2ZSBicm93c2VyIGltcGxlbWVudGF0aW9ucyBpbiB0aGUgZm9sbG93aW5nIHdheXM6XG4gKiAtIEZpcmVzIG9uIGNvbnRlbnRFZGl0YWJsZSBmaWVsZHMgYXMgd2VsbCBhcyBpbnB1dHMuXG4gKiAtIEZpcmVzIGZvciBjb2xsYXBzZWQgc2VsZWN0aW9uLlxuICogLSBGaXJlcyBhZnRlciB1c2VyIGlucHV0LlxuICovXG5cblxuZnVuY3Rpb24gZXh0cmFjdEV2ZW50cyQzKGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0LCBldmVudFN5c3RlbUZsYWdzLCB0YXJnZXRDb250YWluZXIpIHtcbiAgdmFyIHRhcmdldE5vZGUgPSB0YXJnZXRJbnN0ID8gZ2V0Tm9kZUZyb21JbnN0YW5jZSh0YXJnZXRJbnN0KSA6IHdpbmRvdztcblxuICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkge1xuICAgIC8vIFRyYWNrIHRoZSBpbnB1dCBub2RlIHRoYXQgaGFzIGZvY3VzLlxuICAgIGNhc2UgJ2ZvY3VzaW4nOlxuICAgICAgaWYgKGlzVGV4dElucHV0RWxlbWVudCh0YXJnZXROb2RlKSB8fCB0YXJnZXROb2RlLmNvbnRlbnRFZGl0YWJsZSA9PT0gJ3RydWUnKSB7XG4gICAgICAgIGFjdGl2ZUVsZW1lbnQkMSA9IHRhcmdldE5vZGU7XG4gICAgICAgIGFjdGl2ZUVsZW1lbnRJbnN0JDEgPSB0YXJnZXRJbnN0O1xuICAgICAgICBsYXN0U2VsZWN0aW9uID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdmb2N1c291dCc6XG4gICAgICBhY3RpdmVFbGVtZW50JDEgPSBudWxsO1xuICAgICAgYWN0aXZlRWxlbWVudEluc3QkMSA9IG51bGw7XG4gICAgICBsYXN0U2VsZWN0aW9uID0gbnVsbDtcbiAgICAgIGJyZWFrO1xuICAgIC8vIERvbid0IGZpcmUgdGhlIGV2ZW50IHdoaWxlIHRoZSB1c2VyIGlzIGRyYWdnaW5nLiBUaGlzIG1hdGNoZXMgdGhlXG4gICAgLy8gc2VtYW50aWNzIG9mIHRoZSBuYXRpdmUgc2VsZWN0IGV2ZW50LlxuXG4gICAgY2FzZSAnbW91c2Vkb3duJzpcbiAgICAgIG1vdXNlRG93biA9IHRydWU7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2NvbnRleHRtZW51JzpcbiAgICBjYXNlICdtb3VzZXVwJzpcbiAgICBjYXNlICdkcmFnZW5kJzpcbiAgICAgIG1vdXNlRG93biA9IGZhbHNlO1xuICAgICAgY29uc3RydWN0U2VsZWN0RXZlbnQoZGlzcGF0Y2hRdWV1ZSwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICAgIGJyZWFrO1xuICAgIC8vIENocm9tZSBhbmQgSUUgZmlyZSBub24tc3RhbmRhcmQgZXZlbnQgd2hlbiBzZWxlY3Rpb24gaXMgY2hhbmdlZCAoYW5kXG4gICAgLy8gc29tZXRpbWVzIHdoZW4gaXQgaGFzbid0KS4gSUUncyBldmVudCBmaXJlcyBvdXQgb2Ygb3JkZXIgd2l0aCByZXNwZWN0XG4gICAgLy8gdG8ga2V5IGFuZCBpbnB1dCBldmVudHMgb24gZGVsZXRpb24sIHNvIHdlIGRpc2NhcmQgaXQuXG4gICAgLy9cbiAgICAvLyBGaXJlZm94IGRvZXNuJ3Qgc3VwcG9ydCBzZWxlY3Rpb25jaGFuZ2UsIHNvIGNoZWNrIHNlbGVjdGlvbiBzdGF0dXNcbiAgICAvLyBhZnRlciBlYWNoIGtleSBlbnRyeS4gVGhlIHNlbGVjdGlvbiBjaGFuZ2VzIGFmdGVyIGtleWRvd24gYW5kIGJlZm9yZVxuICAgIC8vIGtleXVwLCBidXQgd2UgY2hlY2sgb24ga2V5ZG93biBhcyB3ZWxsIGluIHRoZSBjYXNlIG9mIGhvbGRpbmcgZG93biBhXG4gICAgLy8ga2V5LCB3aGVuIG11bHRpcGxlIGtleWRvd24gZXZlbnRzIGFyZSBmaXJlZCBidXQgb25seSBvbmUga2V5dXAgaXMuXG4gICAgLy8gVGhpcyBpcyBhbHNvIG91ciBhcHByb2FjaCBmb3IgSUUgaGFuZGxpbmcsIGZvciB0aGUgcmVhc29uIGFib3ZlLlxuXG4gICAgY2FzZSAnc2VsZWN0aW9uY2hhbmdlJzpcbiAgICAgIGlmIChza2lwU2VsZWN0aW9uQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAvLyBmYWxscyB0aHJvdWdoXG5cbiAgICBjYXNlICdrZXlkb3duJzpcbiAgICBjYXNlICdrZXl1cCc6XG4gICAgICBjb25zdHJ1Y3RTZWxlY3RFdmVudChkaXNwYXRjaFF1ZXVlLCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICB9XG59XG5cbi8qKlxuICogR2VuZXJhdGUgYSBtYXBwaW5nIG9mIHN0YW5kYXJkIHZlbmRvciBwcmVmaXhlcyB1c2luZyB0aGUgZGVmaW5lZCBzdHlsZSBwcm9wZXJ0eSBhbmQgZXZlbnQgbmFtZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3R5bGVQcm9wXG4gKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lXG4gKiBAcmV0dXJucyB7b2JqZWN0fVxuICovXG5cbmZ1bmN0aW9uIG1ha2VQcmVmaXhNYXAoc3R5bGVQcm9wLCBldmVudE5hbWUpIHtcbiAgdmFyIHByZWZpeGVzID0ge307XG4gIHByZWZpeGVzW3N0eWxlUHJvcC50b0xvd2VyQ2FzZSgpXSA9IGV2ZW50TmFtZS50b0xvd2VyQ2FzZSgpO1xuICBwcmVmaXhlc1snV2Via2l0JyArIHN0eWxlUHJvcF0gPSAnd2Via2l0JyArIGV2ZW50TmFtZTtcbiAgcHJlZml4ZXNbJ01veicgKyBzdHlsZVByb3BdID0gJ21veicgKyBldmVudE5hbWU7XG4gIHJldHVybiBwcmVmaXhlcztcbn1cbi8qKlxuICogQSBsaXN0IG9mIGV2ZW50IG5hbWVzIHRvIGEgY29uZmlndXJhYmxlIGxpc3Qgb2YgdmVuZG9yIHByZWZpeGVzLlxuICovXG5cblxudmFyIHZlbmRvclByZWZpeGVzID0ge1xuICBhbmltYXRpb25lbmQ6IG1ha2VQcmVmaXhNYXAoJ0FuaW1hdGlvbicsICdBbmltYXRpb25FbmQnKSxcbiAgYW5pbWF0aW9uaXRlcmF0aW9uOiBtYWtlUHJlZml4TWFwKCdBbmltYXRpb24nLCAnQW5pbWF0aW9uSXRlcmF0aW9uJyksXG4gIGFuaW1hdGlvbnN0YXJ0OiBtYWtlUHJlZml4TWFwKCdBbmltYXRpb24nLCAnQW5pbWF0aW9uU3RhcnQnKSxcbiAgdHJhbnNpdGlvbmVuZDogbWFrZVByZWZpeE1hcCgnVHJhbnNpdGlvbicsICdUcmFuc2l0aW9uRW5kJylcbn07XG4vKipcbiAqIEV2ZW50IG5hbWVzIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gZGV0ZWN0ZWQgYW5kIHByZWZpeGVkIChpZiBhcHBsaWNhYmxlKS5cbiAqL1xuXG52YXIgcHJlZml4ZWRFdmVudE5hbWVzID0ge307XG4vKipcbiAqIEVsZW1lbnQgdG8gY2hlY2sgZm9yIHByZWZpeGVzIG9uLlxuICovXG5cbnZhciBzdHlsZSA9IHt9O1xuLyoqXG4gKiBCb290c3RyYXAgaWYgYSBET00gZXhpc3RzLlxuICovXG5cbmlmIChjYW5Vc2VET00pIHtcbiAgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKS5zdHlsZTsgLy8gT24gc29tZSBwbGF0Zm9ybXMsIGluIHBhcnRpY3VsYXIgc29tZSByZWxlYXNlcyBvZiBBbmRyb2lkIDQueCxcbiAgLy8gdGhlIHVuLXByZWZpeGVkIFwiYW5pbWF0aW9uXCIgYW5kIFwidHJhbnNpdGlvblwiIHByb3BlcnRpZXMgYXJlIGRlZmluZWQgb24gdGhlXG4gIC8vIHN0eWxlIG9iamVjdCBidXQgdGhlIGV2ZW50cyB0aGF0IGZpcmUgd2lsbCBzdGlsbCBiZSBwcmVmaXhlZCwgc28gd2UgbmVlZFxuICAvLyB0byBjaGVjayBpZiB0aGUgdW4tcHJlZml4ZWQgZXZlbnRzIGFyZSB1c2FibGUsIGFuZCBpZiBub3QgcmVtb3ZlIHRoZW0gZnJvbSB0aGUgbWFwLlxuXG4gIGlmICghKCdBbmltYXRpb25FdmVudCcgaW4gd2luZG93KSkge1xuICAgIGRlbGV0ZSB2ZW5kb3JQcmVmaXhlcy5hbmltYXRpb25lbmQuYW5pbWF0aW9uO1xuICAgIGRlbGV0ZSB2ZW5kb3JQcmVmaXhlcy5hbmltYXRpb25pdGVyYXRpb24uYW5pbWF0aW9uO1xuICAgIGRlbGV0ZSB2ZW5kb3JQcmVmaXhlcy5hbmltYXRpb25zdGFydC5hbmltYXRpb247XG4gIH0gLy8gU2FtZSBhcyBhYm92ZVxuXG5cbiAgaWYgKCEoJ1RyYW5zaXRpb25FdmVudCcgaW4gd2luZG93KSkge1xuICAgIGRlbGV0ZSB2ZW5kb3JQcmVmaXhlcy50cmFuc2l0aW9uZW5kLnRyYW5zaXRpb247XG4gIH1cbn1cbi8qKlxuICogQXR0ZW1wdHMgdG8gZGV0ZXJtaW5lIHRoZSBjb3JyZWN0IHZlbmRvciBwcmVmaXhlZCBldmVudCBuYW1lLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBldmVudE5hbWVcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cblxuXG5mdW5jdGlvbiBnZXRWZW5kb3JQcmVmaXhlZEV2ZW50TmFtZShldmVudE5hbWUpIHtcbiAgaWYgKHByZWZpeGVkRXZlbnROYW1lc1tldmVudE5hbWVdKSB7XG4gICAgcmV0dXJuIHByZWZpeGVkRXZlbnROYW1lc1tldmVudE5hbWVdO1xuICB9IGVsc2UgaWYgKCF2ZW5kb3JQcmVmaXhlc1tldmVudE5hbWVdKSB7XG4gICAgcmV0dXJuIGV2ZW50TmFtZTtcbiAgfVxuXG4gIHZhciBwcmVmaXhNYXAgPSB2ZW5kb3JQcmVmaXhlc1tldmVudE5hbWVdO1xuXG4gIGZvciAodmFyIHN0eWxlUHJvcCBpbiBwcmVmaXhNYXApIHtcbiAgICBpZiAocHJlZml4TWFwLmhhc093blByb3BlcnR5KHN0eWxlUHJvcCkgJiYgc3R5bGVQcm9wIGluIHN0eWxlKSB7XG4gICAgICByZXR1cm4gcHJlZml4ZWRFdmVudE5hbWVzW2V2ZW50TmFtZV0gPSBwcmVmaXhNYXBbc3R5bGVQcm9wXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZXZlbnROYW1lO1xufVxuXG52YXIgQU5JTUFUSU9OX0VORCA9IGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKCdhbmltYXRpb25lbmQnKTtcbnZhciBBTklNQVRJT05fSVRFUkFUSU9OID0gZ2V0VmVuZG9yUHJlZml4ZWRFdmVudE5hbWUoJ2FuaW1hdGlvbml0ZXJhdGlvbicpO1xudmFyIEFOSU1BVElPTl9TVEFSVCA9IGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKCdhbmltYXRpb25zdGFydCcpO1xudmFyIFRSQU5TSVRJT05fRU5EID0gZ2V0VmVuZG9yUHJlZml4ZWRFdmVudE5hbWUoJ3RyYW5zaXRpb25lbmQnKTtcblxudmFyIHRvcExldmVsRXZlbnRzVG9SZWFjdE5hbWVzID0gbmV3IE1hcCgpOyAvLyBOT1RFOiBDYXBpdGFsaXphdGlvbiBpcyBpbXBvcnRhbnQgaW4gdGhpcyBsaXN0IVxuLy9cbi8vIEUuZy4gaXQgbmVlZHMgXCJwb2ludGVyRG93blwiLCBub3QgXCJwb2ludGVyZG93blwiLlxuLy8gVGhpcyBpcyBiZWNhdXNlIHdlIGRlcml2ZSBib3RoIFJlYWN0IG5hbWUgKFwib25Qb2ludGVyRG93blwiKVxuLy8gYW5kIERPTSBuYW1lIChcInBvaW50ZXJkb3duXCIpIGZyb20gdGhlIHNhbWUgbGlzdC5cbi8vXG4vLyBFeGNlcHRpb25zIHRoYXQgZG9uJ3QgbWF0Y2ggdGhpcyBjb252ZW50aW9uIGFyZSBsaXN0ZWQgc2VwYXJhdGVseS5cbi8vXG4vLyBwcmV0dGllci1pZ25vcmVcblxudmFyIHNpbXBsZUV2ZW50UGx1Z2luRXZlbnRzID0gWydhYm9ydCcsICdhdXhDbGljaycsICdjYW5jZWwnLCAnY2FuUGxheScsICdjYW5QbGF5VGhyb3VnaCcsICdjbGljaycsICdjbG9zZScsICdjb250ZXh0TWVudScsICdjb3B5JywgJ2N1dCcsICdkcmFnJywgJ2RyYWdFbmQnLCAnZHJhZ0VudGVyJywgJ2RyYWdFeGl0JywgJ2RyYWdMZWF2ZScsICdkcmFnT3ZlcicsICdkcmFnU3RhcnQnLCAnZHJvcCcsICdkdXJhdGlvbkNoYW5nZScsICdlbXB0aWVkJywgJ2VuY3J5cHRlZCcsICdlbmRlZCcsICdlcnJvcicsICdnb3RQb2ludGVyQ2FwdHVyZScsICdpbnB1dCcsICdpbnZhbGlkJywgJ2tleURvd24nLCAna2V5UHJlc3MnLCAna2V5VXAnLCAnbG9hZCcsICdsb2FkZWREYXRhJywgJ2xvYWRlZE1ldGFkYXRhJywgJ2xvYWRTdGFydCcsICdsb3N0UG9pbnRlckNhcHR1cmUnLCAnbW91c2VEb3duJywgJ21vdXNlTW92ZScsICdtb3VzZU91dCcsICdtb3VzZU92ZXInLCAnbW91c2VVcCcsICdwYXN0ZScsICdwYXVzZScsICdwbGF5JywgJ3BsYXlpbmcnLCAncG9pbnRlckNhbmNlbCcsICdwb2ludGVyRG93bicsICdwb2ludGVyTW92ZScsICdwb2ludGVyT3V0JywgJ3BvaW50ZXJPdmVyJywgJ3BvaW50ZXJVcCcsICdwcm9ncmVzcycsICdyYXRlQ2hhbmdlJywgJ3Jlc2V0JywgJ3Jlc2l6ZScsICdzZWVrZWQnLCAnc2Vla2luZycsICdzdGFsbGVkJywgJ3N1Ym1pdCcsICdzdXNwZW5kJywgJ3RpbWVVcGRhdGUnLCAndG91Y2hDYW5jZWwnLCAndG91Y2hFbmQnLCAndG91Y2hTdGFydCcsICd2b2x1bWVDaGFuZ2UnLCAnc2Nyb2xsJywgJ3RvZ2dsZScsICd0b3VjaE1vdmUnLCAnd2FpdGluZycsICd3aGVlbCddO1xuXG5mdW5jdGlvbiByZWdpc3RlclNpbXBsZUV2ZW50KGRvbUV2ZW50TmFtZSwgcmVhY3ROYW1lKSB7XG4gIHRvcExldmVsRXZlbnRzVG9SZWFjdE5hbWVzLnNldChkb21FdmVudE5hbWUsIHJlYWN0TmFtZSk7XG4gIHJlZ2lzdGVyVHdvUGhhc2VFdmVudChyZWFjdE5hbWUsIFtkb21FdmVudE5hbWVdKTtcbn1cblxuZnVuY3Rpb24gcmVnaXN0ZXJTaW1wbGVFdmVudHMoKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc2ltcGxlRXZlbnRQbHVnaW5FdmVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZXZlbnROYW1lID0gc2ltcGxlRXZlbnRQbHVnaW5FdmVudHNbaV07XG4gICAgdmFyIGRvbUV2ZW50TmFtZSA9IGV2ZW50TmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhciBjYXBpdGFsaXplZEV2ZW50ID0gZXZlbnROYW1lWzBdLnRvVXBwZXJDYXNlKCkgKyBldmVudE5hbWUuc2xpY2UoMSk7XG4gICAgcmVnaXN0ZXJTaW1wbGVFdmVudChkb21FdmVudE5hbWUsICdvbicgKyBjYXBpdGFsaXplZEV2ZW50KTtcbiAgfSAvLyBTcGVjaWFsIGNhc2VzIHdoZXJlIGV2ZW50IG5hbWVzIGRvbid0IG1hdGNoLlxuXG5cbiAgcmVnaXN0ZXJTaW1wbGVFdmVudChBTklNQVRJT05fRU5ELCAnb25BbmltYXRpb25FbmQnKTtcbiAgcmVnaXN0ZXJTaW1wbGVFdmVudChBTklNQVRJT05fSVRFUkFUSU9OLCAnb25BbmltYXRpb25JdGVyYXRpb24nKTtcbiAgcmVnaXN0ZXJTaW1wbGVFdmVudChBTklNQVRJT05fU1RBUlQsICdvbkFuaW1hdGlvblN0YXJ0Jyk7XG4gIHJlZ2lzdGVyU2ltcGxlRXZlbnQoJ2RibGNsaWNrJywgJ29uRG91YmxlQ2xpY2snKTtcbiAgcmVnaXN0ZXJTaW1wbGVFdmVudCgnZm9jdXNpbicsICdvbkZvY3VzJyk7XG4gIHJlZ2lzdGVyU2ltcGxlRXZlbnQoJ2ZvY3Vzb3V0JywgJ29uQmx1cicpO1xuICByZWdpc3RlclNpbXBsZUV2ZW50KFRSQU5TSVRJT05fRU5ELCAnb25UcmFuc2l0aW9uRW5kJyk7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RFdmVudHMkNChkaXNwYXRjaFF1ZXVlLCBkb21FdmVudE5hbWUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCwgZXZlbnRTeXN0ZW1GbGFncywgdGFyZ2V0Q29udGFpbmVyKSB7XG4gIHZhciByZWFjdE5hbWUgPSB0b3BMZXZlbEV2ZW50c1RvUmVhY3ROYW1lcy5nZXQoZG9tRXZlbnROYW1lKTtcblxuICBpZiAocmVhY3ROYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljRXZlbnQ7XG4gIHZhciByZWFjdEV2ZW50VHlwZSA9IGRvbUV2ZW50TmFtZTtcblxuICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkge1xuICAgIGNhc2UgJ2tleXByZXNzJzpcbiAgICAgIC8vIEZpcmVmb3ggY3JlYXRlcyBhIGtleXByZXNzIGV2ZW50IGZvciBmdW5jdGlvbiBrZXlzIHRvby4gVGhpcyByZW1vdmVzXG4gICAgICAvLyB0aGUgdW53YW50ZWQga2V5cHJlc3MgZXZlbnRzLiBFbnRlciBpcyBob3dldmVyIGJvdGggcHJpbnRhYmxlIGFuZFxuICAgICAgLy8gbm9uLXByaW50YWJsZS4gT25lIHdvdWxkIGV4cGVjdCBUYWIgdG8gYmUgYXMgd2VsbCAoYnV0IGl0IGlzbid0KS5cbiAgICAgIGlmIChnZXRFdmVudENoYXJDb2RlKG5hdGl2ZUV2ZW50KSA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAvKiBmYWxscyB0aHJvdWdoICovXG5cbiAgICBjYXNlICdrZXlkb3duJzpcbiAgICBjYXNlICdrZXl1cCc6XG4gICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNLZXlib2FyZEV2ZW50O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdmb2N1c2luJzpcbiAgICAgIHJlYWN0RXZlbnRUeXBlID0gJ2ZvY3VzJztcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY0ZvY3VzRXZlbnQ7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2ZvY3Vzb3V0JzpcbiAgICAgIHJlYWN0RXZlbnRUeXBlID0gJ2JsdXInO1xuICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljRm9jdXNFdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnYmVmb3JlYmx1cic6XG4gICAgY2FzZSAnYWZ0ZXJibHVyJzpcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY0ZvY3VzRXZlbnQ7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2NsaWNrJzpcbiAgICAgIC8vIEZpcmVmb3ggY3JlYXRlcyBhIGNsaWNrIGV2ZW50IG9uIHJpZ2h0IG1vdXNlIGNsaWNrcy4gVGhpcyByZW1vdmVzIHRoZVxuICAgICAgLy8gdW53YW50ZWQgY2xpY2sgZXZlbnRzLlxuICAgICAgaWYgKG5hdGl2ZUV2ZW50LmJ1dHRvbiA9PT0gMikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAvKiBmYWxscyB0aHJvdWdoICovXG5cbiAgICBjYXNlICdhdXhjbGljayc6XG4gICAgY2FzZSAnZGJsY2xpY2snOlxuICAgIGNhc2UgJ21vdXNlZG93bic6XG4gICAgY2FzZSAnbW91c2Vtb3ZlJzpcbiAgICBjYXNlICdtb3VzZXVwJzogLy8gVE9ETzogRGlzYWJsZWQgZWxlbWVudHMgc2hvdWxkIG5vdCByZXNwb25kIHRvIG1vdXNlIGV2ZW50c1xuXG4gICAgLyogZmFsbHMgdGhyb3VnaCAqL1xuXG4gICAgY2FzZSAnbW91c2VvdXQnOlxuICAgIGNhc2UgJ21vdXNlb3Zlcic6XG4gICAgY2FzZSAnY29udGV4dG1lbnUnOlxuICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljTW91c2VFdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnZHJhZyc6XG4gICAgY2FzZSAnZHJhZ2VuZCc6XG4gICAgY2FzZSAnZHJhZ2VudGVyJzpcbiAgICBjYXNlICdkcmFnZXhpdCc6XG4gICAgY2FzZSAnZHJhZ2xlYXZlJzpcbiAgICBjYXNlICdkcmFnb3Zlcic6XG4gICAgY2FzZSAnZHJhZ3N0YXJ0JzpcbiAgICBjYXNlICdkcm9wJzpcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY0RyYWdFdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAndG91Y2hjYW5jZWwnOlxuICAgIGNhc2UgJ3RvdWNoZW5kJzpcbiAgICBjYXNlICd0b3VjaG1vdmUnOlxuICAgIGNhc2UgJ3RvdWNoc3RhcnQnOlxuICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljVG91Y2hFdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBBTklNQVRJT05fRU5EOlxuICAgIGNhc2UgQU5JTUFUSU9OX0lURVJBVElPTjpcbiAgICBjYXNlIEFOSU1BVElPTl9TVEFSVDpcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY0FuaW1hdGlvbkV2ZW50O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFRSQU5TSVRJT05fRU5EOlxuICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljVHJhbnNpdGlvbkV2ZW50O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdzY3JvbGwnOlxuICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljVUlFdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnd2hlZWwnOlxuICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljV2hlZWxFdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnY29weSc6XG4gICAgY2FzZSAnY3V0JzpcbiAgICBjYXNlICdwYXN0ZSc6XG4gICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNDbGlwYm9hcmRFdmVudDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnZ290cG9pbnRlcmNhcHR1cmUnOlxuICAgIGNhc2UgJ2xvc3Rwb2ludGVyY2FwdHVyZSc6XG4gICAgY2FzZSAncG9pbnRlcmNhbmNlbCc6XG4gICAgY2FzZSAncG9pbnRlcmRvd24nOlxuICAgIGNhc2UgJ3BvaW50ZXJtb3ZlJzpcbiAgICBjYXNlICdwb2ludGVyb3V0JzpcbiAgICBjYXNlICdwb2ludGVyb3Zlcic6XG4gICAgY2FzZSAncG9pbnRlcnVwJzpcbiAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1BvaW50ZXJFdmVudDtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgdmFyIGluQ2FwdHVyZVBoYXNlID0gKGV2ZW50U3lzdGVtRmxhZ3MgJiBJU19DQVBUVVJFX1BIQVNFKSAhPT0gMDtcblxuICB7XG4gICAgLy8gU29tZSBldmVudHMgZG9uJ3QgYnViYmxlIGluIHRoZSBicm93c2VyLlxuICAgIC8vIEluIHRoZSBwYXN0LCBSZWFjdCBoYXMgYWx3YXlzIGJ1YmJsZWQgdGhlbSwgYnV0IHRoaXMgY2FuIGJlIHN1cnByaXNpbmcuXG4gICAgLy8gV2UncmUgZ29pbmcgdG8gdHJ5IGFsaWduaW5nIGNsb3NlciB0byB0aGUgYnJvd3NlciBiZWhhdmlvciBieSBub3QgYnViYmxpbmdcbiAgICAvLyB0aGVtIGluIFJlYWN0IGVpdGhlci4gV2UnbGwgc3RhcnQgYnkgbm90IGJ1YmJsaW5nIG9uU2Nyb2xsLCBhbmQgdGhlbiBleHBhbmQuXG4gICAgdmFyIGFjY3VtdWxhdGVUYXJnZXRPbmx5ID0gIWluQ2FwdHVyZVBoYXNlICYmIC8vIFRPRE86IGlkZWFsbHksIHdlJ2QgZXZlbnR1YWxseSBhZGQgYWxsIGV2ZW50cyBmcm9tXG4gICAgLy8gbm9uRGVsZWdhdGVkRXZlbnRzIGxpc3QgaW4gRE9NUGx1Z2luRXZlbnRTeXN0ZW0uXG4gICAgLy8gVGhlbiB3ZSBjYW4gcmVtb3ZlIHRoaXMgc3BlY2lhbCBsaXN0LlxuICAgIC8vIFRoaXMgaXMgYSBicmVha2luZyBjaGFuZ2UgdGhhdCBjYW4gd2FpdCB1bnRpbCBSZWFjdCAxOC5cbiAgICBkb21FdmVudE5hbWUgPT09ICdzY3JvbGwnO1xuXG4gICAgdmFyIF9saXN0ZW5lcnMgPSBhY2N1bXVsYXRlU2luZ2xlUGhhc2VMaXN0ZW5lcnModGFyZ2V0SW5zdCwgcmVhY3ROYW1lLCBuYXRpdmVFdmVudC50eXBlLCBpbkNhcHR1cmVQaGFzZSwgYWNjdW11bGF0ZVRhcmdldE9ubHkpO1xuXG4gICAgaWYgKF9saXN0ZW5lcnMubGVuZ3RoID4gMCkge1xuICAgICAgLy8gSW50ZW50aW9uYWxseSBjcmVhdGUgZXZlbnQgbGF6aWx5LlxuICAgICAgdmFyIF9ldmVudCA9IG5ldyBTeW50aGV0aWNFdmVudEN0b3IocmVhY3ROYW1lLCByZWFjdEV2ZW50VHlwZSwgbnVsbCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcblxuICAgICAgZGlzcGF0Y2hRdWV1ZS5wdXNoKHtcbiAgICAgICAgZXZlbnQ6IF9ldmVudCxcbiAgICAgICAgbGlzdGVuZXJzOiBfbGlzdGVuZXJzXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVE9ETzogcmVtb3ZlIHRvcC1sZXZlbCBzaWRlIGVmZmVjdC5cbnJlZ2lzdGVyU2ltcGxlRXZlbnRzKCk7XG5yZWdpc3RlckV2ZW50cyQyKCk7XG5yZWdpc3RlckV2ZW50cyQxKCk7XG5yZWdpc3RlckV2ZW50cyQzKCk7XG5yZWdpc3RlckV2ZW50cygpO1xuXG5mdW5jdGlvbiBleHRyYWN0RXZlbnRzJDUoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQsIGV2ZW50U3lzdGVtRmxhZ3MsIHRhcmdldENvbnRhaW5lcikge1xuICAvLyBUT0RPOiB3ZSBzaG91bGQgcmVtb3ZlIHRoZSBjb25jZXB0IG9mIGEgXCJTaW1wbGVFdmVudFBsdWdpblwiLlxuICAvLyBUaGlzIGlzIHRoZSBiYXNpYyBmdW5jdGlvbmFsaXR5IG9mIHRoZSBldmVudCBzeXN0ZW0uIEFsbFxuICAvLyB0aGUgb3RoZXIgcGx1Z2lucyBhcmUgZXNzZW50aWFsbHkgcG9seWZpbGxzLiBTbyB0aGUgcGx1Z2luXG4gIC8vIHNob3VsZCBwcm9iYWJseSBiZSBpbmxpbmVkIHNvbWV3aGVyZSBhbmQgaGF2ZSBpdHMgbG9naWNcbiAgLy8gYmUgY29yZSB0aGUgdG8gZXZlbnQgc3lzdGVtLiBUaGlzIHdvdWxkIHBvdGVudGlhbGx5IGFsbG93XG4gIC8vIHVzIHRvIHNoaXAgYnVpbGRzIG9mIFJlYWN0IHdpdGhvdXQgdGhlIHBvbHlmaWxsZWQgcGx1Z2lucyBiZWxvdy5cbiAgZXh0cmFjdEV2ZW50cyQ0KGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0LCBldmVudFN5c3RlbUZsYWdzKTtcbiAgdmFyIHNob3VsZFByb2Nlc3NQb2x5ZmlsbFBsdWdpbnMgPSAoZXZlbnRTeXN0ZW1GbGFncyAmIFNIT1VMRF9OT1RfUFJPQ0VTU19QT0xZRklMTF9FVkVOVF9QTFVHSU5TKSA9PT0gMDsgLy8gV2UgZG9uJ3QgcHJvY2VzcyB0aGVzZSBldmVudHMgdW5sZXNzIHdlIGFyZSBpbiB0aGVcbiAgLy8gZXZlbnQncyBuYXRpdmUgXCJidWJibGVcIiBwaGFzZSwgd2hpY2ggbWVhbnMgdGhhdCB3ZSdyZVxuICAvLyBub3QgaW4gdGhlIGNhcHR1cmUgcGhhc2UuIFRoYXQncyBiZWNhdXNlIHdlIGVtdWxhdGVcbiAgLy8gdGhlIGNhcHR1cmUgcGhhc2UgaGVyZSBzdGlsbC4gVGhpcyBpcyBhIHRyYWRlLW9mZixcbiAgLy8gYmVjYXVzZSBpbiBhbiBpZGVhbCB3b3JsZCB3ZSB3b3VsZCBub3QgZW11bGF0ZSBhbmQgdXNlXG4gIC8vIHRoZSBwaGFzZXMgcHJvcGVybHksIGxpa2Ugd2UgZG8gd2l0aCB0aGUgU2ltcGxlRXZlbnRcbiAgLy8gcGx1Z2luLiBIb3dldmVyLCB0aGUgcGx1Z2lucyBiZWxvdyBlaXRoZXIgZXhwZWN0XG4gIC8vIGVtdWxhdGlvbiAoRW50ZXJMZWF2ZSkgb3IgdXNlIHN0YXRlIGxvY2FsaXplZCB0byB0aGF0XG4gIC8vIHBsdWdpbiAoQmVmb3JlSW5wdXQsIENoYW5nZSwgU2VsZWN0KS4gVGhlIHN0YXRlIGluXG4gIC8vIHRoZXNlIG1vZHVsZXMgY29tcGxpY2F0ZXMgdGhpbmdzLCBhcyB5b3UnbGwgZXNzZW50aWFsbHlcbiAgLy8gZ2V0IHRoZSBjYXNlIHdoZXJlIHRoZSBjYXB0dXJlIHBoYXNlIGV2ZW50IG1pZ2h0IGNoYW5nZVxuICAvLyBzdGF0ZSwgb25seSBmb3IgdGhlIGZvbGxvd2luZyBidWJibGUgZXZlbnQgdG8gY29tZSBpblxuICAvLyBsYXRlciBhbmQgbm90IHRyaWdnZXIgYW55dGhpbmcgYXMgdGhlIHN0YXRlIG5vd1xuICAvLyBpbnZhbGlkYXRlcyB0aGUgaGV1cmlzdGljcyBvZiB0aGUgZXZlbnQgcGx1Z2luLiBXZVxuICAvLyBjb3VsZCBhbHRlciBhbGwgdGhlc2UgcGx1Z2lucyB0byB3b3JrIGluIHN1Y2ggd2F5cywgYnV0XG4gIC8vIHRoYXQgbWlnaHQgY2F1c2Ugb3RoZXIgdW5rbm93biBzaWRlLWVmZmVjdHMgdGhhdCB3ZVxuICAvLyBjYW4ndCBmb3Jlc2VlIHJpZ2h0IG5vdy5cblxuICBpZiAoc2hvdWxkUHJvY2Vzc1BvbHlmaWxsUGx1Z2lucykge1xuICAgIGV4dHJhY3RFdmVudHMkMihkaXNwYXRjaFF1ZXVlLCBkb21FdmVudE5hbWUsIHRhcmdldEluc3QsIG5hdGl2ZUV2ZW50LCBuYXRpdmVFdmVudFRhcmdldCk7XG4gICAgZXh0cmFjdEV2ZW50cyQxKGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0KTtcbiAgICBleHRyYWN0RXZlbnRzJDMoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICAgIGV4dHJhY3RFdmVudHMoZGlzcGF0Y2hRdWV1ZSwgZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0LCBuYXRpdmVFdmVudCwgbmF0aXZlRXZlbnRUYXJnZXQpO1xuICB9XG59IC8vIExpc3Qgb2YgZXZlbnRzIHRoYXQgbmVlZCB0byBiZSBpbmRpdmlkdWFsbHkgYXR0YWNoZWQgdG8gbWVkaWEgZWxlbWVudHMuXG5cblxudmFyIG1lZGlhRXZlbnRUeXBlcyA9IFsnYWJvcnQnLCAnY2FucGxheScsICdjYW5wbGF5dGhyb3VnaCcsICdkdXJhdGlvbmNoYW5nZScsICdlbXB0aWVkJywgJ2VuY3J5cHRlZCcsICdlbmRlZCcsICdlcnJvcicsICdsb2FkZWRkYXRhJywgJ2xvYWRlZG1ldGFkYXRhJywgJ2xvYWRzdGFydCcsICdwYXVzZScsICdwbGF5JywgJ3BsYXlpbmcnLCAncHJvZ3Jlc3MnLCAncmF0ZWNoYW5nZScsICdyZXNpemUnLCAnc2Vla2VkJywgJ3NlZWtpbmcnLCAnc3RhbGxlZCcsICdzdXNwZW5kJywgJ3RpbWV1cGRhdGUnLCAndm9sdW1lY2hhbmdlJywgJ3dhaXRpbmcnXTsgLy8gV2Ugc2hvdWxkIG5vdCBkZWxlZ2F0ZSB0aGVzZSBldmVudHMgdG8gdGhlIGNvbnRhaW5lciwgYnV0IHJhdGhlclxuLy8gc2V0IHRoZW0gb24gdGhlIGFjdHVhbCB0YXJnZXQgZWxlbWVudCBpdHNlbGYuIFRoaXMgaXMgcHJpbWFyaWx5XG4vLyBiZWNhdXNlIHRoZXNlIGV2ZW50cyBkbyBub3QgY29uc2lzdGVudGx5IGJ1YmJsZSBpbiB0aGUgRE9NLlxuXG52YXIgbm9uRGVsZWdhdGVkRXZlbnRzID0gbmV3IFNldChbJ2NhbmNlbCcsICdjbG9zZScsICdpbnZhbGlkJywgJ2xvYWQnLCAnc2Nyb2xsJywgJ3RvZ2dsZSddLmNvbmNhdChtZWRpYUV2ZW50VHlwZXMpKTtcblxuZnVuY3Rpb24gZXhlY3V0ZURpc3BhdGNoKGV2ZW50LCBsaXN0ZW5lciwgY3VycmVudFRhcmdldCkge1xuICB2YXIgdHlwZSA9IGV2ZW50LnR5cGUgfHwgJ3Vua25vd24tZXZlbnQnO1xuICBldmVudC5jdXJyZW50VGFyZ2V0ID0gY3VycmVudFRhcmdldDtcbiAgaW52b2tlR3VhcmRlZENhbGxiYWNrQW5kQ2F0Y2hGaXJzdEVycm9yKHR5cGUsIGxpc3RlbmVyLCB1bmRlZmluZWQsIGV2ZW50KTtcbiAgZXZlbnQuY3VycmVudFRhcmdldCA9IG51bGw7XG59XG5cbmZ1bmN0aW9uIHByb2Nlc3NEaXNwYXRjaFF1ZXVlSXRlbXNJbk9yZGVyKGV2ZW50LCBkaXNwYXRjaExpc3RlbmVycywgaW5DYXB0dXJlUGhhc2UpIHtcbiAgdmFyIHByZXZpb3VzSW5zdGFuY2U7XG5cbiAgaWYgKGluQ2FwdHVyZVBoYXNlKSB7XG4gICAgZm9yICh2YXIgaSA9IGRpc3BhdGNoTGlzdGVuZXJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICB2YXIgX2Rpc3BhdGNoTGlzdGVuZXJzJGkgPSBkaXNwYXRjaExpc3RlbmVyc1tpXSxcbiAgICAgICAgICBpbnN0YW5jZSA9IF9kaXNwYXRjaExpc3RlbmVycyRpLmluc3RhbmNlLFxuICAgICAgICAgIGN1cnJlbnRUYXJnZXQgPSBfZGlzcGF0Y2hMaXN0ZW5lcnMkaS5jdXJyZW50VGFyZ2V0LFxuICAgICAgICAgIGxpc3RlbmVyID0gX2Rpc3BhdGNoTGlzdGVuZXJzJGkubGlzdGVuZXI7XG5cbiAgICAgIGlmIChpbnN0YW5jZSAhPT0gcHJldmlvdXNJbnN0YW5jZSAmJiBldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZXhlY3V0ZURpc3BhdGNoKGV2ZW50LCBsaXN0ZW5lciwgY3VycmVudFRhcmdldCk7XG4gICAgICBwcmV2aW91c0luc3RhbmNlID0gaW5zdGFuY2U7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBkaXNwYXRjaExpc3RlbmVycy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBfZGlzcGF0Y2hMaXN0ZW5lcnMkX2kgPSBkaXNwYXRjaExpc3RlbmVyc1tfaV0sXG4gICAgICAgICAgX2luc3RhbmNlID0gX2Rpc3BhdGNoTGlzdGVuZXJzJF9pLmluc3RhbmNlLFxuICAgICAgICAgIF9jdXJyZW50VGFyZ2V0ID0gX2Rpc3BhdGNoTGlzdGVuZXJzJF9pLmN1cnJlbnRUYXJnZXQsXG4gICAgICAgICAgX2xpc3RlbmVyID0gX2Rpc3BhdGNoTGlzdGVuZXJzJF9pLmxpc3RlbmVyO1xuXG4gICAgICBpZiAoX2luc3RhbmNlICE9PSBwcmV2aW91c0luc3RhbmNlICYmIGV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBleGVjdXRlRGlzcGF0Y2goZXZlbnQsIF9saXN0ZW5lciwgX2N1cnJlbnRUYXJnZXQpO1xuICAgICAgcHJldmlvdXNJbnN0YW5jZSA9IF9pbnN0YW5jZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJvY2Vzc0Rpc3BhdGNoUXVldWUoZGlzcGF0Y2hRdWV1ZSwgZXZlbnRTeXN0ZW1GbGFncykge1xuICB2YXIgaW5DYXB0dXJlUGhhc2UgPSAoZXZlbnRTeXN0ZW1GbGFncyAmIElTX0NBUFRVUkVfUEhBU0UpICE9PSAwO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgZGlzcGF0Y2hRdWV1ZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBfZGlzcGF0Y2hRdWV1ZSRpID0gZGlzcGF0Y2hRdWV1ZVtpXSxcbiAgICAgICAgZXZlbnQgPSBfZGlzcGF0Y2hRdWV1ZSRpLmV2ZW50LFxuICAgICAgICBsaXN0ZW5lcnMgPSBfZGlzcGF0Y2hRdWV1ZSRpLmxpc3RlbmVycztcbiAgICBwcm9jZXNzRGlzcGF0Y2hRdWV1ZUl0ZW1zSW5PcmRlcihldmVudCwgbGlzdGVuZXJzLCBpbkNhcHR1cmVQaGFzZSk7IC8vICBldmVudCBzeXN0ZW0gZG9lc24ndCB1c2UgcG9vbGluZy5cbiAgfSAvLyBUaGlzIHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHJldGhyb3cgaWYgYW55IG9mIHRoZSBldmVudCBoYW5kbGVycyB0aHJldy5cblxuXG4gIHJldGhyb3dDYXVnaHRFcnJvcigpO1xufVxuXG5mdW5jdGlvbiBkaXNwYXRjaEV2ZW50c0ZvclBsdWdpbnMoZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCBuYXRpdmVFdmVudCwgdGFyZ2V0SW5zdCwgdGFyZ2V0Q29udGFpbmVyKSB7XG4gIHZhciBuYXRpdmVFdmVudFRhcmdldCA9IGdldEV2ZW50VGFyZ2V0KG5hdGl2ZUV2ZW50KTtcbiAgdmFyIGRpc3BhdGNoUXVldWUgPSBbXTtcbiAgZXh0cmFjdEV2ZW50cyQ1KGRpc3BhdGNoUXVldWUsIGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCwgbmF0aXZlRXZlbnQsIG5hdGl2ZUV2ZW50VGFyZ2V0LCBldmVudFN5c3RlbUZsYWdzKTtcbiAgcHJvY2Vzc0Rpc3BhdGNoUXVldWUoZGlzcGF0Y2hRdWV1ZSwgZXZlbnRTeXN0ZW1GbGFncyk7XG59XG5cbmZ1bmN0aW9uIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoZG9tRXZlbnROYW1lLCB0YXJnZXRFbGVtZW50KSB7XG4gIHtcbiAgICBpZiAoIW5vbkRlbGVnYXRlZEV2ZW50cy5oYXMoZG9tRXZlbnROYW1lKSkge1xuICAgICAgZXJyb3IoJ0RpZCBub3QgZXhwZWN0IGEgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgpIGNhbGwgZm9yIFwiJXNcIi4gJyArICdUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nLCBkb21FdmVudE5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBpc0NhcHR1cmVQaGFzZUxpc3RlbmVyID0gZmFsc2U7XG4gIHZhciBsaXN0ZW5lclNldCA9IGdldEV2ZW50TGlzdGVuZXJTZXQodGFyZ2V0RWxlbWVudCk7XG4gIHZhciBsaXN0ZW5lclNldEtleSA9IGdldExpc3RlbmVyU2V0S2V5KGRvbUV2ZW50TmFtZSwgaXNDYXB0dXJlUGhhc2VMaXN0ZW5lcik7XG5cbiAgaWYgKCFsaXN0ZW5lclNldC5oYXMobGlzdGVuZXJTZXRLZXkpKSB7XG4gICAgYWRkVHJhcHBlZEV2ZW50TGlzdGVuZXIodGFyZ2V0RWxlbWVudCwgZG9tRXZlbnROYW1lLCBJU19OT05fREVMRUdBVEVELCBpc0NhcHR1cmVQaGFzZUxpc3RlbmVyKTtcbiAgICBsaXN0ZW5lclNldC5hZGQobGlzdGVuZXJTZXRLZXkpO1xuICB9XG59XG5mdW5jdGlvbiBsaXN0ZW5Ub05hdGl2ZUV2ZW50KGRvbUV2ZW50TmFtZSwgaXNDYXB0dXJlUGhhc2VMaXN0ZW5lciwgdGFyZ2V0KSB7XG4gIHtcbiAgICBpZiAobm9uRGVsZWdhdGVkRXZlbnRzLmhhcyhkb21FdmVudE5hbWUpICYmICFpc0NhcHR1cmVQaGFzZUxpc3RlbmVyKSB7XG4gICAgICBlcnJvcignRGlkIG5vdCBleHBlY3QgYSBsaXN0ZW5Ub05hdGl2ZUV2ZW50KCkgY2FsbCBmb3IgXCIlc1wiIGluIHRoZSBidWJibGUgcGhhc2UuICcgKyAnVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJywgZG9tRXZlbnROYW1lKTtcbiAgICB9XG4gIH1cblxuICB2YXIgZXZlbnRTeXN0ZW1GbGFncyA9IDA7XG5cbiAgaWYgKGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXIpIHtcbiAgICBldmVudFN5c3RlbUZsYWdzIHw9IElTX0NBUFRVUkVfUEhBU0U7XG4gIH1cblxuICBhZGRUcmFwcGVkRXZlbnRMaXN0ZW5lcih0YXJnZXQsIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgaXNDYXB0dXJlUGhhc2VMaXN0ZW5lcik7XG59IC8vIFRoaXMgaXMgb25seSB1c2VkIGJ5IGNyZWF0ZUV2ZW50SGFuZGxlIHdoZW4gdGhlXG52YXIgbGlzdGVuaW5nTWFya2VyID0gJ19yZWFjdExpc3RlbmluZycgKyBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKTtcbmZ1bmN0aW9uIGxpc3RlblRvQWxsU3VwcG9ydGVkRXZlbnRzKHJvb3RDb250YWluZXJFbGVtZW50KSB7XG4gIGlmICghcm9vdENvbnRhaW5lckVsZW1lbnRbbGlzdGVuaW5nTWFya2VyXSkge1xuICAgIHJvb3RDb250YWluZXJFbGVtZW50W2xpc3RlbmluZ01hcmtlcl0gPSB0cnVlO1xuICAgIGFsbE5hdGl2ZUV2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChkb21FdmVudE5hbWUpIHtcbiAgICAgIC8vIFdlIGhhbmRsZSBzZWxlY3Rpb25jaGFuZ2Ugc2VwYXJhdGVseSBiZWNhdXNlIGl0XG4gICAgICAvLyBkb2Vzbid0IGJ1YmJsZSBhbmQgbmVlZHMgdG8gYmUgb24gdGhlIGRvY3VtZW50LlxuICAgICAgaWYgKGRvbUV2ZW50TmFtZSAhPT0gJ3NlbGVjdGlvbmNoYW5nZScpIHtcbiAgICAgICAgaWYgKCFub25EZWxlZ2F0ZWRFdmVudHMuaGFzKGRvbUV2ZW50TmFtZSkpIHtcbiAgICAgICAgICBsaXN0ZW5Ub05hdGl2ZUV2ZW50KGRvbUV2ZW50TmFtZSwgZmFsc2UsIHJvb3RDb250YWluZXJFbGVtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpc3RlblRvTmF0aXZlRXZlbnQoZG9tRXZlbnROYW1lLCB0cnVlLCByb290Q29udGFpbmVyRWxlbWVudCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIG93bmVyRG9jdW1lbnQgPSByb290Q29udGFpbmVyRWxlbWVudC5ub2RlVHlwZSA9PT0gRE9DVU1FTlRfTk9ERSA/IHJvb3RDb250YWluZXJFbGVtZW50IDogcm9vdENvbnRhaW5lckVsZW1lbnQub3duZXJEb2N1bWVudDtcblxuICAgIGlmIChvd25lckRvY3VtZW50ICE9PSBudWxsKSB7XG4gICAgICAvLyBUaGUgc2VsZWN0aW9uY2hhbmdlIGV2ZW50IGFsc28gbmVlZHMgZGVkdXBsaWNhdGlvblxuICAgICAgLy8gYnV0IGl0IGlzIGF0dGFjaGVkIHRvIHRoZSBkb2N1bWVudC5cbiAgICAgIGlmICghb3duZXJEb2N1bWVudFtsaXN0ZW5pbmdNYXJrZXJdKSB7XG4gICAgICAgIG93bmVyRG9jdW1lbnRbbGlzdGVuaW5nTWFya2VyXSA9IHRydWU7XG4gICAgICAgIGxpc3RlblRvTmF0aXZlRXZlbnQoJ3NlbGVjdGlvbmNoYW5nZScsIGZhbHNlLCBvd25lckRvY3VtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYWRkVHJhcHBlZEV2ZW50TGlzdGVuZXIodGFyZ2V0Q29udGFpbmVyLCBkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXIsIGlzRGVmZXJyZWRMaXN0ZW5lckZvckxlZ2FjeUZCU3VwcG9ydCkge1xuICB2YXIgbGlzdGVuZXIgPSBjcmVhdGVFdmVudExpc3RlbmVyV3JhcHBlcldpdGhQcmlvcml0eSh0YXJnZXRDb250YWluZXIsIGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncyk7IC8vIElmIHBhc3NpdmUgb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQsIHRoZW4gdGhlIGV2ZW50IHdpbGwgYmVcbiAgLy8gYWN0aXZlIGFuZCBub3QgcGFzc2l2ZS5cblxuICB2YXIgaXNQYXNzaXZlTGlzdGVuZXIgPSB1bmRlZmluZWQ7XG5cbiAgaWYgKHBhc3NpdmVCcm93c2VyRXZlbnRzU3VwcG9ydGVkKSB7XG4gICAgLy8gQnJvd3NlcnMgaW50cm9kdWNlZCBhbiBpbnRlcnZlbnRpb24sIG1ha2luZyB0aGVzZSBldmVudHNcbiAgICAvLyBwYXNzaXZlIGJ5IGRlZmF1bHQgb24gZG9jdW1lbnQuIFJlYWN0IGRvZXNuJ3QgYmluZCB0aGVtXG4gICAgLy8gdG8gZG9jdW1lbnQgYW55bW9yZSwgYnV0IGNoYW5naW5nIHRoaXMgbm93IHdvdWxkIHVuZG9cbiAgICAvLyB0aGUgcGVyZm9ybWFuY2Ugd2lucyBmcm9tIHRoZSBjaGFuZ2UuIFNvIHdlIGVtdWxhdGVcbiAgICAvLyB0aGUgZXhpc3RpbmcgYmVoYXZpb3IgbWFudWFsbHkgb24gdGhlIHJvb3RzIG5vdy5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE5NjUxXG4gICAgaWYgKGRvbUV2ZW50TmFtZSA9PT0gJ3RvdWNoc3RhcnQnIHx8IGRvbUV2ZW50TmFtZSA9PT0gJ3RvdWNobW92ZScgfHwgZG9tRXZlbnROYW1lID09PSAnd2hlZWwnKSB7XG4gICAgICBpc1Bhc3NpdmVMaXN0ZW5lciA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgdGFyZ2V0Q29udGFpbmVyID0gIHRhcmdldENvbnRhaW5lcjtcbiAgdmFyIHVuc3Vic2NyaWJlTGlzdGVuZXI7IC8vIFdoZW4gbGVnYWN5RkJTdXBwb3J0IGlzIGVuYWJsZWQsIGl0J3MgZm9yIHdoZW4gd2VcblxuXG4gIGlmIChpc0NhcHR1cmVQaGFzZUxpc3RlbmVyKSB7XG4gICAgaWYgKGlzUGFzc2l2ZUxpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHVuc3Vic2NyaWJlTGlzdGVuZXIgPSBhZGRFdmVudENhcHR1cmVMaXN0ZW5lcldpdGhQYXNzaXZlRmxhZyh0YXJnZXRDb250YWluZXIsIGRvbUV2ZW50TmFtZSwgbGlzdGVuZXIsIGlzUGFzc2l2ZUxpc3RlbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdW5zdWJzY3JpYmVMaXN0ZW5lciA9IGFkZEV2ZW50Q2FwdHVyZUxpc3RlbmVyKHRhcmdldENvbnRhaW5lciwgZG9tRXZlbnROYW1lLCBsaXN0ZW5lcik7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChpc1Bhc3NpdmVMaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB1bnN1YnNjcmliZUxpc3RlbmVyID0gYWRkRXZlbnRCdWJibGVMaXN0ZW5lcldpdGhQYXNzaXZlRmxhZyh0YXJnZXRDb250YWluZXIsIGRvbUV2ZW50TmFtZSwgbGlzdGVuZXIsIGlzUGFzc2l2ZUxpc3RlbmVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdW5zdWJzY3JpYmVMaXN0ZW5lciA9IGFkZEV2ZW50QnViYmxlTGlzdGVuZXIodGFyZ2V0Q29udGFpbmVyLCBkb21FdmVudE5hbWUsIGxpc3RlbmVyKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNNYXRjaGluZ1Jvb3RDb250YWluZXIoZ3JhbmRDb250YWluZXIsIHRhcmdldENvbnRhaW5lcikge1xuICByZXR1cm4gZ3JhbmRDb250YWluZXIgPT09IHRhcmdldENvbnRhaW5lciB8fCBncmFuZENvbnRhaW5lci5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFICYmIGdyYW5kQ29udGFpbmVyLnBhcmVudE5vZGUgPT09IHRhcmdldENvbnRhaW5lcjtcbn1cblxuZnVuY3Rpb24gZGlzcGF0Y2hFdmVudEZvclBsdWdpbkV2ZW50U3lzdGVtKGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgbmF0aXZlRXZlbnQsIHRhcmdldEluc3QsIHRhcmdldENvbnRhaW5lcikge1xuICB2YXIgYW5jZXN0b3JJbnN0ID0gdGFyZ2V0SW5zdDtcblxuICBpZiAoKGV2ZW50U3lzdGVtRmxhZ3MgJiBJU19FVkVOVF9IQU5ETEVfTk9OX01BTkFHRURfTk9ERSkgPT09IDAgJiYgKGV2ZW50U3lzdGVtRmxhZ3MgJiBJU19OT05fREVMRUdBVEVEKSA9PT0gMCkge1xuICAgIHZhciB0YXJnZXRDb250YWluZXJOb2RlID0gdGFyZ2V0Q29udGFpbmVyOyAvLyBJZiB3ZSBhcmUgdXNpbmcgdGhlIGxlZ2FjeSBGQiBzdXBwb3J0IGZsYWcsIHdlXG5cbiAgICBpZiAodGFyZ2V0SW5zdCAhPT0gbnVsbCkge1xuICAgICAgLy8gVGhlIGJlbG93IGxvZ2ljIGF0dGVtcHRzIHRvIHdvcmsgb3V0IGlmIHdlIG5lZWQgdG8gY2hhbmdlXG4gICAgICAvLyB0aGUgdGFyZ2V0IGZpYmVyIHRvIGEgZGlmZmVyZW50IGFuY2VzdG9yLiBXZSBoYWQgc2ltaWxhciBsb2dpY1xuICAgICAgLy8gaW4gdGhlIGxlZ2FjeSBldmVudCBzeXN0ZW0sIGV4Y2VwdCB0aGUgYmlnIGRpZmZlcmVuY2UgYmV0d2VlblxuICAgICAgLy8gc3lzdGVtcyBpcyB0aGF0IHRoZSBtb2Rlcm4gZXZlbnQgc3lzdGVtIG5vdyBoYXMgYW4gZXZlbnQgbGlzdGVuZXJcbiAgICAgIC8vIGF0dGFjaGVkIHRvIGVhY2ggUmVhY3QgUm9vdCBhbmQgUmVhY3QgUG9ydGFsIFJvb3QuIFRvZ2V0aGVyLFxuICAgICAgLy8gdGhlIERPTSBub2RlcyByZXByZXNlbnRpbmcgdGhlc2Ugcm9vdHMgYXJlIHRoZSBcInJvb3RDb250YWluZXJcIi5cbiAgICAgIC8vIFRvIGZpZ3VyZSBvdXQgd2hpY2ggYW5jZXN0b3IgaW5zdGFuY2Ugd2Ugc2hvdWxkIHVzZSwgd2UgdHJhdmVyc2VcbiAgICAgIC8vIHVwIHRoZSBmaWJlciB0cmVlIGZyb20gdGhlIHRhcmdldCBpbnN0YW5jZSBhbmQgYXR0ZW1wdCB0byBmaW5kXG4gICAgICAvLyByb290IGJvdW5kYXJpZXMgdGhhdCBtYXRjaCB0aGF0IG9mIG91ciBjdXJyZW50IFwicm9vdENvbnRhaW5lclwiLlxuICAgICAgLy8gSWYgd2UgZmluZCB0aGF0IFwicm9vdENvbnRhaW5lclwiLCB3ZSBmaW5kIHRoZSBwYXJlbnQgZmliZXJcbiAgICAgIC8vIHN1Yi10cmVlIGZvciB0aGF0IHJvb3QgYW5kIG1ha2UgdGhhdCBvdXIgYW5jZXN0b3IgaW5zdGFuY2UuXG4gICAgICB2YXIgbm9kZSA9IHRhcmdldEluc3Q7XG5cbiAgICAgIG1haW5Mb29wOiB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBpZiAobm9kZSA9PT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBub2RlVGFnID0gbm9kZS50YWc7XG5cbiAgICAgICAgaWYgKG5vZGVUYWcgPT09IEhvc3RSb290IHx8IG5vZGVUYWcgPT09IEhvc3RQb3J0YWwpIHtcbiAgICAgICAgICB2YXIgY29udGFpbmVyID0gbm9kZS5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztcblxuICAgICAgICAgIGlmIChpc01hdGNoaW5nUm9vdENvbnRhaW5lcihjb250YWluZXIsIHRhcmdldENvbnRhaW5lck5vZGUpKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAobm9kZVRhZyA9PT0gSG9zdFBvcnRhbCkge1xuICAgICAgICAgICAgLy8gVGhlIHRhcmdldCBpcyBhIHBvcnRhbCwgYnV0IGl0J3Mgbm90IHRoZSByb290Q29udGFpbmVyIHdlJ3JlIGxvb2tpbmcgZm9yLlxuICAgICAgICAgICAgLy8gTm9ybWFsbHkgcG9ydGFscyBoYW5kbGUgdGhlaXIgb3duIGV2ZW50cyBhbGwgdGhlIHdheSBkb3duIHRvIHRoZSByb290LlxuICAgICAgICAgICAgLy8gU28gd2Ugc2hvdWxkIGJlIGFibGUgdG8gc3RvcCBub3cuIEhvd2V2ZXIsIHdlIGRvbid0IGtub3cgaWYgdGhpcyBwb3J0YWxcbiAgICAgICAgICAgIC8vIHdhcyBwYXJ0IG9mICpvdXIqIHJvb3QuXG4gICAgICAgICAgICB2YXIgZ3JhbmROb2RlID0gbm9kZS5yZXR1cm47XG5cbiAgICAgICAgICAgIHdoaWxlIChncmFuZE5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgdmFyIGdyYW5kVGFnID0gZ3JhbmROb2RlLnRhZztcblxuICAgICAgICAgICAgICBpZiAoZ3JhbmRUYWcgPT09IEhvc3RSb290IHx8IGdyYW5kVGFnID09PSBIb3N0UG9ydGFsKSB7XG4gICAgICAgICAgICAgICAgdmFyIGdyYW5kQ29udGFpbmVyID0gZ3JhbmROb2RlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuXG4gICAgICAgICAgICAgICAgaWYgKGlzTWF0Y2hpbmdSb290Q29udGFpbmVyKGdyYW5kQ29udGFpbmVyLCB0YXJnZXRDb250YWluZXJOb2RlKSkge1xuICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgcm9vdENvbnRhaW5lciB3ZSdyZSBsb29raW5nIGZvciBhbmQgd2UgZm91bmQgaXQgYXNcbiAgICAgICAgICAgICAgICAgIC8vIGEgcGFyZW50IG9mIHRoZSBQb3J0YWwuIFRoYXQgbWVhbnMgd2UgY2FuIGlnbm9yZSBpdCBiZWNhdXNlIHRoZVxuICAgICAgICAgICAgICAgICAgLy8gUG9ydGFsIHdpbGwgYnViYmxlIHRocm91Z2ggdG8gdXMuXG4gICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgZ3JhbmROb2RlID0gZ3JhbmROb2RlLnJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IC8vIE5vdyB3ZSBuZWVkIHRvIGZpbmQgaXQncyBjb3JyZXNwb25kaW5nIGhvc3QgZmliZXIgaW4gdGhlIG90aGVyXG4gICAgICAgICAgLy8gdHJlZS4gVG8gZG8gdGhpcyB3ZSBjYW4gdXNlIGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlLCBidXQgd2VcbiAgICAgICAgICAvLyBuZWVkIHRvIHZhbGlkYXRlIHRoYXQgdGhlIGZpYmVyIGlzIGEgaG9zdCBpbnN0YW5jZSwgb3RoZXJ3aXNlXG4gICAgICAgICAgLy8gd2UgbmVlZCB0byB0cmF2ZXJzZSB1cCB0aHJvdWdoIHRoZSBET00gdGlsbCB3ZSBmaW5kIHRoZSBjb3JyZWN0XG4gICAgICAgICAgLy8gbm9kZSB0aGF0IGlzIGZyb20gdGhlIG90aGVyIHRyZWUuXG5cblxuICAgICAgICAgIHdoaWxlIChjb250YWluZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBwYXJlbnROb2RlID0gZ2V0Q2xvc2VzdEluc3RhbmNlRnJvbU5vZGUoY29udGFpbmVyKTtcblxuICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgcGFyZW50VGFnID0gcGFyZW50Tm9kZS50YWc7XG5cbiAgICAgICAgICAgIGlmIChwYXJlbnRUYWcgPT09IEhvc3RDb21wb25lbnQgfHwgcGFyZW50VGFnID09PSBIb3N0VGV4dCkge1xuICAgICAgICAgICAgICBub2RlID0gYW5jZXN0b3JJbnN0ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgY29udGludWUgbWFpbkxvb3A7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnRhaW5lciA9IGNvbnRhaW5lci5wYXJlbnROb2RlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBiYXRjaGVkVXBkYXRlcyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGRpc3BhdGNoRXZlbnRzRm9yUGx1Z2lucyhkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIG5hdGl2ZUV2ZW50LCBhbmNlc3Rvckluc3QpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGlzcGF0Y2hMaXN0ZW5lcihpbnN0YW5jZSwgbGlzdGVuZXIsIGN1cnJlbnRUYXJnZXQpIHtcbiAgcmV0dXJuIHtcbiAgICBpbnN0YW5jZTogaW5zdGFuY2UsXG4gICAgbGlzdGVuZXI6IGxpc3RlbmVyLFxuICAgIGN1cnJlbnRUYXJnZXQ6IGN1cnJlbnRUYXJnZXRcbiAgfTtcbn1cblxuZnVuY3Rpb24gYWNjdW11bGF0ZVNpbmdsZVBoYXNlTGlzdGVuZXJzKHRhcmdldEZpYmVyLCByZWFjdE5hbWUsIG5hdGl2ZUV2ZW50VHlwZSwgaW5DYXB0dXJlUGhhc2UsIGFjY3VtdWxhdGVUYXJnZXRPbmx5LCBuYXRpdmVFdmVudCkge1xuICB2YXIgY2FwdHVyZU5hbWUgPSByZWFjdE5hbWUgIT09IG51bGwgPyByZWFjdE5hbWUgKyAnQ2FwdHVyZScgOiBudWxsO1xuICB2YXIgcmVhY3RFdmVudE5hbWUgPSBpbkNhcHR1cmVQaGFzZSA/IGNhcHR1cmVOYW1lIDogcmVhY3ROYW1lO1xuICB2YXIgbGlzdGVuZXJzID0gW107XG4gIHZhciBpbnN0YW5jZSA9IHRhcmdldEZpYmVyO1xuICB2YXIgbGFzdEhvc3RDb21wb25lbnQgPSBudWxsOyAvLyBBY2N1bXVsYXRlIGFsbCBpbnN0YW5jZXMgYW5kIGxpc3RlbmVycyB2aWEgdGhlIHRhcmdldCAtPiByb290IHBhdGguXG5cbiAgd2hpbGUgKGluc3RhbmNlICE9PSBudWxsKSB7XG4gICAgdmFyIF9pbnN0YW5jZTIgPSBpbnN0YW5jZSxcbiAgICAgICAgc3RhdGVOb2RlID0gX2luc3RhbmNlMi5zdGF0ZU5vZGUsXG4gICAgICAgIHRhZyA9IF9pbnN0YW5jZTIudGFnOyAvLyBIYW5kbGUgbGlzdGVuZXJzIHRoYXQgYXJlIG9uIEhvc3RDb21wb25lbnRzIChpLmUuIDxkaXY+KVxuXG4gICAgaWYgKHRhZyA9PT0gSG9zdENvbXBvbmVudCAmJiBzdGF0ZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGxhc3RIb3N0Q29tcG9uZW50ID0gc3RhdGVOb2RlOyAvLyBjcmVhdGVFdmVudEhhbmRsZSBsaXN0ZW5lcnNcblxuXG4gICAgICBpZiAocmVhY3RFdmVudE5hbWUgIT09IG51bGwpIHtcbiAgICAgICAgdmFyIGxpc3RlbmVyID0gZ2V0TGlzdGVuZXIoaW5zdGFuY2UsIHJlYWN0RXZlbnROYW1lKTtcblxuICAgICAgICBpZiAobGlzdGVuZXIgIT0gbnVsbCkge1xuICAgICAgICAgIGxpc3RlbmVycy5wdXNoKGNyZWF0ZURpc3BhdGNoTGlzdGVuZXIoaW5zdGFuY2UsIGxpc3RlbmVyLCBsYXN0SG9zdENvbXBvbmVudCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSAvLyBJZiB3ZSBhcmUgb25seSBhY2N1bXVsYXRpbmcgZXZlbnRzIGZvciB0aGUgdGFyZ2V0LCB0aGVuIHdlIGRvbid0XG4gICAgLy8gY29udGludWUgdG8gcHJvcGFnYXRlIHRocm91Z2ggdGhlIFJlYWN0IGZpYmVyIHRyZWUgdG8gZmluZCBvdGhlclxuICAgIC8vIGxpc3RlbmVycy5cblxuXG4gICAgaWYgKGFjY3VtdWxhdGVUYXJnZXRPbmx5KSB7XG4gICAgICBicmVhaztcbiAgICB9IC8vIElmIHdlIGFyZSBwcm9jZXNzaW5nIHRoZSBvbkJlZm9yZUJsdXIgZXZlbnQsIHRoZW4gd2UgbmVlZCB0byB0YWtlXG5cbiAgICBpbnN0YW5jZSA9IGluc3RhbmNlLnJldHVybjtcbiAgfVxuXG4gIHJldHVybiBsaXN0ZW5lcnM7XG59IC8vIFdlIHNob3VsZCBvbmx5IHVzZSB0aGlzIGZ1bmN0aW9uIGZvcjpcbi8vIC0gQmVmb3JlSW5wdXRFdmVudFBsdWdpblxuLy8gLSBDaGFuZ2VFdmVudFBsdWdpblxuLy8gLSBTZWxlY3RFdmVudFBsdWdpblxuLy8gVGhpcyBpcyBiZWNhdXNlIHdlIG9ubHkgcHJvY2VzcyB0aGVzZSBwbHVnaW5zXG4vLyBpbiB0aGUgYnViYmxlIHBoYXNlLCBzbyB3ZSBuZWVkIHRvIGFjY3VtdWxhdGUgdHdvXG4vLyBwaGFzZSBldmVudCBsaXN0ZW5lcnMgKHZpYSBlbXVsYXRpb24pLlxuXG5mdW5jdGlvbiBhY2N1bXVsYXRlVHdvUGhhc2VMaXN0ZW5lcnModGFyZ2V0RmliZXIsIHJlYWN0TmFtZSkge1xuICB2YXIgY2FwdHVyZU5hbWUgPSByZWFjdE5hbWUgKyAnQ2FwdHVyZSc7XG4gIHZhciBsaXN0ZW5lcnMgPSBbXTtcbiAgdmFyIGluc3RhbmNlID0gdGFyZ2V0RmliZXI7IC8vIEFjY3VtdWxhdGUgYWxsIGluc3RhbmNlcyBhbmQgbGlzdGVuZXJzIHZpYSB0aGUgdGFyZ2V0IC0+IHJvb3QgcGF0aC5cblxuICB3aGlsZSAoaW5zdGFuY2UgIT09IG51bGwpIHtcbiAgICB2YXIgX2luc3RhbmNlMyA9IGluc3RhbmNlLFxuICAgICAgICBzdGF0ZU5vZGUgPSBfaW5zdGFuY2UzLnN0YXRlTm9kZSxcbiAgICAgICAgdGFnID0gX2luc3RhbmNlMy50YWc7IC8vIEhhbmRsZSBsaXN0ZW5lcnMgdGhhdCBhcmUgb24gSG9zdENvbXBvbmVudHMgKGkuZS4gPGRpdj4pXG5cbiAgICBpZiAodGFnID09PSBIb3N0Q29tcG9uZW50ICYmIHN0YXRlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgdmFyIGN1cnJlbnRUYXJnZXQgPSBzdGF0ZU5vZGU7XG4gICAgICB2YXIgY2FwdHVyZUxpc3RlbmVyID0gZ2V0TGlzdGVuZXIoaW5zdGFuY2UsIGNhcHR1cmVOYW1lKTtcblxuICAgICAgaWYgKGNhcHR1cmVMaXN0ZW5lciAhPSBudWxsKSB7XG4gICAgICAgIGxpc3RlbmVycy51bnNoaWZ0KGNyZWF0ZURpc3BhdGNoTGlzdGVuZXIoaW5zdGFuY2UsIGNhcHR1cmVMaXN0ZW5lciwgY3VycmVudFRhcmdldCkpO1xuICAgICAgfVxuXG4gICAgICB2YXIgYnViYmxlTGlzdGVuZXIgPSBnZXRMaXN0ZW5lcihpbnN0YW5jZSwgcmVhY3ROYW1lKTtcblxuICAgICAgaWYgKGJ1YmJsZUxpc3RlbmVyICE9IG51bGwpIHtcbiAgICAgICAgbGlzdGVuZXJzLnB1c2goY3JlYXRlRGlzcGF0Y2hMaXN0ZW5lcihpbnN0YW5jZSwgYnViYmxlTGlzdGVuZXIsIGN1cnJlbnRUYXJnZXQpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnN0YW5jZSA9IGluc3RhbmNlLnJldHVybjtcbiAgfVxuXG4gIHJldHVybiBsaXN0ZW5lcnM7XG59XG5cbmZ1bmN0aW9uIGdldFBhcmVudChpbnN0KSB7XG4gIGlmIChpbnN0ID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBkbyB7XG4gICAgaW5zdCA9IGluc3QucmV0dXJuOyAvLyBUT0RPOiBJZiB0aGlzIGlzIGEgSG9zdFJvb3Qgd2UgbWlnaHQgd2FudCB0byBiYWlsIG91dC5cbiAgICAvLyBUaGF0IGlzIGRlcGVuZGluZyBvbiBpZiB3ZSB3YW50IG5lc3RlZCBzdWJ0cmVlcyAobGF5ZXJzKSB0byBidWJibGVcbiAgICAvLyBldmVudHMgdG8gdGhlaXIgcGFyZW50LiBXZSBjb3VsZCBhbHNvIGdvIHRocm91Z2ggcGFyZW50Tm9kZSBvbiB0aGVcbiAgICAvLyBob3N0IG5vZGUgYnV0IHRoYXQgd291bGRuJ3Qgd29yayBmb3IgUmVhY3QgTmF0aXZlIGFuZCBkb2Vzbid0IGxldCB1c1xuICAgIC8vIGRvIHRoZSBwb3J0YWwgZmVhdHVyZS5cbiAgfSB3aGlsZSAoaW5zdCAmJiBpbnN0LnRhZyAhPT0gSG9zdENvbXBvbmVudCk7XG5cbiAgaWYgKGluc3QpIHtcbiAgICByZXR1cm4gaW5zdDtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuLyoqXG4gKiBSZXR1cm4gdGhlIGxvd2VzdCBjb21tb24gYW5jZXN0b3Igb2YgQSBhbmQgQiwgb3IgbnVsbCBpZiB0aGV5IGFyZSBpblxuICogZGlmZmVyZW50IHRyZWVzLlxuICovXG5cblxuZnVuY3Rpb24gZ2V0TG93ZXN0Q29tbW9uQW5jZXN0b3IoaW5zdEEsIGluc3RCKSB7XG4gIHZhciBub2RlQSA9IGluc3RBO1xuICB2YXIgbm9kZUIgPSBpbnN0QjtcbiAgdmFyIGRlcHRoQSA9IDA7XG5cbiAgZm9yICh2YXIgdGVtcEEgPSBub2RlQTsgdGVtcEE7IHRlbXBBID0gZ2V0UGFyZW50KHRlbXBBKSkge1xuICAgIGRlcHRoQSsrO1xuICB9XG5cbiAgdmFyIGRlcHRoQiA9IDA7XG5cbiAgZm9yICh2YXIgdGVtcEIgPSBub2RlQjsgdGVtcEI7IHRlbXBCID0gZ2V0UGFyZW50KHRlbXBCKSkge1xuICAgIGRlcHRoQisrO1xuICB9IC8vIElmIEEgaXMgZGVlcGVyLCBjcmF3bCB1cC5cblxuXG4gIHdoaWxlIChkZXB0aEEgLSBkZXB0aEIgPiAwKSB7XG4gICAgbm9kZUEgPSBnZXRQYXJlbnQobm9kZUEpO1xuICAgIGRlcHRoQS0tO1xuICB9IC8vIElmIEIgaXMgZGVlcGVyLCBjcmF3bCB1cC5cblxuXG4gIHdoaWxlIChkZXB0aEIgLSBkZXB0aEEgPiAwKSB7XG4gICAgbm9kZUIgPSBnZXRQYXJlbnQobm9kZUIpO1xuICAgIGRlcHRoQi0tO1xuICB9IC8vIFdhbGsgaW4gbG9ja3N0ZXAgdW50aWwgd2UgZmluZCBhIG1hdGNoLlxuXG5cbiAgdmFyIGRlcHRoID0gZGVwdGhBO1xuXG4gIHdoaWxlIChkZXB0aC0tKSB7XG4gICAgaWYgKG5vZGVBID09PSBub2RlQiB8fCBub2RlQiAhPT0gbnVsbCAmJiBub2RlQSA9PT0gbm9kZUIuYWx0ZXJuYXRlKSB7XG4gICAgICByZXR1cm4gbm9kZUE7XG4gICAgfVxuXG4gICAgbm9kZUEgPSBnZXRQYXJlbnQobm9kZUEpO1xuICAgIG5vZGVCID0gZ2V0UGFyZW50KG5vZGVCKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBhY2N1bXVsYXRlRW50ZXJMZWF2ZUxpc3RlbmVyc0ZvckV2ZW50KGRpc3BhdGNoUXVldWUsIGV2ZW50LCB0YXJnZXQsIGNvbW1vbiwgaW5DYXB0dXJlUGhhc2UpIHtcbiAgdmFyIHJlZ2lzdHJhdGlvbk5hbWUgPSBldmVudC5fcmVhY3ROYW1lO1xuICB2YXIgbGlzdGVuZXJzID0gW107XG4gIHZhciBpbnN0YW5jZSA9IHRhcmdldDtcblxuICB3aGlsZSAoaW5zdGFuY2UgIT09IG51bGwpIHtcbiAgICBpZiAoaW5zdGFuY2UgPT09IGNvbW1vbikge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgdmFyIF9pbnN0YW5jZTQgPSBpbnN0YW5jZSxcbiAgICAgICAgYWx0ZXJuYXRlID0gX2luc3RhbmNlNC5hbHRlcm5hdGUsXG4gICAgICAgIHN0YXRlTm9kZSA9IF9pbnN0YW5jZTQuc3RhdGVOb2RlLFxuICAgICAgICB0YWcgPSBfaW5zdGFuY2U0LnRhZztcblxuICAgIGlmIChhbHRlcm5hdGUgIT09IG51bGwgJiYgYWx0ZXJuYXRlID09PSBjb21tb24pIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmICh0YWcgPT09IEhvc3RDb21wb25lbnQgJiYgc3RhdGVOb2RlICE9PSBudWxsKSB7XG4gICAgICB2YXIgY3VycmVudFRhcmdldCA9IHN0YXRlTm9kZTtcblxuICAgICAgaWYgKGluQ2FwdHVyZVBoYXNlKSB7XG4gICAgICAgIHZhciBjYXB0dXJlTGlzdGVuZXIgPSBnZXRMaXN0ZW5lcihpbnN0YW5jZSwgcmVnaXN0cmF0aW9uTmFtZSk7XG5cbiAgICAgICAgaWYgKGNhcHR1cmVMaXN0ZW5lciAhPSBudWxsKSB7XG4gICAgICAgICAgbGlzdGVuZXJzLnVuc2hpZnQoY3JlYXRlRGlzcGF0Y2hMaXN0ZW5lcihpbnN0YW5jZSwgY2FwdHVyZUxpc3RlbmVyLCBjdXJyZW50VGFyZ2V0KSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoIWluQ2FwdHVyZVBoYXNlKSB7XG4gICAgICAgIHZhciBidWJibGVMaXN0ZW5lciA9IGdldExpc3RlbmVyKGluc3RhbmNlLCByZWdpc3RyYXRpb25OYW1lKTtcblxuICAgICAgICBpZiAoYnViYmxlTGlzdGVuZXIgIT0gbnVsbCkge1xuICAgICAgICAgIGxpc3RlbmVycy5wdXNoKGNyZWF0ZURpc3BhdGNoTGlzdGVuZXIoaW5zdGFuY2UsIGJ1YmJsZUxpc3RlbmVyLCBjdXJyZW50VGFyZ2V0KSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnN0YW5jZSA9IGluc3RhbmNlLnJldHVybjtcbiAgfVxuXG4gIGlmIChsaXN0ZW5lcnMubGVuZ3RoICE9PSAwKSB7XG4gICAgZGlzcGF0Y2hRdWV1ZS5wdXNoKHtcbiAgICAgIGV2ZW50OiBldmVudCxcbiAgICAgIGxpc3RlbmVyczogbGlzdGVuZXJzXG4gICAgfSk7XG4gIH1cbn0gLy8gV2Ugc2hvdWxkIG9ubHkgdXNlIHRoaXMgZnVuY3Rpb24gZm9yOlxuLy8gLSBFbnRlckxlYXZlRXZlbnRQbHVnaW5cbi8vIFRoaXMgaXMgYmVjYXVzZSB3ZSBvbmx5IHByb2Nlc3MgdGhpcyBwbHVnaW5cbi8vIGluIHRoZSBidWJibGUgcGhhc2UsIHNvIHdlIG5lZWQgdG8gYWNjdW11bGF0ZSB0d29cbi8vIHBoYXNlIGV2ZW50IGxpc3RlbmVycy5cblxuXG5mdW5jdGlvbiBhY2N1bXVsYXRlRW50ZXJMZWF2ZVR3b1BoYXNlTGlzdGVuZXJzKGRpc3BhdGNoUXVldWUsIGxlYXZlRXZlbnQsIGVudGVyRXZlbnQsIGZyb20sIHRvKSB7XG4gIHZhciBjb21tb24gPSBmcm9tICYmIHRvID8gZ2V0TG93ZXN0Q29tbW9uQW5jZXN0b3IoZnJvbSwgdG8pIDogbnVsbDtcblxuICBpZiAoZnJvbSAhPT0gbnVsbCkge1xuICAgIGFjY3VtdWxhdGVFbnRlckxlYXZlTGlzdGVuZXJzRm9yRXZlbnQoZGlzcGF0Y2hRdWV1ZSwgbGVhdmVFdmVudCwgZnJvbSwgY29tbW9uLCBmYWxzZSk7XG4gIH1cblxuICBpZiAodG8gIT09IG51bGwgJiYgZW50ZXJFdmVudCAhPT0gbnVsbCkge1xuICAgIGFjY3VtdWxhdGVFbnRlckxlYXZlTGlzdGVuZXJzRm9yRXZlbnQoZGlzcGF0Y2hRdWV1ZSwgZW50ZXJFdmVudCwgdG8sIGNvbW1vbiwgdHJ1ZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGdldExpc3RlbmVyU2V0S2V5KGRvbUV2ZW50TmFtZSwgY2FwdHVyZSkge1xuICByZXR1cm4gZG9tRXZlbnROYW1lICsgXCJfX1wiICsgKGNhcHR1cmUgPyAnY2FwdHVyZScgOiAnYnViYmxlJyk7XG59XG5cbnZhciBkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbiA9IGZhbHNlO1xudmFyIERBTkdFUk9VU0xZX1NFVF9JTk5FUl9IVE1MID0gJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJztcbnZhciBTVVBQUkVTU19DT05URU5UX0VESVRBQkxFX1dBUk5JTkcgPSAnc3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nJztcbnZhciBTVVBQUkVTU19IWURSQVRJT05fV0FSTklORyA9ICdzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcnO1xudmFyIEFVVE9GT0NVUyA9ICdhdXRvRm9jdXMnO1xudmFyIENISUxEUkVOID0gJ2NoaWxkcmVuJztcbnZhciBTVFlMRSA9ICdzdHlsZSc7XG52YXIgSFRNTCQxID0gJ19faHRtbCc7XG52YXIgd2FybmVkVW5rbm93blRhZ3M7XG52YXIgdmFsaWRhdGVQcm9wZXJ0aWVzSW5EZXZlbG9wbWVudDtcbnZhciB3YXJuRm9yUHJvcERpZmZlcmVuY2U7XG52YXIgd2FybkZvckV4dHJhQXR0cmlidXRlcztcbnZhciB3YXJuRm9ySW52YWxpZEV2ZW50TGlzdGVuZXI7XG52YXIgY2FuRGlmZlN0eWxlRm9ySHlkcmF0aW9uV2FybmluZztcbnZhciBub3JtYWxpemVIVE1MO1xuXG57XG4gIHdhcm5lZFVua25vd25UYWdzID0ge1xuICAgIC8vIFRoZXJlIGFyZSB3b3JraW5nIHBvbHlmaWxscyBmb3IgPGRpYWxvZz4uIExldCBwZW9wbGUgdXNlIGl0LlxuICAgIGRpYWxvZzogdHJ1ZSxcbiAgICAvLyBFbGVjdHJvbiBzaGlwcyBhIGN1c3RvbSA8d2Vidmlldz4gdGFnIHRvIGRpc3BsYXkgZXh0ZXJuYWwgd2ViIGNvbnRlbnQgaW5cbiAgICAvLyBhbiBpc29sYXRlZCBmcmFtZSBhbmQgcHJvY2Vzcy5cbiAgICAvLyBUaGlzIHRhZyBpcyBub3QgcHJlc2VudCBpbiBub24gRWxlY3Ryb24gZW52aXJvbm1lbnRzIHN1Y2ggYXMgSlNEb20gd2hpY2hcbiAgICAvLyBpcyBvZnRlbiB1c2VkIGZvciB0ZXN0aW5nIHB1cnBvc2VzLlxuICAgIC8vIEBzZWUgaHR0cHM6Ly9lbGVjdHJvbmpzLm9yZy9kb2NzL2FwaS93ZWJ2aWV3LXRhZ1xuICAgIHdlYnZpZXc6IHRydWVcbiAgfTtcblxuICB2YWxpZGF0ZVByb3BlcnRpZXNJbkRldmVsb3BtZW50ID0gZnVuY3Rpb24gKHR5cGUsIHByb3BzKSB7XG4gICAgdmFsaWRhdGVQcm9wZXJ0aWVzKHR5cGUsIHByb3BzKTtcbiAgICB2YWxpZGF0ZVByb3BlcnRpZXMkMSh0eXBlLCBwcm9wcyk7XG4gICAgdmFsaWRhdGVQcm9wZXJ0aWVzJDIodHlwZSwgcHJvcHMsIHtcbiAgICAgIHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXM6IHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMsXG4gICAgICBwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzOiBwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzXG4gICAgfSk7XG4gIH07IC8vIElFIDExIHBhcnNlcyAmIG5vcm1hbGl6ZXMgdGhlIHN0eWxlIGF0dHJpYnV0ZSBhcyBvcHBvc2VkIHRvIG90aGVyXG4gIC8vIGJyb3dzZXJzLiBJdCBhZGRzIHNwYWNlcyBhbmQgc29ydHMgdGhlIHByb3BlcnRpZXMgaW4gc29tZVxuICAvLyBub24tYWxwaGFiZXRpY2FsIG9yZGVyLiBIYW5kbGluZyB0aGF0IHdvdWxkIHJlcXVpcmUgc29ydGluZyBDU1NcbiAgLy8gcHJvcGVydGllcyBpbiB0aGUgY2xpZW50ICYgc2VydmVyIHZlcnNpb25zIG9yIGFwcGx5aW5nXG4gIC8vIGBleHBlY3RlZFN0eWxlYCB0byBhIHRlbXBvcmFyeSBET00gbm9kZSB0byByZWFkIGl0cyBgc3R5bGVgIGF0dHJpYnV0ZVxuICAvLyBub3JtYWxpemVkLiBTaW5jZSBpdCBvbmx5IGFmZmVjdHMgSUUsIHdlJ3JlIHNraXBwaW5nIHN0eWxlIHdhcm5pbmdzXG4gIC8vIGluIHRoYXQgYnJvd3NlciBjb21wbGV0ZWx5IGluIGZhdm9yIG9mIGRvaW5nIGFsbCB0aGF0IHdvcmsuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzExODA3XG5cblxuICBjYW5EaWZmU3R5bGVGb3JIeWRyYXRpb25XYXJuaW5nID0gY2FuVXNlRE9NICYmICFkb2N1bWVudC5kb2N1bWVudE1vZGU7XG5cbiAgd2FybkZvclByb3BEaWZmZXJlbmNlID0gZnVuY3Rpb24gKHByb3BOYW1lLCBzZXJ2ZXJWYWx1ZSwgY2xpZW50VmFsdWUpIHtcbiAgICBpZiAoZGlkV2FybkludmFsaWRIeWRyYXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgbm9ybWFsaXplZENsaWVudFZhbHVlID0gbm9ybWFsaXplTWFya3VwRm9yVGV4dE9yQXR0cmlidXRlKGNsaWVudFZhbHVlKTtcbiAgICB2YXIgbm9ybWFsaXplZFNlcnZlclZhbHVlID0gbm9ybWFsaXplTWFya3VwRm9yVGV4dE9yQXR0cmlidXRlKHNlcnZlclZhbHVlKTtcblxuICAgIGlmIChub3JtYWxpemVkU2VydmVyVmFsdWUgPT09IG5vcm1hbGl6ZWRDbGllbnRWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGRpZFdhcm5JbnZhbGlkSHlkcmF0aW9uID0gdHJ1ZTtcblxuICAgIGVycm9yKCdQcm9wIGAlc2AgZGlkIG5vdCBtYXRjaC4gU2VydmVyOiAlcyBDbGllbnQ6ICVzJywgcHJvcE5hbWUsIEpTT04uc3RyaW5naWZ5KG5vcm1hbGl6ZWRTZXJ2ZXJWYWx1ZSksIEpTT04uc3RyaW5naWZ5KG5vcm1hbGl6ZWRDbGllbnRWYWx1ZSkpO1xuICB9O1xuXG4gIHdhcm5Gb3JFeHRyYUF0dHJpYnV0ZXMgPSBmdW5jdGlvbiAoYXR0cmlidXRlTmFtZXMpIHtcbiAgICBpZiAoZGlkV2FybkludmFsaWRIeWRyYXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbiA9IHRydWU7XG4gICAgdmFyIG5hbWVzID0gW107XG4gICAgYXR0cmlidXRlTmFtZXMuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICAgICAgbmFtZXMucHVzaChuYW1lKTtcbiAgICB9KTtcblxuICAgIGVycm9yKCdFeHRyYSBhdHRyaWJ1dGVzIGZyb20gdGhlIHNlcnZlcjogJXMnLCBuYW1lcyk7XG4gIH07XG5cbiAgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24gKHJlZ2lzdHJhdGlvbk5hbWUsIGxpc3RlbmVyKSB7XG4gICAgaWYgKGxpc3RlbmVyID09PSBmYWxzZSkge1xuICAgICAgZXJyb3IoJ0V4cGVjdGVkIGAlc2AgbGlzdGVuZXIgdG8gYmUgYSBmdW5jdGlvbiwgaW5zdGVhZCBnb3QgYGZhbHNlYC5cXG5cXG4nICsgJ0lmIHlvdSB1c2VkIHRvIGNvbmRpdGlvbmFsbHkgb21pdCBpdCB3aXRoICVzPXtjb25kaXRpb24gJiYgdmFsdWV9LCAnICsgJ3Bhc3MgJXM9e2NvbmRpdGlvbiA/IHZhbHVlIDogdW5kZWZpbmVkfSBpbnN0ZWFkLicsIHJlZ2lzdHJhdGlvbk5hbWUsIHJlZ2lzdHJhdGlvbk5hbWUsIHJlZ2lzdHJhdGlvbk5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlcnJvcignRXhwZWN0ZWQgYCVzYCBsaXN0ZW5lciB0byBiZSBhIGZ1bmN0aW9uLCBpbnN0ZWFkIGdvdCBhIHZhbHVlIG9mIGAlc2AgdHlwZS4nLCByZWdpc3RyYXRpb25OYW1lLCB0eXBlb2YgbGlzdGVuZXIpO1xuICAgIH1cbiAgfTsgLy8gUGFyc2UgdGhlIEhUTUwgYW5kIHJlYWQgaXQgYmFjayB0byBub3JtYWxpemUgdGhlIEhUTUwgc3RyaW5nIHNvIHRoYXQgaXRcbiAgLy8gY2FuIGJlIHVzZWQgZm9yIGNvbXBhcmlzb24uXG5cblxuICBub3JtYWxpemVIVE1MID0gZnVuY3Rpb24gKHBhcmVudCwgaHRtbCkge1xuICAgIC8vIFdlIGNvdWxkIGhhdmUgY3JlYXRlZCBhIHNlcGFyYXRlIGRvY3VtZW50IGhlcmUgdG8gYXZvaWRcbiAgICAvLyByZS1pbml0aWFsaXppbmcgY3VzdG9tIGVsZW1lbnRzIGlmIHRoZXkgZXhpc3QuIEJ1dCB0aGlzIGJyZWFrc1xuICAgIC8vIGhvdyA8bm9zY3JpcHQ+IGlzIGJlaW5nIGhhbmRsZWQuIFNvIHdlIHVzZSB0aGUgc2FtZSBkb2N1bWVudC5cbiAgICAvLyBTZWUgdGhlIGRpc2N1c3Npb24gaW4gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMTExNTcuXG4gICAgdmFyIHRlc3RFbGVtZW50ID0gcGFyZW50Lm5hbWVzcGFjZVVSSSA9PT0gSFRNTF9OQU1FU1BBQ0UgPyBwYXJlbnQub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KHBhcmVudC50YWdOYW1lKSA6IHBhcmVudC5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhwYXJlbnQubmFtZXNwYWNlVVJJLCBwYXJlbnQudGFnTmFtZSk7XG4gICAgdGVzdEVsZW1lbnQuaW5uZXJIVE1MID0gaHRtbDtcbiAgICByZXR1cm4gdGVzdEVsZW1lbnQuaW5uZXJIVE1MO1xuICB9O1xufSAvLyBIVE1MIHBhcnNpbmcgbm9ybWFsaXplcyBDUiBhbmQgQ1JMRiB0byBMRi5cbi8vIEl0IGFsc28gY2FuIHR1cm4gXFx1MDAwMCBpbnRvIFxcdUZGRkQgaW5zaWRlIGF0dHJpYnV0ZXMuXG4vLyBodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvc2luZ2xlLXBhZ2UuaHRtbCNwcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW1cbi8vIElmIHdlIGhhdmUgYSBtaXNtYXRjaCwgaXQgbWlnaHQgYmUgY2F1c2VkIGJ5IHRoYXQuXG4vLyBXZSB3aWxsIHN0aWxsIHBhdGNoIHVwIGluIHRoaXMgY2FzZSBidXQgbm90IGZpcmUgdGhlIHdhcm5pbmcuXG5cblxudmFyIE5PUk1BTElaRV9ORVdMSU5FU19SRUdFWCA9IC9cXHJcXG4/L2c7XG52YXIgTk9STUFMSVpFX05VTExfQU5EX1JFUExBQ0VNRU5UX1JFR0VYID0gL1xcdTAwMDB8XFx1RkZGRC9nO1xuXG5mdW5jdGlvbiBub3JtYWxpemVNYXJrdXBGb3JUZXh0T3JBdHRyaWJ1dGUobWFya3VwKSB7XG4gIHtcbiAgICBjaGVja0h0bWxTdHJpbmdDb2VyY2lvbihtYXJrdXApO1xuICB9XG5cbiAgdmFyIG1hcmt1cFN0cmluZyA9IHR5cGVvZiBtYXJrdXAgPT09ICdzdHJpbmcnID8gbWFya3VwIDogJycgKyBtYXJrdXA7XG4gIHJldHVybiBtYXJrdXBTdHJpbmcucmVwbGFjZShOT1JNQUxJWkVfTkVXTElORVNfUkVHRVgsICdcXG4nKS5yZXBsYWNlKE5PUk1BTElaRV9OVUxMX0FORF9SRVBMQUNFTUVOVF9SRUdFWCwgJycpO1xufVxuXG5mdW5jdGlvbiBjaGVja0ZvclVubWF0Y2hlZFRleHQoc2VydmVyVGV4dCwgY2xpZW50VGV4dCwgaXNDb25jdXJyZW50TW9kZSwgc2hvdWxkV2FybkRldikge1xuICB2YXIgbm9ybWFsaXplZENsaWVudFRleHQgPSBub3JtYWxpemVNYXJrdXBGb3JUZXh0T3JBdHRyaWJ1dGUoY2xpZW50VGV4dCk7XG4gIHZhciBub3JtYWxpemVkU2VydmVyVGV4dCA9IG5vcm1hbGl6ZU1hcmt1cEZvclRleHRPckF0dHJpYnV0ZShzZXJ2ZXJUZXh0KTtcblxuICBpZiAobm9ybWFsaXplZFNlcnZlclRleHQgPT09IG5vcm1hbGl6ZWRDbGllbnRUZXh0KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHNob3VsZFdhcm5EZXYpIHtcbiAgICB7XG4gICAgICBpZiAoIWRpZFdhcm5JbnZhbGlkSHlkcmF0aW9uKSB7XG4gICAgICAgIGRpZFdhcm5JbnZhbGlkSHlkcmF0aW9uID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignVGV4dCBjb250ZW50IGRpZCBub3QgbWF0Y2guIFNlcnZlcjogXCIlc1wiIENsaWVudDogXCIlc1wiJywgbm9ybWFsaXplZFNlcnZlclRleHQsIG5vcm1hbGl6ZWRDbGllbnRUZXh0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoaXNDb25jdXJyZW50TW9kZSAmJiBlbmFibGVDbGllbnRSZW5kZXJGYWxsYmFja09uVGV4dE1pc21hdGNoKSB7XG4gICAgLy8gSW4gY29uY3VycmVudCByb290cywgd2UgdGhyb3cgd2hlbiB0aGVyZSdzIGEgdGV4dCBtaXNtYXRjaCBhbmQgcmV2ZXJ0IHRvXG4gICAgLy8gY2xpZW50IHJlbmRlcmluZywgdXAgdG8gdGhlIG5lYXJlc3QgU3VzcGVuc2UgYm91bmRhcnkuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdUZXh0IGNvbnRlbnQgZG9lcyBub3QgbWF0Y2ggc2VydmVyLXJlbmRlcmVkIEhUTUwuJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0T3duZXJEb2N1bWVudEZyb21Sb290Q29udGFpbmVyKHJvb3RDb250YWluZXJFbGVtZW50KSB7XG4gIHJldHVybiByb290Q29udGFpbmVyRWxlbWVudC5ub2RlVHlwZSA9PT0gRE9DVU1FTlRfTk9ERSA/IHJvb3RDb250YWluZXJFbGVtZW50IDogcm9vdENvbnRhaW5lckVsZW1lbnQub3duZXJEb2N1bWVudDtcbn1cblxuZnVuY3Rpb24gbm9vcCgpIHt9XG5cbmZ1bmN0aW9uIHRyYXBDbGlja09uTm9uSW50ZXJhY3RpdmVFbGVtZW50KG5vZGUpIHtcbiAgLy8gTW9iaWxlIFNhZmFyaSBkb2VzIG5vdCBmaXJlIHByb3Blcmx5IGJ1YmJsZSBjbGljayBldmVudHMgb25cbiAgLy8gbm9uLWludGVyYWN0aXZlIGVsZW1lbnRzLCB3aGljaCBtZWFucyBkZWxlZ2F0ZWQgY2xpY2sgbGlzdGVuZXJzIGRvIG5vdFxuICAvLyBmaXJlLiBUaGUgd29ya2Fyb3VuZCBmb3IgdGhpcyBidWcgaW52b2x2ZXMgYXR0YWNoaW5nIGFuIGVtcHR5IGNsaWNrXG4gIC8vIGxpc3RlbmVyIG9uIHRoZSB0YXJnZXQgbm9kZS5cbiAgLy8gaHR0cHM6Ly93d3cucXVpcmtzbW9kZS5vcmcvYmxvZy9hcmNoaXZlcy8yMDEwLzA5L2NsaWNrX2V2ZW50X2RlbC5odG1sXG4gIC8vIEp1c3Qgc2V0IGl0IHVzaW5nIHRoZSBvbmNsaWNrIHByb3BlcnR5IHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBtYW5hZ2UgYW55XG4gIC8vIGJvb2trZWVwaW5nIGZvciBpdC4gTm90IHN1cmUgaWYgd2UgbmVlZCB0byBjbGVhciBpdCB3aGVuIHRoZSBsaXN0ZW5lciBpc1xuICAvLyByZW1vdmVkLlxuICAvLyBUT0RPOiBPbmx5IGRvIHRoaXMgZm9yIHRoZSByZWxldmFudCBTYWZhcmlzIG1heWJlP1xuICBub2RlLm9uY2xpY2sgPSBub29wO1xufVxuXG5mdW5jdGlvbiBzZXRJbml0aWFsRE9NUHJvcGVydGllcyh0YWcsIGRvbUVsZW1lbnQsIHJvb3RDb250YWluZXJFbGVtZW50LCBuZXh0UHJvcHMsIGlzQ3VzdG9tQ29tcG9uZW50VGFnKSB7XG4gIGZvciAodmFyIHByb3BLZXkgaW4gbmV4dFByb3BzKSB7XG4gICAgaWYgKCFuZXh0UHJvcHMuaGFzT3duUHJvcGVydHkocHJvcEtleSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIHZhciBuZXh0UHJvcCA9IG5leHRQcm9wc1twcm9wS2V5XTtcblxuICAgIGlmIChwcm9wS2V5ID09PSBTVFlMRSkge1xuICAgICAge1xuICAgICAgICBpZiAobmV4dFByb3ApIHtcbiAgICAgICAgICAvLyBGcmVlemUgdGhlIG5leHQgc3R5bGUgb2JqZWN0IHNvIHRoYXQgd2UgY2FuIGFzc3VtZSBpdCB3b24ndCBiZVxuICAgICAgICAgIC8vIG11dGF0ZWQuIFdlIGhhdmUgYWxyZWFkeSB3YXJuZWQgZm9yIHRoaXMgaW4gdGhlIHBhc3QuXG4gICAgICAgICAgT2JqZWN0LmZyZWV6ZShuZXh0UHJvcCk7XG4gICAgICAgIH1cbiAgICAgIH0gLy8gUmVsaWVzIG9uIGB1cGRhdGVTdHlsZXNCeUlEYCBub3QgbXV0YXRpbmcgYHN0eWxlVXBkYXRlc2AuXG5cblxuICAgICAgc2V0VmFsdWVGb3JTdHlsZXMoZG9tRWxlbWVudCwgbmV4dFByb3ApO1xuICAgIH0gZWxzZSBpZiAocHJvcEtleSA9PT0gREFOR0VST1VTTFlfU0VUX0lOTkVSX0hUTUwpIHtcbiAgICAgIHZhciBuZXh0SHRtbCA9IG5leHRQcm9wID8gbmV4dFByb3BbSFRNTCQxXSA6IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKG5leHRIdG1sICE9IG51bGwpIHtcbiAgICAgICAgc2V0SW5uZXJIVE1MKGRvbUVsZW1lbnQsIG5leHRIdG1sKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb3BLZXkgPT09IENISUxEUkVOKSB7XG4gICAgICBpZiAodHlwZW9mIG5leHRQcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICAvLyBBdm9pZCBzZXR0aW5nIGluaXRpYWwgdGV4dENvbnRlbnQgd2hlbiB0aGUgdGV4dCBpcyBlbXB0eS4gSW4gSUUxMSBzZXR0aW5nXG4gICAgICAgIC8vIHRleHRDb250ZW50IG9uIGEgPHRleHRhcmVhPiB3aWxsIGNhdXNlIHRoZSBwbGFjZWhvbGRlciB0byBub3RcbiAgICAgICAgLy8gc2hvdyB3aXRoaW4gdGhlIDx0ZXh0YXJlYT4gdW50aWwgaXQgaGFzIGJlZW4gZm9jdXNlZCBhbmQgYmx1cnJlZCBhZ2Fpbi5cbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy82NzMxI2lzc3VlY29tbWVudC0yNTQ4NzQ1NTNcbiAgICAgICAgdmFyIGNhblNldFRleHRDb250ZW50ID0gdGFnICE9PSAndGV4dGFyZWEnIHx8IG5leHRQcm9wICE9PSAnJztcblxuICAgICAgICBpZiAoY2FuU2V0VGV4dENvbnRlbnQpIHtcbiAgICAgICAgICBzZXRUZXh0Q29udGVudChkb21FbGVtZW50LCBuZXh0UHJvcCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG5leHRQcm9wID09PSAnbnVtYmVyJykge1xuICAgICAgICBzZXRUZXh0Q29udGVudChkb21FbGVtZW50LCAnJyArIG5leHRQcm9wKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb3BLZXkgPT09IFNVUFBSRVNTX0NPTlRFTlRfRURJVEFCTEVfV0FSTklORyB8fCBwcm9wS2V5ID09PSBTVVBQUkVTU19IWURSQVRJT05fV0FSTklORykgOyBlbHNlIGlmIChwcm9wS2V5ID09PSBBVVRPRk9DVVMpIDsgZWxzZSBpZiAocmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llcy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSkge1xuICAgICAgaWYgKG5leHRQcm9wICE9IG51bGwpIHtcbiAgICAgICAgaWYgKCB0eXBlb2YgbmV4dFByb3AgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICB3YXJuRm9ySW52YWxpZEV2ZW50TGlzdGVuZXIocHJvcEtleSwgbmV4dFByb3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByb3BLZXkgPT09ICdvblNjcm9sbCcpIHtcbiAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdzY3JvbGwnLCBkb21FbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobmV4dFByb3AgIT0gbnVsbCkge1xuICAgICAgc2V0VmFsdWVGb3JQcm9wZXJ0eShkb21FbGVtZW50LCBwcm9wS2V5LCBuZXh0UHJvcCwgaXNDdXN0b21Db21wb25lbnRUYWcpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB1cGRhdGVET01Qcm9wZXJ0aWVzKGRvbUVsZW1lbnQsIHVwZGF0ZVBheWxvYWQsIHdhc0N1c3RvbUNvbXBvbmVudFRhZywgaXNDdXN0b21Db21wb25lbnRUYWcpIHtcbiAgLy8gVE9ETzogSGFuZGxlIHdhc0N1c3RvbUNvbXBvbmVudFRhZ1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHVwZGF0ZVBheWxvYWQubGVuZ3RoOyBpICs9IDIpIHtcbiAgICB2YXIgcHJvcEtleSA9IHVwZGF0ZVBheWxvYWRbaV07XG4gICAgdmFyIHByb3BWYWx1ZSA9IHVwZGF0ZVBheWxvYWRbaSArIDFdO1xuXG4gICAgaWYgKHByb3BLZXkgPT09IFNUWUxFKSB7XG4gICAgICBzZXRWYWx1ZUZvclN0eWxlcyhkb21FbGVtZW50LCBwcm9wVmFsdWUpO1xuICAgIH0gZWxzZSBpZiAocHJvcEtleSA9PT0gREFOR0VST1VTTFlfU0VUX0lOTkVSX0hUTUwpIHtcbiAgICAgIHNldElubmVySFRNTChkb21FbGVtZW50LCBwcm9wVmFsdWUpO1xuICAgIH0gZWxzZSBpZiAocHJvcEtleSA9PT0gQ0hJTERSRU4pIHtcbiAgICAgIHNldFRleHRDb250ZW50KGRvbUVsZW1lbnQsIHByb3BWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFZhbHVlRm9yUHJvcGVydHkoZG9tRWxlbWVudCwgcHJvcEtleSwgcHJvcFZhbHVlLCBpc0N1c3RvbUNvbXBvbmVudFRhZyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQodHlwZSwgcHJvcHMsIHJvb3RDb250YWluZXJFbGVtZW50LCBwYXJlbnROYW1lc3BhY2UpIHtcbiAgdmFyIGlzQ3VzdG9tQ29tcG9uZW50VGFnOyAvLyBXZSBjcmVhdGUgdGFncyBpbiB0aGUgbmFtZXNwYWNlIG9mIHRoZWlyIHBhcmVudCBjb250YWluZXIsIGV4Y2VwdCBIVE1MXG4gIC8vIHRhZ3MgZ2V0IG5vIG5hbWVzcGFjZS5cblxuICB2YXIgb3duZXJEb2N1bWVudCA9IGdldE93bmVyRG9jdW1lbnRGcm9tUm9vdENvbnRhaW5lcihyb290Q29udGFpbmVyRWxlbWVudCk7XG4gIHZhciBkb21FbGVtZW50O1xuICB2YXIgbmFtZXNwYWNlVVJJID0gcGFyZW50TmFtZXNwYWNlO1xuXG4gIGlmIChuYW1lc3BhY2VVUkkgPT09IEhUTUxfTkFNRVNQQUNFKSB7XG4gICAgbmFtZXNwYWNlVVJJID0gZ2V0SW50cmluc2ljTmFtZXNwYWNlKHR5cGUpO1xuICB9XG5cbiAgaWYgKG5hbWVzcGFjZVVSSSA9PT0gSFRNTF9OQU1FU1BBQ0UpIHtcbiAgICB7XG4gICAgICBpc0N1c3RvbUNvbXBvbmVudFRhZyA9IGlzQ3VzdG9tQ29tcG9uZW50KHR5cGUsIHByb3BzKTsgLy8gU2hvdWxkIHRoaXMgY2hlY2sgYmUgZ2F0ZWQgYnkgcGFyZW50IG5hbWVzcGFjZT8gTm90IHN1cmUgd2Ugd2FudCB0b1xuICAgICAgLy8gYWxsb3cgPFNWRz4gb3IgPG1BVEg+LlxuXG4gICAgICBpZiAoIWlzQ3VzdG9tQ29tcG9uZW50VGFnICYmIHR5cGUgIT09IHR5cGUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICBlcnJvcignPCVzIC8+IGlzIHVzaW5nIGluY29ycmVjdCBjYXNpbmcuICcgKyAnVXNlIFBhc2NhbENhc2UgZm9yIFJlYWN0IGNvbXBvbmVudHMsICcgKyAnb3IgbG93ZXJjYXNlIGZvciBIVE1MIGVsZW1lbnRzLicsIHR5cGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlID09PSAnc2NyaXB0Jykge1xuICAgICAgLy8gQ3JlYXRlIHRoZSBzY3JpcHQgdmlhIC5pbm5lckhUTUwgc28gaXRzIFwicGFyc2VyLWluc2VydGVkXCIgZmxhZyBpc1xuICAgICAgLy8gc2V0IHRvIHRydWUgYW5kIGl0IGRvZXMgbm90IGV4ZWN1dGVcbiAgICAgIHZhciBkaXYgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgICBkaXYuaW5uZXJIVE1MID0gJzxzY3JpcHQ+PCcgKyAnL3NjcmlwdD4nOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgICAvLyBUaGlzIGlzIGd1YXJhbnRlZWQgdG8geWllbGQgYSBzY3JpcHQgZWxlbWVudC5cblxuICAgICAgdmFyIGZpcnN0Q2hpbGQgPSBkaXYuZmlyc3RDaGlsZDtcbiAgICAgIGRvbUVsZW1lbnQgPSBkaXYucmVtb3ZlQ2hpbGQoZmlyc3RDaGlsZCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgcHJvcHMuaXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyAkRmxvd0lzc3VlIGBjcmVhdGVFbGVtZW50YCBzaG91bGQgYmUgdXBkYXRlZCBmb3IgV2ViIENvbXBvbmVudHNcbiAgICAgIGRvbUVsZW1lbnQgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodHlwZSwge1xuICAgICAgICBpczogcHJvcHMuaXNcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTZXBhcmF0ZSBlbHNlIGJyYW5jaCBpbnN0ZWFkIG9mIHVzaW5nIGBwcm9wcy5pcyB8fCB1bmRlZmluZWRgIGFib3ZlIGJlY2F1c2Ugb2YgYSBGaXJlZm94IGJ1Zy5cbiAgICAgIC8vIFNlZSBkaXNjdXNzaW9uIGluIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9wdWxsLzY4OTZcbiAgICAgIC8vIGFuZCBkaXNjdXNzaW9uIGluIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzYyNDBcbiAgICAgIGRvbUVsZW1lbnQgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodHlwZSk7IC8vIE5vcm1hbGx5IGF0dHJpYnV0ZXMgYXJlIGFzc2lnbmVkIGluIGBzZXRJbml0aWFsRE9NUHJvcGVydGllc2AsIGhvd2V2ZXIgdGhlIGBtdWx0aXBsZWAgYW5kIGBzaXplYFxuICAgICAgLy8gYXR0cmlidXRlcyBvbiBgc2VsZWN0YHMgbmVlZHMgdG8gYmUgYWRkZWQgYmVmb3JlIGBvcHRpb25gcyBhcmUgaW5zZXJ0ZWQuXG4gICAgICAvLyBUaGlzIHByZXZlbnRzOlxuICAgICAgLy8gLSBhIGJ1ZyB3aGVyZSB0aGUgYHNlbGVjdGAgZG9lcyBub3Qgc2Nyb2xsIHRvIHRoZSBjb3JyZWN0IG9wdGlvbiBiZWNhdXNlIHNpbmd1bGFyXG4gICAgICAvLyAgYHNlbGVjdGAgZWxlbWVudHMgYXV0b21hdGljYWxseSBwaWNrIHRoZSBmaXJzdCBpdGVtICMxMzIyMlxuICAgICAgLy8gLSBhIGJ1ZyB3aGVyZSB0aGUgYHNlbGVjdGAgc2V0IHRoZSBmaXJzdCBpdGVtIGFzIHNlbGVjdGVkIGRlc3BpdGUgdGhlIGBzaXplYCBhdHRyaWJ1dGUgIzE0MjM5XG4gICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMzIyMlxuICAgICAgLy8gYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTQyMzlcblxuICAgICAgaWYgKHR5cGUgPT09ICdzZWxlY3QnKSB7XG4gICAgICAgIHZhciBub2RlID0gZG9tRWxlbWVudDtcblxuICAgICAgICBpZiAocHJvcHMubXVsdGlwbGUpIHtcbiAgICAgICAgICBub2RlLm11bHRpcGxlID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9wcy5zaXplKSB7XG4gICAgICAgICAgLy8gU2V0dGluZyBhIHNpemUgZ3JlYXRlciB0aGFuIDEgY2F1c2VzIGEgc2VsZWN0IHRvIGJlaGF2ZSBsaWtlIGBtdWx0aXBsZT10cnVlYCwgd2hlcmVcbiAgICAgICAgICAvLyBpdCBpcyBwb3NzaWJsZSB0aGF0IG5vIG9wdGlvbiBpcyBzZWxlY3RlZC5cbiAgICAgICAgICAvL1xuICAgICAgICAgIC8vIFRoaXMgaXMgb25seSBuZWNlc3Nhcnkgd2hlbiBhIHNlbGVjdCBpbiBcInNpbmdsZSBzZWxlY3Rpb24gbW9kZVwiLlxuICAgICAgICAgIG5vZGUuc2l6ZSA9IHByb3BzLnNpemU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZG9tRWxlbWVudCA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKG5hbWVzcGFjZVVSSSwgdHlwZSk7XG4gIH1cblxuICB7XG4gICAgaWYgKG5hbWVzcGFjZVVSSSA9PT0gSFRNTF9OQU1FU1BBQ0UpIHtcbiAgICAgIGlmICghaXNDdXN0b21Db21wb25lbnRUYWcgJiYgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGRvbUVsZW1lbnQpID09PSAnW29iamVjdCBIVE1MVW5rbm93bkVsZW1lbnRdJyAmJiAhaGFzT3duUHJvcGVydHkuY2FsbCh3YXJuZWRVbmtub3duVGFncywgdHlwZSkpIHtcbiAgICAgICAgd2FybmVkVW5rbm93blRhZ3NbdHlwZV0gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCdUaGUgdGFnIDwlcz4gaXMgdW5yZWNvZ25pemVkIGluIHRoaXMgYnJvd3Nlci4gJyArICdJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgUmVhY3QgY29tcG9uZW50LCBzdGFydCBpdHMgbmFtZSB3aXRoICcgKyAnYW4gdXBwZXJjYXNlIGxldHRlci4nLCB0eXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZG9tRWxlbWVudDtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVRleHROb2RlKHRleHQsIHJvb3RDb250YWluZXJFbGVtZW50KSB7XG4gIHJldHVybiBnZXRPd25lckRvY3VtZW50RnJvbVJvb3RDb250YWluZXIocm9vdENvbnRhaW5lckVsZW1lbnQpLmNyZWF0ZVRleHROb2RlKHRleHQpO1xufVxuZnVuY3Rpb24gc2V0SW5pdGlhbFByb3BlcnRpZXMoZG9tRWxlbWVudCwgdGFnLCByYXdQcm9wcywgcm9vdENvbnRhaW5lckVsZW1lbnQpIHtcbiAgdmFyIGlzQ3VzdG9tQ29tcG9uZW50VGFnID0gaXNDdXN0b21Db21wb25lbnQodGFnLCByYXdQcm9wcyk7XG5cbiAge1xuICAgIHZhbGlkYXRlUHJvcGVydGllc0luRGV2ZWxvcG1lbnQodGFnLCByYXdQcm9wcyk7XG4gIH0gLy8gVE9ETzogTWFrZSBzdXJlIHRoYXQgd2UgY2hlY2sgaXNNb3VudGVkIGJlZm9yZSBmaXJpbmcgYW55IG9mIHRoZXNlIGV2ZW50cy5cblxuXG4gIHZhciBwcm9wcztcblxuICBzd2l0Y2ggKHRhZykge1xuICAgIGNhc2UgJ2RpYWxvZyc6XG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdjYW5jZWwnLCBkb21FbGVtZW50KTtcbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ2Nsb3NlJywgZG9tRWxlbWVudCk7XG4gICAgICBwcm9wcyA9IHJhd1Byb3BzO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdpZnJhbWUnOlxuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgY2FzZSAnZW1iZWQnOlxuICAgICAgLy8gV2UgbGlzdGVuIHRvIHRoaXMgZXZlbnQgaW4gY2FzZSB0byBlbnN1cmUgZW11bGF0ZWQgYnViYmxlXG4gICAgICAvLyBsaXN0ZW5lcnMgc3RpbGwgZmlyZSBmb3IgdGhlIGxvYWQgZXZlbnQuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdsb2FkJywgZG9tRWxlbWVudCk7XG4gICAgICBwcm9wcyA9IHJhd1Byb3BzO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICd2aWRlbyc6XG4gICAgY2FzZSAnYXVkaW8nOlxuICAgICAgLy8gV2UgbGlzdGVuIHRvIHRoZXNlIGV2ZW50cyBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciBhbGwgdGhlIG1lZGlhIGV2ZW50cy5cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWVkaWFFdmVudFR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQobWVkaWFFdmVudFR5cGVzW2ldLCBkb21FbGVtZW50KTtcbiAgICAgIH1cblxuICAgICAgcHJvcHMgPSByYXdQcm9wcztcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnc291cmNlJzpcbiAgICAgIC8vIFdlIGxpc3RlbiB0byB0aGlzIGV2ZW50IGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIHRoZSBlcnJvciBldmVudC5cbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ2Vycm9yJywgZG9tRWxlbWVudCk7XG4gICAgICBwcm9wcyA9IHJhd1Byb3BzO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdpbWcnOlxuICAgIGNhc2UgJ2ltYWdlJzpcbiAgICBjYXNlICdsaW5rJzpcbiAgICAgIC8vIFdlIGxpc3RlbiB0byB0aGVzZSBldmVudHMgaW4gY2FzZSB0byBlbnN1cmUgZW11bGF0ZWQgYnViYmxlXG4gICAgICAvLyBsaXN0ZW5lcnMgc3RpbGwgZmlyZSBmb3IgZXJyb3IgYW5kIGxvYWQgZXZlbnRzLlxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnZXJyb3InLCBkb21FbGVtZW50KTtcbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ2xvYWQnLCBkb21FbGVtZW50KTtcbiAgICAgIHByb3BzID0gcmF3UHJvcHM7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2RldGFpbHMnOlxuICAgICAgLy8gV2UgbGlzdGVuIHRvIHRoaXMgZXZlbnQgaW4gY2FzZSB0byBlbnN1cmUgZW11bGF0ZWQgYnViYmxlXG4gICAgICAvLyBsaXN0ZW5lcnMgc3RpbGwgZmlyZSBmb3IgdGhlIHRvZ2dsZSBldmVudC5cbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ3RvZ2dsZScsIGRvbUVsZW1lbnQpO1xuICAgICAgcHJvcHMgPSByYXdQcm9wcztcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnaW5wdXQnOlxuICAgICAgaW5pdFdyYXBwZXJTdGF0ZShkb21FbGVtZW50LCByYXdQcm9wcyk7XG4gICAgICBwcm9wcyA9IGdldEhvc3RQcm9wcyhkb21FbGVtZW50LCByYXdQcm9wcyk7IC8vIFdlIGxpc3RlbiB0byB0aGlzIGV2ZW50IGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIHRoZSBpbnZhbGlkIGV2ZW50LlxuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdpbnZhbGlkJywgZG9tRWxlbWVudCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ29wdGlvbic6XG4gICAgICB2YWxpZGF0ZVByb3BzKGRvbUVsZW1lbnQsIHJhd1Byb3BzKTtcbiAgICAgIHByb3BzID0gcmF3UHJvcHM7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICBpbml0V3JhcHBlclN0YXRlJDEoZG9tRWxlbWVudCwgcmF3UHJvcHMpO1xuICAgICAgcHJvcHMgPSBnZXRIb3N0UHJvcHMkMShkb21FbGVtZW50LCByYXdQcm9wcyk7IC8vIFdlIGxpc3RlbiB0byB0aGlzIGV2ZW50IGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIHRoZSBpbnZhbGlkIGV2ZW50LlxuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdpbnZhbGlkJywgZG9tRWxlbWVudCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgIGluaXRXcmFwcGVyU3RhdGUkMihkb21FbGVtZW50LCByYXdQcm9wcyk7XG4gICAgICBwcm9wcyA9IGdldEhvc3RQcm9wcyQyKGRvbUVsZW1lbnQsIHJhd1Byb3BzKTsgLy8gV2UgbGlzdGVuIHRvIHRoaXMgZXZlbnQgaW4gY2FzZSB0byBlbnN1cmUgZW11bGF0ZWQgYnViYmxlXG4gICAgICAvLyBsaXN0ZW5lcnMgc3RpbGwgZmlyZSBmb3IgdGhlIGludmFsaWQgZXZlbnQuXG5cbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ2ludmFsaWQnLCBkb21FbGVtZW50KTtcbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHByb3BzID0gcmF3UHJvcHM7XG4gIH1cblxuICBhc3NlcnRWYWxpZFByb3BzKHRhZywgcHJvcHMpO1xuICBzZXRJbml0aWFsRE9NUHJvcGVydGllcyh0YWcsIGRvbUVsZW1lbnQsIHJvb3RDb250YWluZXJFbGVtZW50LCBwcm9wcywgaXNDdXN0b21Db21wb25lbnRUYWcpO1xuXG4gIHN3aXRjaCAodGFnKSB7XG4gICAgY2FzZSAnaW5wdXQnOlxuICAgICAgLy8gVE9ETzogTWFrZSBzdXJlIHdlIGNoZWNrIGlmIHRoaXMgaXMgc3RpbGwgdW5tb3VudGVkIG9yIGRvIGFueSBjbGVhblxuICAgICAgLy8gdXAgbmVjZXNzYXJ5IHNpbmNlIHdlIG5ldmVyIHN0b3AgdHJhY2tpbmcgYW55bW9yZS5cbiAgICAgIHRyYWNrKGRvbUVsZW1lbnQpO1xuICAgICAgcG9zdE1vdW50V3JhcHBlcihkb21FbGVtZW50LCByYXdQcm9wcywgZmFsc2UpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICAvLyBUT0RPOiBNYWtlIHN1cmUgd2UgY2hlY2sgaWYgdGhpcyBpcyBzdGlsbCB1bm1vdW50ZWQgb3IgZG8gYW55IGNsZWFuXG4gICAgICAvLyB1cCBuZWNlc3Nhcnkgc2luY2Ugd2UgbmV2ZXIgc3RvcCB0cmFja2luZyBhbnltb3JlLlxuICAgICAgdHJhY2soZG9tRWxlbWVudCk7XG4gICAgICBwb3N0TW91bnRXcmFwcGVyJDMoZG9tRWxlbWVudCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ29wdGlvbic6XG4gICAgICBwb3N0TW91bnRXcmFwcGVyJDEoZG9tRWxlbWVudCwgcmF3UHJvcHMpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdzZWxlY3QnOlxuICAgICAgcG9zdE1vdW50V3JhcHBlciQyKGRvbUVsZW1lbnQsIHJhd1Byb3BzKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIGlmICh0eXBlb2YgcHJvcHMub25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGNhc3QgbWF5IG5vdCBiZSBzb3VuZCBmb3IgU1ZHLCBNYXRoTUwgb3IgY3VzdG9tIGVsZW1lbnRzLlxuICAgICAgICB0cmFwQ2xpY2tPbk5vbkludGVyYWN0aXZlRWxlbWVudChkb21FbGVtZW50KTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gIH1cbn0gLy8gQ2FsY3VsYXRlIHRoZSBkaWZmIGJldHdlZW4gdGhlIHR3byBvYmplY3RzLlxuXG5mdW5jdGlvbiBkaWZmUHJvcGVydGllcyhkb21FbGVtZW50LCB0YWcsIGxhc3RSYXdQcm9wcywgbmV4dFJhd1Byb3BzLCByb290Q29udGFpbmVyRWxlbWVudCkge1xuICB7XG4gICAgdmFsaWRhdGVQcm9wZXJ0aWVzSW5EZXZlbG9wbWVudCh0YWcsIG5leHRSYXdQcm9wcyk7XG4gIH1cblxuICB2YXIgdXBkYXRlUGF5bG9hZCA9IG51bGw7XG4gIHZhciBsYXN0UHJvcHM7XG4gIHZhciBuZXh0UHJvcHM7XG5cbiAgc3dpdGNoICh0YWcpIHtcbiAgICBjYXNlICdpbnB1dCc6XG4gICAgICBsYXN0UHJvcHMgPSBnZXRIb3N0UHJvcHMoZG9tRWxlbWVudCwgbGFzdFJhd1Byb3BzKTtcbiAgICAgIG5leHRQcm9wcyA9IGdldEhvc3RQcm9wcyhkb21FbGVtZW50LCBuZXh0UmF3UHJvcHMpO1xuICAgICAgdXBkYXRlUGF5bG9hZCA9IFtdO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdzZWxlY3QnOlxuICAgICAgbGFzdFByb3BzID0gZ2V0SG9zdFByb3BzJDEoZG9tRWxlbWVudCwgbGFzdFJhd1Byb3BzKTtcbiAgICAgIG5leHRQcm9wcyA9IGdldEhvc3RQcm9wcyQxKGRvbUVsZW1lbnQsIG5leHRSYXdQcm9wcyk7XG4gICAgICB1cGRhdGVQYXlsb2FkID0gW107XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgIGxhc3RQcm9wcyA9IGdldEhvc3RQcm9wcyQyKGRvbUVsZW1lbnQsIGxhc3RSYXdQcm9wcyk7XG4gICAgICBuZXh0UHJvcHMgPSBnZXRIb3N0UHJvcHMkMihkb21FbGVtZW50LCBuZXh0UmF3UHJvcHMpO1xuICAgICAgdXBkYXRlUGF5bG9hZCA9IFtdO1xuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgbGFzdFByb3BzID0gbGFzdFJhd1Byb3BzO1xuICAgICAgbmV4dFByb3BzID0gbmV4dFJhd1Byb3BzO1xuXG4gICAgICBpZiAodHlwZW9mIGxhc3RQcm9wcy5vbkNsaWNrICE9PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBuZXh0UHJvcHMub25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGNhc3QgbWF5IG5vdCBiZSBzb3VuZCBmb3IgU1ZHLCBNYXRoTUwgb3IgY3VzdG9tIGVsZW1lbnRzLlxuICAgICAgICB0cmFwQ2xpY2tPbk5vbkludGVyYWN0aXZlRWxlbWVudChkb21FbGVtZW50KTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gIH1cblxuICBhc3NlcnRWYWxpZFByb3BzKHRhZywgbmV4dFByb3BzKTtcbiAgdmFyIHByb3BLZXk7XG4gIHZhciBzdHlsZU5hbWU7XG4gIHZhciBzdHlsZVVwZGF0ZXMgPSBudWxsO1xuXG4gIGZvciAocHJvcEtleSBpbiBsYXN0UHJvcHMpIHtcbiAgICBpZiAobmV4dFByb3BzLmhhc093blByb3BlcnR5KHByb3BLZXkpIHx8ICFsYXN0UHJvcHMuaGFzT3duUHJvcGVydHkocHJvcEtleSkgfHwgbGFzdFByb3BzW3Byb3BLZXldID09IG51bGwpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChwcm9wS2V5ID09PSBTVFlMRSkge1xuICAgICAgdmFyIGxhc3RTdHlsZSA9IGxhc3RQcm9wc1twcm9wS2V5XTtcblxuICAgICAgZm9yIChzdHlsZU5hbWUgaW4gbGFzdFN0eWxlKSB7XG4gICAgICAgIGlmIChsYXN0U3R5bGUuaGFzT3duUHJvcGVydHkoc3R5bGVOYW1lKSkge1xuICAgICAgICAgIGlmICghc3R5bGVVcGRhdGVzKSB7XG4gICAgICAgICAgICBzdHlsZVVwZGF0ZXMgPSB7fTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzdHlsZVVwZGF0ZXNbc3R5bGVOYW1lXSA9ICcnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wS2V5ID09PSBEQU5HRVJPVVNMWV9TRVRfSU5ORVJfSFRNTCB8fCBwcm9wS2V5ID09PSBDSElMRFJFTikgOyBlbHNlIGlmIChwcm9wS2V5ID09PSBTVVBQUkVTU19DT05URU5UX0VESVRBQkxFX1dBUk5JTkcgfHwgcHJvcEtleSA9PT0gU1VQUFJFU1NfSFlEUkFUSU9OX1dBUk5JTkcpIDsgZWxzZSBpZiAocHJvcEtleSA9PT0gQVVUT0ZPQ1VTKSA7IGVsc2UgaWYgKHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMuaGFzT3duUHJvcGVydHkocHJvcEtleSkpIHtcbiAgICAgIC8vIFRoaXMgaXMgYSBzcGVjaWFsIGNhc2UuIElmIGFueSBsaXN0ZW5lciB1cGRhdGVzIHdlIG5lZWQgdG8gZW5zdXJlXG4gICAgICAvLyB0aGF0IHRoZSBcImN1cnJlbnRcIiBmaWJlciBwb2ludGVyIGdldHMgdXBkYXRlZCBzbyB3ZSBuZWVkIGEgY29tbWl0XG4gICAgICAvLyB0byB1cGRhdGUgdGhpcyBlbGVtZW50LlxuICAgICAgaWYgKCF1cGRhdGVQYXlsb2FkKSB7XG4gICAgICAgIHVwZGF0ZVBheWxvYWQgPSBbXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRm9yIGFsbCBvdGhlciBkZWxldGVkIHByb3BlcnRpZXMgd2UgYWRkIGl0IHRvIHRoZSBxdWV1ZS4gV2UgdXNlXG4gICAgICAvLyB0aGUgYWxsb3dlZCBwcm9wZXJ0eSBsaXN0IGluIHRoZSBjb21taXQgcGhhc2UgaW5zdGVhZC5cbiAgICAgICh1cGRhdGVQYXlsb2FkID0gdXBkYXRlUGF5bG9hZCB8fCBbXSkucHVzaChwcm9wS2V5LCBudWxsKTtcbiAgICB9XG4gIH1cblxuICBmb3IgKHByb3BLZXkgaW4gbmV4dFByb3BzKSB7XG4gICAgdmFyIG5leHRQcm9wID0gbmV4dFByb3BzW3Byb3BLZXldO1xuICAgIHZhciBsYXN0UHJvcCA9IGxhc3RQcm9wcyAhPSBudWxsID8gbGFzdFByb3BzW3Byb3BLZXldIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKCFuZXh0UHJvcHMuaGFzT3duUHJvcGVydHkocHJvcEtleSkgfHwgbmV4dFByb3AgPT09IGxhc3RQcm9wIHx8IG5leHRQcm9wID09IG51bGwgJiYgbGFzdFByb3AgPT0gbnVsbCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHByb3BLZXkgPT09IFNUWUxFKSB7XG4gICAgICB7XG4gICAgICAgIGlmIChuZXh0UHJvcCkge1xuICAgICAgICAgIC8vIEZyZWV6ZSB0aGUgbmV4dCBzdHlsZSBvYmplY3Qgc28gdGhhdCB3ZSBjYW4gYXNzdW1lIGl0IHdvbid0IGJlXG4gICAgICAgICAgLy8gbXV0YXRlZC4gV2UgaGF2ZSBhbHJlYWR5IHdhcm5lZCBmb3IgdGhpcyBpbiB0aGUgcGFzdC5cbiAgICAgICAgICBPYmplY3QuZnJlZXplKG5leHRQcm9wKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAobGFzdFByb3ApIHtcbiAgICAgICAgLy8gVW5zZXQgc3R5bGVzIG9uIGBsYXN0UHJvcGAgYnV0IG5vdCBvbiBgbmV4dFByb3BgLlxuICAgICAgICBmb3IgKHN0eWxlTmFtZSBpbiBsYXN0UHJvcCkge1xuICAgICAgICAgIGlmIChsYXN0UHJvcC5oYXNPd25Qcm9wZXJ0eShzdHlsZU5hbWUpICYmICghbmV4dFByb3AgfHwgIW5leHRQcm9wLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkpKSB7XG4gICAgICAgICAgICBpZiAoIXN0eWxlVXBkYXRlcykge1xuICAgICAgICAgICAgICBzdHlsZVVwZGF0ZXMgPSB7fTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3R5bGVVcGRhdGVzW3N0eWxlTmFtZV0gPSAnJztcbiAgICAgICAgICB9XG4gICAgICAgIH0gLy8gVXBkYXRlIHN0eWxlcyB0aGF0IGNoYW5nZWQgc2luY2UgYGxhc3RQcm9wYC5cblxuXG4gICAgICAgIGZvciAoc3R5bGVOYW1lIGluIG5leHRQcm9wKSB7XG4gICAgICAgICAgaWYgKG5leHRQcm9wLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkgJiYgbGFzdFByb3Bbc3R5bGVOYW1lXSAhPT0gbmV4dFByb3Bbc3R5bGVOYW1lXSkge1xuICAgICAgICAgICAgaWYgKCFzdHlsZVVwZGF0ZXMpIHtcbiAgICAgICAgICAgICAgc3R5bGVVcGRhdGVzID0ge307XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN0eWxlVXBkYXRlc1tzdHlsZU5hbWVdID0gbmV4dFByb3Bbc3R5bGVOYW1lXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFJlbGllcyBvbiBgdXBkYXRlU3R5bGVzQnlJRGAgbm90IG11dGF0aW5nIGBzdHlsZVVwZGF0ZXNgLlxuICAgICAgICBpZiAoIXN0eWxlVXBkYXRlcykge1xuICAgICAgICAgIGlmICghdXBkYXRlUGF5bG9hZCkge1xuICAgICAgICAgICAgdXBkYXRlUGF5bG9hZCA9IFtdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHVwZGF0ZVBheWxvYWQucHVzaChwcm9wS2V5LCBzdHlsZVVwZGF0ZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3R5bGVVcGRhdGVzID0gbmV4dFByb3A7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwcm9wS2V5ID09PSBEQU5HRVJPVVNMWV9TRVRfSU5ORVJfSFRNTCkge1xuICAgICAgdmFyIG5leHRIdG1sID0gbmV4dFByb3AgPyBuZXh0UHJvcFtIVE1MJDFdIDogdW5kZWZpbmVkO1xuICAgICAgdmFyIGxhc3RIdG1sID0gbGFzdFByb3AgPyBsYXN0UHJvcFtIVE1MJDFdIDogdW5kZWZpbmVkO1xuXG4gICAgICBpZiAobmV4dEh0bWwgIT0gbnVsbCkge1xuICAgICAgICBpZiAobGFzdEh0bWwgIT09IG5leHRIdG1sKSB7XG4gICAgICAgICAgKHVwZGF0ZVBheWxvYWQgPSB1cGRhdGVQYXlsb2FkIHx8IFtdKS5wdXNoKHByb3BLZXksIG5leHRIdG1sKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocHJvcEtleSA9PT0gQ0hJTERSRU4pIHtcbiAgICAgIGlmICh0eXBlb2YgbmV4dFByb3AgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBuZXh0UHJvcCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgKHVwZGF0ZVBheWxvYWQgPSB1cGRhdGVQYXlsb2FkIHx8IFtdKS5wdXNoKHByb3BLZXksICcnICsgbmV4dFByb3ApO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocHJvcEtleSA9PT0gU1VQUFJFU1NfQ09OVEVOVF9FRElUQUJMRV9XQVJOSU5HIHx8IHByb3BLZXkgPT09IFNVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HKSA7IGVsc2UgaWYgKHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMuaGFzT3duUHJvcGVydHkocHJvcEtleSkpIHtcbiAgICAgIGlmIChuZXh0UHJvcCAhPSBudWxsKSB7XG4gICAgICAgIC8vIFdlIGVhZ2VybHkgbGlzdGVuIHRvIHRoaXMgZXZlbiB0aG91Z2ggd2UgaGF2ZW4ndCBjb21taXR0ZWQgeWV0LlxuICAgICAgICBpZiAoIHR5cGVvZiBuZXh0UHJvcCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHdhcm5Gb3JJbnZhbGlkRXZlbnRMaXN0ZW5lcihwcm9wS2V5LCBuZXh0UHJvcCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvcEtleSA9PT0gJ29uU2Nyb2xsJykge1xuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ3Njcm9sbCcsIGRvbUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghdXBkYXRlUGF5bG9hZCAmJiBsYXN0UHJvcCAhPT0gbmV4dFByb3ApIHtcbiAgICAgICAgLy8gVGhpcyBpcyBhIHNwZWNpYWwgY2FzZS4gSWYgYW55IGxpc3RlbmVyIHVwZGF0ZXMgd2UgbmVlZCB0byBlbnN1cmVcbiAgICAgICAgLy8gdGhhdCB0aGUgXCJjdXJyZW50XCIgcHJvcHMgcG9pbnRlciBnZXRzIHVwZGF0ZWQgc28gd2UgbmVlZCBhIGNvbW1pdFxuICAgICAgICAvLyB0byB1cGRhdGUgdGhpcyBlbGVtZW50LlxuICAgICAgICB1cGRhdGVQYXlsb2FkID0gW107XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZvciBhbnkgb3RoZXIgcHJvcGVydHkgd2UgYWx3YXlzIGFkZCBpdCB0byB0aGUgcXVldWUgYW5kIHRoZW4gd2VcbiAgICAgIC8vIGZpbHRlciBpdCBvdXQgdXNpbmcgdGhlIGFsbG93ZWQgcHJvcGVydHkgbGlzdCBkdXJpbmcgdGhlIGNvbW1pdC5cbiAgICAgICh1cGRhdGVQYXlsb2FkID0gdXBkYXRlUGF5bG9hZCB8fCBbXSkucHVzaChwcm9wS2V5LCBuZXh0UHJvcCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHN0eWxlVXBkYXRlcykge1xuICAgIHtcbiAgICAgIHZhbGlkYXRlU2hvcnRoYW5kUHJvcGVydHlDb2xsaXNpb25JbkRldihzdHlsZVVwZGF0ZXMsIG5leHRQcm9wc1tTVFlMRV0pO1xuICAgIH1cblxuICAgICh1cGRhdGVQYXlsb2FkID0gdXBkYXRlUGF5bG9hZCB8fCBbXSkucHVzaChTVFlMRSwgc3R5bGVVcGRhdGVzKTtcbiAgfVxuXG4gIHJldHVybiB1cGRhdGVQYXlsb2FkO1xufSAvLyBBcHBseSB0aGUgZGlmZi5cblxuZnVuY3Rpb24gdXBkYXRlUHJvcGVydGllcyhkb21FbGVtZW50LCB1cGRhdGVQYXlsb2FkLCB0YWcsIGxhc3RSYXdQcm9wcywgbmV4dFJhd1Byb3BzKSB7XG4gIC8vIFVwZGF0ZSBjaGVja2VkICpiZWZvcmUqIG5hbWUuXG4gIC8vIEluIHRoZSBtaWRkbGUgb2YgYW4gdXBkYXRlLCBpdCBpcyBwb3NzaWJsZSB0byBoYXZlIG11bHRpcGxlIGNoZWNrZWQuXG4gIC8vIFdoZW4gYSBjaGVja2VkIHJhZGlvIHRyaWVzIHRvIGNoYW5nZSBuYW1lLCBicm93c2VyIG1ha2VzIGFub3RoZXIgcmFkaW8ncyBjaGVja2VkIGZhbHNlLlxuICBpZiAodGFnID09PSAnaW5wdXQnICYmIG5leHRSYXdQcm9wcy50eXBlID09PSAncmFkaW8nICYmIG5leHRSYXdQcm9wcy5uYW1lICE9IG51bGwpIHtcbiAgICB1cGRhdGVDaGVja2VkKGRvbUVsZW1lbnQsIG5leHRSYXdQcm9wcyk7XG4gIH1cblxuICB2YXIgd2FzQ3VzdG9tQ29tcG9uZW50VGFnID0gaXNDdXN0b21Db21wb25lbnQodGFnLCBsYXN0UmF3UHJvcHMpO1xuICB2YXIgaXNDdXN0b21Db21wb25lbnRUYWcgPSBpc0N1c3RvbUNvbXBvbmVudCh0YWcsIG5leHRSYXdQcm9wcyk7IC8vIEFwcGx5IHRoZSBkaWZmLlxuXG4gIHVwZGF0ZURPTVByb3BlcnRpZXMoZG9tRWxlbWVudCwgdXBkYXRlUGF5bG9hZCwgd2FzQ3VzdG9tQ29tcG9uZW50VGFnLCBpc0N1c3RvbUNvbXBvbmVudFRhZyk7IC8vIFRPRE86IEVuc3VyZSB0aGF0IGFuIHVwZGF0ZSBnZXRzIHNjaGVkdWxlZCBpZiBhbnkgb2YgdGhlIHNwZWNpYWwgcHJvcHNcbiAgLy8gY2hhbmdlZC5cblxuICBzd2l0Y2ggKHRhZykge1xuICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgIC8vIFVwZGF0ZSB0aGUgd3JhcHBlciBhcm91bmQgaW5wdXRzICphZnRlciogdXBkYXRpbmcgcHJvcHMuIFRoaXMgaGFzIHRvXG4gICAgICAvLyBoYXBwZW4gYWZ0ZXIgYHVwZGF0ZURPTVByb3BlcnRpZXNgLiBPdGhlcndpc2UgSFRNTDUgaW5wdXQgdmFsaWRhdGlvbnNcbiAgICAgIC8vIHJhaXNlIHdhcm5pbmdzIGFuZCBwcmV2ZW50IHRoZSBuZXcgdmFsdWUgZnJvbSBiZWluZyBhc3NpZ25lZC5cbiAgICAgIHVwZGF0ZVdyYXBwZXIoZG9tRWxlbWVudCwgbmV4dFJhd1Byb3BzKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgdXBkYXRlV3JhcHBlciQxKGRvbUVsZW1lbnQsIG5leHRSYXdQcm9wcyk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAvLyA8c2VsZWN0PiB2YWx1ZSB1cGRhdGUgbmVlZHMgdG8gb2NjdXIgYWZ0ZXIgPG9wdGlvbj4gY2hpbGRyZW5cbiAgICAgIC8vIHJlY29uY2lsaWF0aW9uXG4gICAgICBwb3N0VXBkYXRlV3JhcHBlcihkb21FbGVtZW50LCBuZXh0UmF3UHJvcHMpO1xuICAgICAgYnJlYWs7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0UG9zc2libGVTdGFuZGFyZE5hbWUocHJvcE5hbWUpIHtcbiAge1xuICAgIHZhciBsb3dlckNhc2VkTmFtZSA9IHByb3BOYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAoIXBvc3NpYmxlU3RhbmRhcmROYW1lcy5oYXNPd25Qcm9wZXJ0eShsb3dlckNhc2VkTmFtZSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBwb3NzaWJsZVN0YW5kYXJkTmFtZXNbbG93ZXJDYXNlZE5hbWVdIHx8IG51bGw7XG4gIH1cbn1cblxuZnVuY3Rpb24gZGlmZkh5ZHJhdGVkUHJvcGVydGllcyhkb21FbGVtZW50LCB0YWcsIHJhd1Byb3BzLCBwYXJlbnROYW1lc3BhY2UsIHJvb3RDb250YWluZXJFbGVtZW50LCBpc0NvbmN1cnJlbnRNb2RlLCBzaG91bGRXYXJuRGV2KSB7XG4gIHZhciBpc0N1c3RvbUNvbXBvbmVudFRhZztcbiAgdmFyIGV4dHJhQXR0cmlidXRlTmFtZXM7XG5cbiAge1xuICAgIGlzQ3VzdG9tQ29tcG9uZW50VGFnID0gaXNDdXN0b21Db21wb25lbnQodGFnLCByYXdQcm9wcyk7XG4gICAgdmFsaWRhdGVQcm9wZXJ0aWVzSW5EZXZlbG9wbWVudCh0YWcsIHJhd1Byb3BzKTtcbiAgfSAvLyBUT0RPOiBNYWtlIHN1cmUgdGhhdCB3ZSBjaGVjayBpc01vdW50ZWQgYmVmb3JlIGZpcmluZyBhbnkgb2YgdGhlc2UgZXZlbnRzLlxuXG5cbiAgc3dpdGNoICh0YWcpIHtcbiAgICBjYXNlICdkaWFsb2cnOlxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnY2FuY2VsJywgZG9tRWxlbWVudCk7XG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdjbG9zZScsIGRvbUVsZW1lbnQpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdpZnJhbWUnOlxuICAgIGNhc2UgJ29iamVjdCc6XG4gICAgY2FzZSAnZW1iZWQnOlxuICAgICAgLy8gV2UgbGlzdGVuIHRvIHRoaXMgZXZlbnQgaW4gY2FzZSB0byBlbnN1cmUgZW11bGF0ZWQgYnViYmxlXG4gICAgICAvLyBsaXN0ZW5lcnMgc3RpbGwgZmlyZSBmb3IgdGhlIGxvYWQgZXZlbnQuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdsb2FkJywgZG9tRWxlbWVudCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3ZpZGVvJzpcbiAgICBjYXNlICdhdWRpbyc6XG4gICAgICAvLyBXZSBsaXN0ZW4gdG8gdGhlc2UgZXZlbnRzIGluIGNhc2UgdG8gZW5zdXJlIGVtdWxhdGVkIGJ1YmJsZVxuICAgICAgLy8gbGlzdGVuZXJzIHN0aWxsIGZpcmUgZm9yIGFsbCB0aGUgbWVkaWEgZXZlbnRzLlxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZWRpYUV2ZW50VHlwZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChtZWRpYUV2ZW50VHlwZXNbaV0sIGRvbUVsZW1lbnQpO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3NvdXJjZSc6XG4gICAgICAvLyBXZSBsaXN0ZW4gdG8gdGhpcyBldmVudCBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciB0aGUgZXJyb3IgZXZlbnQuXG4gICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KCdlcnJvcicsIGRvbUVsZW1lbnQpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdpbWcnOlxuICAgIGNhc2UgJ2ltYWdlJzpcbiAgICBjYXNlICdsaW5rJzpcbiAgICAgIC8vIFdlIGxpc3RlbiB0byB0aGVzZSBldmVudHMgaW4gY2FzZSB0byBlbnN1cmUgZW11bGF0ZWQgYnViYmxlXG4gICAgICAvLyBsaXN0ZW5lcnMgc3RpbGwgZmlyZSBmb3IgZXJyb3IgYW5kIGxvYWQgZXZlbnRzLlxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnZXJyb3InLCBkb21FbGVtZW50KTtcbiAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ2xvYWQnLCBkb21FbGVtZW50KTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnZGV0YWlscyc6XG4gICAgICAvLyBXZSBsaXN0ZW4gdG8gdGhpcyBldmVudCBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciB0aGUgdG9nZ2xlIGV2ZW50LlxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgndG9nZ2xlJywgZG9tRWxlbWVudCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgIGluaXRXcmFwcGVyU3RhdGUoZG9tRWxlbWVudCwgcmF3UHJvcHMpOyAvLyBXZSBsaXN0ZW4gdG8gdGhpcyBldmVudCBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciB0aGUgaW52YWxpZCBldmVudC5cblxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnaW52YWxpZCcsIGRvbUVsZW1lbnQpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdvcHRpb24nOlxuICAgICAgdmFsaWRhdGVQcm9wcyhkb21FbGVtZW50LCByYXdQcm9wcyk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICBpbml0V3JhcHBlclN0YXRlJDEoZG9tRWxlbWVudCwgcmF3UHJvcHMpOyAvLyBXZSBsaXN0ZW4gdG8gdGhpcyBldmVudCBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciB0aGUgaW52YWxpZCBldmVudC5cblxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnaW52YWxpZCcsIGRvbUVsZW1lbnQpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICBpbml0V3JhcHBlclN0YXRlJDIoZG9tRWxlbWVudCwgcmF3UHJvcHMpOyAvLyBXZSBsaXN0ZW4gdG8gdGhpcyBldmVudCBpbiBjYXNlIHRvIGVuc3VyZSBlbXVsYXRlZCBidWJibGVcbiAgICAgIC8vIGxpc3RlbmVycyBzdGlsbCBmaXJlIGZvciB0aGUgaW52YWxpZCBldmVudC5cblxuICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudCgnaW52YWxpZCcsIGRvbUVsZW1lbnQpO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICBhc3NlcnRWYWxpZFByb3BzKHRhZywgcmF3UHJvcHMpO1xuXG4gIHtcbiAgICBleHRyYUF0dHJpYnV0ZU5hbWVzID0gbmV3IFNldCgpO1xuICAgIHZhciBhdHRyaWJ1dGVzID0gZG9tRWxlbWVudC5hdHRyaWJ1dGVzO1xuXG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGF0dHJpYnV0ZXMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICB2YXIgbmFtZSA9IGF0dHJpYnV0ZXNbX2ldLm5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICAgIC8vIENvbnRyb2xsZWQgYXR0cmlidXRlcyBhcmUgbm90IHZhbGlkYXRlZFxuICAgICAgICAvLyBUT0RPOiBPbmx5IGlnbm9yZSB0aGVtIG9uIGNvbnRyb2xsZWQgdGFncy5cbiAgICAgICAgY2FzZSAndmFsdWUnOlxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2NoZWNrZWQnOlxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3NlbGVjdGVkJzpcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIC8vIEludGVudGlvbmFsbHkgdXNlIHRoZSBvcmlnaW5hbCBuYW1lLlxuICAgICAgICAgIC8vIFNlZSBkaXNjdXNzaW9uIGluIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9wdWxsLzEwNjc2LlxuICAgICAgICAgIGV4dHJhQXR0cmlidXRlTmFtZXMuYWRkKGF0dHJpYnV0ZXNbX2ldLm5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciB1cGRhdGVQYXlsb2FkID0gbnVsbDtcblxuICBmb3IgKHZhciBwcm9wS2V5IGluIHJhd1Byb3BzKSB7XG4gICAgaWYgKCFyYXdQcm9wcy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgdmFyIG5leHRQcm9wID0gcmF3UHJvcHNbcHJvcEtleV07XG5cbiAgICBpZiAocHJvcEtleSA9PT0gQ0hJTERSRU4pIHtcbiAgICAgIC8vIEZvciB0ZXh0IGNvbnRlbnQgY2hpbGRyZW4gd2UgY29tcGFyZSBhZ2FpbnN0IHRleHRDb250ZW50LiBUaGlzXG4gICAgICAvLyBtaWdodCBtYXRjaCBhZGRpdGlvbmFsIEhUTUwgdGhhdCBpcyBoaWRkZW4gd2hlbiB3ZSByZWFkIGl0IHVzaW5nXG4gICAgICAvLyB0ZXh0Q29udGVudC4gRS5nLiBcImZvb1wiIHdpbGwgbWF0Y2ggXCJmPHNwYW4+b288L3NwYW4+XCIgYnV0IHRoYXQgc3RpbGxcbiAgICAgIC8vIHNhdGlzZmllcyBvdXIgcmVxdWlyZW1lbnQuIE91ciByZXF1aXJlbWVudCBpcyBub3QgdG8gcHJvZHVjZSBwZXJmZWN0XG4gICAgICAvLyBIVE1MIGFuZCBhdHRyaWJ1dGVzLiBJZGVhbGx5IHdlIHNob3VsZCBwcmVzZXJ2ZSBzdHJ1Y3R1cmUgYnV0IGl0J3NcbiAgICAgIC8vIG9rIG5vdCB0byBpZiB0aGUgdmlzaWJsZSBjb250ZW50IGlzIHN0aWxsIGVub3VnaCB0byBpbmRpY2F0ZSB3aGF0XG4gICAgICAvLyBldmVuIGxpc3RlbmVycyB0aGVzZSBub2RlcyBtaWdodCBiZSB3aXJlZCB1cCB0by5cbiAgICAgIC8vIFRPRE86IFdhcm4gaWYgdGhlcmUgaXMgbW9yZSB0aGFuIGEgc2luZ2xlIHRleHROb2RlIGFzIGEgY2hpbGQuXG4gICAgICAvLyBUT0RPOiBTaG91bGQgd2UgdXNlIGRvbUVsZW1lbnQuZmlyc3RDaGlsZC5ub2RlVmFsdWUgdG8gY29tcGFyZT9cbiAgICAgIGlmICh0eXBlb2YgbmV4dFByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGlmIChkb21FbGVtZW50LnRleHRDb250ZW50ICE9PSBuZXh0UHJvcCkge1xuICAgICAgICAgIGlmIChyYXdQcm9wc1tTVVBQUkVTU19IWURSQVRJT05fV0FSTklOR10gIT09IHRydWUpIHtcbiAgICAgICAgICAgIGNoZWNrRm9yVW5tYXRjaGVkVGV4dChkb21FbGVtZW50LnRleHRDb250ZW50LCBuZXh0UHJvcCwgaXNDb25jdXJyZW50TW9kZSwgc2hvdWxkV2FybkRldik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdXBkYXRlUGF5bG9hZCA9IFtDSElMRFJFTiwgbmV4dFByb3BdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBuZXh0UHJvcCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgaWYgKGRvbUVsZW1lbnQudGV4dENvbnRlbnQgIT09ICcnICsgbmV4dFByb3ApIHtcbiAgICAgICAgICBpZiAocmF3UHJvcHNbU1VQUFJFU1NfSFlEUkFUSU9OX1dBUk5JTkddICE9PSB0cnVlKSB7XG4gICAgICAgICAgICBjaGVja0ZvclVubWF0Y2hlZFRleHQoZG9tRWxlbWVudC50ZXh0Q29udGVudCwgbmV4dFByb3AsIGlzQ29uY3VycmVudE1vZGUsIHNob3VsZFdhcm5EZXYpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHVwZGF0ZVBheWxvYWQgPSBbQ0hJTERSRU4sICcnICsgbmV4dFByb3BdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChyZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzLmhhc093blByb3BlcnR5KHByb3BLZXkpKSB7XG4gICAgICBpZiAobmV4dFByb3AgIT0gbnVsbCkge1xuICAgICAgICBpZiAoIHR5cGVvZiBuZXh0UHJvcCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHdhcm5Gb3JJbnZhbGlkRXZlbnRMaXN0ZW5lcihwcm9wS2V5LCBuZXh0UHJvcCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvcEtleSA9PT0gJ29uU2Nyb2xsJykge1xuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoJ3Njcm9sbCcsIGRvbUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChzaG91bGRXYXJuRGV2ICYmIHRydWUgJiYgLy8gQ29udmluY2UgRmxvdyB3ZSd2ZSBjYWxjdWxhdGVkIGl0IChpdCdzIERFVi1vbmx5IGluIHRoaXMgbWV0aG9kLilcbiAgICB0eXBlb2YgaXNDdXN0b21Db21wb25lbnRUYWcgPT09ICdib29sZWFuJykge1xuICAgICAgLy8gVmFsaWRhdGUgdGhhdCB0aGUgcHJvcGVydGllcyBjb3JyZXNwb25kIHRvIHRoZWlyIGV4cGVjdGVkIHZhbHVlcy5cbiAgICAgIHZhciBzZXJ2ZXJWYWx1ZSA9IHZvaWQgMDtcbiAgICAgIHZhciBwcm9wZXJ0eUluZm8gPSBpc0N1c3RvbUNvbXBvbmVudFRhZyAmJiBlbmFibGVDdXN0b21FbGVtZW50UHJvcGVydHlTdXBwb3J0ID8gbnVsbCA6IGdldFByb3BlcnR5SW5mbyhwcm9wS2V5KTtcblxuICAgICAgaWYgKHJhd1Byb3BzW1NVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HXSA9PT0gdHJ1ZSkgOyBlbHNlIGlmIChwcm9wS2V5ID09PSBTVVBQUkVTU19DT05URU5UX0VESVRBQkxFX1dBUk5JTkcgfHwgcHJvcEtleSA9PT0gU1VQUFJFU1NfSFlEUkFUSU9OX1dBUk5JTkcgfHwgLy8gQ29udHJvbGxlZCBhdHRyaWJ1dGVzIGFyZSBub3QgdmFsaWRhdGVkXG4gICAgICAvLyBUT0RPOiBPbmx5IGlnbm9yZSB0aGVtIG9uIGNvbnRyb2xsZWQgdGFncy5cbiAgICAgIHByb3BLZXkgPT09ICd2YWx1ZScgfHwgcHJvcEtleSA9PT0gJ2NoZWNrZWQnIHx8IHByb3BLZXkgPT09ICdzZWxlY3RlZCcpIDsgZWxzZSBpZiAocHJvcEtleSA9PT0gREFOR0VST1VTTFlfU0VUX0lOTkVSX0hUTUwpIHtcbiAgICAgICAgdmFyIHNlcnZlckhUTUwgPSBkb21FbGVtZW50LmlubmVySFRNTDtcbiAgICAgICAgdmFyIG5leHRIdG1sID0gbmV4dFByb3AgPyBuZXh0UHJvcFtIVE1MJDFdIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmIChuZXh0SHRtbCAhPSBudWxsKSB7XG4gICAgICAgICAgdmFyIGV4cGVjdGVkSFRNTCA9IG5vcm1hbGl6ZUhUTUwoZG9tRWxlbWVudCwgbmV4dEh0bWwpO1xuXG4gICAgICAgICAgaWYgKGV4cGVjdGVkSFRNTCAhPT0gc2VydmVySFRNTCkge1xuICAgICAgICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKHByb3BLZXksIHNlcnZlckhUTUwsIGV4cGVjdGVkSFRNTCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHByb3BLZXkgPT09IFNUWUxFKSB7XG4gICAgICAgIC8vICRGbG93Rml4TWUgLSBTaG91bGQgYmUgaW5mZXJyZWQgYXMgbm90IHVuZGVmaW5lZC5cbiAgICAgICAgZXh0cmFBdHRyaWJ1dGVOYW1lcy5kZWxldGUocHJvcEtleSk7XG5cbiAgICAgICAgaWYgKGNhbkRpZmZTdHlsZUZvckh5ZHJhdGlvbldhcm5pbmcpIHtcbiAgICAgICAgICB2YXIgZXhwZWN0ZWRTdHlsZSA9IGNyZWF0ZURhbmdlcm91c1N0cmluZ0ZvclN0eWxlcyhuZXh0UHJvcCk7XG4gICAgICAgICAgc2VydmVyVmFsdWUgPSBkb21FbGVtZW50LmdldEF0dHJpYnV0ZSgnc3R5bGUnKTtcblxuICAgICAgICAgIGlmIChleHBlY3RlZFN0eWxlICE9PSBzZXJ2ZXJWYWx1ZSkge1xuICAgICAgICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKHByb3BLZXksIHNlcnZlclZhbHVlLCBleHBlY3RlZFN0eWxlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNDdXN0b21Db21wb25lbnRUYWcgJiYgIWVuYWJsZUN1c3RvbUVsZW1lbnRQcm9wZXJ0eVN1cHBvcnQpIHtcbiAgICAgICAgLy8gJEZsb3dGaXhNZSAtIFNob3VsZCBiZSBpbmZlcnJlZCBhcyBub3QgdW5kZWZpbmVkLlxuICAgICAgICBleHRyYUF0dHJpYnV0ZU5hbWVzLmRlbGV0ZShwcm9wS2V5LnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICBzZXJ2ZXJWYWx1ZSA9IGdldFZhbHVlRm9yQXR0cmlidXRlKGRvbUVsZW1lbnQsIHByb3BLZXksIG5leHRQcm9wKTtcblxuICAgICAgICBpZiAobmV4dFByb3AgIT09IHNlcnZlclZhbHVlKSB7XG4gICAgICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKHByb3BLZXksIHNlcnZlclZhbHVlLCBuZXh0UHJvcCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoIXNob3VsZElnbm9yZUF0dHJpYnV0ZShwcm9wS2V5LCBwcm9wZXJ0eUluZm8sIGlzQ3VzdG9tQ29tcG9uZW50VGFnKSAmJiAhc2hvdWxkUmVtb3ZlQXR0cmlidXRlKHByb3BLZXksIG5leHRQcm9wLCBwcm9wZXJ0eUluZm8sIGlzQ3VzdG9tQ29tcG9uZW50VGFnKSkge1xuICAgICAgICB2YXIgaXNNaXNtYXRjaER1ZVRvQmFkQ2FzaW5nID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHByb3BlcnR5SW5mbyAhPT0gbnVsbCkge1xuICAgICAgICAgIC8vICRGbG93Rml4TWUgLSBTaG91bGQgYmUgaW5mZXJyZWQgYXMgbm90IHVuZGVmaW5lZC5cbiAgICAgICAgICBleHRyYUF0dHJpYnV0ZU5hbWVzLmRlbGV0ZShwcm9wZXJ0eUluZm8uYXR0cmlidXRlTmFtZSk7XG4gICAgICAgICAgc2VydmVyVmFsdWUgPSBnZXRWYWx1ZUZvclByb3BlcnR5KGRvbUVsZW1lbnQsIHByb3BLZXksIG5leHRQcm9wLCBwcm9wZXJ0eUluZm8pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBvd25OYW1lc3BhY2UgPSBwYXJlbnROYW1lc3BhY2U7XG5cbiAgICAgICAgICBpZiAob3duTmFtZXNwYWNlID09PSBIVE1MX05BTUVTUEFDRSkge1xuICAgICAgICAgICAgb3duTmFtZXNwYWNlID0gZ2V0SW50cmluc2ljTmFtZXNwYWNlKHRhZyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKG93bk5hbWVzcGFjZSA9PT0gSFRNTF9OQU1FU1BBQ0UpIHtcbiAgICAgICAgICAgIC8vICRGbG93Rml4TWUgLSBTaG91bGQgYmUgaW5mZXJyZWQgYXMgbm90IHVuZGVmaW5lZC5cbiAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlTmFtZXMuZGVsZXRlKHByb3BLZXkudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBzdGFuZGFyZE5hbWUgPSBnZXRQb3NzaWJsZVN0YW5kYXJkTmFtZShwcm9wS2V5KTtcblxuICAgICAgICAgICAgaWYgKHN0YW5kYXJkTmFtZSAhPT0gbnVsbCAmJiBzdGFuZGFyZE5hbWUgIT09IHByb3BLZXkpIHtcbiAgICAgICAgICAgICAgLy8gSWYgYW4gU1ZHIHByb3AgaXMgc3VwcGxpZWQgd2l0aCBiYWQgY2FzaW5nLCBpdCB3aWxsXG4gICAgICAgICAgICAgIC8vIGJlIHN1Y2Nlc3NmdWxseSBwYXJzZWQgZnJvbSBIVE1MLCBidXQgd2lsbCBwcm9kdWNlIGEgbWlzbWF0Y2hcbiAgICAgICAgICAgICAgLy8gKGFuZCB3b3VsZCBiZSBpbmNvcnJlY3RseSByZW5kZXJlZCBvbiB0aGUgY2xpZW50KS5cbiAgICAgICAgICAgICAgLy8gSG93ZXZlciwgd2UgYWxyZWFkeSB3YXJuIGFib3V0IGJhZCBjYXNpbmcgZWxzZXdoZXJlLlxuICAgICAgICAgICAgICAvLyBTbyB3ZSdsbCBza2lwIHRoZSBtaXNsZWFkaW5nIGV4dHJhIG1pc21hdGNoIHdhcm5pbmcgaW4gdGhpcyBjYXNlLlxuICAgICAgICAgICAgICBpc01pc21hdGNoRHVlVG9CYWRDYXNpbmcgPSB0cnVlOyAvLyAkRmxvd0ZpeE1lIC0gU2hvdWxkIGJlIGluZmVycmVkIGFzIG5vdCB1bmRlZmluZWQuXG5cbiAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVOYW1lcy5kZWxldGUoc3RhbmRhcmROYW1lKTtcbiAgICAgICAgICAgIH0gLy8gJEZsb3dGaXhNZSAtIFNob3VsZCBiZSBpbmZlcnJlZCBhcyBub3QgdW5kZWZpbmVkLlxuXG5cbiAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlTmFtZXMuZGVsZXRlKHByb3BLZXkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNlcnZlclZhbHVlID0gZ2V0VmFsdWVGb3JBdHRyaWJ1dGUoZG9tRWxlbWVudCwgcHJvcEtleSwgbmV4dFByb3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGRvbnRXYXJuQ3VzdG9tRWxlbWVudCA9IGVuYWJsZUN1c3RvbUVsZW1lbnRQcm9wZXJ0eVN1cHBvcnQgIDtcblxuICAgICAgICBpZiAoIWRvbnRXYXJuQ3VzdG9tRWxlbWVudCAmJiBuZXh0UHJvcCAhPT0gc2VydmVyVmFsdWUgJiYgIWlzTWlzbWF0Y2hEdWVUb0JhZENhc2luZykge1xuICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShwcm9wS2V5LCBzZXJ2ZXJWYWx1ZSwgbmV4dFByb3ApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAge1xuICAgIGlmIChzaG91bGRXYXJuRGV2KSB7XG4gICAgICBpZiAoIC8vICRGbG93Rml4TWUgLSBTaG91bGQgYmUgaW5mZXJyZWQgYXMgbm90IHVuZGVmaW5lZC5cbiAgICAgIGV4dHJhQXR0cmlidXRlTmFtZXMuc2l6ZSA+IDAgJiYgcmF3UHJvcHNbU1VQUFJFU1NfSFlEUkFUSU9OX1dBUk5JTkddICE9PSB0cnVlKSB7XG4gICAgICAgIC8vICRGbG93Rml4TWUgLSBTaG91bGQgYmUgaW5mZXJyZWQgYXMgbm90IHVuZGVmaW5lZC5cbiAgICAgICAgd2FybkZvckV4dHJhQXR0cmlidXRlcyhleHRyYUF0dHJpYnV0ZU5hbWVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzd2l0Y2ggKHRhZykge1xuICAgIGNhc2UgJ2lucHV0JzpcbiAgICAgIC8vIFRPRE86IE1ha2Ugc3VyZSB3ZSBjaGVjayBpZiB0aGlzIGlzIHN0aWxsIHVubW91bnRlZCBvciBkbyBhbnkgY2xlYW5cbiAgICAgIC8vIHVwIG5lY2Vzc2FyeSBzaW5jZSB3ZSBuZXZlciBzdG9wIHRyYWNraW5nIGFueW1vcmUuXG4gICAgICB0cmFjayhkb21FbGVtZW50KTtcbiAgICAgIHBvc3RNb3VudFdyYXBwZXIoZG9tRWxlbWVudCwgcmF3UHJvcHMsIHRydWUpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICAvLyBUT0RPOiBNYWtlIHN1cmUgd2UgY2hlY2sgaWYgdGhpcyBpcyBzdGlsbCB1bm1vdW50ZWQgb3IgZG8gYW55IGNsZWFuXG4gICAgICAvLyB1cCBuZWNlc3Nhcnkgc2luY2Ugd2UgbmV2ZXIgc3RvcCB0cmFja2luZyBhbnltb3JlLlxuICAgICAgdHJhY2soZG9tRWxlbWVudCk7XG4gICAgICBwb3N0TW91bnRXcmFwcGVyJDMoZG9tRWxlbWVudCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgY2FzZSAnb3B0aW9uJzpcbiAgICAgIC8vIEZvciBpbnB1dCBhbmQgdGV4dGFyZWEgd2UgY3VycmVudCBhbHdheXMgc2V0IHRoZSB2YWx1ZSBwcm9wZXJ0eSBhdFxuICAgICAgLy8gcG9zdCBtb3VudCB0byBmb3JjZSBpdCB0byBkaXZlcmdlIGZyb20gYXR0cmlidXRlcy4gSG93ZXZlciwgZm9yXG4gICAgICAvLyBvcHRpb24gYW5kIHNlbGVjdCB3ZSBkb24ndCBxdWl0ZSBkbyB0aGUgc2FtZSB0aGluZyBhbmQgc2VsZWN0XG4gICAgICAvLyBpcyBub3QgcmVzaWxpZW50IHRvIHRoZSBET00gc3RhdGUgY2hhbmdpbmcgc28gd2UgZG9uJ3QgZG8gdGhhdCBoZXJlLlxuICAgICAgLy8gVE9ETzogQ29uc2lkZXIgbm90IGRvaW5nIHRoaXMgZm9yIGlucHV0IGFuZCB0ZXh0YXJlYS5cbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIGlmICh0eXBlb2YgcmF3UHJvcHMub25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGNhc3QgbWF5IG5vdCBiZSBzb3VuZCBmb3IgU1ZHLCBNYXRoTUwgb3IgY3VzdG9tIGVsZW1lbnRzLlxuICAgICAgICB0cmFwQ2xpY2tPbk5vbkludGVyYWN0aXZlRWxlbWVudChkb21FbGVtZW50KTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gdXBkYXRlUGF5bG9hZDtcbn1cbmZ1bmN0aW9uIGRpZmZIeWRyYXRlZFRleHQodGV4dE5vZGUsIHRleHQsIGlzQ29uY3VycmVudE1vZGUpIHtcbiAgdmFyIGlzRGlmZmVyZW50ID0gdGV4dE5vZGUubm9kZVZhbHVlICE9PSB0ZXh0O1xuICByZXR1cm4gaXNEaWZmZXJlbnQ7XG59XG5mdW5jdGlvbiB3YXJuRm9yRGVsZXRlZEh5ZHJhdGFibGVFbGVtZW50KHBhcmVudE5vZGUsIGNoaWxkKSB7XG4gIHtcbiAgICBpZiAoZGlkV2FybkludmFsaWRIeWRyYXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbiA9IHRydWU7XG5cbiAgICBlcnJvcignRGlkIG5vdCBleHBlY3Qgc2VydmVyIEhUTUwgdG8gY29udGFpbiBhIDwlcz4gaW4gPCVzPi4nLCBjaGlsZC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLCBwYXJlbnROb2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpO1xuICB9XG59XG5mdW5jdGlvbiB3YXJuRm9yRGVsZXRlZEh5ZHJhdGFibGVUZXh0KHBhcmVudE5vZGUsIGNoaWxkKSB7XG4gIHtcbiAgICBpZiAoZGlkV2FybkludmFsaWRIeWRyYXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbiA9IHRydWU7XG5cbiAgICBlcnJvcignRGlkIG5vdCBleHBlY3Qgc2VydmVyIEhUTUwgdG8gY29udGFpbiB0aGUgdGV4dCBub2RlIFwiJXNcIiBpbiA8JXM+LicsIGNoaWxkLm5vZGVWYWx1ZSwgcGFyZW50Tm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKTtcbiAgfVxufVxuZnVuY3Rpb24gd2FybkZvckluc2VydGVkSHlkcmF0ZWRFbGVtZW50KHBhcmVudE5vZGUsIHRhZywgcHJvcHMpIHtcbiAge1xuICAgIGlmIChkaWRXYXJuSW52YWxpZEh5ZHJhdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGRpZFdhcm5JbnZhbGlkSHlkcmF0aW9uID0gdHJ1ZTtcblxuICAgIGVycm9yKCdFeHBlY3RlZCBzZXJ2ZXIgSFRNTCB0byBjb250YWluIGEgbWF0Y2hpbmcgPCVzPiBpbiA8JXM+LicsIHRhZywgcGFyZW50Tm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKTtcbiAgfVxufVxuZnVuY3Rpb24gd2FybkZvckluc2VydGVkSHlkcmF0ZWRUZXh0KHBhcmVudE5vZGUsIHRleHQpIHtcbiAge1xuICAgIGlmICh0ZXh0ID09PSAnJykge1xuICAgICAgLy8gV2UgZXhwZWN0IHRvIGluc2VydCBlbXB0eSB0ZXh0IG5vZGVzIHNpbmNlIHRoZXkncmUgbm90IHJlcHJlc2VudGVkIGluXG4gICAgICAvLyB0aGUgSFRNTC5cbiAgICAgIC8vIFRPRE86IFJlbW92ZSB0aGlzIHNwZWNpYWwgY2FzZSBpZiB3ZSBjYW4ganVzdCBhdm9pZCBpbnNlcnRpbmcgZW1wdHlcbiAgICAgIC8vIHRleHQgbm9kZXMuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGRpZFdhcm5JbnZhbGlkSHlkcmF0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZGlkV2FybkludmFsaWRIeWRyYXRpb24gPSB0cnVlO1xuXG4gICAgZXJyb3IoJ0V4cGVjdGVkIHNlcnZlciBIVE1MIHRvIGNvbnRhaW4gYSBtYXRjaGluZyB0ZXh0IG5vZGUgZm9yIFwiJXNcIiBpbiA8JXM+LicsIHRleHQsIHBhcmVudE5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSk7XG4gIH1cbn1cbmZ1bmN0aW9uIHJlc3RvcmVDb250cm9sbGVkU3RhdGUkMyhkb21FbGVtZW50LCB0YWcsIHByb3BzKSB7XG4gIHN3aXRjaCAodGFnKSB7XG4gICAgY2FzZSAnaW5wdXQnOlxuICAgICAgcmVzdG9yZUNvbnRyb2xsZWRTdGF0ZShkb21FbGVtZW50LCBwcm9wcyk7XG4gICAgICByZXR1cm47XG5cbiAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICByZXN0b3JlQ29udHJvbGxlZFN0YXRlJDIoZG9tRWxlbWVudCwgcHJvcHMpO1xuICAgICAgcmV0dXJuO1xuXG4gICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgIHJlc3RvcmVDb250cm9sbGVkU3RhdGUkMShkb21FbGVtZW50LCBwcm9wcyk7XG4gICAgICByZXR1cm47XG4gIH1cbn1cblxudmFyIHZhbGlkYXRlRE9NTmVzdGluZyA9IGZ1bmN0aW9uICgpIHt9O1xuXG52YXIgdXBkYXRlZEFuY2VzdG9ySW5mbyA9IGZ1bmN0aW9uICgpIHt9O1xuXG57XG4gIC8vIFRoaXMgdmFsaWRhdGlvbiBjb2RlIHdhcyB3cml0dGVuIGJhc2VkIG9uIHRoZSBIVE1MNSBwYXJzaW5nIHNwZWM6XG4gIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2hhcy1hbi1lbGVtZW50LWluLXNjb3BlXG4gIC8vXG4gIC8vIE5vdGU6IHRoaXMgZG9lcyBub3QgY2F0Y2ggYWxsIGludmFsaWQgbmVzdGluZywgbm9yIGRvZXMgaXQgdHJ5IHRvIChhcyBpdCdzXG4gIC8vIG5vdCBjbGVhciB3aGF0IHByYWN0aWNhbCBiZW5lZml0IGRvaW5nIHNvIHByb3ZpZGVzKTsgaW5zdGVhZCwgd2Ugd2FybiBvbmx5XG4gIC8vIGZvciBjYXNlcyB3aGVyZSB0aGUgcGFyc2VyIHdpbGwgZ2l2ZSBhIHBhcnNlIHRyZWUgZGlmZmVyaW5nIGZyb20gd2hhdCBSZWFjdFxuICAvLyBpbnRlbmRlZC4gRm9yIGV4YW1wbGUsIDxiPjxkaXY+PC9kaXY+PC9iPiBpcyBpbnZhbGlkIGJ1dCB3ZSBkb24ndCB3YXJuXG4gIC8vIGJlY2F1c2UgaXQgc3RpbGwgcGFyc2VzIGNvcnJlY3RseTsgd2UgZG8gd2FybiBmb3Igb3RoZXIgY2FzZXMgbGlrZSBuZXN0ZWRcbiAgLy8gPHA+IHRhZ3Mgd2hlcmUgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2Vjb25kIGVsZW1lbnQgaW1wbGljaXRseSBjbG9zZXMgdGhlXG4gIC8vIGZpcnN0LCBjYXVzaW5nIGEgY29uZnVzaW5nIG1lc3MuXG4gIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3NwZWNpYWxcbiAgdmFyIHNwZWNpYWxUYWdzID0gWydhZGRyZXNzJywgJ2FwcGxldCcsICdhcmVhJywgJ2FydGljbGUnLCAnYXNpZGUnLCAnYmFzZScsICdiYXNlZm9udCcsICdiZ3NvdW5kJywgJ2Jsb2NrcXVvdGUnLCAnYm9keScsICdicicsICdidXR0b24nLCAnY2FwdGlvbicsICdjZW50ZXInLCAnY29sJywgJ2NvbGdyb3VwJywgJ2RkJywgJ2RldGFpbHMnLCAnZGlyJywgJ2RpdicsICdkbCcsICdkdCcsICdlbWJlZCcsICdmaWVsZHNldCcsICdmaWdjYXB0aW9uJywgJ2ZpZ3VyZScsICdmb290ZXInLCAnZm9ybScsICdmcmFtZScsICdmcmFtZXNldCcsICdoMScsICdoMicsICdoMycsICdoNCcsICdoNScsICdoNicsICdoZWFkJywgJ2hlYWRlcicsICdoZ3JvdXAnLCAnaHInLCAnaHRtbCcsICdpZnJhbWUnLCAnaW1nJywgJ2lucHV0JywgJ2lzaW5kZXgnLCAnbGknLCAnbGluaycsICdsaXN0aW5nJywgJ21haW4nLCAnbWFycXVlZScsICdtZW51JywgJ21lbnVpdGVtJywgJ21ldGEnLCAnbmF2JywgJ25vZW1iZWQnLCAnbm9mcmFtZXMnLCAnbm9zY3JpcHQnLCAnb2JqZWN0JywgJ29sJywgJ3AnLCAncGFyYW0nLCAncGxhaW50ZXh0JywgJ3ByZScsICdzY3JpcHQnLCAnc2VjdGlvbicsICdzZWxlY3QnLCAnc291cmNlJywgJ3N0eWxlJywgJ3N1bW1hcnknLCAndGFibGUnLCAndGJvZHknLCAndGQnLCAndGVtcGxhdGUnLCAndGV4dGFyZWEnLCAndGZvb3QnLCAndGgnLCAndGhlYWQnLCAndGl0bGUnLCAndHInLCAndHJhY2snLCAndWwnLCAnd2JyJywgJ3htcCddOyAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNoYXMtYW4tZWxlbWVudC1pbi1zY29wZVxuXG4gIHZhciBpblNjb3BlVGFncyA9IFsnYXBwbGV0JywgJ2NhcHRpb24nLCAnaHRtbCcsICd0YWJsZScsICd0ZCcsICd0aCcsICdtYXJxdWVlJywgJ29iamVjdCcsICd0ZW1wbGF0ZScsIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI2h0bWwtaW50ZWdyYXRpb24tcG9pbnRcbiAgLy8gVE9ETzogRGlzdGluZ3Vpc2ggYnkgbmFtZXNwYWNlIGhlcmUgLS0gZm9yIDx0aXRsZT4sIGluY2x1ZGluZyBpdCBoZXJlXG4gIC8vIGVycnMgb24gdGhlIHNpZGUgb2YgZmV3ZXIgd2FybmluZ3NcbiAgJ2ZvcmVpZ25PYmplY3QnLCAnZGVzYycsICd0aXRsZSddOyAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNoYXMtYW4tZWxlbWVudC1pbi1idXR0b24tc2NvcGVcblxuICB2YXIgYnV0dG9uU2NvcGVUYWdzID0gaW5TY29wZVRhZ3MuY29uY2F0KFsnYnV0dG9uJ10pOyAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNnZW5lcmF0ZS1pbXBsaWVkLWVuZC10YWdzXG5cbiAgdmFyIGltcGxpZWRFbmRUYWdzID0gWydkZCcsICdkdCcsICdsaScsICdvcHRpb24nLCAnb3B0Z3JvdXAnLCAncCcsICdycCcsICdydCddO1xuICB2YXIgZW1wdHlBbmNlc3RvckluZm8gPSB7XG4gICAgY3VycmVudDogbnVsbCxcbiAgICBmb3JtVGFnOiBudWxsLFxuICAgIGFUYWdJblNjb3BlOiBudWxsLFxuICAgIGJ1dHRvblRhZ0luU2NvcGU6IG51bGwsXG4gICAgbm9iclRhZ0luU2NvcGU6IG51bGwsXG4gICAgcFRhZ0luQnV0dG9uU2NvcGU6IG51bGwsXG4gICAgbGlzdEl0ZW1UYWdBdXRvY2xvc2luZzogbnVsbCxcbiAgICBkbEl0ZW1UYWdBdXRvY2xvc2luZzogbnVsbFxuICB9O1xuXG4gIHVwZGF0ZWRBbmNlc3RvckluZm8gPSBmdW5jdGlvbiAob2xkSW5mbywgdGFnKSB7XG4gICAgdmFyIGFuY2VzdG9ySW5mbyA9IGFzc2lnbih7fSwgb2xkSW5mbyB8fCBlbXB0eUFuY2VzdG9ySW5mbyk7XG5cbiAgICB2YXIgaW5mbyA9IHtcbiAgICAgIHRhZzogdGFnXG4gICAgfTtcblxuICAgIGlmIChpblNjb3BlVGFncy5pbmRleE9mKHRhZykgIT09IC0xKSB7XG4gICAgICBhbmNlc3RvckluZm8uYVRhZ0luU2NvcGUgPSBudWxsO1xuICAgICAgYW5jZXN0b3JJbmZvLmJ1dHRvblRhZ0luU2NvcGUgPSBudWxsO1xuICAgICAgYW5jZXN0b3JJbmZvLm5vYnJUYWdJblNjb3BlID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoYnV0dG9uU2NvcGVUYWdzLmluZGV4T2YodGFnKSAhPT0gLTEpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5wVGFnSW5CdXR0b25TY29wZSA9IG51bGw7XG4gICAgfSAvLyBTZWUgcnVsZXMgZm9yICdsaScsICdkZCcsICdkdCcgc3RhcnQgdGFncyBpblxuICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmJvZHlcblxuXG4gICAgaWYgKHNwZWNpYWxUYWdzLmluZGV4T2YodGFnKSAhPT0gLTEgJiYgdGFnICE9PSAnYWRkcmVzcycgJiYgdGFnICE9PSAnZGl2JyAmJiB0YWcgIT09ICdwJykge1xuICAgICAgYW5jZXN0b3JJbmZvLmxpc3RJdGVtVGFnQXV0b2Nsb3NpbmcgPSBudWxsO1xuICAgICAgYW5jZXN0b3JJbmZvLmRsSXRlbVRhZ0F1dG9jbG9zaW5nID0gbnVsbDtcbiAgICB9XG5cbiAgICBhbmNlc3RvckluZm8uY3VycmVudCA9IGluZm87XG5cbiAgICBpZiAodGFnID09PSAnZm9ybScpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5mb3JtVGFnID0gaW5mbztcbiAgICB9XG5cbiAgICBpZiAodGFnID09PSAnYScpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5hVGFnSW5TY29wZSA9IGluZm87XG4gICAgfVxuXG4gICAgaWYgKHRhZyA9PT0gJ2J1dHRvbicpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5idXR0b25UYWdJblNjb3BlID0gaW5mbztcbiAgICB9XG5cbiAgICBpZiAodGFnID09PSAnbm9icicpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5ub2JyVGFnSW5TY29wZSA9IGluZm87XG4gICAgfVxuXG4gICAgaWYgKHRhZyA9PT0gJ3AnKSB7XG4gICAgICBhbmNlc3RvckluZm8ucFRhZ0luQnV0dG9uU2NvcGUgPSBpbmZvO1xuICAgIH1cblxuICAgIGlmICh0YWcgPT09ICdsaScpIHtcbiAgICAgIGFuY2VzdG9ySW5mby5saXN0SXRlbVRhZ0F1dG9jbG9zaW5nID0gaW5mbztcbiAgICB9XG5cbiAgICBpZiAodGFnID09PSAnZGQnIHx8IHRhZyA9PT0gJ2R0Jykge1xuICAgICAgYW5jZXN0b3JJbmZvLmRsSXRlbVRhZ0F1dG9jbG9zaW5nID0gaW5mbztcbiAgICB9XG5cbiAgICByZXR1cm4gYW5jZXN0b3JJbmZvO1xuICB9O1xuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyXG4gICAqL1xuXG5cbiAgdmFyIGlzVGFnVmFsaWRXaXRoUGFyZW50ID0gZnVuY3Rpb24gKHRhZywgcGFyZW50VGFnKSB7XG4gICAgLy8gRmlyc3QsIGxldCdzIGNoZWNrIGlmIHdlJ3JlIGluIGFuIHVudXN1YWwgcGFyc2luZyBtb2RlLi4uXG4gICAgc3dpdGNoIChwYXJlbnRUYWcpIHtcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbnNlbGVjdFxuICAgICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ29wdGlvbicgfHwgdGFnID09PSAnb3B0Z3JvdXAnIHx8IHRhZyA9PT0gJyN0ZXh0JztcblxuICAgICAgY2FzZSAnb3B0Z3JvdXAnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAnb3B0aW9uJyB8fCB0YWcgPT09ICcjdGV4dCc7XG4gICAgICAvLyBTdHJpY3RseSBzcGVha2luZywgc2VlaW5nIGFuIDxvcHRpb24+IGRvZXNuJ3QgbWVhbiB3ZSdyZSBpbiBhIDxzZWxlY3Q+XG4gICAgICAvLyBidXRcblxuICAgICAgY2FzZSAnb3B0aW9uJzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJyN0ZXh0JztcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbnRkXG4gICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNwYXJzaW5nLW1haW4taW5jYXB0aW9uXG4gICAgICAvLyBObyBzcGVjaWFsIGJlaGF2aW9yIHNpbmNlIHRoZXNlIHJ1bGVzIGZhbGwgYmFjayB0byBcImluIGJvZHlcIiBtb2RlIGZvclxuICAgICAgLy8gYWxsIGV4Y2VwdCBzcGVjaWFsIHRhYmxlIG5vZGVzIHdoaWNoIGNhdXNlIGJhZCBwYXJzaW5nIGJlaGF2aW9yIGFueXdheS5cbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbnRyXG5cbiAgICAgIGNhc2UgJ3RyJzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ3RoJyB8fCB0YWcgPT09ICd0ZCcgfHwgdGFnID09PSAnc3R5bGUnIHx8IHRhZyA9PT0gJ3NjcmlwdCcgfHwgdGFnID09PSAndGVtcGxhdGUnO1xuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWludGJvZHlcblxuICAgICAgY2FzZSAndGJvZHknOlxuICAgICAgY2FzZSAndGhlYWQnOlxuICAgICAgY2FzZSAndGZvb3QnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAndHInIHx8IHRhZyA9PT0gJ3N0eWxlJyB8fCB0YWcgPT09ICdzY3JpcHQnIHx8IHRhZyA9PT0gJ3RlbXBsYXRlJztcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmNvbGdyb3VwXG5cbiAgICAgIGNhc2UgJ2NvbGdyb3VwJzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ2NvbCcgfHwgdGFnID09PSAndGVtcGxhdGUnO1xuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjcGFyc2luZy1tYWluLWludGFibGVcblxuICAgICAgY2FzZSAndGFibGUnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAnY2FwdGlvbicgfHwgdGFnID09PSAnY29sZ3JvdXAnIHx8IHRhZyA9PT0gJ3Rib2R5JyB8fCB0YWcgPT09ICd0Zm9vdCcgfHwgdGFnID09PSAndGhlYWQnIHx8IHRhZyA9PT0gJ3N0eWxlJyB8fCB0YWcgPT09ICdzY3JpcHQnIHx8IHRhZyA9PT0gJ3RlbXBsYXRlJztcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmhlYWRcblxuICAgICAgY2FzZSAnaGVhZCc6XG4gICAgICAgIHJldHVybiB0YWcgPT09ICdiYXNlJyB8fCB0YWcgPT09ICdiYXNlZm9udCcgfHwgdGFnID09PSAnYmdzb3VuZCcgfHwgdGFnID09PSAnbGluaycgfHwgdGFnID09PSAnbWV0YScgfHwgdGFnID09PSAndGl0bGUnIHx8IHRhZyA9PT0gJ25vc2NyaXB0JyB8fCB0YWcgPT09ICdub2ZyYW1lcycgfHwgdGFnID09PSAnc3R5bGUnIHx8IHRhZyA9PT0gJ3NjcmlwdCcgfHwgdGFnID09PSAndGVtcGxhdGUnO1xuICAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2VtYW50aWNzLmh0bWwjdGhlLWh0bWwtZWxlbWVudFxuXG4gICAgICBjYXNlICdodG1sJzpcbiAgICAgICAgcmV0dXJuIHRhZyA9PT0gJ2hlYWQnIHx8IHRhZyA9PT0gJ2JvZHknIHx8IHRhZyA9PT0gJ2ZyYW1lc2V0JztcblxuICAgICAgY2FzZSAnZnJhbWVzZXQnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAnZnJhbWUnO1xuXG4gICAgICBjYXNlICcjZG9jdW1lbnQnOlxuICAgICAgICByZXR1cm4gdGFnID09PSAnaHRtbCc7XG4gICAgfSAvLyBQcm9iYWJseSBpbiB0aGUgXCJpbiBib2R5XCIgcGFyc2luZyBtb2RlLCBzbyB3ZSBvdXRsYXcgb25seSB0YWcgY29tYm9zXG4gICAgLy8gd2hlcmUgdGhlIHBhcnNpbmcgcnVsZXMgY2F1c2UgaW1wbGljaXQgb3BlbnMgb3IgY2xvc2VzIHRvIGJlIGFkZGVkLlxuICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3N5bnRheC5odG1sI3BhcnNpbmctbWFpbi1pbmJvZHlcblxuXG4gICAgc3dpdGNoICh0YWcpIHtcbiAgICAgIGNhc2UgJ2gxJzpcbiAgICAgIGNhc2UgJ2gyJzpcbiAgICAgIGNhc2UgJ2gzJzpcbiAgICAgIGNhc2UgJ2g0JzpcbiAgICAgIGNhc2UgJ2g1JzpcbiAgICAgIGNhc2UgJ2g2JzpcbiAgICAgICAgcmV0dXJuIHBhcmVudFRhZyAhPT0gJ2gxJyAmJiBwYXJlbnRUYWcgIT09ICdoMicgJiYgcGFyZW50VGFnICE9PSAnaDMnICYmIHBhcmVudFRhZyAhPT0gJ2g0JyAmJiBwYXJlbnRUYWcgIT09ICdoNScgJiYgcGFyZW50VGFnICE9PSAnaDYnO1xuXG4gICAgICBjYXNlICdycCc6XG4gICAgICBjYXNlICdydCc6XG4gICAgICAgIHJldHVybiBpbXBsaWVkRW5kVGFncy5pbmRleE9mKHBhcmVudFRhZykgPT09IC0xO1xuXG4gICAgICBjYXNlICdib2R5JzpcbiAgICAgIGNhc2UgJ2NhcHRpb24nOlxuICAgICAgY2FzZSAnY29sJzpcbiAgICAgIGNhc2UgJ2NvbGdyb3VwJzpcbiAgICAgIGNhc2UgJ2ZyYW1lc2V0JzpcbiAgICAgIGNhc2UgJ2ZyYW1lJzpcbiAgICAgIGNhc2UgJ2hlYWQnOlxuICAgICAgY2FzZSAnaHRtbCc6XG4gICAgICBjYXNlICd0Ym9keSc6XG4gICAgICBjYXNlICd0ZCc6XG4gICAgICBjYXNlICd0Zm9vdCc6XG4gICAgICBjYXNlICd0aCc6XG4gICAgICBjYXNlICd0aGVhZCc6XG4gICAgICBjYXNlICd0cic6XG4gICAgICAgIC8vIFRoZXNlIHRhZ3MgYXJlIG9ubHkgdmFsaWQgd2l0aCBhIGZldyBwYXJlbnRzIHRoYXQgaGF2ZSBzcGVjaWFsIGNoaWxkXG4gICAgICAgIC8vIHBhcnNpbmcgcnVsZXMgLS0gaWYgd2UncmUgZG93biBoZXJlLCB0aGVuIG5vbmUgb2YgdGhvc2UgbWF0Y2hlZCBhbmRcbiAgICAgICAgLy8gc28gd2UgYWxsb3cgaXQgb25seSBpZiB3ZSBkb24ndCBrbm93IHdoYXQgdGhlIHBhcmVudCBpcywgYXMgYWxsIG90aGVyXG4gICAgICAgIC8vIGNhc2VzIGFyZSBpbnZhbGlkLlxuICAgICAgICByZXR1cm4gcGFyZW50VGFnID09IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXJcbiAgICovXG5cblxuICB2YXIgZmluZEludmFsaWRBbmNlc3RvckZvclRhZyA9IGZ1bmN0aW9uICh0YWcsIGFuY2VzdG9ySW5mbykge1xuICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICBjYXNlICdhZGRyZXNzJzpcbiAgICAgIGNhc2UgJ2FydGljbGUnOlxuICAgICAgY2FzZSAnYXNpZGUnOlxuICAgICAgY2FzZSAnYmxvY2txdW90ZSc6XG4gICAgICBjYXNlICdjZW50ZXInOlxuICAgICAgY2FzZSAnZGV0YWlscyc6XG4gICAgICBjYXNlICdkaWFsb2cnOlxuICAgICAgY2FzZSAnZGlyJzpcbiAgICAgIGNhc2UgJ2Rpdic6XG4gICAgICBjYXNlICdkbCc6XG4gICAgICBjYXNlICdmaWVsZHNldCc6XG4gICAgICBjYXNlICdmaWdjYXB0aW9uJzpcbiAgICAgIGNhc2UgJ2ZpZ3VyZSc6XG4gICAgICBjYXNlICdmb290ZXInOlxuICAgICAgY2FzZSAnaGVhZGVyJzpcbiAgICAgIGNhc2UgJ2hncm91cCc6XG4gICAgICBjYXNlICdtYWluJzpcbiAgICAgIGNhc2UgJ21lbnUnOlxuICAgICAgY2FzZSAnbmF2JzpcbiAgICAgIGNhc2UgJ29sJzpcbiAgICAgIGNhc2UgJ3AnOlxuICAgICAgY2FzZSAnc2VjdGlvbic6XG4gICAgICBjYXNlICdzdW1tYXJ5JzpcbiAgICAgIGNhc2UgJ3VsJzpcbiAgICAgIGNhc2UgJ3ByZSc6XG4gICAgICBjYXNlICdsaXN0aW5nJzpcbiAgICAgIGNhc2UgJ3RhYmxlJzpcbiAgICAgIGNhc2UgJ2hyJzpcbiAgICAgIGNhc2UgJ3htcCc6XG4gICAgICBjYXNlICdoMSc6XG4gICAgICBjYXNlICdoMic6XG4gICAgICBjYXNlICdoMyc6XG4gICAgICBjYXNlICdoNCc6XG4gICAgICBjYXNlICdoNSc6XG4gICAgICBjYXNlICdoNic6XG4gICAgICAgIHJldHVybiBhbmNlc3RvckluZm8ucFRhZ0luQnV0dG9uU2NvcGU7XG5cbiAgICAgIGNhc2UgJ2Zvcm0nOlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmZvcm1UYWcgfHwgYW5jZXN0b3JJbmZvLnBUYWdJbkJ1dHRvblNjb3BlO1xuXG4gICAgICBjYXNlICdsaSc6XG4gICAgICAgIHJldHVybiBhbmNlc3RvckluZm8ubGlzdEl0ZW1UYWdBdXRvY2xvc2luZztcblxuICAgICAgY2FzZSAnZGQnOlxuICAgICAgY2FzZSAnZHQnOlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmRsSXRlbVRhZ0F1dG9jbG9zaW5nO1xuXG4gICAgICBjYXNlICdidXR0b24nOlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmJ1dHRvblRhZ0luU2NvcGU7XG5cbiAgICAgIGNhc2UgJ2EnOlxuICAgICAgICAvLyBTcGVjIHNheXMgc29tZXRoaW5nIGFib3V0IHN0b3JpbmcgYSBsaXN0IG9mIG1hcmtlcnMsIGJ1dCBpdCBzb3VuZHNcbiAgICAgICAgLy8gZXF1aXZhbGVudCB0byB0aGlzIGNoZWNrLlxuICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmFUYWdJblNjb3BlO1xuXG4gICAgICBjYXNlICdub2JyJzpcbiAgICAgICAgcmV0dXJuIGFuY2VzdG9ySW5mby5ub2JyVGFnSW5TY29wZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcblxuICB2YXIgZGlkV2FybiQxID0ge307XG5cbiAgdmFsaWRhdGVET01OZXN0aW5nID0gZnVuY3Rpb24gKGNoaWxkVGFnLCBjaGlsZFRleHQsIGFuY2VzdG9ySW5mbykge1xuICAgIGFuY2VzdG9ySW5mbyA9IGFuY2VzdG9ySW5mbyB8fCBlbXB0eUFuY2VzdG9ySW5mbztcbiAgICB2YXIgcGFyZW50SW5mbyA9IGFuY2VzdG9ySW5mby5jdXJyZW50O1xuICAgIHZhciBwYXJlbnRUYWcgPSBwYXJlbnRJbmZvICYmIHBhcmVudEluZm8udGFnO1xuXG4gICAgaWYgKGNoaWxkVGV4dCAhPSBudWxsKSB7XG4gICAgICBpZiAoY2hpbGRUYWcgIT0gbnVsbCkge1xuICAgICAgICBlcnJvcigndmFsaWRhdGVET01OZXN0aW5nOiB3aGVuIGNoaWxkVGV4dCBpcyBwYXNzZWQsIGNoaWxkVGFnIHNob3VsZCBiZSBudWxsJyk7XG4gICAgICB9XG5cbiAgICAgIGNoaWxkVGFnID0gJyN0ZXh0JztcbiAgICB9XG5cbiAgICB2YXIgaW52YWxpZFBhcmVudCA9IGlzVGFnVmFsaWRXaXRoUGFyZW50KGNoaWxkVGFnLCBwYXJlbnRUYWcpID8gbnVsbCA6IHBhcmVudEluZm87XG4gICAgdmFyIGludmFsaWRBbmNlc3RvciA9IGludmFsaWRQYXJlbnQgPyBudWxsIDogZmluZEludmFsaWRBbmNlc3RvckZvclRhZyhjaGlsZFRhZywgYW5jZXN0b3JJbmZvKTtcbiAgICB2YXIgaW52YWxpZFBhcmVudE9yQW5jZXN0b3IgPSBpbnZhbGlkUGFyZW50IHx8IGludmFsaWRBbmNlc3RvcjtcblxuICAgIGlmICghaW52YWxpZFBhcmVudE9yQW5jZXN0b3IpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgYW5jZXN0b3JUYWcgPSBpbnZhbGlkUGFyZW50T3JBbmNlc3Rvci50YWc7XG4gICAgdmFyIHdhcm5LZXkgPSAhIWludmFsaWRQYXJlbnQgKyAnfCcgKyBjaGlsZFRhZyArICd8JyArIGFuY2VzdG9yVGFnO1xuXG4gICAgaWYgKGRpZFdhcm4kMVt3YXJuS2V5XSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGRpZFdhcm4kMVt3YXJuS2V5XSA9IHRydWU7XG4gICAgdmFyIHRhZ0Rpc3BsYXlOYW1lID0gY2hpbGRUYWc7XG4gICAgdmFyIHdoaXRlc3BhY2VJbmZvID0gJyc7XG5cbiAgICBpZiAoY2hpbGRUYWcgPT09ICcjdGV4dCcpIHtcbiAgICAgIGlmICgvXFxTLy50ZXN0KGNoaWxkVGV4dCkpIHtcbiAgICAgICAgdGFnRGlzcGxheU5hbWUgPSAnVGV4dCBub2Rlcyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YWdEaXNwbGF5TmFtZSA9ICdXaGl0ZXNwYWNlIHRleHQgbm9kZXMnO1xuICAgICAgICB3aGl0ZXNwYWNlSW5mbyA9IFwiIE1ha2Ugc3VyZSB5b3UgZG9uJ3QgaGF2ZSBhbnkgZXh0cmEgd2hpdGVzcGFjZSBiZXR3ZWVuIHRhZ3Mgb24gXCIgKyAnZWFjaCBsaW5lIG9mIHlvdXIgc291cmNlIGNvZGUuJztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGFnRGlzcGxheU5hbWUgPSAnPCcgKyBjaGlsZFRhZyArICc+JztcbiAgICB9XG5cbiAgICBpZiAoaW52YWxpZFBhcmVudCkge1xuICAgICAgdmFyIGluZm8gPSAnJztcblxuICAgICAgaWYgKGFuY2VzdG9yVGFnID09PSAndGFibGUnICYmIGNoaWxkVGFnID09PSAndHInKSB7XG4gICAgICAgIGluZm8gKz0gJyBBZGQgYSA8dGJvZHk+LCA8dGhlYWQ+IG9yIDx0Zm9vdD4gdG8geW91ciBjb2RlIHRvIG1hdGNoIHRoZSBET00gdHJlZSBnZW5lcmF0ZWQgYnkgJyArICd0aGUgYnJvd3Nlci4nO1xuICAgICAgfVxuXG4gICAgICBlcnJvcigndmFsaWRhdGVET01OZXN0aW5nKC4uLik6ICVzIGNhbm5vdCBhcHBlYXIgYXMgYSBjaGlsZCBvZiA8JXM+LiVzJXMnLCB0YWdEaXNwbGF5TmFtZSwgYW5jZXN0b3JUYWcsIHdoaXRlc3BhY2VJbmZvLCBpbmZvKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXJyb3IoJ3ZhbGlkYXRlRE9NTmVzdGluZyguLi4pOiAlcyBjYW5ub3QgYXBwZWFyIGFzIGEgZGVzY2VuZGFudCBvZiAnICsgJzwlcz4uJywgdGFnRGlzcGxheU5hbWUsIGFuY2VzdG9yVGFnKTtcbiAgICB9XG4gIH07XG59XG5cbnZhciBTVVBQUkVTU19IWURSQVRJT05fV0FSTklORyQxID0gJ3N1cHByZXNzSHlkcmF0aW9uV2FybmluZyc7XG52YXIgU1VTUEVOU0VfU1RBUlRfREFUQSA9ICckJztcbnZhciBTVVNQRU5TRV9FTkRfREFUQSA9ICcvJCc7XG52YXIgU1VTUEVOU0VfUEVORElOR19TVEFSVF9EQVRBID0gJyQ/JztcbnZhciBTVVNQRU5TRV9GQUxMQkFDS19TVEFSVF9EQVRBID0gJyQhJztcbnZhciBTVFlMRSQxID0gJ3N0eWxlJztcbnZhciBldmVudHNFbmFibGVkID0gbnVsbDtcbnZhciBzZWxlY3Rpb25JbmZvcm1hdGlvbiA9IG51bGw7XG5mdW5jdGlvbiBnZXRSb290SG9zdENvbnRleHQocm9vdENvbnRhaW5lckluc3RhbmNlKSB7XG4gIHZhciB0eXBlO1xuICB2YXIgbmFtZXNwYWNlO1xuICB2YXIgbm9kZVR5cGUgPSByb290Q29udGFpbmVySW5zdGFuY2Uubm9kZVR5cGU7XG5cbiAgc3dpdGNoIChub2RlVHlwZSkge1xuICAgIGNhc2UgRE9DVU1FTlRfTk9ERTpcbiAgICBjYXNlIERPQ1VNRU5UX0ZSQUdNRU5UX05PREU6XG4gICAgICB7XG4gICAgICAgIHR5cGUgPSBub2RlVHlwZSA9PT0gRE9DVU1FTlRfTk9ERSA/ICcjZG9jdW1lbnQnIDogJyNmcmFnbWVudCc7XG4gICAgICAgIHZhciByb290ID0gcm9vdENvbnRhaW5lckluc3RhbmNlLmRvY3VtZW50RWxlbWVudDtcbiAgICAgICAgbmFtZXNwYWNlID0gcm9vdCA/IHJvb3QubmFtZXNwYWNlVVJJIDogZ2V0Q2hpbGROYW1lc3BhY2UobnVsbCwgJycpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICB7XG4gICAgICAgIHZhciBjb250YWluZXIgPSBub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFID8gcm9vdENvbnRhaW5lckluc3RhbmNlLnBhcmVudE5vZGUgOiByb290Q29udGFpbmVySW5zdGFuY2U7XG4gICAgICAgIHZhciBvd25OYW1lc3BhY2UgPSBjb250YWluZXIubmFtZXNwYWNlVVJJIHx8IG51bGw7XG4gICAgICAgIHR5cGUgPSBjb250YWluZXIudGFnTmFtZTtcbiAgICAgICAgbmFtZXNwYWNlID0gZ2V0Q2hpbGROYW1lc3BhY2Uob3duTmFtZXNwYWNlLCB0eXBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gIH1cblxuICB7XG4gICAgdmFyIHZhbGlkYXRlZFRhZyA9IHR5cGUudG9Mb3dlckNhc2UoKTtcbiAgICB2YXIgYW5jZXN0b3JJbmZvID0gdXBkYXRlZEFuY2VzdG9ySW5mbyhudWxsLCB2YWxpZGF0ZWRUYWcpO1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lc3BhY2U6IG5hbWVzcGFjZSxcbiAgICAgIGFuY2VzdG9ySW5mbzogYW5jZXN0b3JJbmZvXG4gICAgfTtcbiAgfVxufVxuZnVuY3Rpb24gZ2V0Q2hpbGRIb3N0Q29udGV4dChwYXJlbnRIb3N0Q29udGV4dCwgdHlwZSwgcm9vdENvbnRhaW5lckluc3RhbmNlKSB7XG4gIHtcbiAgICB2YXIgcGFyZW50SG9zdENvbnRleHREZXYgPSBwYXJlbnRIb3N0Q29udGV4dDtcbiAgICB2YXIgbmFtZXNwYWNlID0gZ2V0Q2hpbGROYW1lc3BhY2UocGFyZW50SG9zdENvbnRleHREZXYubmFtZXNwYWNlLCB0eXBlKTtcbiAgICB2YXIgYW5jZXN0b3JJbmZvID0gdXBkYXRlZEFuY2VzdG9ySW5mbyhwYXJlbnRIb3N0Q29udGV4dERldi5hbmNlc3RvckluZm8sIHR5cGUpO1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lc3BhY2U6IG5hbWVzcGFjZSxcbiAgICAgIGFuY2VzdG9ySW5mbzogYW5jZXN0b3JJbmZvXG4gICAgfTtcbiAgfVxufVxuZnVuY3Rpb24gZ2V0UHVibGljSW5zdGFuY2UoaW5zdGFuY2UpIHtcbiAgcmV0dXJuIGluc3RhbmNlO1xufVxuZnVuY3Rpb24gcHJlcGFyZUZvckNvbW1pdChjb250YWluZXJJbmZvKSB7XG4gIGV2ZW50c0VuYWJsZWQgPSBpc0VuYWJsZWQoKTtcbiAgc2VsZWN0aW9uSW5mb3JtYXRpb24gPSBnZXRTZWxlY3Rpb25JbmZvcm1hdGlvbigpO1xuICB2YXIgYWN0aXZlSW5zdGFuY2UgPSBudWxsO1xuXG4gIHNldEVuYWJsZWQoZmFsc2UpO1xuICByZXR1cm4gYWN0aXZlSW5zdGFuY2U7XG59XG5mdW5jdGlvbiByZXNldEFmdGVyQ29tbWl0KGNvbnRhaW5lckluZm8pIHtcbiAgcmVzdG9yZVNlbGVjdGlvbihzZWxlY3Rpb25JbmZvcm1hdGlvbik7XG4gIHNldEVuYWJsZWQoZXZlbnRzRW5hYmxlZCk7XG4gIGV2ZW50c0VuYWJsZWQgPSBudWxsO1xuICBzZWxlY3Rpb25JbmZvcm1hdGlvbiA9IG51bGw7XG59XG5mdW5jdGlvbiBjcmVhdGVJbnN0YW5jZSh0eXBlLCBwcm9wcywgcm9vdENvbnRhaW5lckluc3RhbmNlLCBob3N0Q29udGV4dCwgaW50ZXJuYWxJbnN0YW5jZUhhbmRsZSkge1xuICB2YXIgcGFyZW50TmFtZXNwYWNlO1xuXG4gIHtcbiAgICAvLyBUT0RPOiB0YWtlIG5hbWVzcGFjZSBpbnRvIGFjY291bnQgd2hlbiB2YWxpZGF0aW5nLlxuICAgIHZhciBob3N0Q29udGV4dERldiA9IGhvc3RDb250ZXh0O1xuICAgIHZhbGlkYXRlRE9NTmVzdGluZyh0eXBlLCBudWxsLCBob3N0Q29udGV4dERldi5hbmNlc3RvckluZm8pO1xuXG4gICAgaWYgKHR5cGVvZiBwcm9wcy5jaGlsZHJlbiA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHByb3BzLmNoaWxkcmVuID09PSAnbnVtYmVyJykge1xuICAgICAgdmFyIHN0cmluZyA9ICcnICsgcHJvcHMuY2hpbGRyZW47XG4gICAgICB2YXIgb3duQW5jZXN0b3JJbmZvID0gdXBkYXRlZEFuY2VzdG9ySW5mbyhob3N0Q29udGV4dERldi5hbmNlc3RvckluZm8sIHR5cGUpO1xuICAgICAgdmFsaWRhdGVET01OZXN0aW5nKG51bGwsIHN0cmluZywgb3duQW5jZXN0b3JJbmZvKTtcbiAgICB9XG5cbiAgICBwYXJlbnROYW1lc3BhY2UgPSBob3N0Q29udGV4dERldi5uYW1lc3BhY2U7XG4gIH1cblxuICB2YXIgZG9tRWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQodHlwZSwgcHJvcHMsIHJvb3RDb250YWluZXJJbnN0YW5jZSwgcGFyZW50TmFtZXNwYWNlKTtcbiAgcHJlY2FjaGVGaWJlck5vZGUoaW50ZXJuYWxJbnN0YW5jZUhhbmRsZSwgZG9tRWxlbWVudCk7XG4gIHVwZGF0ZUZpYmVyUHJvcHMoZG9tRWxlbWVudCwgcHJvcHMpO1xuICByZXR1cm4gZG9tRWxlbWVudDtcbn1cbmZ1bmN0aW9uIGFwcGVuZEluaXRpYWxDaGlsZChwYXJlbnRJbnN0YW5jZSwgY2hpbGQpIHtcbiAgcGFyZW50SW5zdGFuY2UuYXBwZW5kQ2hpbGQoY2hpbGQpO1xufVxuZnVuY3Rpb24gZmluYWxpemVJbml0aWFsQ2hpbGRyZW4oZG9tRWxlbWVudCwgdHlwZSwgcHJvcHMsIHJvb3RDb250YWluZXJJbnN0YW5jZSwgaG9zdENvbnRleHQpIHtcbiAgc2V0SW5pdGlhbFByb3BlcnRpZXMoZG9tRWxlbWVudCwgdHlwZSwgcHJvcHMsIHJvb3RDb250YWluZXJJbnN0YW5jZSk7XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnYnV0dG9uJzpcbiAgICBjYXNlICdpbnB1dCc6XG4gICAgY2FzZSAnc2VsZWN0JzpcbiAgICBjYXNlICd0ZXh0YXJlYSc6XG4gICAgICByZXR1cm4gISFwcm9wcy5hdXRvRm9jdXM7XG5cbiAgICBjYXNlICdpbWcnOlxuICAgICAgcmV0dXJuIHRydWU7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5mdW5jdGlvbiBwcmVwYXJlVXBkYXRlKGRvbUVsZW1lbnQsIHR5cGUsIG9sZFByb3BzLCBuZXdQcm9wcywgcm9vdENvbnRhaW5lckluc3RhbmNlLCBob3N0Q29udGV4dCkge1xuICB7XG4gICAgdmFyIGhvc3RDb250ZXh0RGV2ID0gaG9zdENvbnRleHQ7XG5cbiAgICBpZiAodHlwZW9mIG5ld1Byb3BzLmNoaWxkcmVuICE9PSB0eXBlb2Ygb2xkUHJvcHMuY2hpbGRyZW4gJiYgKHR5cGVvZiBuZXdQcm9wcy5jaGlsZHJlbiA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG5ld1Byb3BzLmNoaWxkcmVuID09PSAnbnVtYmVyJykpIHtcbiAgICAgIHZhciBzdHJpbmcgPSAnJyArIG5ld1Byb3BzLmNoaWxkcmVuO1xuICAgICAgdmFyIG93bkFuY2VzdG9ySW5mbyA9IHVwZGF0ZWRBbmNlc3RvckluZm8oaG9zdENvbnRleHREZXYuYW5jZXN0b3JJbmZvLCB0eXBlKTtcbiAgICAgIHZhbGlkYXRlRE9NTmVzdGluZyhudWxsLCBzdHJpbmcsIG93bkFuY2VzdG9ySW5mbyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRpZmZQcm9wZXJ0aWVzKGRvbUVsZW1lbnQsIHR5cGUsIG9sZFByb3BzLCBuZXdQcm9wcyk7XG59XG5mdW5jdGlvbiBzaG91bGRTZXRUZXh0Q29udGVudCh0eXBlLCBwcm9wcykge1xuICByZXR1cm4gdHlwZSA9PT0gJ3RleHRhcmVhJyB8fCB0eXBlID09PSAnbm9zY3JpcHQnIHx8IHR5cGVvZiBwcm9wcy5jaGlsZHJlbiA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHByb3BzLmNoaWxkcmVuID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgPT09ICdvYmplY3QnICYmIHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MICE9PSBudWxsICYmIHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbCAhPSBudWxsO1xufVxuZnVuY3Rpb24gY3JlYXRlVGV4dEluc3RhbmNlKHRleHQsIHJvb3RDb250YWluZXJJbnN0YW5jZSwgaG9zdENvbnRleHQsIGludGVybmFsSW5zdGFuY2VIYW5kbGUpIHtcbiAge1xuICAgIHZhciBob3N0Q29udGV4dERldiA9IGhvc3RDb250ZXh0O1xuICAgIHZhbGlkYXRlRE9NTmVzdGluZyhudWxsLCB0ZXh0LCBob3N0Q29udGV4dERldi5hbmNlc3RvckluZm8pO1xuICB9XG5cbiAgdmFyIHRleHROb2RlID0gY3JlYXRlVGV4dE5vZGUodGV4dCwgcm9vdENvbnRhaW5lckluc3RhbmNlKTtcbiAgcHJlY2FjaGVGaWJlck5vZGUoaW50ZXJuYWxJbnN0YW5jZUhhbmRsZSwgdGV4dE5vZGUpO1xuICByZXR1cm4gdGV4dE5vZGU7XG59XG5mdW5jdGlvbiBnZXRDdXJyZW50RXZlbnRQcmlvcml0eSgpIHtcbiAgdmFyIGN1cnJlbnRFdmVudCA9IHdpbmRvdy5ldmVudDtcblxuICBpZiAoY3VycmVudEV2ZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gRGVmYXVsdEV2ZW50UHJpb3JpdHk7XG4gIH1cblxuICByZXR1cm4gZ2V0RXZlbnRQcmlvcml0eShjdXJyZW50RXZlbnQudHlwZSk7XG59XG4vLyBpZiBhIGNvbXBvbmVudCBqdXN0IGltcG9ydHMgUmVhY3RET00gKGUuZy4gZm9yIGZpbmRET01Ob2RlKS5cbi8vIFNvbWUgZW52aXJvbm1lbnRzIG1pZ2h0IG5vdCBoYXZlIHNldFRpbWVvdXQgb3IgY2xlYXJUaW1lb3V0LlxuXG52YXIgc2NoZWR1bGVUaW1lb3V0ID0gdHlwZW9mIHNldFRpbWVvdXQgPT09ICdmdW5jdGlvbicgPyBzZXRUaW1lb3V0IDogdW5kZWZpbmVkO1xudmFyIGNhbmNlbFRpbWVvdXQgPSB0eXBlb2YgY2xlYXJUaW1lb3V0ID09PSAnZnVuY3Rpb24nID8gY2xlYXJUaW1lb3V0IDogdW5kZWZpbmVkO1xudmFyIG5vVGltZW91dCA9IC0xO1xudmFyIGxvY2FsUHJvbWlzZSA9IHR5cGVvZiBQcm9taXNlID09PSAnZnVuY3Rpb24nID8gUHJvbWlzZSA6IHVuZGVmaW5lZDsgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLVxudmFyIHNjaGVkdWxlTWljcm90YXNrID0gdHlwZW9mIHF1ZXVlTWljcm90YXNrID09PSAnZnVuY3Rpb24nID8gcXVldWVNaWNyb3Rhc2sgOiB0eXBlb2YgbG9jYWxQcm9taXNlICE9PSAndW5kZWZpbmVkJyA/IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICByZXR1cm4gbG9jYWxQcm9taXNlLnJlc29sdmUobnVsbCkudGhlbihjYWxsYmFjaykuY2F0Y2goaGFuZGxlRXJyb3JJbk5leHRUaWNrKTtcbn0gOiBzY2hlZHVsZVRpbWVvdXQ7IC8vIFRPRE86IERldGVybWluZSB0aGUgYmVzdCBmYWxsYmFjayBoZXJlLlxuXG5mdW5jdGlvbiBoYW5kbGVFcnJvckluTmV4dFRpY2soZXJyb3IpIHtcbiAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH0pO1xufSAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBjb21taXRNb3VudChkb21FbGVtZW50LCB0eXBlLCBuZXdQcm9wcywgaW50ZXJuYWxJbnN0YW5jZUhhbmRsZSkge1xuICAvLyBEZXNwaXRlIHRoZSBuYW1pbmcgdGhhdCBtaWdodCBpbXBseSBvdGhlcndpc2UsIHRoaXMgbWV0aG9kIG9ubHlcbiAgLy8gZmlyZXMgaWYgdGhlcmUgaXMgYW4gYFVwZGF0ZWAgZWZmZWN0IHNjaGVkdWxlZCBkdXJpbmcgbW91bnRpbmcuXG4gIC8vIFRoaXMgaGFwcGVucyBpZiBgZmluYWxpemVJbml0aWFsQ2hpbGRyZW5gIHJldHVybnMgYHRydWVgICh3aGljaCBpdFxuICAvLyBkb2VzIHRvIGltcGxlbWVudCB0aGUgYGF1dG9Gb2N1c2AgYXR0cmlidXRlIG9uIHRoZSBjbGllbnQpLiBCdXRcbiAgLy8gdGhlcmUgYXJlIGFsc28gb3RoZXIgY2FzZXMgd2hlbiB0aGlzIG1pZ2h0IGhhcHBlbiAoc3VjaCBhcyBwYXRjaGluZ1xuICAvLyB1cCB0ZXh0IGNvbnRlbnQgZHVyaW5nIGh5ZHJhdGlvbiBtaXNtYXRjaCkuIFNvIHdlJ2xsIGNoZWNrIHRoaXMgYWdhaW4uXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ2J1dHRvbic6XG4gICAgY2FzZSAnaW5wdXQnOlxuICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgaWYgKG5ld1Byb3BzLmF1dG9Gb2N1cykge1xuICAgICAgICBkb21FbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybjtcblxuICAgIGNhc2UgJ2ltZyc6XG4gICAgICB7XG4gICAgICAgIGlmIChuZXdQcm9wcy5zcmMpIHtcbiAgICAgICAgICBkb21FbGVtZW50LnNyYyA9IG5ld1Byb3BzLnNyYztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gY29tbWl0VXBkYXRlKGRvbUVsZW1lbnQsIHVwZGF0ZVBheWxvYWQsIHR5cGUsIG9sZFByb3BzLCBuZXdQcm9wcywgaW50ZXJuYWxJbnN0YW5jZUhhbmRsZSkge1xuICAvLyBBcHBseSB0aGUgZGlmZiB0byB0aGUgRE9NIG5vZGUuXG4gIHVwZGF0ZVByb3BlcnRpZXMoZG9tRWxlbWVudCwgdXBkYXRlUGF5bG9hZCwgdHlwZSwgb2xkUHJvcHMsIG5ld1Byb3BzKTsgLy8gVXBkYXRlIHRoZSBwcm9wcyBoYW5kbGUgc28gdGhhdCB3ZSBrbm93IHdoaWNoIHByb3BzIGFyZSB0aGUgb25lcyB3aXRoXG4gIC8vIHdpdGggY3VycmVudCBldmVudCBoYW5kbGVycy5cblxuICB1cGRhdGVGaWJlclByb3BzKGRvbUVsZW1lbnQsIG5ld1Byb3BzKTtcbn1cbmZ1bmN0aW9uIHJlc2V0VGV4dENvbnRlbnQoZG9tRWxlbWVudCkge1xuICBzZXRUZXh0Q29udGVudChkb21FbGVtZW50LCAnJyk7XG59XG5mdW5jdGlvbiBjb21taXRUZXh0VXBkYXRlKHRleHRJbnN0YW5jZSwgb2xkVGV4dCwgbmV3VGV4dCkge1xuICB0ZXh0SW5zdGFuY2Uubm9kZVZhbHVlID0gbmV3VGV4dDtcbn1cbmZ1bmN0aW9uIGFwcGVuZENoaWxkKHBhcmVudEluc3RhbmNlLCBjaGlsZCkge1xuICBwYXJlbnRJbnN0YW5jZS5hcHBlbmRDaGlsZChjaGlsZCk7XG59XG5mdW5jdGlvbiBhcHBlbmRDaGlsZFRvQ29udGFpbmVyKGNvbnRhaW5lciwgY2hpbGQpIHtcbiAgdmFyIHBhcmVudE5vZGU7XG5cbiAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFKSB7XG4gICAgcGFyZW50Tm9kZSA9IGNvbnRhaW5lci5wYXJlbnROb2RlO1xuICAgIHBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGNoaWxkLCBjb250YWluZXIpO1xuICB9IGVsc2Uge1xuICAgIHBhcmVudE5vZGUgPSBjb250YWluZXI7XG4gICAgcGFyZW50Tm9kZS5hcHBlbmRDaGlsZChjaGlsZCk7XG4gIH0gLy8gVGhpcyBjb250YWluZXIgbWlnaHQgYmUgdXNlZCBmb3IgYSBwb3J0YWwuXG4gIC8vIElmIHNvbWV0aGluZyBpbnNpZGUgYSBwb3J0YWwgaXMgY2xpY2tlZCwgdGhhdCBjbGljayBzaG91bGQgYnViYmxlXG4gIC8vIHRocm91Z2ggdGhlIFJlYWN0IHRyZWUuIEhvd2V2ZXIsIG9uIE1vYmlsZSBTYWZhcmkgdGhlIGNsaWNrIHdvdWxkXG4gIC8vIG5ldmVyIGJ1YmJsZSB0aHJvdWdoIHRoZSAqRE9NKiB0cmVlIHVubGVzcyBhbiBhbmNlc3RvciB3aXRoIG9uY2xpY2tcbiAgLy8gZXZlbnQgZXhpc3RzLiBTbyB3ZSB3b3VsZG4ndCBzZWUgaXQgYW5kIGRpc3BhdGNoIGl0LlxuICAvLyBUaGlzIGlzIHdoeSB3ZSBlbnN1cmUgdGhhdCBub24gUmVhY3Qgcm9vdCBjb250YWluZXJzIGhhdmUgaW5saW5lIG9uY2xpY2tcbiAgLy8gZGVmaW5lZC5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMTkxOFxuXG5cbiAgdmFyIHJlYWN0Um9vdENvbnRhaW5lciA9IGNvbnRhaW5lci5fcmVhY3RSb290Q29udGFpbmVyO1xuXG4gIGlmICgocmVhY3RSb290Q29udGFpbmVyID09PSBudWxsIHx8IHJlYWN0Um9vdENvbnRhaW5lciA9PT0gdW5kZWZpbmVkKSAmJiBwYXJlbnROb2RlLm9uY2xpY2sgPT09IG51bGwpIHtcbiAgICAvLyBUT0RPOiBUaGlzIGNhc3QgbWF5IG5vdCBiZSBzb3VuZCBmb3IgU1ZHLCBNYXRoTUwgb3IgY3VzdG9tIGVsZW1lbnRzLlxuICAgIHRyYXBDbGlja09uTm9uSW50ZXJhY3RpdmVFbGVtZW50KHBhcmVudE5vZGUpO1xuICB9XG59XG5mdW5jdGlvbiBpbnNlcnRCZWZvcmUocGFyZW50SW5zdGFuY2UsIGNoaWxkLCBiZWZvcmVDaGlsZCkge1xuICBwYXJlbnRJbnN0YW5jZS5pbnNlcnRCZWZvcmUoY2hpbGQsIGJlZm9yZUNoaWxkKTtcbn1cbmZ1bmN0aW9uIGluc2VydEluQ29udGFpbmVyQmVmb3JlKGNvbnRhaW5lciwgY2hpbGQsIGJlZm9yZUNoaWxkKSB7XG4gIGlmIChjb250YWluZXIubm9kZVR5cGUgPT09IENPTU1FTlRfTk9ERSkge1xuICAgIGNvbnRhaW5lci5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjaGlsZCwgYmVmb3JlQ2hpbGQpO1xuICB9IGVsc2Uge1xuICAgIGNvbnRhaW5lci5pbnNlcnRCZWZvcmUoY2hpbGQsIGJlZm9yZUNoaWxkKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZW1vdmVDaGlsZChwYXJlbnRJbnN0YW5jZSwgY2hpbGQpIHtcbiAgcGFyZW50SW5zdGFuY2UucmVtb3ZlQ2hpbGQoY2hpbGQpO1xufVxuZnVuY3Rpb24gcmVtb3ZlQ2hpbGRGcm9tQ29udGFpbmVyKGNvbnRhaW5lciwgY2hpbGQpIHtcbiAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFKSB7XG4gICAgY29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY2hpbGQpO1xuICB9IGVsc2Uge1xuICAgIGNvbnRhaW5lci5yZW1vdmVDaGlsZChjaGlsZCk7XG4gIH1cbn1cbmZ1bmN0aW9uIGNsZWFyU3VzcGVuc2VCb3VuZGFyeShwYXJlbnRJbnN0YW5jZSwgc3VzcGVuc2VJbnN0YW5jZSkge1xuICB2YXIgbm9kZSA9IHN1c3BlbnNlSW5zdGFuY2U7IC8vIERlbGV0ZSBhbGwgbm9kZXMgd2l0aGluIHRoaXMgc3VzcGVuc2UgYm91bmRhcnkuXG4gIC8vIFRoZXJlIG1pZ2h0IGJlIG5lc3RlZCBub2RlcyBzbyB3ZSBuZWVkIHRvIGtlZXAgdHJhY2sgb2YgaG93XG4gIC8vIGRlZXAgd2UgYXJlIGFuZCBvbmx5IGJyZWFrIG91dCB3aGVuIHdlJ3JlIGJhY2sgb24gdG9wLlxuXG4gIHZhciBkZXB0aCA9IDA7XG5cbiAgZG8ge1xuICAgIHZhciBuZXh0Tm9kZSA9IG5vZGUubmV4dFNpYmxpbmc7XG4gICAgcGFyZW50SW5zdGFuY2UucmVtb3ZlQ2hpbGQobm9kZSk7XG5cbiAgICBpZiAobmV4dE5vZGUgJiYgbmV4dE5vZGUubm9kZVR5cGUgPT09IENPTU1FTlRfTk9ERSkge1xuICAgICAgdmFyIGRhdGEgPSBuZXh0Tm9kZS5kYXRhO1xuXG4gICAgICBpZiAoZGF0YSA9PT0gU1VTUEVOU0VfRU5EX0RBVEEpIHtcbiAgICAgICAgaWYgKGRlcHRoID09PSAwKSB7XG4gICAgICAgICAgcGFyZW50SW5zdGFuY2UucmVtb3ZlQ2hpbGQobmV4dE5vZGUpOyAvLyBSZXRyeSBpZiBhbnkgZXZlbnQgcmVwbGF5aW5nIHdhcyBibG9ja2VkIG9uIHRoaXMuXG5cbiAgICAgICAgICByZXRyeUlmQmxvY2tlZE9uKHN1c3BlbnNlSW5zdGFuY2UpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZXB0aC0tO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGRhdGEgPT09IFNVU1BFTlNFX1NUQVJUX0RBVEEgfHwgZGF0YSA9PT0gU1VTUEVOU0VfUEVORElOR19TVEFSVF9EQVRBIHx8IGRhdGEgPT09IFNVU1BFTlNFX0ZBTExCQUNLX1NUQVJUX0RBVEEpIHtcbiAgICAgICAgZGVwdGgrKztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBub2RlID0gbmV4dE5vZGU7XG4gIH0gd2hpbGUgKG5vZGUpOyAvLyBUT0RPOiBXYXJuLCB3ZSBkaWRuJ3QgZmluZCB0aGUgZW5kIGNvbW1lbnQgYm91bmRhcnkuXG4gIC8vIFJldHJ5IGlmIGFueSBldmVudCByZXBsYXlpbmcgd2FzIGJsb2NrZWQgb24gdGhpcy5cblxuXG4gIHJldHJ5SWZCbG9ja2VkT24oc3VzcGVuc2VJbnN0YW5jZSk7XG59XG5mdW5jdGlvbiBjbGVhclN1c3BlbnNlQm91bmRhcnlGcm9tQ29udGFpbmVyKGNvbnRhaW5lciwgc3VzcGVuc2VJbnN0YW5jZSkge1xuICBpZiAoY29udGFpbmVyLm5vZGVUeXBlID09PSBDT01NRU5UX05PREUpIHtcbiAgICBjbGVhclN1c3BlbnNlQm91bmRhcnkoY29udGFpbmVyLnBhcmVudE5vZGUsIHN1c3BlbnNlSW5zdGFuY2UpO1xuICB9IGVsc2UgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFKSB7XG4gICAgY2xlYXJTdXNwZW5zZUJvdW5kYXJ5KGNvbnRhaW5lciwgc3VzcGVuc2VJbnN0YW5jZSk7XG4gIH0gLy8gUmV0cnkgaWYgYW55IGV2ZW50IHJlcGxheWluZyB3YXMgYmxvY2tlZCBvbiB0aGlzLlxuXG5cbiAgcmV0cnlJZkJsb2NrZWRPbihjb250YWluZXIpO1xufVxuZnVuY3Rpb24gaGlkZUluc3RhbmNlKGluc3RhbmNlKSB7XG4gIC8vIFRPRE86IERvZXMgdGhpcyB3b3JrIGZvciBhbGwgZWxlbWVudCB0eXBlcz8gV2hhdCBhYm91dCBNYXRoTUw/IFNob3VsZCB3ZVxuICAvLyBwYXNzIGhvc3QgY29udGV4dCB0byB0aGlzIG1ldGhvZD9cbiAgaW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgdmFyIHN0eWxlID0gaW5zdGFuY2Uuc3R5bGU7XG5cbiAgaWYgKHR5cGVvZiBzdHlsZS5zZXRQcm9wZXJ0eSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHN0eWxlLnNldFByb3BlcnR5KCdkaXNwbGF5JywgJ25vbmUnLCAnaW1wb3J0YW50Jyk7XG4gIH0gZWxzZSB7XG4gICAgc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgfVxufVxuZnVuY3Rpb24gaGlkZVRleHRJbnN0YW5jZSh0ZXh0SW5zdGFuY2UpIHtcbiAgdGV4dEluc3RhbmNlLm5vZGVWYWx1ZSA9ICcnO1xufVxuZnVuY3Rpb24gdW5oaWRlSW5zdGFuY2UoaW5zdGFuY2UsIHByb3BzKSB7XG4gIGluc3RhbmNlID0gaW5zdGFuY2U7XG4gIHZhciBzdHlsZVByb3AgPSBwcm9wc1tTVFlMRSQxXTtcbiAgdmFyIGRpc3BsYXkgPSBzdHlsZVByb3AgIT09IHVuZGVmaW5lZCAmJiBzdHlsZVByb3AgIT09IG51bGwgJiYgc3R5bGVQcm9wLmhhc093blByb3BlcnR5KCdkaXNwbGF5JykgPyBzdHlsZVByb3AuZGlzcGxheSA6IG51bGw7XG4gIGluc3RhbmNlLnN0eWxlLmRpc3BsYXkgPSBkYW5nZXJvdXNTdHlsZVZhbHVlKCdkaXNwbGF5JywgZGlzcGxheSk7XG59XG5mdW5jdGlvbiB1bmhpZGVUZXh0SW5zdGFuY2UodGV4dEluc3RhbmNlLCB0ZXh0KSB7XG4gIHRleHRJbnN0YW5jZS5ub2RlVmFsdWUgPSB0ZXh0O1xufVxuZnVuY3Rpb24gY2xlYXJDb250YWluZXIoY29udGFpbmVyKSB7XG4gIGlmIChjb250YWluZXIubm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERSkge1xuICAgIGNvbnRhaW5lci50ZXh0Q29udGVudCA9ICcnO1xuICB9IGVsc2UgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gRE9DVU1FTlRfTk9ERSkge1xuICAgIGlmIChjb250YWluZXIuZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICBjb250YWluZXIucmVtb3ZlQ2hpbGQoY29udGFpbmVyLmRvY3VtZW50RWxlbWVudCk7XG4gICAgfVxuICB9XG59IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cbmZ1bmN0aW9uIGNhbkh5ZHJhdGVJbnN0YW5jZShpbnN0YW5jZSwgdHlwZSwgcHJvcHMpIHtcbiAgaWYgKGluc3RhbmNlLm5vZGVUeXBlICE9PSBFTEVNRU5UX05PREUgfHwgdHlwZS50b0xvd2VyQ2FzZSgpICE9PSBpbnN0YW5jZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0gLy8gVGhpcyBoYXMgbm93IGJlZW4gcmVmaW5lZCB0byBhbiBlbGVtZW50IG5vZGUuXG5cblxuICByZXR1cm4gaW5zdGFuY2U7XG59XG5mdW5jdGlvbiBjYW5IeWRyYXRlVGV4dEluc3RhbmNlKGluc3RhbmNlLCB0ZXh0KSB7XG4gIGlmICh0ZXh0ID09PSAnJyB8fCBpbnN0YW5jZS5ub2RlVHlwZSAhPT0gVEVYVF9OT0RFKSB7XG4gICAgLy8gRW1wdHkgc3RyaW5ncyBhcmUgbm90IHBhcnNlZCBieSBIVE1MIHNvIHRoZXJlIHdvbid0IGJlIGEgY29ycmVjdCBtYXRjaCBoZXJlLlxuICAgIHJldHVybiBudWxsO1xuICB9IC8vIFRoaXMgaGFzIG5vdyBiZWVuIHJlZmluZWQgdG8gYSB0ZXh0IG5vZGUuXG5cblxuICByZXR1cm4gaW5zdGFuY2U7XG59XG5mdW5jdGlvbiBjYW5IeWRyYXRlU3VzcGVuc2VJbnN0YW5jZShpbnN0YW5jZSkge1xuICBpZiAoaW5zdGFuY2Uubm9kZVR5cGUgIT09IENPTU1FTlRfTk9ERSkge1xuICAgIC8vIEVtcHR5IHN0cmluZ3MgYXJlIG5vdCBwYXJzZWQgYnkgSFRNTCBzbyB0aGVyZSB3b24ndCBiZSBhIGNvcnJlY3QgbWF0Y2ggaGVyZS5cbiAgICByZXR1cm4gbnVsbDtcbiAgfSAvLyBUaGlzIGhhcyBub3cgYmVlbiByZWZpbmVkIHRvIGEgc3VzcGVuc2Ugbm9kZS5cblxuXG4gIHJldHVybiBpbnN0YW5jZTtcbn1cbmZ1bmN0aW9uIGlzU3VzcGVuc2VJbnN0YW5jZVBlbmRpbmcoaW5zdGFuY2UpIHtcbiAgcmV0dXJuIGluc3RhbmNlLmRhdGEgPT09IFNVU1BFTlNFX1BFTkRJTkdfU1RBUlRfREFUQTtcbn1cbmZ1bmN0aW9uIGlzU3VzcGVuc2VJbnN0YW5jZUZhbGxiYWNrKGluc3RhbmNlKSB7XG4gIHJldHVybiBpbnN0YW5jZS5kYXRhID09PSBTVVNQRU5TRV9GQUxMQkFDS19TVEFSVF9EQVRBO1xufVxuZnVuY3Rpb24gZ2V0U3VzcGVuc2VJbnN0YW5jZUZhbGxiYWNrRXJyb3JEZXRhaWxzKGluc3RhbmNlKSB7XG4gIHZhciBkYXRhc2V0ID0gaW5zdGFuY2UubmV4dFNpYmxpbmcgJiYgaW5zdGFuY2UubmV4dFNpYmxpbmcuZGF0YXNldDtcbiAgdmFyIGRpZ2VzdCwgbWVzc2FnZSwgc3RhY2s7XG5cbiAgaWYgKGRhdGFzZXQpIHtcbiAgICBkaWdlc3QgPSBkYXRhc2V0LmRnc3Q7XG5cbiAgICB7XG4gICAgICBtZXNzYWdlID0gZGF0YXNldC5tc2c7XG4gICAgICBzdGFjayA9IGRhdGFzZXQuc3RjaztcbiAgICB9XG4gIH1cblxuICB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICBkaWdlc3Q6IGRpZ2VzdCxcbiAgICAgIHN0YWNrOiBzdGFja1xuICAgIH07XG4gIH0gLy8gbGV0IHZhbHVlID0ge21lc3NhZ2U6IHVuZGVmaW5lZCwgaGFzaDogdW5kZWZpbmVkfTtcbiAgLy8gY29uc3QgbmV4dFNpYmxpbmcgPSBpbnN0YW5jZS5uZXh0U2libGluZztcbiAgLy8gaWYgKG5leHRTaWJsaW5nKSB7XG4gIC8vICAgY29uc3QgZGF0YXNldCA9ICgobmV4dFNpYmxpbmc6IGFueSk6IEhUTUxUZW1wbGF0ZUVsZW1lbnQpLmRhdGFzZXQ7XG4gIC8vICAgdmFsdWUubWVzc2FnZSA9IGRhdGFzZXQubXNnO1xuICAvLyAgIHZhbHVlLmhhc2ggPSBkYXRhc2V0Lmhhc2g7XG4gIC8vICAgaWYgKHRydWUpIHtcbiAgLy8gICAgIHZhbHVlLnN0YWNrID0gZGF0YXNldC5zdGFjaztcbiAgLy8gICB9XG4gIC8vIH1cbiAgLy8gcmV0dXJuIHZhbHVlO1xuXG59XG5mdW5jdGlvbiByZWdpc3RlclN1c3BlbnNlSW5zdGFuY2VSZXRyeShpbnN0YW5jZSwgY2FsbGJhY2spIHtcbiAgaW5zdGFuY2UuX3JlYWN0UmV0cnkgPSBjYWxsYmFjaztcbn1cblxuZnVuY3Rpb24gZ2V0TmV4dEh5ZHJhdGFibGUobm9kZSkge1xuICAvLyBTa2lwIG5vbi1oeWRyYXRhYmxlIG5vZGVzLlxuICBmb3IgKDsgbm9kZSAhPSBudWxsOyBub2RlID0gbm9kZS5uZXh0U2libGluZykge1xuICAgIHZhciBub2RlVHlwZSA9IG5vZGUubm9kZVR5cGU7XG5cbiAgICBpZiAobm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERSB8fCBub2RlVHlwZSA9PT0gVEVYVF9OT0RFKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAobm9kZVR5cGUgPT09IENPTU1FTlRfTk9ERSkge1xuICAgICAgdmFyIG5vZGVEYXRhID0gbm9kZS5kYXRhO1xuXG4gICAgICBpZiAobm9kZURhdGEgPT09IFNVU1BFTlNFX1NUQVJUX0RBVEEgfHwgbm9kZURhdGEgPT09IFNVU1BFTlNFX0ZBTExCQUNLX1NUQVJUX0RBVEEgfHwgbm9kZURhdGEgPT09IFNVU1BFTlNFX1BFTkRJTkdfU1RBUlRfREFUQSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKG5vZGVEYXRhID09PSBTVVNQRU5TRV9FTkRfREFUQSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbm9kZTtcbn1cblxuZnVuY3Rpb24gZ2V0TmV4dEh5ZHJhdGFibGVTaWJsaW5nKGluc3RhbmNlKSB7XG4gIHJldHVybiBnZXROZXh0SHlkcmF0YWJsZShpbnN0YW5jZS5uZXh0U2libGluZyk7XG59XG5mdW5jdGlvbiBnZXRGaXJzdEh5ZHJhdGFibGVDaGlsZChwYXJlbnRJbnN0YW5jZSkge1xuICByZXR1cm4gZ2V0TmV4dEh5ZHJhdGFibGUocGFyZW50SW5zdGFuY2UuZmlyc3RDaGlsZCk7XG59XG5mdW5jdGlvbiBnZXRGaXJzdEh5ZHJhdGFibGVDaGlsZFdpdGhpbkNvbnRhaW5lcihwYXJlbnRDb250YWluZXIpIHtcbiAgcmV0dXJuIGdldE5leHRIeWRyYXRhYmxlKHBhcmVudENvbnRhaW5lci5maXJzdENoaWxkKTtcbn1cbmZ1bmN0aW9uIGdldEZpcnN0SHlkcmF0YWJsZUNoaWxkV2l0aGluU3VzcGVuc2VJbnN0YW5jZShwYXJlbnRJbnN0YW5jZSkge1xuICByZXR1cm4gZ2V0TmV4dEh5ZHJhdGFibGUocGFyZW50SW5zdGFuY2UubmV4dFNpYmxpbmcpO1xufVxuZnVuY3Rpb24gaHlkcmF0ZUluc3RhbmNlKGluc3RhbmNlLCB0eXBlLCBwcm9wcywgcm9vdENvbnRhaW5lckluc3RhbmNlLCBob3N0Q29udGV4dCwgaW50ZXJuYWxJbnN0YW5jZUhhbmRsZSwgc2hvdWxkV2FybkRldikge1xuICBwcmVjYWNoZUZpYmVyTm9kZShpbnRlcm5hbEluc3RhbmNlSGFuZGxlLCBpbnN0YW5jZSk7IC8vIFRPRE86IFBvc3NpYmx5IGRlZmVyIHRoaXMgdW50aWwgdGhlIGNvbW1pdCBwaGFzZSB3aGVyZSBhbGwgdGhlIGV2ZW50c1xuICAvLyBnZXQgYXR0YWNoZWQuXG5cbiAgdXBkYXRlRmliZXJQcm9wcyhpbnN0YW5jZSwgcHJvcHMpO1xuICB2YXIgcGFyZW50TmFtZXNwYWNlO1xuXG4gIHtcbiAgICB2YXIgaG9zdENvbnRleHREZXYgPSBob3N0Q29udGV4dDtcbiAgICBwYXJlbnROYW1lc3BhY2UgPSBob3N0Q29udGV4dERldi5uYW1lc3BhY2U7XG4gIH0gLy8gVE9ETzogVGVtcG9yYXJ5IGhhY2sgdG8gY2hlY2sgaWYgd2UncmUgaW4gYSBjb25jdXJyZW50IHJvb3QuIFdlIGNhbiBkZWxldGVcbiAgLy8gd2hlbiB0aGUgbGVnYWN5IHJvb3QgQVBJIGlzIHJlbW92ZWQuXG5cblxuICB2YXIgaXNDb25jdXJyZW50TW9kZSA9IChpbnRlcm5hbEluc3RhbmNlSGFuZGxlLm1vZGUgJiBDb25jdXJyZW50TW9kZSkgIT09IE5vTW9kZTtcbiAgcmV0dXJuIGRpZmZIeWRyYXRlZFByb3BlcnRpZXMoaW5zdGFuY2UsIHR5cGUsIHByb3BzLCBwYXJlbnROYW1lc3BhY2UsIHJvb3RDb250YWluZXJJbnN0YW5jZSwgaXNDb25jdXJyZW50TW9kZSwgc2hvdWxkV2FybkRldik7XG59XG5mdW5jdGlvbiBoeWRyYXRlVGV4dEluc3RhbmNlKHRleHRJbnN0YW5jZSwgdGV4dCwgaW50ZXJuYWxJbnN0YW5jZUhhbmRsZSwgc2hvdWxkV2FybkRldikge1xuICBwcmVjYWNoZUZpYmVyTm9kZShpbnRlcm5hbEluc3RhbmNlSGFuZGxlLCB0ZXh0SW5zdGFuY2UpOyAvLyBUT0RPOiBUZW1wb3JhcnkgaGFjayB0byBjaGVjayBpZiB3ZSdyZSBpbiBhIGNvbmN1cnJlbnQgcm9vdC4gV2UgY2FuIGRlbGV0ZVxuICAvLyB3aGVuIHRoZSBsZWdhY3kgcm9vdCBBUEkgaXMgcmVtb3ZlZC5cblxuICB2YXIgaXNDb25jdXJyZW50TW9kZSA9IChpbnRlcm5hbEluc3RhbmNlSGFuZGxlLm1vZGUgJiBDb25jdXJyZW50TW9kZSkgIT09IE5vTW9kZTtcbiAgcmV0dXJuIGRpZmZIeWRyYXRlZFRleHQodGV4dEluc3RhbmNlLCB0ZXh0KTtcbn1cbmZ1bmN0aW9uIGh5ZHJhdGVTdXNwZW5zZUluc3RhbmNlKHN1c3BlbnNlSW5zdGFuY2UsIGludGVybmFsSW5zdGFuY2VIYW5kbGUpIHtcbiAgcHJlY2FjaGVGaWJlck5vZGUoaW50ZXJuYWxJbnN0YW5jZUhhbmRsZSwgc3VzcGVuc2VJbnN0YW5jZSk7XG59XG5mdW5jdGlvbiBnZXROZXh0SHlkcmF0YWJsZUluc3RhbmNlQWZ0ZXJTdXNwZW5zZUluc3RhbmNlKHN1c3BlbnNlSW5zdGFuY2UpIHtcbiAgdmFyIG5vZGUgPSBzdXNwZW5zZUluc3RhbmNlLm5leHRTaWJsaW5nOyAvLyBTa2lwIHBhc3QgYWxsIG5vZGVzIHdpdGhpbiB0aGlzIHN1c3BlbnNlIGJvdW5kYXJ5LlxuICAvLyBUaGVyZSBtaWdodCBiZSBuZXN0ZWQgbm9kZXMgc28gd2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIGhvd1xuICAvLyBkZWVwIHdlIGFyZSBhbmQgb25seSBicmVhayBvdXQgd2hlbiB3ZSdyZSBiYWNrIG9uIHRvcC5cblxuICB2YXIgZGVwdGggPSAwO1xuXG4gIHdoaWxlIChub2RlKSB7XG4gICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IENPTU1FTlRfTk9ERSkge1xuICAgICAgdmFyIGRhdGEgPSBub2RlLmRhdGE7XG5cbiAgICAgIGlmIChkYXRhID09PSBTVVNQRU5TRV9FTkRfREFUQSkge1xuICAgICAgICBpZiAoZGVwdGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gZ2V0TmV4dEh5ZHJhdGFibGVTaWJsaW5nKG5vZGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlcHRoLS07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZGF0YSA9PT0gU1VTUEVOU0VfU1RBUlRfREFUQSB8fCBkYXRhID09PSBTVVNQRU5TRV9GQUxMQkFDS19TVEFSVF9EQVRBIHx8IGRhdGEgPT09IFNVU1BFTlNFX1BFTkRJTkdfU1RBUlRfREFUQSkge1xuICAgICAgICBkZXB0aCsrO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5vZGUgPSBub2RlLm5leHRTaWJsaW5nO1xuICB9IC8vIFRPRE86IFdhcm4sIHdlIGRpZG4ndCBmaW5kIHRoZSBlbmQgY29tbWVudCBib3VuZGFyeS5cblxuXG4gIHJldHVybiBudWxsO1xufSAvLyBSZXR1cm5zIHRoZSBTdXNwZW5zZUluc3RhbmNlIGlmIHRoaXMgbm9kZSBpcyBhIGRpcmVjdCBjaGlsZCBvZiBhXG4vLyBTdXNwZW5zZUluc3RhbmNlLiBJLmUuIGlmIGl0cyBwcmV2aW91cyBzaWJsaW5nIGlzIGEgQ29tbWVudCB3aXRoXG4vLyBTVVNQRU5TRV94X1NUQVJUX0RBVEEuIE90aGVyd2lzZSwgbnVsbC5cblxuZnVuY3Rpb24gZ2V0UGFyZW50U3VzcGVuc2VJbnN0YW5jZSh0YXJnZXRJbnN0YW5jZSkge1xuICB2YXIgbm9kZSA9IHRhcmdldEluc3RhbmNlLnByZXZpb3VzU2libGluZzsgLy8gU2tpcCBwYXN0IGFsbCBub2RlcyB3aXRoaW4gdGhpcyBzdXNwZW5zZSBib3VuZGFyeS5cbiAgLy8gVGhlcmUgbWlnaHQgYmUgbmVzdGVkIG5vZGVzIHNvIHdlIG5lZWQgdG8ga2VlcCB0cmFjayBvZiBob3dcbiAgLy8gZGVlcCB3ZSBhcmUgYW5kIG9ubHkgYnJlYWsgb3V0IHdoZW4gd2UncmUgYmFjayBvbiB0b3AuXG5cbiAgdmFyIGRlcHRoID0gMDtcblxuICB3aGlsZSAobm9kZSkge1xuICAgIGlmIChub2RlLm5vZGVUeXBlID09PSBDT01NRU5UX05PREUpIHtcbiAgICAgIHZhciBkYXRhID0gbm9kZS5kYXRhO1xuXG4gICAgICBpZiAoZGF0YSA9PT0gU1VTUEVOU0VfU1RBUlRfREFUQSB8fCBkYXRhID09PSBTVVNQRU5TRV9GQUxMQkFDS19TVEFSVF9EQVRBIHx8IGRhdGEgPT09IFNVU1BFTlNFX1BFTkRJTkdfU1RBUlRfREFUQSkge1xuICAgICAgICBpZiAoZGVwdGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZXB0aC0tO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGRhdGEgPT09IFNVU1BFTlNFX0VORF9EQVRBKSB7XG4gICAgICAgIGRlcHRoKys7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbm9kZSA9IG5vZGUucHJldmlvdXNTaWJsaW5nO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5mdW5jdGlvbiBjb21taXRIeWRyYXRlZENvbnRhaW5lcihjb250YWluZXIpIHtcbiAgLy8gUmV0cnkgaWYgYW55IGV2ZW50IHJlcGxheWluZyB3YXMgYmxvY2tlZCBvbiB0aGlzLlxuICByZXRyeUlmQmxvY2tlZE9uKGNvbnRhaW5lcik7XG59XG5mdW5jdGlvbiBjb21taXRIeWRyYXRlZFN1c3BlbnNlSW5zdGFuY2Uoc3VzcGVuc2VJbnN0YW5jZSkge1xuICAvLyBSZXRyeSBpZiBhbnkgZXZlbnQgcmVwbGF5aW5nIHdhcyBibG9ja2VkIG9uIHRoaXMuXG4gIHJldHJ5SWZCbG9ja2VkT24oc3VzcGVuc2VJbnN0YW5jZSk7XG59XG5mdW5jdGlvbiBzaG91bGREZWxldGVVbmh5ZHJhdGVkVGFpbEluc3RhbmNlcyhwYXJlbnRUeXBlKSB7XG4gIHJldHVybiBwYXJlbnRUeXBlICE9PSAnaGVhZCcgJiYgcGFyZW50VHlwZSAhPT0gJ2JvZHknO1xufVxuZnVuY3Rpb24gZGlkTm90TWF0Y2hIeWRyYXRlZENvbnRhaW5lclRleHRJbnN0YW5jZShwYXJlbnRDb250YWluZXIsIHRleHRJbnN0YW5jZSwgdGV4dCwgaXNDb25jdXJyZW50TW9kZSkge1xuICB2YXIgc2hvdWxkV2FybkRldiA9IHRydWU7XG4gIGNoZWNrRm9yVW5tYXRjaGVkVGV4dCh0ZXh0SW5zdGFuY2Uubm9kZVZhbHVlLCB0ZXh0LCBpc0NvbmN1cnJlbnRNb2RlLCBzaG91bGRXYXJuRGV2KTtcbn1cbmZ1bmN0aW9uIGRpZE5vdE1hdGNoSHlkcmF0ZWRUZXh0SW5zdGFuY2UocGFyZW50VHlwZSwgcGFyZW50UHJvcHMsIHBhcmVudEluc3RhbmNlLCB0ZXh0SW5zdGFuY2UsIHRleHQsIGlzQ29uY3VycmVudE1vZGUpIHtcbiAgaWYgKHBhcmVudFByb3BzW1NVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HJDFdICE9PSB0cnVlKSB7XG4gICAgdmFyIHNob3VsZFdhcm5EZXYgPSB0cnVlO1xuICAgIGNoZWNrRm9yVW5tYXRjaGVkVGV4dCh0ZXh0SW5zdGFuY2Uubm9kZVZhbHVlLCB0ZXh0LCBpc0NvbmN1cnJlbnRNb2RlLCBzaG91bGRXYXJuRGV2KTtcbiAgfVxufVxuZnVuY3Rpb24gZGlkTm90SHlkcmF0ZUluc3RhbmNlV2l0aGluQ29udGFpbmVyKHBhcmVudENvbnRhaW5lciwgaW5zdGFuY2UpIHtcbiAge1xuICAgIGlmIChpbnN0YW5jZS5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFKSB7XG4gICAgICB3YXJuRm9yRGVsZXRlZEh5ZHJhdGFibGVFbGVtZW50KHBhcmVudENvbnRhaW5lciwgaW5zdGFuY2UpO1xuICAgIH0gZWxzZSBpZiAoaW5zdGFuY2Uubm9kZVR5cGUgPT09IENPTU1FTlRfTk9ERSkgOyBlbHNlIHtcbiAgICAgIHdhcm5Gb3JEZWxldGVkSHlkcmF0YWJsZVRleHQocGFyZW50Q29udGFpbmVyLCBpbnN0YW5jZSk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBkaWROb3RIeWRyYXRlSW5zdGFuY2VXaXRoaW5TdXNwZW5zZUluc3RhbmNlKHBhcmVudEluc3RhbmNlLCBpbnN0YW5jZSkge1xuICB7XG4gICAgLy8gJEZsb3dGaXhNZTogT25seSBFbGVtZW50IG9yIERvY3VtZW50IGNhbiBiZSBwYXJlbnQgbm9kZXMuXG4gICAgdmFyIHBhcmVudE5vZGUgPSBwYXJlbnRJbnN0YW5jZS5wYXJlbnROb2RlO1xuXG4gICAgaWYgKHBhcmVudE5vZGUgIT09IG51bGwpIHtcbiAgICAgIGlmIChpbnN0YW5jZS5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFKSB7XG4gICAgICAgIHdhcm5Gb3JEZWxldGVkSHlkcmF0YWJsZUVsZW1lbnQocGFyZW50Tm9kZSwgaW5zdGFuY2UpO1xuICAgICAgfSBlbHNlIGlmIChpbnN0YW5jZS5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFKSA7IGVsc2Uge1xuICAgICAgICB3YXJuRm9yRGVsZXRlZEh5ZHJhdGFibGVUZXh0KHBhcmVudE5vZGUsIGluc3RhbmNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGRpZE5vdEh5ZHJhdGVJbnN0YW5jZShwYXJlbnRUeXBlLCBwYXJlbnRQcm9wcywgcGFyZW50SW5zdGFuY2UsIGluc3RhbmNlLCBpc0NvbmN1cnJlbnRNb2RlKSB7XG4gIHtcbiAgICBpZiAoaXNDb25jdXJyZW50TW9kZSB8fCBwYXJlbnRQcm9wc1tTVVBQUkVTU19IWURSQVRJT05fV0FSTklORyQxXSAhPT0gdHJ1ZSkge1xuICAgICAgaWYgKGluc3RhbmNlLm5vZGVUeXBlID09PSBFTEVNRU5UX05PREUpIHtcbiAgICAgICAgd2FybkZvckRlbGV0ZWRIeWRyYXRhYmxlRWxlbWVudChwYXJlbnRJbnN0YW5jZSwgaW5zdGFuY2UpO1xuICAgICAgfSBlbHNlIGlmIChpbnN0YW5jZS5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFKSA7IGVsc2Uge1xuICAgICAgICB3YXJuRm9yRGVsZXRlZEh5ZHJhdGFibGVUZXh0KHBhcmVudEluc3RhbmNlLCBpbnN0YW5jZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBkaWROb3RGaW5kSHlkcmF0YWJsZUluc3RhbmNlV2l0aGluQ29udGFpbmVyKHBhcmVudENvbnRhaW5lciwgdHlwZSwgcHJvcHMpIHtcbiAge1xuICAgIHdhcm5Gb3JJbnNlcnRlZEh5ZHJhdGVkRWxlbWVudChwYXJlbnRDb250YWluZXIsIHR5cGUpO1xuICB9XG59XG5mdW5jdGlvbiBkaWROb3RGaW5kSHlkcmF0YWJsZVRleHRJbnN0YW5jZVdpdGhpbkNvbnRhaW5lcihwYXJlbnRDb250YWluZXIsIHRleHQpIHtcbiAge1xuICAgIHdhcm5Gb3JJbnNlcnRlZEh5ZHJhdGVkVGV4dChwYXJlbnRDb250YWluZXIsIHRleHQpO1xuICB9XG59XG5mdW5jdGlvbiBkaWROb3RGaW5kSHlkcmF0YWJsZUluc3RhbmNlV2l0aGluU3VzcGVuc2VJbnN0YW5jZShwYXJlbnRJbnN0YW5jZSwgdHlwZSwgcHJvcHMpIHtcbiAge1xuICAgIC8vICRGbG93Rml4TWU6IE9ubHkgRWxlbWVudCBvciBEb2N1bWVudCBjYW4gYmUgcGFyZW50IG5vZGVzLlxuICAgIHZhciBwYXJlbnROb2RlID0gcGFyZW50SW5zdGFuY2UucGFyZW50Tm9kZTtcbiAgICBpZiAocGFyZW50Tm9kZSAhPT0gbnVsbCkgd2FybkZvckluc2VydGVkSHlkcmF0ZWRFbGVtZW50KHBhcmVudE5vZGUsIHR5cGUpO1xuICB9XG59XG5mdW5jdGlvbiBkaWROb3RGaW5kSHlkcmF0YWJsZVRleHRJbnN0YW5jZVdpdGhpblN1c3BlbnNlSW5zdGFuY2UocGFyZW50SW5zdGFuY2UsIHRleHQpIHtcbiAge1xuICAgIC8vICRGbG93Rml4TWU6IE9ubHkgRWxlbWVudCBvciBEb2N1bWVudCBjYW4gYmUgcGFyZW50IG5vZGVzLlxuICAgIHZhciBwYXJlbnROb2RlID0gcGFyZW50SW5zdGFuY2UucGFyZW50Tm9kZTtcbiAgICBpZiAocGFyZW50Tm9kZSAhPT0gbnVsbCkgd2FybkZvckluc2VydGVkSHlkcmF0ZWRUZXh0KHBhcmVudE5vZGUsIHRleHQpO1xuICB9XG59XG5mdW5jdGlvbiBkaWROb3RGaW5kSHlkcmF0YWJsZUluc3RhbmNlKHBhcmVudFR5cGUsIHBhcmVudFByb3BzLCBwYXJlbnRJbnN0YW5jZSwgdHlwZSwgcHJvcHMsIGlzQ29uY3VycmVudE1vZGUpIHtcbiAge1xuICAgIGlmIChpc0NvbmN1cnJlbnRNb2RlIHx8IHBhcmVudFByb3BzW1NVUFBSRVNTX0hZRFJBVElPTl9XQVJOSU5HJDFdICE9PSB0cnVlKSB7XG4gICAgICB3YXJuRm9ySW5zZXJ0ZWRIeWRyYXRlZEVsZW1lbnQocGFyZW50SW5zdGFuY2UsIHR5cGUpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gZGlkTm90RmluZEh5ZHJhdGFibGVUZXh0SW5zdGFuY2UocGFyZW50VHlwZSwgcGFyZW50UHJvcHMsIHBhcmVudEluc3RhbmNlLCB0ZXh0LCBpc0NvbmN1cnJlbnRNb2RlKSB7XG4gIHtcbiAgICBpZiAoaXNDb25jdXJyZW50TW9kZSB8fCBwYXJlbnRQcm9wc1tTVVBQUkVTU19IWURSQVRJT05fV0FSTklORyQxXSAhPT0gdHJ1ZSkge1xuICAgICAgd2FybkZvckluc2VydGVkSHlkcmF0ZWRUZXh0KHBhcmVudEluc3RhbmNlLCB0ZXh0KTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGVycm9ySHlkcmF0aW5nQ29udGFpbmVyKHBhcmVudENvbnRhaW5lcikge1xuICB7XG4gICAgLy8gVE9ETzogVGhpcyBnZXRzIGxvZ2dlZCBieSBvblJlY292ZXJhYmxlRXJyb3IsIHRvbywgc28gd2Ugc2hvdWxkIGJlXG4gICAgLy8gYWJsZSB0byByZW1vdmUgaXQuXG4gICAgZXJyb3IoJ0FuIGVycm9yIG9jY3VycmVkIGR1cmluZyBoeWRyYXRpb24uIFRoZSBzZXJ2ZXIgSFRNTCB3YXMgcmVwbGFjZWQgd2l0aCBjbGllbnQgY29udGVudCBpbiA8JXM+LicsIHBhcmVudENvbnRhaW5lci5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKTtcbiAgfVxufVxuZnVuY3Rpb24gcHJlcGFyZVBvcnRhbE1vdW50KHBvcnRhbEluc3RhbmNlKSB7XG4gIGxpc3RlblRvQWxsU3VwcG9ydGVkRXZlbnRzKHBvcnRhbEluc3RhbmNlKTtcbn1cblxudmFyIHJhbmRvbUtleSA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpO1xudmFyIGludGVybmFsSW5zdGFuY2VLZXkgPSAnX19yZWFjdEZpYmVyJCcgKyByYW5kb21LZXk7XG52YXIgaW50ZXJuYWxQcm9wc0tleSA9ICdfX3JlYWN0UHJvcHMkJyArIHJhbmRvbUtleTtcbnZhciBpbnRlcm5hbENvbnRhaW5lckluc3RhbmNlS2V5ID0gJ19fcmVhY3RDb250YWluZXIkJyArIHJhbmRvbUtleTtcbnZhciBpbnRlcm5hbEV2ZW50SGFuZGxlcnNLZXkgPSAnX19yZWFjdEV2ZW50cyQnICsgcmFuZG9tS2V5O1xudmFyIGludGVybmFsRXZlbnRIYW5kbGVyTGlzdGVuZXJzS2V5ID0gJ19fcmVhY3RMaXN0ZW5lcnMkJyArIHJhbmRvbUtleTtcbnZhciBpbnRlcm5hbEV2ZW50SGFuZGxlc1NldEtleSA9ICdfX3JlYWN0SGFuZGxlcyQnICsgcmFuZG9tS2V5O1xuZnVuY3Rpb24gZGV0YWNoRGVsZXRlZEluc3RhbmNlKG5vZGUpIHtcbiAgLy8gVE9ETzogVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBvbiBob3N0IGNvbXBvbmVudHMuIEkgZG9uJ3QgdGhpbmsgYWxsIG9mXG4gIC8vIHRoZXNlIGZpZWxkcyBhcmUgcmVsZXZhbnQuXG4gIGRlbGV0ZSBub2RlW2ludGVybmFsSW5zdGFuY2VLZXldO1xuICBkZWxldGUgbm9kZVtpbnRlcm5hbFByb3BzS2V5XTtcbiAgZGVsZXRlIG5vZGVbaW50ZXJuYWxFdmVudEhhbmRsZXJzS2V5XTtcbiAgZGVsZXRlIG5vZGVbaW50ZXJuYWxFdmVudEhhbmRsZXJMaXN0ZW5lcnNLZXldO1xuICBkZWxldGUgbm9kZVtpbnRlcm5hbEV2ZW50SGFuZGxlc1NldEtleV07XG59XG5mdW5jdGlvbiBwcmVjYWNoZUZpYmVyTm9kZShob3N0SW5zdCwgbm9kZSkge1xuICBub2RlW2ludGVybmFsSW5zdGFuY2VLZXldID0gaG9zdEluc3Q7XG59XG5mdW5jdGlvbiBtYXJrQ29udGFpbmVyQXNSb290KGhvc3RSb290LCBub2RlKSB7XG4gIG5vZGVbaW50ZXJuYWxDb250YWluZXJJbnN0YW5jZUtleV0gPSBob3N0Um9vdDtcbn1cbmZ1bmN0aW9uIHVubWFya0NvbnRhaW5lckFzUm9vdChub2RlKSB7XG4gIG5vZGVbaW50ZXJuYWxDb250YWluZXJJbnN0YW5jZUtleV0gPSBudWxsO1xufVxuZnVuY3Rpb24gaXNDb250YWluZXJNYXJrZWRBc1Jvb3Qobm9kZSkge1xuICByZXR1cm4gISFub2RlW2ludGVybmFsQ29udGFpbmVySW5zdGFuY2VLZXldO1xufSAvLyBHaXZlbiBhIERPTSBub2RlLCByZXR1cm4gdGhlIGNsb3Nlc3QgSG9zdENvbXBvbmVudCBvciBIb3N0VGV4dCBmaWJlciBhbmNlc3Rvci5cbi8vIElmIHRoZSB0YXJnZXQgbm9kZSBpcyBwYXJ0IG9mIGEgaHlkcmF0ZWQgb3Igbm90IHlldCByZW5kZXJlZCBzdWJ0cmVlLCB0aGVuXG4vLyB0aGlzIG1heSBhbHNvIHJldHVybiBhIFN1c3BlbnNlQ29tcG9uZW50IG9yIEhvc3RSb290IHRvIGluZGljYXRlIHRoYXQuXG4vLyBDb25jZXB0dWFsbHkgdGhlIEhvc3RSb290IGZpYmVyIGlzIGEgY2hpbGQgb2YgdGhlIENvbnRhaW5lciBub2RlLiBTbyBpZiB5b3Vcbi8vIHBhc3MgdGhlIENvbnRhaW5lciBub2RlIGFzIHRoZSB0YXJnZXROb2RlLCB5b3Ugd2lsbCBub3QgYWN0dWFsbHkgZ2V0IHRoZVxuLy8gSG9zdFJvb3QgYmFjay4gVG8gZ2V0IHRvIHRoZSBIb3N0Um9vdCwgeW91IG5lZWQgdG8gcGFzcyBhIGNoaWxkIG9mIGl0LlxuLy8gVGhlIHNhbWUgdGhpbmcgYXBwbGllcyB0byBTdXNwZW5zZSBib3VuZGFyaWVzLlxuXG5mdW5jdGlvbiBnZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZSh0YXJnZXROb2RlKSB7XG4gIHZhciB0YXJnZXRJbnN0ID0gdGFyZ2V0Tm9kZVtpbnRlcm5hbEluc3RhbmNlS2V5XTtcblxuICBpZiAodGFyZ2V0SW5zdCkge1xuICAgIC8vIERvbid0IHJldHVybiBIb3N0Um9vdCBvciBTdXNwZW5zZUNvbXBvbmVudCBoZXJlLlxuICAgIHJldHVybiB0YXJnZXRJbnN0O1xuICB9IC8vIElmIHRoZSBkaXJlY3QgZXZlbnQgdGFyZ2V0IGlzbid0IGEgUmVhY3Qgb3duZWQgRE9NIG5vZGUsIHdlIG5lZWQgdG8gbG9va1xuICAvLyB0byBzZWUgaWYgb25lIG9mIGl0cyBwYXJlbnRzIGlzIGEgUmVhY3Qgb3duZWQgRE9NIG5vZGUuXG5cblxuICB2YXIgcGFyZW50Tm9kZSA9IHRhcmdldE5vZGUucGFyZW50Tm9kZTtcblxuICB3aGlsZSAocGFyZW50Tm9kZSkge1xuICAgIC8vIFdlJ2xsIGNoZWNrIGlmIHRoaXMgaXMgYSBjb250YWluZXIgcm9vdCB0aGF0IGNvdWxkIGluY2x1ZGVcbiAgICAvLyBSZWFjdCBub2RlcyBpbiB0aGUgZnV0dXJlLiBXZSBuZWVkIHRvIGNoZWNrIHRoaXMgZmlyc3QgYmVjYXVzZVxuICAgIC8vIGlmIHdlJ3JlIGEgY2hpbGQgb2YgYSBkZWh5ZHJhdGVkIGNvbnRhaW5lciwgd2UgbmVlZCB0byBmaXJzdFxuICAgIC8vIGZpbmQgdGhhdCBpbm5lciBjb250YWluZXIgYmVmb3JlIG1vdmluZyBvbiB0byBmaW5kaW5nIHRoZSBwYXJlbnRcbiAgICAvLyBpbnN0YW5jZS4gTm90ZSB0aGF0IHdlIGRvbid0IGNoZWNrIHRoaXMgZmllbGQgb24gIHRoZSB0YXJnZXROb2RlXG4gICAgLy8gaXRzZWxmIGJlY2F1c2UgdGhlIGZpYmVycyBhcmUgY29uY2VwdHVhbGx5IGJldHdlZW4gdGhlIGNvbnRhaW5lclxuICAgIC8vIG5vZGUgYW5kIHRoZSBmaXJzdCBjaGlsZC4gSXQgaXNuJ3Qgc3Vycm91bmRpbmcgdGhlIGNvbnRhaW5lciBub2RlLlxuICAgIC8vIElmIGl0J3Mgbm90IGEgY29udGFpbmVyLCB3ZSBjaGVjayBpZiBpdCdzIGFuIGluc3RhbmNlLlxuICAgIHRhcmdldEluc3QgPSBwYXJlbnROb2RlW2ludGVybmFsQ29udGFpbmVySW5zdGFuY2VLZXldIHx8IHBhcmVudE5vZGVbaW50ZXJuYWxJbnN0YW5jZUtleV07XG5cbiAgICBpZiAodGFyZ2V0SW5zdCkge1xuICAgICAgLy8gU2luY2UgdGhpcyB3YXNuJ3QgdGhlIGRpcmVjdCB0YXJnZXQgb2YgdGhlIGV2ZW50LCB3ZSBtaWdodCBoYXZlXG4gICAgICAvLyBzdGVwcGVkIHBhc3QgZGVoeWRyYXRlZCBET00gbm9kZXMgdG8gZ2V0IGhlcmUuIEhvd2V2ZXIgdGhleSBjb3VsZFxuICAgICAgLy8gYWxzbyBoYXZlIGJlZW4gbm9uLVJlYWN0IG5vZGVzLiBXZSBuZWVkIHRvIGFuc3dlciB3aGljaCBvbmUuXG4gICAgICAvLyBJZiB3ZSB0aGUgaW5zdGFuY2UgZG9lc24ndCBoYXZlIGFueSBjaGlsZHJlbiwgdGhlbiB0aGVyZSBjYW4ndCBiZVxuICAgICAgLy8gYSBuZXN0ZWQgc3VzcGVuc2UgYm91bmRhcnkgd2l0aGluIGl0LiBTbyB3ZSBjYW4gdXNlIHRoaXMgYXMgYSBmYXN0XG4gICAgICAvLyBiYWlsb3V0LiBNb3N0IG9mIHRoZSB0aW1lLCB3aGVuIHBlb3BsZSBhZGQgbm9uLVJlYWN0IGNoaWxkcmVuIHRvXG4gICAgICAvLyB0aGUgdHJlZSwgaXQgaXMgdXNpbmcgYSByZWYgdG8gYSBjaGlsZC1sZXNzIERPTSBub2RlLlxuICAgICAgLy8gTm9ybWFsbHkgd2UnZCBvbmx5IG5lZWQgdG8gY2hlY2sgb25lIG9mIHRoZSBmaWJlcnMgYmVjYXVzZSBpZiBpdFxuICAgICAgLy8gaGFzIGV2ZXIgZ29uZSBmcm9tIGhhdmluZyBjaGlsZHJlbiB0byBkZWxldGluZyB0aGVtIG9yIHZpY2UgdmVyc2FcbiAgICAgIC8vIGl0IHdvdWxkIGhhdmUgZGVsZXRlZCB0aGUgZGVoeWRyYXRlZCBib3VuZGFyeSBuZXN0ZWQgaW5zaWRlIGFscmVhZHkuXG4gICAgICAvLyBIb3dldmVyLCBzaW5jZSB0aGUgSG9zdFJvb3Qgc3RhcnRzIG91dCB3aXRoIGFuIGFsdGVybmF0ZSBpdCBtaWdodFxuICAgICAgLy8gaGF2ZSBvbmUgb24gdGhlIGFsdGVybmF0ZSBzbyB3ZSBuZWVkIHRvIGNoZWNrIGluIGNhc2UgdGhpcyB3YXMgYVxuICAgICAgLy8gcm9vdC5cbiAgICAgIHZhciBhbHRlcm5hdGUgPSB0YXJnZXRJbnN0LmFsdGVybmF0ZTtcblxuICAgICAgaWYgKHRhcmdldEluc3QuY2hpbGQgIT09IG51bGwgfHwgYWx0ZXJuYXRlICE9PSBudWxsICYmIGFsdGVybmF0ZS5jaGlsZCAhPT0gbnVsbCkge1xuICAgICAgICAvLyBOZXh0IHdlIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGUgbm9kZSB0aGF0IHNraXBwZWQgcGFzdCBpc1xuICAgICAgICAvLyBuZXN0ZWQgd2l0aGluIGEgZGVoeWRyYXRlZCBib3VuZGFyeSBhbmQgaWYgc28sIHdoaWNoIG9uZS5cbiAgICAgICAgdmFyIHN1c3BlbnNlSW5zdGFuY2UgPSBnZXRQYXJlbnRTdXNwZW5zZUluc3RhbmNlKHRhcmdldE5vZGUpO1xuXG4gICAgICAgIHdoaWxlIChzdXNwZW5zZUluc3RhbmNlICE9PSBudWxsKSB7XG4gICAgICAgICAgLy8gV2UgZm91bmQgYSBzdXNwZW5zZSBpbnN0YW5jZS4gVGhhdCBtZWFucyB0aGF0IHdlIGhhdmVuJ3RcbiAgICAgICAgICAvLyBoeWRyYXRlZCBpdCB5ZXQuIEV2ZW4gdGhvdWdoIHdlIGxlYXZlIHRoZSBjb21tZW50cyBpbiB0aGVcbiAgICAgICAgICAvLyBET00gYWZ0ZXIgaHlkcmF0aW5nLCBhbmQgdGhlcmUgYXJlIGJvdW5kYXJpZXMgaW4gdGhlIERPTVxuICAgICAgICAgIC8vIHRoYXQgY291bGQgYWxyZWFkeSBiZSBoeWRyYXRlZCwgd2Ugd291bGRuJ3QgaGF2ZSBmb3VuZCB0aGVtXG4gICAgICAgICAgLy8gdGhyb3VnaCB0aGlzIHBhc3Mgc2luY2UgaWYgdGhlIHRhcmdldCBpcyBoeWRyYXRlZCBpdCB3b3VsZFxuICAgICAgICAgIC8vIGhhdmUgaGFkIGFuIGludGVybmFsSW5zdGFuY2VLZXkgb24gaXQuXG4gICAgICAgICAgLy8gTGV0J3MgZ2V0IHRoZSBmaWJlciBhc3NvY2lhdGVkIHdpdGggdGhlIFN1c3BlbnNlQ29tcG9uZW50XG4gICAgICAgICAgLy8gYXMgdGhlIGRlZXBlc3QgaW5zdGFuY2UuXG4gICAgICAgICAgdmFyIHRhcmdldFN1c3BlbnNlSW5zdCA9IHN1c3BlbnNlSW5zdGFuY2VbaW50ZXJuYWxJbnN0YW5jZUtleV07XG5cbiAgICAgICAgICBpZiAodGFyZ2V0U3VzcGVuc2VJbnN0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0U3VzcGVuc2VJbnN0O1xuICAgICAgICAgIH0gLy8gSWYgd2UgZG9uJ3QgZmluZCBhIEZpYmVyIG9uIHRoZSBjb21tZW50LCBpdCBtaWdodCBiZSBiZWNhdXNlXG4gICAgICAgICAgLy8gd2UgaGF2ZW4ndCBnb3R0ZW4gdG8gaHlkcmF0ZSBpdCB5ZXQuIFRoZXJlIG1pZ2h0IHN0aWxsIGJlIGFcbiAgICAgICAgICAvLyBwYXJlbnQgYm91bmRhcnkgdGhhdCBoYXNuJ3QgYWJvdmUgdGhpcyBvbmUgc28gd2UgbmVlZCB0byBmaW5kXG4gICAgICAgICAgLy8gdGhlIG91dGVyIG1vc3QgdGhhdCBpcyBrbm93bi5cblxuXG4gICAgICAgICAgc3VzcGVuc2VJbnN0YW5jZSA9IGdldFBhcmVudFN1c3BlbnNlSW5zdGFuY2Uoc3VzcGVuc2VJbnN0YW5jZSk7IC8vIElmIHdlIGRvbid0IGZpbmQgb25lLCB0aGVuIHRoYXQgc2hvdWxkIG1lYW4gdGhhdCB0aGUgcGFyZW50XG4gICAgICAgICAgLy8gaG9zdCBjb21wb25lbnQgYWxzbyBoYXNuJ3QgaHlkcmF0ZWQgeWV0LiBXZSBjYW4gcmV0dXJuIGl0XG4gICAgICAgICAgLy8gYmVsb3cgc2luY2UgaXQgd2lsbCBiYWlsIG91dCBvbiB0aGUgaXNNb3VudGVkIGNoZWNrIGxhdGVyLlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0YXJnZXRJbnN0O1xuICAgIH1cblxuICAgIHRhcmdldE5vZGUgPSBwYXJlbnROb2RlO1xuICAgIHBhcmVudE5vZGUgPSB0YXJnZXROb2RlLnBhcmVudE5vZGU7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbi8qKlxuICogR2l2ZW4gYSBET00gbm9kZSwgcmV0dXJuIHRoZSBSZWFjdERPTUNvbXBvbmVudCBvciBSZWFjdERPTVRleHRDb21wb25lbnRcbiAqIGluc3RhbmNlLCBvciBudWxsIGlmIHRoZSBub2RlIHdhcyBub3QgcmVuZGVyZWQgYnkgdGhpcyBSZWFjdC5cbiAqL1xuXG5mdW5jdGlvbiBnZXRJbnN0YW5jZUZyb21Ob2RlKG5vZGUpIHtcbiAgdmFyIGluc3QgPSBub2RlW2ludGVybmFsSW5zdGFuY2VLZXldIHx8IG5vZGVbaW50ZXJuYWxDb250YWluZXJJbnN0YW5jZUtleV07XG5cbiAgaWYgKGluc3QpIHtcbiAgICBpZiAoaW5zdC50YWcgPT09IEhvc3RDb21wb25lbnQgfHwgaW5zdC50YWcgPT09IEhvc3RUZXh0IHx8IGluc3QudGFnID09PSBTdXNwZW5zZUNvbXBvbmVudCB8fCBpbnN0LnRhZyA9PT0gSG9zdFJvb3QpIHtcbiAgICAgIHJldHVybiBpbnN0O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbi8qKlxuICogR2l2ZW4gYSBSZWFjdERPTUNvbXBvbmVudCBvciBSZWFjdERPTVRleHRDb21wb25lbnQsIHJldHVybiB0aGUgY29ycmVzcG9uZGluZ1xuICogRE9NIG5vZGUuXG4gKi9cblxuZnVuY3Rpb24gZ2V0Tm9kZUZyb21JbnN0YW5jZShpbnN0KSB7XG4gIGlmIChpbnN0LnRhZyA9PT0gSG9zdENvbXBvbmVudCB8fCBpbnN0LnRhZyA9PT0gSG9zdFRleHQpIHtcbiAgICAvLyBJbiBGaWJlciB0aGlzLCBpcyBqdXN0IHRoZSBzdGF0ZSBub2RlIHJpZ2h0IG5vdy4gV2UgYXNzdW1lIGl0IHdpbGwgYmVcbiAgICAvLyBhIGhvc3QgY29tcG9uZW50IG9yIGhvc3QgdGV4dC5cbiAgICByZXR1cm4gaW5zdC5zdGF0ZU5vZGU7XG4gIH0gLy8gV2l0aG91dCB0aGlzIGZpcnN0IGludmFyaWFudCwgcGFzc2luZyBhIG5vbi1ET00tY29tcG9uZW50IHRyaWdnZXJzIHRoZSBuZXh0XG4gIC8vIGludmFyaWFudCBmb3IgYSBtaXNzaW5nIHBhcmVudCwgd2hpY2ggaXMgc3VwZXIgY29uZnVzaW5nLlxuXG5cbiAgdGhyb3cgbmV3IEVycm9yKCdnZXROb2RlRnJvbUluc3RhbmNlOiBJbnZhbGlkIGFyZ3VtZW50LicpO1xufVxuZnVuY3Rpb24gZ2V0RmliZXJDdXJyZW50UHJvcHNGcm9tTm9kZShub2RlKSB7XG4gIHJldHVybiBub2RlW2ludGVybmFsUHJvcHNLZXldIHx8IG51bGw7XG59XG5mdW5jdGlvbiB1cGRhdGVGaWJlclByb3BzKG5vZGUsIHByb3BzKSB7XG4gIG5vZGVbaW50ZXJuYWxQcm9wc0tleV0gPSBwcm9wcztcbn1cbmZ1bmN0aW9uIGdldEV2ZW50TGlzdGVuZXJTZXQobm9kZSkge1xuICB2YXIgZWxlbWVudExpc3RlbmVyU2V0ID0gbm9kZVtpbnRlcm5hbEV2ZW50SGFuZGxlcnNLZXldO1xuXG4gIGlmIChlbGVtZW50TGlzdGVuZXJTZXQgPT09IHVuZGVmaW5lZCkge1xuICAgIGVsZW1lbnRMaXN0ZW5lclNldCA9IG5vZGVbaW50ZXJuYWxFdmVudEhhbmRsZXJzS2V5XSA9IG5ldyBTZXQoKTtcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50TGlzdGVuZXJTZXQ7XG59XG5cbnZhciBsb2dnZWRUeXBlRmFpbHVyZXMgPSB7fTtcbnZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuXG5mdW5jdGlvbiBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KSB7XG4gIHtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICB2YXIgc3RhY2sgPSBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoZWxlbWVudC50eXBlLCBlbGVtZW50Ll9zb3VyY2UsIG93bmVyID8gb3duZXIudHlwZSA6IG51bGwpO1xuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLnNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUkMS5zZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrUHJvcFR5cGVzKHR5cGVTcGVjcywgdmFsdWVzLCBsb2NhdGlvbiwgY29tcG9uZW50TmFtZSwgZWxlbWVudCkge1xuICB7XG4gICAgLy8gJEZsb3dGaXhNZSBUaGlzIGlzIG9rYXkgYnV0IEZsb3cgZG9lc24ndCBrbm93IGl0LlxuICAgIHZhciBoYXMgPSBGdW5jdGlvbi5jYWxsLmJpbmQoaGFzT3duUHJvcGVydHkpO1xuXG4gICAgZm9yICh2YXIgdHlwZVNwZWNOYW1lIGluIHR5cGVTcGVjcykge1xuICAgICAgaWYgKGhhcyh0eXBlU3BlY3MsIHR5cGVTcGVjTmFtZSkpIHtcbiAgICAgICAgdmFyIGVycm9yJDEgPSB2b2lkIDA7IC8vIFByb3AgdHlwZSB2YWxpZGF0aW9uIG1heSB0aHJvdy4gSW4gY2FzZSB0aGV5IGRvLCB3ZSBkb24ndCB3YW50IHRvXG4gICAgICAgIC8vIGZhaWwgdGhlIHJlbmRlciBwaGFzZSB3aGVyZSBpdCBkaWRuJ3QgZmFpbCBiZWZvcmUuIFNvIHdlIGxvZyBpdC5cbiAgICAgICAgLy8gQWZ0ZXIgdGhlc2UgaGF2ZSBiZWVuIGNsZWFuZWQgdXAsIHdlJ2xsIGxldCB0aGVtIHRocm93LlxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGFuIGludmFyaWFudCB0aGF0IGdldHMgY2F1Z2h0LiBJdCdzIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYmVoYXZpb3IgYXMgd2l0aG91dCB0aGlzIHN0YXRlbWVudCBleGNlcHQgd2l0aCBhIGJldHRlciBtZXNzYWdlLlxuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9wcm9kLWVycm9yLWNvZGVzXG4gICAgICAgICAgICB2YXIgZXJyID0gRXJyb3IoKGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJykgKyAnOiAnICsgbG9jYXRpb24gKyAnIHR5cGUgYCcgKyB0eXBlU3BlY05hbWUgKyAnYCBpcyBpbnZhbGlkOyAnICsgJ2l0IG11c3QgYmUgYSBmdW5jdGlvbiwgdXN1YWxseSBmcm9tIHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZSwgYnV0IHJlY2VpdmVkIGAnICsgdHlwZW9mIHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdICsgJ2AuJyArICdUaGlzIG9mdGVuIGhhcHBlbnMgYmVjYXVzZSBvZiB0eXBvcyBzdWNoIGFzIGBQcm9wVHlwZXMuZnVuY3Rpb25gIGluc3RlYWQgb2YgYFByb3BUeXBlcy5mdW5jYC4nKTtcbiAgICAgICAgICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGVycm9yJDEgPSB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSh2YWx1ZXMsIHR5cGVTcGVjTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIG51bGwsICdTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCcpO1xuICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgIGVycm9yJDEgPSBleDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlcnJvciQxICYmICEoZXJyb3IkMSBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KGVsZW1lbnQpO1xuXG4gICAgICAgICAgZXJyb3IoJyVzOiB0eXBlIHNwZWNpZmljYXRpb24gb2YgJXMnICsgJyBgJXNgIGlzIGludmFsaWQ7IHRoZSB0eXBlIGNoZWNrZXIgJyArICdmdW5jdGlvbiBtdXN0IHJldHVybiBgbnVsbGAgb3IgYW4gYEVycm9yYCBidXQgcmV0dXJuZWQgYSAlcy4gJyArICdZb3UgbWF5IGhhdmUgZm9yZ290dGVuIHRvIHBhc3MgYW4gYXJndW1lbnQgdG8gdGhlIHR5cGUgY2hlY2tlciAnICsgJ2NyZWF0b3IgKGFycmF5T2YsIGluc3RhbmNlT2YsIG9iamVjdE9mLCBvbmVPZiwgb25lT2ZUeXBlLCBhbmQgJyArICdzaGFwZSBhbGwgcmVxdWlyZSBhbiBhcmd1bWVudCkuJywgY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnLCBsb2NhdGlvbiwgdHlwZVNwZWNOYW1lLCB0eXBlb2YgZXJyb3IkMSk7XG5cbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlcnJvciQxIGluc3RhbmNlb2YgRXJyb3IgJiYgIShlcnJvciQxLm1lc3NhZ2UgaW4gbG9nZ2VkVHlwZUZhaWx1cmVzKSkge1xuICAgICAgICAgIC8vIE9ubHkgbW9uaXRvciB0aGlzIGZhaWx1cmUgb25jZSBiZWNhdXNlIHRoZXJlIHRlbmRzIHRvIGJlIGEgbG90IG9mIHRoZVxuICAgICAgICAgIC8vIHNhbWUgZXJyb3IuXG4gICAgICAgICAgbG9nZ2VkVHlwZUZhaWx1cmVzW2Vycm9yJDEubWVzc2FnZV0gPSB0cnVlO1xuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KGVsZW1lbnQpO1xuXG4gICAgICAgICAgZXJyb3IoJ0ZhaWxlZCAlcyB0eXBlOiAlcycsIGxvY2F0aW9uLCBlcnJvciQxLm1lc3NhZ2UpO1xuXG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxudmFyIHZhbHVlU3RhY2sgPSBbXTtcbnZhciBmaWJlclN0YWNrO1xuXG57XG4gIGZpYmVyU3RhY2sgPSBbXTtcbn1cblxudmFyIGluZGV4ID0gLTE7XG5cbmZ1bmN0aW9uIGNyZWF0ZUN1cnNvcihkZWZhdWx0VmFsdWUpIHtcbiAgcmV0dXJuIHtcbiAgICBjdXJyZW50OiBkZWZhdWx0VmFsdWVcbiAgfTtcbn1cblxuZnVuY3Rpb24gcG9wKGN1cnNvciwgZmliZXIpIHtcbiAgaWYgKGluZGV4IDwgMCkge1xuICAgIHtcbiAgICAgIGVycm9yKCdVbmV4cGVjdGVkIHBvcC4nKTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH1cblxuICB7XG4gICAgaWYgKGZpYmVyICE9PSBmaWJlclN0YWNrW2luZGV4XSkge1xuICAgICAgZXJyb3IoJ1VuZXhwZWN0ZWQgRmliZXIgcG9wcGVkLicpO1xuICAgIH1cbiAgfVxuXG4gIGN1cnNvci5jdXJyZW50ID0gdmFsdWVTdGFja1tpbmRleF07XG4gIHZhbHVlU3RhY2tbaW5kZXhdID0gbnVsbDtcblxuICB7XG4gICAgZmliZXJTdGFja1tpbmRleF0gPSBudWxsO1xuICB9XG5cbiAgaW5kZXgtLTtcbn1cblxuZnVuY3Rpb24gcHVzaChjdXJzb3IsIHZhbHVlLCBmaWJlcikge1xuICBpbmRleCsrO1xuICB2YWx1ZVN0YWNrW2luZGV4XSA9IGN1cnNvci5jdXJyZW50O1xuXG4gIHtcbiAgICBmaWJlclN0YWNrW2luZGV4XSA9IGZpYmVyO1xuICB9XG5cbiAgY3Vyc29yLmN1cnJlbnQgPSB2YWx1ZTtcbn1cblxudmFyIHdhcm5lZEFib3V0TWlzc2luZ0dldENoaWxkQ29udGV4dDtcblxue1xuICB3YXJuZWRBYm91dE1pc3NpbmdHZXRDaGlsZENvbnRleHQgPSB7fTtcbn1cblxudmFyIGVtcHR5Q29udGV4dE9iamVjdCA9IHt9O1xuXG57XG4gIE9iamVjdC5mcmVlemUoZW1wdHlDb250ZXh0T2JqZWN0KTtcbn0gLy8gQSBjdXJzb3IgdG8gdGhlIGN1cnJlbnQgbWVyZ2VkIGNvbnRleHQgb2JqZWN0IG9uIHRoZSBzdGFjay5cblxuXG52YXIgY29udGV4dFN0YWNrQ3Vyc29yID0gY3JlYXRlQ3Vyc29yKGVtcHR5Q29udGV4dE9iamVjdCk7IC8vIEEgY3Vyc29yIHRvIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGNvbnRleHQgaGFzIGNoYW5nZWQuXG5cbnZhciBkaWRQZXJmb3JtV29ya1N0YWNrQ3Vyc29yID0gY3JlYXRlQ3Vyc29yKGZhbHNlKTsgLy8gS2VlcCB0cmFjayBvZiB0aGUgcHJldmlvdXMgY29udGV4dCBvYmplY3QgdGhhdCB3YXMgb24gdGhlIHN0YWNrLlxuLy8gV2UgdXNlIHRoaXMgdG8gZ2V0IGFjY2VzcyB0byB0aGUgcGFyZW50IGNvbnRleHQgYWZ0ZXIgd2UgaGF2ZSBhbHJlYWR5XG4vLyBwdXNoZWQgdGhlIG5leHQgY29udGV4dCBwcm92aWRlciwgYW5kIG5vdyBuZWVkIHRvIG1lcmdlIHRoZWlyIGNvbnRleHRzLlxuXG52YXIgcHJldmlvdXNDb250ZXh0ID0gZW1wdHlDb250ZXh0T2JqZWN0O1xuXG5mdW5jdGlvbiBnZXRVbm1hc2tlZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgZGlkUHVzaE93bkNvbnRleHRJZlByb3ZpZGVyKSB7XG4gIHtcbiAgICBpZiAoZGlkUHVzaE93bkNvbnRleHRJZlByb3ZpZGVyICYmIGlzQ29udGV4dFByb3ZpZGVyKENvbXBvbmVudCkpIHtcbiAgICAgIC8vIElmIHRoZSBmaWJlciBpcyBhIGNvbnRleHQgcHJvdmlkZXIgaXRzZWxmLCB3aGVuIHdlIHJlYWQgaXRzIGNvbnRleHRcbiAgICAgIC8vIHdlIG1heSBoYXZlIGFscmVhZHkgcHVzaGVkIGl0cyBvd24gY2hpbGQgY29udGV4dCBvbiB0aGUgc3RhY2suIEEgY29udGV4dFxuICAgICAgLy8gcHJvdmlkZXIgc2hvdWxkIG5vdCBcInNlZVwiIGl0cyBvd24gY2hpbGQgY29udGV4dC4gVGhlcmVmb3JlIHdlIHJlYWQgdGhlXG4gICAgICAvLyBwcmV2aW91cyAocGFyZW50KSBjb250ZXh0IGluc3RlYWQgZm9yIGEgY29udGV4dCBwcm92aWRlci5cbiAgICAgIHJldHVybiBwcmV2aW91c0NvbnRleHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRleHRTdGFja0N1cnNvci5jdXJyZW50O1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhY2hlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgdW5tYXNrZWRDb250ZXh0LCBtYXNrZWRDb250ZXh0KSB7XG4gIHtcbiAgICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgaW5zdGFuY2UuX19yZWFjdEludGVybmFsTWVtb2l6ZWRVbm1hc2tlZENoaWxkQ29udGV4dCA9IHVubWFza2VkQ29udGV4dDtcbiAgICBpbnN0YW5jZS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1hc2tlZENoaWxkQ29udGV4dCA9IG1hc2tlZENvbnRleHQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0TWFza2VkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgdW5tYXNrZWRDb250ZXh0KSB7XG4gIHtcbiAgICB2YXIgdHlwZSA9IHdvcmtJblByb2dyZXNzLnR5cGU7XG4gICAgdmFyIGNvbnRleHRUeXBlcyA9IHR5cGUuY29udGV4dFR5cGVzO1xuXG4gICAgaWYgKCFjb250ZXh0VHlwZXMpIHtcbiAgICAgIHJldHVybiBlbXB0eUNvbnRleHRPYmplY3Q7XG4gICAgfSAvLyBBdm9pZCByZWNyZWF0aW5nIG1hc2tlZCBjb250ZXh0IHVubGVzcyB1bm1hc2tlZCBjb250ZXh0IGhhcyBjaGFuZ2VkLlxuICAgIC8vIEZhaWxpbmcgdG8gZG8gdGhpcyB3aWxsIHJlc3VsdCBpbiB1bm5lY2Vzc2FyeSBjYWxscyB0byBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzLlxuICAgIC8vIFRoaXMgbWF5IHRyaWdnZXIgaW5maW5pdGUgbG9vcHMgaWYgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyBjYWxscyBzZXRTdGF0ZS5cblxuXG4gICAgdmFyIGluc3RhbmNlID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuXG4gICAgaWYgKGluc3RhbmNlICYmIGluc3RhbmNlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkVW5tYXNrZWRDaGlsZENvbnRleHQgPT09IHVubWFza2VkQ29udGV4dCkge1xuICAgICAgcmV0dXJuIGluc3RhbmNlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWFza2VkQ2hpbGRDb250ZXh0O1xuICAgIH1cblxuICAgIHZhciBjb250ZXh0ID0ge307XG5cbiAgICBmb3IgKHZhciBrZXkgaW4gY29udGV4dFR5cGVzKSB7XG4gICAgICBjb250ZXh0W2tleV0gPSB1bm1hc2tlZENvbnRleHRba2V5XTtcbiAgICB9XG5cbiAgICB7XG4gICAgICB2YXIgbmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIod29ya0luUHJvZ3Jlc3MpIHx8ICdVbmtub3duJztcbiAgICAgIGNoZWNrUHJvcFR5cGVzKGNvbnRleHRUeXBlcywgY29udGV4dCwgJ2NvbnRleHQnLCBuYW1lKTtcbiAgICB9IC8vIENhY2hlIHVubWFza2VkIGNvbnRleHQgc28gd2UgY2FuIGF2b2lkIHJlY3JlYXRpbmcgbWFza2VkIGNvbnRleHQgdW5sZXNzIG5lY2Vzc2FyeS5cbiAgICAvLyBDb250ZXh0IGlzIGNyZWF0ZWQgYmVmb3JlIHRoZSBjbGFzcyBjb21wb25lbnQgaXMgaW5zdGFudGlhdGVkIHNvIGNoZWNrIGZvciBpbnN0YW5jZS5cblxuXG4gICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICBjYWNoZUNvbnRleHQod29ya0luUHJvZ3Jlc3MsIHVubWFza2VkQ29udGV4dCwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gaGFzQ29udGV4dENoYW5nZWQoKSB7XG4gIHtcbiAgICByZXR1cm4gZGlkUGVyZm9ybVdvcmtTdGFja0N1cnNvci5jdXJyZW50O1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzQ29udGV4dFByb3ZpZGVyKHR5cGUpIHtcbiAge1xuICAgIHZhciBjaGlsZENvbnRleHRUeXBlcyA9IHR5cGUuY2hpbGRDb250ZXh0VHlwZXM7XG4gICAgcmV0dXJuIGNoaWxkQ29udGV4dFR5cGVzICE9PSBudWxsICYmIGNoaWxkQ29udGV4dFR5cGVzICE9PSB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gcG9wQ29udGV4dChmaWJlcikge1xuICB7XG4gICAgcG9wKGRpZFBlcmZvcm1Xb3JrU3RhY2tDdXJzb3IsIGZpYmVyKTtcbiAgICBwb3AoY29udGV4dFN0YWNrQ3Vyc29yLCBmaWJlcik7XG4gIH1cbn1cblxuZnVuY3Rpb24gcG9wVG9wTGV2ZWxDb250ZXh0T2JqZWN0KGZpYmVyKSB7XG4gIHtcbiAgICBwb3AoZGlkUGVyZm9ybVdvcmtTdGFja0N1cnNvciwgZmliZXIpO1xuICAgIHBvcChjb250ZXh0U3RhY2tDdXJzb3IsIGZpYmVyKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwdXNoVG9wTGV2ZWxDb250ZXh0T2JqZWN0KGZpYmVyLCBjb250ZXh0LCBkaWRDaGFuZ2UpIHtcbiAge1xuICAgIGlmIChjb250ZXh0U3RhY2tDdXJzb3IuY3VycmVudCAhPT0gZW1wdHlDb250ZXh0T2JqZWN0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuZXhwZWN0ZWQgY29udGV4dCBmb3VuZCBvbiBzdGFjay4gJyArICdUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgIH1cblxuICAgIHB1c2goY29udGV4dFN0YWNrQ3Vyc29yLCBjb250ZXh0LCBmaWJlcik7XG4gICAgcHVzaChkaWRQZXJmb3JtV29ya1N0YWNrQ3Vyc29yLCBkaWRDaGFuZ2UsIGZpYmVyKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwcm9jZXNzQ2hpbGRDb250ZXh0KGZpYmVyLCB0eXBlLCBwYXJlbnRDb250ZXh0KSB7XG4gIHtcbiAgICB2YXIgaW5zdGFuY2UgPSBmaWJlci5zdGF0ZU5vZGU7XG4gICAgdmFyIGNoaWxkQ29udGV4dFR5cGVzID0gdHlwZS5jaGlsZENvbnRleHRUeXBlczsgLy8gVE9ETyAoYnZhdWdobikgUmVwbGFjZSB0aGlzIGJlaGF2aW9yIHdpdGggYW4gaW52YXJpYW50KCkgaW4gdGhlIGZ1dHVyZS5cbiAgICAvLyBJdCBoYXMgb25seSBiZWVuIGFkZGVkIGluIEZpYmVyIHRvIG1hdGNoIHRoZSAodW5pbnRlbnRpb25hbCkgYmVoYXZpb3IgaW4gU3RhY2suXG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmdldENoaWxkQ29udGV4dCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAge1xuICAgICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8ICdVbmtub3duJztcblxuICAgICAgICBpZiAoIXdhcm5lZEFib3V0TWlzc2luZ0dldENoaWxkQ29udGV4dFtjb21wb25lbnROYW1lXSkge1xuICAgICAgICAgIHdhcm5lZEFib3V0TWlzc2luZ0dldENoaWxkQ29udGV4dFtjb21wb25lbnROYW1lXSA9IHRydWU7XG5cbiAgICAgICAgICBlcnJvcignJXMuY2hpbGRDb250ZXh0VHlwZXMgaXMgc3BlY2lmaWVkIGJ1dCB0aGVyZSBpcyBubyBnZXRDaGlsZENvbnRleHQoKSBtZXRob2QgJyArICdvbiB0aGUgaW5zdGFuY2UuIFlvdSBjYW4gZWl0aGVyIGRlZmluZSBnZXRDaGlsZENvbnRleHQoKSBvbiAlcyBvciByZW1vdmUgJyArICdjaGlsZENvbnRleHRUeXBlcyBmcm9tIGl0LicsIGNvbXBvbmVudE5hbWUsIGNvbXBvbmVudE5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBwYXJlbnRDb250ZXh0O1xuICAgIH1cblxuICAgIHZhciBjaGlsZENvbnRleHQgPSBpbnN0YW5jZS5nZXRDaGlsZENvbnRleHQoKTtcblxuICAgIGZvciAodmFyIGNvbnRleHRLZXkgaW4gY2hpbGRDb250ZXh0KSB7XG4gICAgICBpZiAoIShjb250ZXh0S2V5IGluIGNoaWxkQ29udGV4dFR5cGVzKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8ICdVbmtub3duJykgKyBcIi5nZXRDaGlsZENvbnRleHQoKToga2V5IFxcXCJcIiArIGNvbnRleHRLZXkgKyBcIlxcXCIgaXMgbm90IGRlZmluZWQgaW4gY2hpbGRDb250ZXh0VHlwZXMuXCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHtcbiAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikgfHwgJ1Vua25vd24nO1xuICAgICAgY2hlY2tQcm9wVHlwZXMoY2hpbGRDb250ZXh0VHlwZXMsIGNoaWxkQ29udGV4dCwgJ2NoaWxkIGNvbnRleHQnLCBuYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXNzaWduKHt9LCBwYXJlbnRDb250ZXh0LCBjaGlsZENvbnRleHQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHB1c2hDb250ZXh0UHJvdmlkZXIod29ya0luUHJvZ3Jlc3MpIHtcbiAge1xuICAgIHZhciBpbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTsgLy8gV2UgcHVzaCB0aGUgY29udGV4dCBhcyBlYXJseSBhcyBwb3NzaWJsZSB0byBlbnN1cmUgc3RhY2sgaW50ZWdyaXR5LlxuICAgIC8vIElmIHRoZSBpbnN0YW5jZSBkb2VzIG5vdCBleGlzdCB5ZXQsIHdlIHdpbGwgcHVzaCBudWxsIGF0IGZpcnN0LFxuICAgIC8vIGFuZCByZXBsYWNlIGl0IG9uIHRoZSBzdGFjayBsYXRlciB3aGVuIGludmFsaWRhdGluZyB0aGUgY29udGV4dC5cblxuICAgIHZhciBtZW1vaXplZE1lcmdlZENoaWxkQ29udGV4dCA9IGluc3RhbmNlICYmIGluc3RhbmNlLl9fcmVhY3RJbnRlcm5hbE1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0IHx8IGVtcHR5Q29udGV4dE9iamVjdDsgLy8gUmVtZW1iZXIgdGhlIHBhcmVudCBjb250ZXh0IHNvIHdlIGNhbiBtZXJnZSB3aXRoIGl0IGxhdGVyLlxuICAgIC8vIEluaGVyaXQgdGhlIHBhcmVudCdzIGRpZC1wZXJmb3JtLXdvcmsgdmFsdWUgdG8gYXZvaWQgaW5hZHZlcnRlbnRseSBibG9ja2luZyB1cGRhdGVzLlxuXG4gICAgcHJldmlvdXNDb250ZXh0ID0gY29udGV4dFN0YWNrQ3Vyc29yLmN1cnJlbnQ7XG4gICAgcHVzaChjb250ZXh0U3RhY2tDdXJzb3IsIG1lbW9pemVkTWVyZ2VkQ2hpbGRDb250ZXh0LCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgcHVzaChkaWRQZXJmb3JtV29ya1N0YWNrQ3Vyc29yLCBkaWRQZXJmb3JtV29ya1N0YWNrQ3Vyc29yLmN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbnZhbGlkYXRlQ29udGV4dFByb3ZpZGVyKHdvcmtJblByb2dyZXNzLCB0eXBlLCBkaWRDaGFuZ2UpIHtcbiAge1xuICAgIHZhciBpbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcblxuICAgIGlmICghaW5zdGFuY2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdG8gaGF2ZSBhbiBpbnN0YW5jZSBieSB0aGlzIHBvaW50LiAnICsgJ1RoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgfVxuXG4gICAgaWYgKGRpZENoYW5nZSkge1xuICAgICAgLy8gTWVyZ2UgcGFyZW50IGFuZCBvd24gY29udGV4dC5cbiAgICAgIC8vIFNraXAgdGhpcyBpZiB3ZSdyZSBub3QgdXBkYXRpbmcgZHVlIHRvIHNDVS5cbiAgICAgIC8vIFRoaXMgYXZvaWRzIHVubmVjZXNzYXJpbHkgcmVjb21wdXRpbmcgbWVtb2l6ZWQgdmFsdWVzLlxuICAgICAgdmFyIG1lcmdlZENvbnRleHQgPSBwcm9jZXNzQ2hpbGRDb250ZXh0KHdvcmtJblByb2dyZXNzLCB0eXBlLCBwcmV2aW91c0NvbnRleHQpO1xuICAgICAgaW5zdGFuY2UuX19yZWFjdEludGVybmFsTWVtb2l6ZWRNZXJnZWRDaGlsZENvbnRleHQgPSBtZXJnZWRDb250ZXh0OyAvLyBSZXBsYWNlIHRoZSBvbGQgKG9yIGVtcHR5KSBjb250ZXh0IHdpdGggdGhlIG5ldyBvbmUuXG4gICAgICAvLyBJdCBpcyBpbXBvcnRhbnQgdG8gdW53aW5kIHRoZSBjb250ZXh0IGluIHRoZSByZXZlcnNlIG9yZGVyLlxuXG4gICAgICBwb3AoZGlkUGVyZm9ybVdvcmtTdGFja0N1cnNvciwgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgcG9wKGNvbnRleHRTdGFja0N1cnNvciwgd29ya0luUHJvZ3Jlc3MpOyAvLyBOb3cgcHVzaCB0aGUgbmV3IGNvbnRleHQgYW5kIG1hcmsgdGhhdCBpdCBoYXMgY2hhbmdlZC5cblxuICAgICAgcHVzaChjb250ZXh0U3RhY2tDdXJzb3IsIG1lcmdlZENvbnRleHQsIHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHB1c2goZGlkUGVyZm9ybVdvcmtTdGFja0N1cnNvciwgZGlkQ2hhbmdlLCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvcChkaWRQZXJmb3JtV29ya1N0YWNrQ3Vyc29yLCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICBwdXNoKGRpZFBlcmZvcm1Xb3JrU3RhY2tDdXJzb3IsIGRpZENoYW5nZSwgd29ya0luUHJvZ3Jlc3MpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kQ3VycmVudFVubWFza2VkQ29udGV4dChmaWJlcikge1xuICB7XG4gICAgLy8gQ3VycmVudGx5IHRoaXMgaXMgb25seSB1c2VkIHdpdGggcmVuZGVyU3VidHJlZUludG9Db250YWluZXI7IG5vdCBzdXJlIGlmIGl0XG4gICAgLy8gbWFrZXMgc2Vuc2UgZWxzZXdoZXJlXG4gICAgaWYgKCFpc0ZpYmVyTW91bnRlZChmaWJlcikgfHwgZmliZXIudGFnICE9PSBDbGFzc0NvbXBvbmVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBzdWJ0cmVlIHBhcmVudCB0byBiZSBhIG1vdW50ZWQgY2xhc3MgY29tcG9uZW50LiAnICsgJ1RoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgfVxuXG4gICAgdmFyIG5vZGUgPSBmaWJlcjtcblxuICAgIGRvIHtcbiAgICAgIHN3aXRjaCAobm9kZS50YWcpIHtcbiAgICAgICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgICAgICByZXR1cm4gbm9kZS5zdGF0ZU5vZGUuY29udGV4dDtcblxuICAgICAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciBDb21wb25lbnQgPSBub2RlLnR5cGU7XG5cbiAgICAgICAgICAgIGlmIChpc0NvbnRleHRQcm92aWRlcihDb21wb25lbnQpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBub2RlLnN0YXRlTm9kZS5fX3JlYWN0SW50ZXJuYWxNZW1vaXplZE1lcmdlZENoaWxkQ29udGV4dDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBub2RlID0gbm9kZS5yZXR1cm47XG4gICAgfSB3aGlsZSAobm9kZSAhPT0gbnVsbCk7XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZvdW5kIHVuZXhwZWN0ZWQgZGV0YWNoZWQgc3VidHJlZSBwYXJlbnQuICcgKyAnVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgfVxufVxuXG52YXIgTGVnYWN5Um9vdCA9IDA7XG52YXIgQ29uY3VycmVudFJvb3QgPSAxO1xuXG52YXIgc3luY1F1ZXVlID0gbnVsbDtcbnZhciBpbmNsdWRlc0xlZ2FjeVN5bmNDYWxsYmFja3MgPSBmYWxzZTtcbnZhciBpc0ZsdXNoaW5nU3luY1F1ZXVlID0gZmFsc2U7XG5mdW5jdGlvbiBzY2hlZHVsZVN5bmNDYWxsYmFjayhjYWxsYmFjaykge1xuICAvLyBQdXNoIHRoaXMgY2FsbGJhY2sgaW50byBhbiBpbnRlcm5hbCBxdWV1ZS4gV2UnbGwgZmx1c2ggdGhlc2UgZWl0aGVyIGluXG4gIC8vIHRoZSBuZXh0IHRpY2ssIG9yIGVhcmxpZXIgaWYgc29tZXRoaW5nIGNhbGxzIGBmbHVzaFN5bmNDYWxsYmFja1F1ZXVlYC5cbiAgaWYgKHN5bmNRdWV1ZSA9PT0gbnVsbCkge1xuICAgIHN5bmNRdWV1ZSA9IFtjYWxsYmFja107XG4gIH0gZWxzZSB7XG4gICAgLy8gUHVzaCBvbnRvIGV4aXN0aW5nIHF1ZXVlLiBEb24ndCBuZWVkIHRvIHNjaGVkdWxlIGEgY2FsbGJhY2sgYmVjYXVzZVxuICAgIC8vIHdlIGFscmVhZHkgc2NoZWR1bGVkIG9uZSB3aGVuIHdlIGNyZWF0ZWQgdGhlIHF1ZXVlLlxuICAgIHN5bmNRdWV1ZS5wdXNoKGNhbGxiYWNrKTtcbiAgfVxufVxuZnVuY3Rpb24gc2NoZWR1bGVMZWdhY3lTeW5jQ2FsbGJhY2soY2FsbGJhY2spIHtcbiAgaW5jbHVkZXNMZWdhY3lTeW5jQ2FsbGJhY2tzID0gdHJ1ZTtcbiAgc2NoZWR1bGVTeW5jQ2FsbGJhY2soY2FsbGJhY2spO1xufVxuZnVuY3Rpb24gZmx1c2hTeW5jQ2FsbGJhY2tzT25seUluTGVnYWN5TW9kZSgpIHtcbiAgLy8gT25seSBmbHVzaGVzIHRoZSBxdWV1ZSBpZiB0aGVyZSdzIGEgbGVnYWN5IHN5bmMgY2FsbGJhY2sgc2NoZWR1bGVkLlxuICAvLyBUT0RPOiBUaGVyZSdzIG9ubHkgYSBzaW5nbGUgdHlwZSBvZiBjYWxsYmFjazogcGVyZm9ybVN5bmNPbldvcmtPblJvb3QuIFNvXG4gIC8vIGl0IG1pZ2h0IG1ha2UgbW9yZSBzZW5zZSBmb3IgdGhlIHF1ZXVlIHRvIGJlIGEgbGlzdCBvZiByb290cyBpbnN0ZWFkIG9mIGFcbiAgLy8gbGlzdCBvZiBnZW5lcmljIGNhbGxiYWNrcy4gVGhlbiB3ZSBjYW4gaGF2ZSB0d286IG9uZSBmb3IgbGVnYWN5IHJvb3RzLCBvbmVcbiAgLy8gZm9yIGNvbmN1cnJlbnQgcm9vdHMuIEFuZCB0aGlzIG1ldGhvZCB3b3VsZCBvbmx5IGZsdXNoIHRoZSBsZWdhY3kgb25lcy5cbiAgaWYgKGluY2x1ZGVzTGVnYWN5U3luY0NhbGxiYWNrcykge1xuICAgIGZsdXNoU3luY0NhbGxiYWNrcygpO1xuICB9XG59XG5mdW5jdGlvbiBmbHVzaFN5bmNDYWxsYmFja3MoKSB7XG4gIGlmICghaXNGbHVzaGluZ1N5bmNRdWV1ZSAmJiBzeW5jUXVldWUgIT09IG51bGwpIHtcbiAgICAvLyBQcmV2ZW50IHJlLWVudHJhbmNlLlxuICAgIGlzRmx1c2hpbmdTeW5jUXVldWUgPSB0cnVlO1xuICAgIHZhciBpID0gMDtcbiAgICB2YXIgcHJldmlvdXNVcGRhdGVQcmlvcml0eSA9IGdldEN1cnJlbnRVcGRhdGVQcmlvcml0eSgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIHZhciBpc1N5bmMgPSB0cnVlO1xuICAgICAgdmFyIHF1ZXVlID0gc3luY1F1ZXVlOyAvLyBUT0RPOiBJcyB0aGlzIG5lY2Vzc2FyeSBhbnltb3JlPyBUaGUgb25seSB1c2VyIGNvZGUgdGhhdCBydW5zIGluIHRoaXNcbiAgICAgIC8vIHF1ZXVlIGlzIGluIHRoZSByZW5kZXIgb3IgY29tbWl0IHBoYXNlcy5cblxuICAgICAgc2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KERpc2NyZXRlRXZlbnRQcmlvcml0eSk7XG5cbiAgICAgIGZvciAoOyBpIDwgcXVldWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGNhbGxiYWNrID0gcXVldWVbaV07XG5cbiAgICAgICAgZG8ge1xuICAgICAgICAgIGNhbGxiYWNrID0gY2FsbGJhY2soaXNTeW5jKTtcbiAgICAgICAgfSB3aGlsZSAoY2FsbGJhY2sgIT09IG51bGwpO1xuICAgICAgfVxuXG4gICAgICBzeW5jUXVldWUgPSBudWxsO1xuICAgICAgaW5jbHVkZXNMZWdhY3lTeW5jQ2FsbGJhY2tzID0gZmFsc2U7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIElmIHNvbWV0aGluZyB0aHJvd3MsIGxlYXZlIHRoZSByZW1haW5pbmcgY2FsbGJhY2tzIG9uIHRoZSBxdWV1ZS5cbiAgICAgIGlmIChzeW5jUXVldWUgIT09IG51bGwpIHtcbiAgICAgICAgc3luY1F1ZXVlID0gc3luY1F1ZXVlLnNsaWNlKGkgKyAxKTtcbiAgICAgIH0gLy8gUmVzdW1lIGZsdXNoaW5nIGluIHRoZSBuZXh0IHRpY2tcblxuXG4gICAgICBzY2hlZHVsZUNhbGxiYWNrKEltbWVkaWF0ZVByaW9yaXR5LCBmbHVzaFN5bmNDYWxsYmFja3MpO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldEN1cnJlbnRVcGRhdGVQcmlvcml0eShwcmV2aW91c1VwZGF0ZVByaW9yaXR5KTtcbiAgICAgIGlzRmx1c2hpbmdTeW5jUXVldWUgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLy8gVE9ETzogVXNlIHRoZSB1bmlmaWVkIGZpYmVyIHN0YWNrIG1vZHVsZSBpbnN0ZWFkIG9mIHRoaXMgbG9jYWwgb25lP1xuLy8gSW50ZW50aW9uYWxseSBub3QgdXNpbmcgaXQgeWV0IHRvIGRlcmlzayB0aGUgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiwgYmVjYXVzZVxuLy8gdGhlIHdheSB3ZSBwdXNoL3BvcCB0aGVzZSB2YWx1ZXMgaXMgYSBiaXQgdW51c3VhbC4gSWYgdGhlcmUncyBhIG1pc3Rha2UsIEknZFxuLy8gcmF0aGVyIHRoZSBpZHMgYmUgd3JvbmcgdGhhbiBjcmFzaCB0aGUgd2hvbGUgcmVjb25jaWxlci5cbnZhciBmb3JrU3RhY2sgPSBbXTtcbnZhciBmb3JrU3RhY2tJbmRleCA9IDA7XG52YXIgdHJlZUZvcmtQcm92aWRlciA9IG51bGw7XG52YXIgdHJlZUZvcmtDb3VudCA9IDA7XG52YXIgaWRTdGFjayA9IFtdO1xudmFyIGlkU3RhY2tJbmRleCA9IDA7XG52YXIgdHJlZUNvbnRleHRQcm92aWRlciA9IG51bGw7XG52YXIgdHJlZUNvbnRleHRJZCA9IDE7XG52YXIgdHJlZUNvbnRleHRPdmVyZmxvdyA9ICcnO1xuZnVuY3Rpb24gaXNGb3JrZWRDaGlsZCh3b3JrSW5Qcm9ncmVzcykge1xuICB3YXJuSWZOb3RIeWRyYXRpbmcoKTtcbiAgcmV0dXJuICh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIEZvcmtlZCkgIT09IE5vRmxhZ3M7XG59XG5mdW5jdGlvbiBnZXRGb3Jrc0F0TGV2ZWwod29ya0luUHJvZ3Jlc3MpIHtcbiAgd2FybklmTm90SHlkcmF0aW5nKCk7XG4gIHJldHVybiB0cmVlRm9ya0NvdW50O1xufVxuZnVuY3Rpb24gZ2V0VHJlZUlkKCkge1xuICB2YXIgb3ZlcmZsb3cgPSB0cmVlQ29udGV4dE92ZXJmbG93O1xuICB2YXIgaWRXaXRoTGVhZGluZ0JpdCA9IHRyZWVDb250ZXh0SWQ7XG4gIHZhciBpZCA9IGlkV2l0aExlYWRpbmdCaXQgJiB+Z2V0TGVhZGluZ0JpdChpZFdpdGhMZWFkaW5nQml0KTtcbiAgcmV0dXJuIGlkLnRvU3RyaW5nKDMyKSArIG92ZXJmbG93O1xufVxuZnVuY3Rpb24gcHVzaFRyZWVGb3JrKHdvcmtJblByb2dyZXNzLCB0b3RhbENoaWxkcmVuKSB7XG4gIC8vIFRoaXMgaXMgY2FsbGVkIHJpZ2h0IGFmdGVyIHdlIHJlY29uY2lsZSBhbiBhcnJheSAob3IgaXRlcmF0b3IpIG9mIGNoaWxkXG4gIC8vIGZpYmVycywgYmVjYXVzZSB0aGF0J3MgdGhlIG9ubHkgcGxhY2Ugd2hlcmUgd2Uga25vdyBob3cgbWFueSBjaGlsZHJlbiBpblxuICAvLyB0aGUgd2hvbGUgc2V0IHdpdGhvdXQgZG9pbmcgZXh0cmEgd29yayBsYXRlciwgb3Igc3RvcmluZyBhZGR0aW9uYWxcbiAgLy8gaW5mb3JtYXRpb24gb24gdGhlIGZpYmVyLlxuICAvL1xuICAvLyBUaGF0J3Mgd2h5IHRoaXMgZnVuY3Rpb24gaXMgc2VwYXJhdGUgZnJvbSBwdXNoVHJlZUlkIOKAlCBpdCdzIGNhbGxlZCBkdXJpbmdcbiAgLy8gdGhlIHJlbmRlciBwaGFzZSBvZiB0aGUgZm9yayBwYXJlbnQsIG5vdCB0aGUgY2hpbGQsIHdoaWNoIGlzIHdoZXJlIHdlIHB1c2hcbiAgLy8gdGhlIG90aGVyIGNvbnRleHQgdmFsdWVzLlxuICAvL1xuICAvLyBJbiB0aGUgRml6eiBpbXBsZW1lbnRhdGlvbiB0aGlzIGlzIG11Y2ggc2ltcGxlciBiZWNhdXNlIHRoZSBjaGlsZCBpc1xuICAvLyByZW5kZXJlZCBpbiB0aGUgc2FtZSBjYWxsc3RhY2sgYXMgdGhlIHBhcmVudC5cbiAgLy9cbiAgLy8gSXQgbWlnaHQgYmUgYmV0dGVyIHRvIGp1c3QgYWRkIGEgYGZvcmtzYCBmaWVsZCB0byB0aGUgRmliZXIgdHlwZS4gSXQgd291bGRcbiAgLy8gbWFrZSB0aGlzIG1vZHVsZSBzaW1wbGVyLlxuICB3YXJuSWZOb3RIeWRyYXRpbmcoKTtcbiAgZm9ya1N0YWNrW2ZvcmtTdGFja0luZGV4KytdID0gdHJlZUZvcmtDb3VudDtcbiAgZm9ya1N0YWNrW2ZvcmtTdGFja0luZGV4KytdID0gdHJlZUZvcmtQcm92aWRlcjtcbiAgdHJlZUZvcmtQcm92aWRlciA9IHdvcmtJblByb2dyZXNzO1xuICB0cmVlRm9ya0NvdW50ID0gdG90YWxDaGlsZHJlbjtcbn1cbmZ1bmN0aW9uIHB1c2hUcmVlSWQod29ya0luUHJvZ3Jlc3MsIHRvdGFsQ2hpbGRyZW4sIGluZGV4KSB7XG4gIHdhcm5JZk5vdEh5ZHJhdGluZygpO1xuICBpZFN0YWNrW2lkU3RhY2tJbmRleCsrXSA9IHRyZWVDb250ZXh0SWQ7XG4gIGlkU3RhY2tbaWRTdGFja0luZGV4KytdID0gdHJlZUNvbnRleHRPdmVyZmxvdztcbiAgaWRTdGFja1tpZFN0YWNrSW5kZXgrK10gPSB0cmVlQ29udGV4dFByb3ZpZGVyO1xuICB0cmVlQ29udGV4dFByb3ZpZGVyID0gd29ya0luUHJvZ3Jlc3M7XG4gIHZhciBiYXNlSWRXaXRoTGVhZGluZ0JpdCA9IHRyZWVDb250ZXh0SWQ7XG4gIHZhciBiYXNlT3ZlcmZsb3cgPSB0cmVlQ29udGV4dE92ZXJmbG93OyAvLyBUaGUgbGVmdG1vc3QgMSBtYXJrcyB0aGUgZW5kIG9mIHRoZSBzZXF1ZW5jZSwgbm9uLWluY2x1c2l2ZS4gSXQncyBub3QgcGFydFxuICAvLyBvZiB0aGUgaWQ7IHdlIHVzZSBpdCB0byBhY2NvdW50IGZvciBsZWFkaW5nIDBzLlxuXG4gIHZhciBiYXNlTGVuZ3RoID0gZ2V0Qml0TGVuZ3RoKGJhc2VJZFdpdGhMZWFkaW5nQml0KSAtIDE7XG4gIHZhciBiYXNlSWQgPSBiYXNlSWRXaXRoTGVhZGluZ0JpdCAmIH4oMSA8PCBiYXNlTGVuZ3RoKTtcbiAgdmFyIHNsb3QgPSBpbmRleCArIDE7XG4gIHZhciBsZW5ndGggPSBnZXRCaXRMZW5ndGgodG90YWxDaGlsZHJlbikgKyBiYXNlTGVuZ3RoOyAvLyAzMCBpcyB0aGUgbWF4IGxlbmd0aCB3ZSBjYW4gc3RvcmUgd2l0aG91dCBvdmVyZmxvd2luZywgdGFraW5nIGludG9cbiAgLy8gY29uc2lkZXJhdGlvbiB0aGUgbGVhZGluZyAxIHdlIHVzZSB0byBtYXJrIHRoZSBlbmQgb2YgdGhlIHNlcXVlbmNlLlxuXG4gIGlmIChsZW5ndGggPiAzMCkge1xuICAgIC8vIFdlIG92ZXJmbG93ZWQgdGhlIGJpdHdpc2Utc2FmZSByYW5nZS4gRmFsbCBiYWNrIHRvIHNsb3dlciBhbGdvcml0aG0uXG4gICAgLy8gVGhpcyBicmFuY2ggYXNzdW1lcyB0aGUgbGVuZ3RoIG9mIHRoZSBiYXNlIGlkIGlzIGdyZWF0ZXIgdGhhbiA1OyBpdCB3b24ndFxuICAgIC8vIHdvcmsgZm9yIHNtYWxsZXIgaWRzLCBiZWNhdXNlIHlvdSBuZWVkIDUgYml0cyBwZXIgY2hhcmFjdGVyLlxuICAgIC8vXG4gICAgLy8gV2UgZW5jb2RlIHRoZSBpZCBpbiBtdWx0aXBsZSBzdGVwczogZmlyc3QgdGhlIGJhc2UgaWQsIHRoZW4gdGhlXG4gICAgLy8gcmVtYWluaW5nIGRpZ2l0cy5cbiAgICAvL1xuICAgIC8vIEVhY2ggNSBiaXQgc2VxdWVuY2UgY29ycmVzcG9uZHMgdG8gYSBzaW5nbGUgYmFzZSAzMiBjaGFyYWN0ZXIuIFNvIGZvclxuICAgIC8vIGV4YW1wbGUsIGlmIHRoZSBjdXJyZW50IGlkIGlzIDIzIGJpdHMgbG9uZywgd2UgY2FuIGNvbnZlcnQgMjAgb2YgdGhvc2VcbiAgICAvLyBiaXRzIGludG8gYSBzdHJpbmcgb2YgNCBjaGFyYWN0ZXJzLCB3aXRoIDMgYml0cyBsZWZ0IG92ZXIuXG4gICAgLy9cbiAgICAvLyBGaXJzdCBjYWxjdWxhdGUgaG93IG1hbnkgYml0cyBpbiB0aGUgYmFzZSBpZCByZXByZXNlbnQgYSBjb21wbGV0ZVxuICAgIC8vIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMuXG4gICAgdmFyIG51bWJlck9mT3ZlcmZsb3dCaXRzID0gYmFzZUxlbmd0aCAtIGJhc2VMZW5ndGggJSA1OyAvLyBUaGVuIGNyZWF0ZSBhIGJpdG1hc2sgdGhhdCBzZWxlY3RzIG9ubHkgdGhvc2UgYml0cy5cblxuICAgIHZhciBuZXdPdmVyZmxvd0JpdHMgPSAoMSA8PCBudW1iZXJPZk92ZXJmbG93Qml0cykgLSAxOyAvLyBTZWxlY3QgdGhlIGJpdHMsIGFuZCBjb252ZXJ0IHRoZW0gdG8gYSBiYXNlIDMyIHN0cmluZy5cblxuICAgIHZhciBuZXdPdmVyZmxvdyA9IChiYXNlSWQgJiBuZXdPdmVyZmxvd0JpdHMpLnRvU3RyaW5nKDMyKTsgLy8gTm93IHdlIGNhbiByZW1vdmUgdGhvc2UgYml0cyBmcm9tIHRoZSBiYXNlIGlkLlxuXG4gICAgdmFyIHJlc3RPZkJhc2VJZCA9IGJhc2VJZCA+PiBudW1iZXJPZk92ZXJmbG93Qml0cztcbiAgICB2YXIgcmVzdE9mQmFzZUxlbmd0aCA9IGJhc2VMZW5ndGggLSBudW1iZXJPZk92ZXJmbG93Qml0czsgLy8gRmluYWxseSwgZW5jb2RlIHRoZSByZXN0IG9mIHRoZSBiaXRzIHVzaW5nIHRoZSBub3JtYWwgYWxnb3JpdGhtLiBCZWNhdXNlXG4gICAgLy8gd2UgbWFkZSBtb3JlIHJvb20sIHRoaXMgdGltZSBpdCB3b24ndCBvdmVyZmxvdy5cblxuICAgIHZhciByZXN0T2ZMZW5ndGggPSBnZXRCaXRMZW5ndGgodG90YWxDaGlsZHJlbikgKyByZXN0T2ZCYXNlTGVuZ3RoO1xuICAgIHZhciByZXN0T2ZOZXdCaXRzID0gc2xvdCA8PCByZXN0T2ZCYXNlTGVuZ3RoO1xuICAgIHZhciBpZCA9IHJlc3RPZk5ld0JpdHMgfCByZXN0T2ZCYXNlSWQ7XG4gICAgdmFyIG92ZXJmbG93ID0gbmV3T3ZlcmZsb3cgKyBiYXNlT3ZlcmZsb3c7XG4gICAgdHJlZUNvbnRleHRJZCA9IDEgPDwgcmVzdE9mTGVuZ3RoIHwgaWQ7XG4gICAgdHJlZUNvbnRleHRPdmVyZmxvdyA9IG92ZXJmbG93O1xuICB9IGVsc2Uge1xuICAgIC8vIE5vcm1hbCBwYXRoXG4gICAgdmFyIG5ld0JpdHMgPSBzbG90IDw8IGJhc2VMZW5ndGg7XG5cbiAgICB2YXIgX2lkID0gbmV3Qml0cyB8IGJhc2VJZDtcblxuICAgIHZhciBfb3ZlcmZsb3cgPSBiYXNlT3ZlcmZsb3c7XG4gICAgdHJlZUNvbnRleHRJZCA9IDEgPDwgbGVuZ3RoIHwgX2lkO1xuICAgIHRyZWVDb250ZXh0T3ZlcmZsb3cgPSBfb3ZlcmZsb3c7XG4gIH1cbn1cbmZ1bmN0aW9uIHB1c2hNYXRlcmlhbGl6ZWRUcmVlSWQod29ya0luUHJvZ3Jlc3MpIHtcbiAgd2FybklmTm90SHlkcmF0aW5nKCk7IC8vIFRoaXMgY29tcG9uZW50IG1hdGVyaWFsaXplZCBhbiBpZC4gVGhpcyB3aWxsIGFmZmVjdCBhbnkgaWRzIHRoYXQgYXBwZWFyXG4gIC8vIGluIGl0cyBjaGlsZHJlbi5cblxuICB2YXIgcmV0dXJuRmliZXIgPSB3b3JrSW5Qcm9ncmVzcy5yZXR1cm47XG5cbiAgaWYgKHJldHVybkZpYmVyICE9PSBudWxsKSB7XG4gICAgdmFyIG51bWJlck9mRm9ya3MgPSAxO1xuICAgIHZhciBzbG90SW5kZXggPSAwO1xuICAgIHB1c2hUcmVlRm9yayh3b3JrSW5Qcm9ncmVzcywgbnVtYmVyT2ZGb3Jrcyk7XG4gICAgcHVzaFRyZWVJZCh3b3JrSW5Qcm9ncmVzcywgbnVtYmVyT2ZGb3Jrcywgc2xvdEluZGV4KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRCaXRMZW5ndGgobnVtYmVyKSB7XG4gIHJldHVybiAzMiAtIGNsejMyKG51bWJlcik7XG59XG5cbmZ1bmN0aW9uIGdldExlYWRpbmdCaXQoaWQpIHtcbiAgcmV0dXJuIDEgPDwgZ2V0Qml0TGVuZ3RoKGlkKSAtIDE7XG59XG5cbmZ1bmN0aW9uIHBvcFRyZWVDb250ZXh0KHdvcmtJblByb2dyZXNzKSB7XG4gIC8vIFJlc3RvcmUgdGhlIHByZXZpb3VzIHZhbHVlcy5cbiAgLy8gVGhpcyBpcyBhIGJpdCBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gb3RoZXIgY29udGV4dC1saWtlIG1vZHVsZXMgaW4gRmliZXJcbiAgLy8gYmVjYXVzZSB0aGUgc2FtZSBGaWJlciBtYXkgYXBwZWFyIG9uIHRoZSBzdGFjayBtdWx0aXBsZSB0aW1lcyBhbmQgZm9yXG4gIC8vIGRpZmZlcmVudCByZWFzb25zLiBXZSBoYXZlIHRvIGtlZXAgcG9wcGluZyB1bnRpbCB0aGUgd29yay1pbi1wcm9ncmVzcyBpc1xuICAvLyBubyBsb25nZXIgYXQgdGhlIHRvcCBvZiB0aGUgc3RhY2suXG4gIHdoaWxlICh3b3JrSW5Qcm9ncmVzcyA9PT0gdHJlZUZvcmtQcm92aWRlcikge1xuICAgIHRyZWVGb3JrUHJvdmlkZXIgPSBmb3JrU3RhY2tbLS1mb3JrU3RhY2tJbmRleF07XG4gICAgZm9ya1N0YWNrW2ZvcmtTdGFja0luZGV4XSA9IG51bGw7XG4gICAgdHJlZUZvcmtDb3VudCA9IGZvcmtTdGFja1stLWZvcmtTdGFja0luZGV4XTtcbiAgICBmb3JrU3RhY2tbZm9ya1N0YWNrSW5kZXhdID0gbnVsbDtcbiAgfVxuXG4gIHdoaWxlICh3b3JrSW5Qcm9ncmVzcyA9PT0gdHJlZUNvbnRleHRQcm92aWRlcikge1xuICAgIHRyZWVDb250ZXh0UHJvdmlkZXIgPSBpZFN0YWNrWy0taWRTdGFja0luZGV4XTtcbiAgICBpZFN0YWNrW2lkU3RhY2tJbmRleF0gPSBudWxsO1xuICAgIHRyZWVDb250ZXh0T3ZlcmZsb3cgPSBpZFN0YWNrWy0taWRTdGFja0luZGV4XTtcbiAgICBpZFN0YWNrW2lkU3RhY2tJbmRleF0gPSBudWxsO1xuICAgIHRyZWVDb250ZXh0SWQgPSBpZFN0YWNrWy0taWRTdGFja0luZGV4XTtcbiAgICBpZFN0YWNrW2lkU3RhY2tJbmRleF0gPSBudWxsO1xuICB9XG59XG5mdW5jdGlvbiBnZXRTdXNwZW5kZWRUcmVlQ29udGV4dCgpIHtcbiAgd2FybklmTm90SHlkcmF0aW5nKCk7XG5cbiAgaWYgKHRyZWVDb250ZXh0UHJvdmlkZXIgIT09IG51bGwpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHRyZWVDb250ZXh0SWQsXG4gICAgICBvdmVyZmxvdzogdHJlZUNvbnRleHRPdmVyZmxvd1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbmZ1bmN0aW9uIHJlc3RvcmVTdXNwZW5kZWRUcmVlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgc3VzcGVuZGVkQ29udGV4dCkge1xuICB3YXJuSWZOb3RIeWRyYXRpbmcoKTtcbiAgaWRTdGFja1tpZFN0YWNrSW5kZXgrK10gPSB0cmVlQ29udGV4dElkO1xuICBpZFN0YWNrW2lkU3RhY2tJbmRleCsrXSA9IHRyZWVDb250ZXh0T3ZlcmZsb3c7XG4gIGlkU3RhY2tbaWRTdGFja0luZGV4KytdID0gdHJlZUNvbnRleHRQcm92aWRlcjtcbiAgdHJlZUNvbnRleHRJZCA9IHN1c3BlbmRlZENvbnRleHQuaWQ7XG4gIHRyZWVDb250ZXh0T3ZlcmZsb3cgPSBzdXNwZW5kZWRDb250ZXh0Lm92ZXJmbG93O1xuICB0cmVlQ29udGV4dFByb3ZpZGVyID0gd29ya0luUHJvZ3Jlc3M7XG59XG5cbmZ1bmN0aW9uIHdhcm5JZk5vdEh5ZHJhdGluZygpIHtcbiAge1xuICAgIGlmICghZ2V0SXNIeWRyYXRpbmcoKSkge1xuICAgICAgZXJyb3IoJ0V4cGVjdGVkIHRvIGJlIGh5ZHJhdGluZy4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgJyArICdhbiBpc3N1ZS4nKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhpcyBtYXkgaGF2ZSBiZWVuIGFuIGluc2VydGlvbiBvciBhIGh5ZHJhdGlvbi5cblxudmFyIGh5ZHJhdGlvblBhcmVudEZpYmVyID0gbnVsbDtcbnZhciBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gbnVsbDtcbnZhciBpc0h5ZHJhdGluZyA9IGZhbHNlOyAvLyBUaGlzIGZsYWcgYWxsb3dzIGZvciB3YXJuaW5nIHN1cHJlc3Npb24gd2hlbiB3ZSBleHBlY3QgdGhlcmUgdG8gYmUgbWlzbWF0Y2hlc1xuLy8gZHVlIHRvIGVhcmxpZXIgbWlzbWF0Y2hlcyBvciBhIHN1c3BlbmRlZCBmaWJlci5cblxudmFyIGRpZFN1c3BlbmRPckVycm9yREVWID0gZmFsc2U7IC8vIEh5ZHJhdGlvbiBlcnJvcnMgdGhhdCB3ZXJlIHRocm93biBpbnNpZGUgdGhpcyBib3VuZGFyeVxuXG52YXIgaHlkcmF0aW9uRXJyb3JzID0gbnVsbDtcblxuZnVuY3Rpb24gd2FybklmSHlkcmF0aW5nKCkge1xuICB7XG4gICAgaWYgKGlzSHlkcmF0aW5nKSB7XG4gICAgICBlcnJvcignV2Ugc2hvdWxkIG5vdCBiZSBoeWRyYXRpbmcgaGVyZS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYSBidWcuJyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIG1hcmtEaWRUaHJvd1doaWxlSHlkcmF0aW5nREVWKCkge1xuICB7XG4gICAgZGlkU3VzcGVuZE9yRXJyb3JERVYgPSB0cnVlO1xuICB9XG59XG5mdW5jdGlvbiBkaWRTdXNwZW5kT3JFcnJvcldoaWxlSHlkcmF0aW5nREVWKCkge1xuICB7XG4gICAgcmV0dXJuIGRpZFN1c3BlbmRPckVycm9yREVWO1xuICB9XG59XG5cbmZ1bmN0aW9uIGVudGVySHlkcmF0aW9uU3RhdGUoZmliZXIpIHtcblxuICB2YXIgcGFyZW50SW5zdGFuY2UgPSBmaWJlci5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztcbiAgbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSA9IGdldEZpcnN0SHlkcmF0YWJsZUNoaWxkV2l0aGluQ29udGFpbmVyKHBhcmVudEluc3RhbmNlKTtcbiAgaHlkcmF0aW9uUGFyZW50RmliZXIgPSBmaWJlcjtcbiAgaXNIeWRyYXRpbmcgPSB0cnVlO1xuICBoeWRyYXRpb25FcnJvcnMgPSBudWxsO1xuICBkaWRTdXNwZW5kT3JFcnJvckRFViA9IGZhbHNlO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gcmVlbnRlckh5ZHJhdGlvblN0YXRlRnJvbURlaHlkcmF0ZWRTdXNwZW5zZUluc3RhbmNlKGZpYmVyLCBzdXNwZW5zZUluc3RhbmNlLCB0cmVlQ29udGV4dCkge1xuXG4gIG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBnZXRGaXJzdEh5ZHJhdGFibGVDaGlsZFdpdGhpblN1c3BlbnNlSW5zdGFuY2Uoc3VzcGVuc2VJbnN0YW5jZSk7XG4gIGh5ZHJhdGlvblBhcmVudEZpYmVyID0gZmliZXI7XG4gIGlzSHlkcmF0aW5nID0gdHJ1ZTtcbiAgaHlkcmF0aW9uRXJyb3JzID0gbnVsbDtcbiAgZGlkU3VzcGVuZE9yRXJyb3JERVYgPSBmYWxzZTtcblxuICBpZiAodHJlZUNvbnRleHQgIT09IG51bGwpIHtcbiAgICByZXN0b3JlU3VzcGVuZGVkVHJlZUNvbnRleHQoZmliZXIsIHRyZWVDb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiB3YXJuVW5oeWRyYXRlZEluc3RhbmNlKHJldHVybkZpYmVyLCBpbnN0YW5jZSkge1xuICB7XG4gICAgc3dpdGNoIChyZXR1cm5GaWJlci50YWcpIHtcbiAgICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICAgIHtcbiAgICAgICAgICBkaWROb3RIeWRyYXRlSW5zdGFuY2VXaXRoaW5Db250YWluZXIocmV0dXJuRmliZXIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8sIGluc3RhbmNlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgaXNDb25jdXJyZW50TW9kZSA9IChyZXR1cm5GaWJlci5tb2RlICYgQ29uY3VycmVudE1vZGUpICE9PSBOb01vZGU7XG4gICAgICAgICAgZGlkTm90SHlkcmF0ZUluc3RhbmNlKHJldHVybkZpYmVyLnR5cGUsIHJldHVybkZpYmVyLm1lbW9pemVkUHJvcHMsIHJldHVybkZpYmVyLnN0YXRlTm9kZSwgaW5zdGFuY2UsIC8vIFRPRE86IERlbGV0ZSB0aGlzIGFyZ3VtZW50IHdoZW4gd2UgcmVtb3ZlIHRoZSBsZWdhY3kgcm9vdCBBUEkuXG4gICAgICAgICAgaXNDb25jdXJyZW50TW9kZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBTdXNwZW5zZUNvbXBvbmVudDpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBzdXNwZW5zZVN0YXRlID0gcmV0dXJuRmliZXIubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgICBpZiAoc3VzcGVuc2VTdGF0ZS5kZWh5ZHJhdGVkICE9PSBudWxsKSBkaWROb3RIeWRyYXRlSW5zdGFuY2VXaXRoaW5TdXNwZW5zZUluc3RhbmNlKHN1c3BlbnNlU3RhdGUuZGVoeWRyYXRlZCwgaW5zdGFuY2UpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGRlbGV0ZUh5ZHJhdGFibGVJbnN0YW5jZShyZXR1cm5GaWJlciwgaW5zdGFuY2UpIHtcbiAgd2FyblVuaHlkcmF0ZWRJbnN0YW5jZShyZXR1cm5GaWJlciwgaW5zdGFuY2UpO1xuICB2YXIgY2hpbGRUb0RlbGV0ZSA9IGNyZWF0ZUZpYmVyRnJvbUhvc3RJbnN0YW5jZUZvckRlbGV0aW9uKCk7XG4gIGNoaWxkVG9EZWxldGUuc3RhdGVOb2RlID0gaW5zdGFuY2U7XG4gIGNoaWxkVG9EZWxldGUucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gIHZhciBkZWxldGlvbnMgPSByZXR1cm5GaWJlci5kZWxldGlvbnM7XG5cbiAgaWYgKGRlbGV0aW9ucyA9PT0gbnVsbCkge1xuICAgIHJldHVybkZpYmVyLmRlbGV0aW9ucyA9IFtjaGlsZFRvRGVsZXRlXTtcbiAgICByZXR1cm5GaWJlci5mbGFncyB8PSBDaGlsZERlbGV0aW9uO1xuICB9IGVsc2Uge1xuICAgIGRlbGV0aW9ucy5wdXNoKGNoaWxkVG9EZWxldGUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHdhcm5Ob25oeWRyYXRlZEluc3RhbmNlKHJldHVybkZpYmVyLCBmaWJlcikge1xuICB7XG4gICAgaWYgKGRpZFN1c3BlbmRPckVycm9yREVWKSB7XG4gICAgICAvLyBJbnNpZGUgYSBib3VuZGFyeSB0aGF0IGFscmVhZHkgc3VzcGVuZGVkLiBXZSdyZSBjdXJyZW50bHkgcmVuZGVyaW5nIHRoZVxuICAgICAgLy8gc2libGluZ3Mgb2YgYSBzdXNwZW5kZWQgbm9kZS4gVGhlIG1pc21hdGNoIG1heSBiZSBkdWUgdG8gdGhlIG1pc3NpbmdcbiAgICAgIC8vIGRhdGEsIHNvIGl0J3MgcHJvYmFibHkgYSBmYWxzZSBwb3NpdGl2ZS5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHJldHVybkZpYmVyLnRhZykge1xuICAgICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBwYXJlbnRDb250YWluZXIgPSByZXR1cm5GaWJlci5zdGF0ZU5vZGUuY29udGFpbmVySW5mbztcblxuICAgICAgICAgIHN3aXRjaCAoZmliZXIudGFnKSB7XG4gICAgICAgICAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICAgICAgICAgIHZhciB0eXBlID0gZmliZXIudHlwZTtcbiAgICAgICAgICAgICAgdmFyIHByb3BzID0gZmliZXIucGVuZGluZ1Byb3BzO1xuICAgICAgICAgICAgICBkaWROb3RGaW5kSHlkcmF0YWJsZUluc3RhbmNlV2l0aGluQ29udGFpbmVyKHBhcmVudENvbnRhaW5lciwgdHlwZSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlIEhvc3RUZXh0OlxuICAgICAgICAgICAgICB2YXIgdGV4dCA9IGZpYmVyLnBlbmRpbmdQcm9wcztcbiAgICAgICAgICAgICAgZGlkTm90RmluZEh5ZHJhdGFibGVUZXh0SW5zdGFuY2VXaXRoaW5Db250YWluZXIocGFyZW50Q29udGFpbmVyLCB0ZXh0KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIHBhcmVudFR5cGUgPSByZXR1cm5GaWJlci50eXBlO1xuICAgICAgICAgIHZhciBwYXJlbnRQcm9wcyA9IHJldHVybkZpYmVyLm1lbW9pemVkUHJvcHM7XG4gICAgICAgICAgdmFyIHBhcmVudEluc3RhbmNlID0gcmV0dXJuRmliZXIuc3RhdGVOb2RlO1xuXG4gICAgICAgICAgc3dpdGNoIChmaWJlci50YWcpIHtcbiAgICAgICAgICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhciBfdHlwZSA9IGZpYmVyLnR5cGU7XG4gICAgICAgICAgICAgICAgdmFyIF9wcm9wcyA9IGZpYmVyLnBlbmRpbmdQcm9wcztcbiAgICAgICAgICAgICAgICB2YXIgaXNDb25jdXJyZW50TW9kZSA9IChyZXR1cm5GaWJlci5tb2RlICYgQ29uY3VycmVudE1vZGUpICE9PSBOb01vZGU7XG4gICAgICAgICAgICAgICAgZGlkTm90RmluZEh5ZHJhdGFibGVJbnN0YW5jZShwYXJlbnRUeXBlLCBwYXJlbnRQcm9wcywgcGFyZW50SW5zdGFuY2UsIF90eXBlLCBfcHJvcHMsIC8vIFRPRE86IERlbGV0ZSB0aGlzIGFyZ3VtZW50IHdoZW4gd2UgcmVtb3ZlIHRoZSBsZWdhY3kgcm9vdCBBUEkuXG4gICAgICAgICAgICAgICAgaXNDb25jdXJyZW50TW9kZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSBIb3N0VGV4dDpcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhciBfdGV4dCA9IGZpYmVyLnBlbmRpbmdQcm9wcztcblxuICAgICAgICAgICAgICAgIHZhciBfaXNDb25jdXJyZW50TW9kZSA9IChyZXR1cm5GaWJlci5tb2RlICYgQ29uY3VycmVudE1vZGUpICE9PSBOb01vZGU7XG5cbiAgICAgICAgICAgICAgICBkaWROb3RGaW5kSHlkcmF0YWJsZVRleHRJbnN0YW5jZShwYXJlbnRUeXBlLCBwYXJlbnRQcm9wcywgcGFyZW50SW5zdGFuY2UsIF90ZXh0LCAvLyBUT0RPOiBEZWxldGUgdGhpcyBhcmd1bWVudCB3aGVuIHdlIHJlbW92ZSB0aGUgbGVnYWN5IHJvb3QgQVBJLlxuICAgICAgICAgICAgICAgIF9pc0NvbmN1cnJlbnRNb2RlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgc3VzcGVuc2VTdGF0ZSA9IHJldHVybkZpYmVyLm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgdmFyIF9wYXJlbnRJbnN0YW5jZSA9IHN1c3BlbnNlU3RhdGUuZGVoeWRyYXRlZDtcbiAgICAgICAgICBpZiAoX3BhcmVudEluc3RhbmNlICE9PSBudWxsKSBzd2l0Y2ggKGZpYmVyLnRhZykge1xuICAgICAgICAgICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgICAgICAgICB2YXIgX3R5cGUyID0gZmliZXIudHlwZTtcbiAgICAgICAgICAgICAgdmFyIF9wcm9wczIgPSBmaWJlci5wZW5kaW5nUHJvcHM7XG4gICAgICAgICAgICAgIGRpZE5vdEZpbmRIeWRyYXRhYmxlSW5zdGFuY2VXaXRoaW5TdXNwZW5zZUluc3RhbmNlKF9wYXJlbnRJbnN0YW5jZSwgX3R5cGUyKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgSG9zdFRleHQ6XG4gICAgICAgICAgICAgIHZhciBfdGV4dDIgPSBmaWJlci5wZW5kaW5nUHJvcHM7XG4gICAgICAgICAgICAgIGRpZE5vdEZpbmRIeWRyYXRhYmxlVGV4dEluc3RhbmNlV2l0aGluU3VzcGVuc2VJbnN0YW5jZShfcGFyZW50SW5zdGFuY2UsIF90ZXh0Mik7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm47XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGluc2VydE5vbkh5ZHJhdGVkSW5zdGFuY2UocmV0dXJuRmliZXIsIGZpYmVyKSB7XG4gIGZpYmVyLmZsYWdzID0gZmliZXIuZmxhZ3MgJiB+SHlkcmF0aW5nIHwgUGxhY2VtZW50O1xuICB3YXJuTm9uaHlkcmF0ZWRJbnN0YW5jZShyZXR1cm5GaWJlciwgZmliZXIpO1xufVxuXG5mdW5jdGlvbiB0cnlIeWRyYXRlKGZpYmVyLCBuZXh0SW5zdGFuY2UpIHtcbiAgc3dpdGNoIChmaWJlci50YWcpIHtcbiAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciB0eXBlID0gZmliZXIudHlwZTtcbiAgICAgICAgdmFyIHByb3BzID0gZmliZXIucGVuZGluZ1Byb3BzO1xuICAgICAgICB2YXIgaW5zdGFuY2UgPSBjYW5IeWRyYXRlSW5zdGFuY2UobmV4dEluc3RhbmNlLCB0eXBlKTtcblxuICAgICAgICBpZiAoaW5zdGFuY2UgIT09IG51bGwpIHtcbiAgICAgICAgICBmaWJlci5zdGF0ZU5vZGUgPSBpbnN0YW5jZTtcbiAgICAgICAgICBoeWRyYXRpb25QYXJlbnRGaWJlciA9IGZpYmVyO1xuICAgICAgICAgIG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBnZXRGaXJzdEh5ZHJhdGFibGVDaGlsZChpbnN0YW5jZSk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICBjYXNlIEhvc3RUZXh0OlxuICAgICAge1xuICAgICAgICB2YXIgdGV4dCA9IGZpYmVyLnBlbmRpbmdQcm9wcztcbiAgICAgICAgdmFyIHRleHRJbnN0YW5jZSA9IGNhbkh5ZHJhdGVUZXh0SW5zdGFuY2UobmV4dEluc3RhbmNlLCB0ZXh0KTtcblxuICAgICAgICBpZiAodGV4dEluc3RhbmNlICE9PSBudWxsKSB7XG4gICAgICAgICAgZmliZXIuc3RhdGVOb2RlID0gdGV4dEluc3RhbmNlO1xuICAgICAgICAgIGh5ZHJhdGlvblBhcmVudEZpYmVyID0gZmliZXI7IC8vIFRleHQgSW5zdGFuY2VzIGRvbid0IGhhdmUgY2hpbGRyZW4gc28gdGhlcmUncyBub3RoaW5nIHRvIGh5ZHJhdGUuXG5cbiAgICAgICAgICBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gbnVsbDtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciBzdXNwZW5zZUluc3RhbmNlID0gY2FuSHlkcmF0ZVN1c3BlbnNlSW5zdGFuY2UobmV4dEluc3RhbmNlKTtcblxuICAgICAgICBpZiAoc3VzcGVuc2VJbnN0YW5jZSAhPT0gbnVsbCkge1xuICAgICAgICAgIHZhciBzdXNwZW5zZVN0YXRlID0ge1xuICAgICAgICAgICAgZGVoeWRyYXRlZDogc3VzcGVuc2VJbnN0YW5jZSxcbiAgICAgICAgICAgIHRyZWVDb250ZXh0OiBnZXRTdXNwZW5kZWRUcmVlQ29udGV4dCgpLFxuICAgICAgICAgICAgcmV0cnlMYW5lOiBPZmZzY3JlZW5MYW5lXG4gICAgICAgICAgfTtcbiAgICAgICAgICBmaWJlci5tZW1vaXplZFN0YXRlID0gc3VzcGVuc2VTdGF0ZTsgLy8gU3RvcmUgdGhlIGRlaHlkcmF0ZWQgZnJhZ21lbnQgYXMgYSBjaGlsZCBmaWJlci5cbiAgICAgICAgICAvLyBUaGlzIHNpbXBsaWZpZXMgdGhlIGNvZGUgZm9yIGdldEhvc3RTaWJsaW5nIGFuZCBkZWxldGluZyBub2RlcyxcbiAgICAgICAgICAvLyBzaW5jZSBpdCBkb2Vzbid0IGhhdmUgdG8gY29uc2lkZXIgYWxsIFN1c3BlbnNlIGJvdW5kYXJpZXMgYW5kXG4gICAgICAgICAgLy8gY2hlY2sgaWYgdGhleSdyZSBkZWh5ZHJhdGVkIG9uZXMgb3Igbm90LlxuXG4gICAgICAgICAgdmFyIGRlaHlkcmF0ZWRGcmFnbWVudCA9IGNyZWF0ZUZpYmVyRnJvbURlaHlkcmF0ZWRGcmFnbWVudChzdXNwZW5zZUluc3RhbmNlKTtcbiAgICAgICAgICBkZWh5ZHJhdGVkRnJhZ21lbnQucmV0dXJuID0gZmliZXI7XG4gICAgICAgICAgZmliZXIuY2hpbGQgPSBkZWh5ZHJhdGVkRnJhZ21lbnQ7XG4gICAgICAgICAgaHlkcmF0aW9uUGFyZW50RmliZXIgPSBmaWJlcjsgLy8gV2hpbGUgYSBTdXNwZW5zZSBJbnN0YW5jZSBkb2VzIGhhdmUgY2hpbGRyZW4sIHdlIHdvbid0IHN0ZXAgaW50b1xuICAgICAgICAgIC8vIGl0IGR1cmluZyB0aGUgZmlyc3QgcGFzcy4gSW5zdGVhZCwgd2UnbGwgcmVlbnRlciBpdCBsYXRlci5cblxuICAgICAgICAgIG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBudWxsO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzaG91bGRDbGllbnRSZW5kZXJPbk1pc21hdGNoKGZpYmVyKSB7XG4gIHJldHVybiAoZmliZXIubW9kZSAmIENvbmN1cnJlbnRNb2RlKSAhPT0gTm9Nb2RlICYmIChmaWJlci5mbGFncyAmIERpZENhcHR1cmUpID09PSBOb0ZsYWdzO1xufVxuXG5mdW5jdGlvbiB0aHJvd09uSHlkcmF0aW9uTWlzbWF0Y2goZmliZXIpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdIeWRyYXRpb24gZmFpbGVkIGJlY2F1c2UgdGhlIGluaXRpYWwgVUkgZG9lcyBub3QgbWF0Y2ggd2hhdCB3YXMgJyArICdyZW5kZXJlZCBvbiB0aGUgc2VydmVyLicpO1xufVxuXG5mdW5jdGlvbiB0cnlUb0NsYWltTmV4dEh5ZHJhdGFibGVJbnN0YW5jZShmaWJlcikge1xuICBpZiAoIWlzSHlkcmF0aW5nKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIG5leHRJbnN0YW5jZSA9IG5leHRIeWRyYXRhYmxlSW5zdGFuY2U7XG5cbiAgaWYgKCFuZXh0SW5zdGFuY2UpIHtcbiAgICBpZiAoc2hvdWxkQ2xpZW50UmVuZGVyT25NaXNtYXRjaChmaWJlcikpIHtcbiAgICAgIHdhcm5Ob25oeWRyYXRlZEluc3RhbmNlKGh5ZHJhdGlvblBhcmVudEZpYmVyLCBmaWJlcik7XG4gICAgICB0aHJvd09uSHlkcmF0aW9uTWlzbWF0Y2goKTtcbiAgICB9IC8vIE5vdGhpbmcgdG8gaHlkcmF0ZS4gTWFrZSBpdCBhbiBpbnNlcnRpb24uXG5cblxuICAgIGluc2VydE5vbkh5ZHJhdGVkSW5zdGFuY2UoaHlkcmF0aW9uUGFyZW50RmliZXIsIGZpYmVyKTtcbiAgICBpc0h5ZHJhdGluZyA9IGZhbHNlO1xuICAgIGh5ZHJhdGlvblBhcmVudEZpYmVyID0gZmliZXI7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGZpcnN0QXR0ZW1wdGVkSW5zdGFuY2UgPSBuZXh0SW5zdGFuY2U7XG5cbiAgaWYgKCF0cnlIeWRyYXRlKGZpYmVyLCBuZXh0SW5zdGFuY2UpKSB7XG4gICAgaWYgKHNob3VsZENsaWVudFJlbmRlck9uTWlzbWF0Y2goZmliZXIpKSB7XG4gICAgICB3YXJuTm9uaHlkcmF0ZWRJbnN0YW5jZShoeWRyYXRpb25QYXJlbnRGaWJlciwgZmliZXIpO1xuICAgICAgdGhyb3dPbkh5ZHJhdGlvbk1pc21hdGNoKCk7XG4gICAgfSAvLyBJZiB3ZSBjYW4ndCBoeWRyYXRlIHRoaXMgaW5zdGFuY2UgbGV0J3MgdHJ5IHRoZSBuZXh0IG9uZS5cbiAgICAvLyBXZSB1c2UgdGhpcyBhcyBhIGhldXJpc3RpYy4gSXQncyBiYXNlZCBvbiBpbnR1aXRpb24gYW5kIG5vdCBkYXRhIHNvIGl0XG4gICAgLy8gbWlnaHQgYmUgZmxhd2VkIG9yIHVubmVjZXNzYXJ5LlxuXG5cbiAgICBuZXh0SW5zdGFuY2UgPSBnZXROZXh0SHlkcmF0YWJsZVNpYmxpbmcoZmlyc3RBdHRlbXB0ZWRJbnN0YW5jZSk7XG4gICAgdmFyIHByZXZIeWRyYXRpb25QYXJlbnRGaWJlciA9IGh5ZHJhdGlvblBhcmVudEZpYmVyO1xuXG4gICAgaWYgKCFuZXh0SW5zdGFuY2UgfHwgIXRyeUh5ZHJhdGUoZmliZXIsIG5leHRJbnN0YW5jZSkpIHtcbiAgICAgIC8vIE5vdGhpbmcgdG8gaHlkcmF0ZS4gTWFrZSBpdCBhbiBpbnNlcnRpb24uXG4gICAgICBpbnNlcnROb25IeWRyYXRlZEluc3RhbmNlKGh5ZHJhdGlvblBhcmVudEZpYmVyLCBmaWJlcik7XG4gICAgICBpc0h5ZHJhdGluZyA9IGZhbHNlO1xuICAgICAgaHlkcmF0aW9uUGFyZW50RmliZXIgPSBmaWJlcjtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIFdlIG1hdGNoZWQgdGhlIG5leHQgb25lLCB3ZSdsbCBub3cgYXNzdW1lIHRoYXQgdGhlIGZpcnN0IG9uZSB3YXNcbiAgICAvLyBzdXBlcmZsdW91cyBhbmQgd2UnbGwgZGVsZXRlIGl0LiBTaW5jZSB3ZSBjYW4ndCBlYWdlcmx5IGRlbGV0ZSBpdFxuICAgIC8vIHdlJ2xsIGhhdmUgdG8gc2NoZWR1bGUgYSBkZWxldGlvbi4gVG8gZG8gdGhhdCwgdGhpcyBub2RlIG5lZWRzIGEgZHVtbXlcbiAgICAvLyBmaWJlciBhc3NvY2lhdGVkIHdpdGggaXQuXG5cblxuICAgIGRlbGV0ZUh5ZHJhdGFibGVJbnN0YW5jZShwcmV2SHlkcmF0aW9uUGFyZW50RmliZXIsIGZpcnN0QXR0ZW1wdGVkSW5zdGFuY2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHByZXBhcmVUb0h5ZHJhdGVIb3N0SW5zdGFuY2UoZmliZXIsIHJvb3RDb250YWluZXJJbnN0YW5jZSwgaG9zdENvbnRleHQpIHtcblxuICB2YXIgaW5zdGFuY2UgPSBmaWJlci5zdGF0ZU5vZGU7XG4gIHZhciBzaG91bGRXYXJuSWZNaXNtYXRjaERldiA9ICFkaWRTdXNwZW5kT3JFcnJvckRFVjtcbiAgdmFyIHVwZGF0ZVBheWxvYWQgPSBoeWRyYXRlSW5zdGFuY2UoaW5zdGFuY2UsIGZpYmVyLnR5cGUsIGZpYmVyLm1lbW9pemVkUHJvcHMsIHJvb3RDb250YWluZXJJbnN0YW5jZSwgaG9zdENvbnRleHQsIGZpYmVyLCBzaG91bGRXYXJuSWZNaXNtYXRjaERldik7IC8vIFRPRE86IFR5cGUgdGhpcyBzcGVjaWZpYyB0byB0aGlzIHR5cGUgb2YgY29tcG9uZW50LlxuXG4gIGZpYmVyLnVwZGF0ZVF1ZXVlID0gdXBkYXRlUGF5bG9hZDsgLy8gSWYgdGhlIHVwZGF0ZSBwYXlsb2FkIGluZGljYXRlcyB0aGF0IHRoZXJlIGlzIGEgY2hhbmdlIG9yIGlmIHRoZXJlXG4gIC8vIGlzIGEgbmV3IHJlZiB3ZSBtYXJrIHRoaXMgYXMgYW4gdXBkYXRlLlxuXG4gIGlmICh1cGRhdGVQYXlsb2FkICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHByZXBhcmVUb0h5ZHJhdGVIb3N0VGV4dEluc3RhbmNlKGZpYmVyKSB7XG5cbiAgdmFyIHRleHRJbnN0YW5jZSA9IGZpYmVyLnN0YXRlTm9kZTtcbiAgdmFyIHRleHRDb250ZW50ID0gZmliZXIubWVtb2l6ZWRQcm9wcztcbiAgdmFyIHNob3VsZFVwZGF0ZSA9IGh5ZHJhdGVUZXh0SW5zdGFuY2UodGV4dEluc3RhbmNlLCB0ZXh0Q29udGVudCwgZmliZXIpO1xuXG4gIGlmIChzaG91bGRVcGRhdGUpIHtcbiAgICAvLyBXZSBhc3N1bWUgdGhhdCBwcmVwYXJlVG9IeWRyYXRlSG9zdFRleHRJbnN0YW5jZSBpcyBjYWxsZWQgaW4gYSBjb250ZXh0IHdoZXJlIHRoZVxuICAgIC8vIGh5ZHJhdGlvbiBwYXJlbnQgaXMgdGhlIHBhcmVudCBob3N0IGNvbXBvbmVudCBvZiB0aGlzIGhvc3QgdGV4dC5cbiAgICB2YXIgcmV0dXJuRmliZXIgPSBoeWRyYXRpb25QYXJlbnRGaWJlcjtcblxuICAgIGlmIChyZXR1cm5GaWJlciAhPT0gbnVsbCkge1xuICAgICAgc3dpdGNoIChyZXR1cm5GaWJlci50YWcpIHtcbiAgICAgICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YXIgcGFyZW50Q29udGFpbmVyID0gcmV0dXJuRmliZXIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87XG4gICAgICAgICAgICB2YXIgaXNDb25jdXJyZW50TW9kZSA9IChyZXR1cm5GaWJlci5tb2RlICYgQ29uY3VycmVudE1vZGUpICE9PSBOb01vZGU7XG4gICAgICAgICAgICBkaWROb3RNYXRjaEh5ZHJhdGVkQ29udGFpbmVyVGV4dEluc3RhbmNlKHBhcmVudENvbnRhaW5lciwgdGV4dEluc3RhbmNlLCB0ZXh0Q29udGVudCwgLy8gVE9ETzogRGVsZXRlIHRoaXMgYXJndW1lbnQgd2hlbiB3ZSByZW1vdmUgdGhlIGxlZ2FjeSByb290IEFQSS5cbiAgICAgICAgICAgIGlzQ29uY3VycmVudE1vZGUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YXIgcGFyZW50VHlwZSA9IHJldHVybkZpYmVyLnR5cGU7XG4gICAgICAgICAgICB2YXIgcGFyZW50UHJvcHMgPSByZXR1cm5GaWJlci5tZW1vaXplZFByb3BzO1xuICAgICAgICAgICAgdmFyIHBhcmVudEluc3RhbmNlID0gcmV0dXJuRmliZXIuc3RhdGVOb2RlO1xuXG4gICAgICAgICAgICB2YXIgX2lzQ29uY3VycmVudE1vZGUyID0gKHJldHVybkZpYmVyLm1vZGUgJiBDb25jdXJyZW50TW9kZSkgIT09IE5vTW9kZTtcblxuICAgICAgICAgICAgZGlkTm90TWF0Y2hIeWRyYXRlZFRleHRJbnN0YW5jZShwYXJlbnRUeXBlLCBwYXJlbnRQcm9wcywgcGFyZW50SW5zdGFuY2UsIHRleHRJbnN0YW5jZSwgdGV4dENvbnRlbnQsIC8vIFRPRE86IERlbGV0ZSB0aGlzIGFyZ3VtZW50IHdoZW4gd2UgcmVtb3ZlIHRoZSBsZWdhY3kgcm9vdCBBUEkuXG4gICAgICAgICAgICBfaXNDb25jdXJyZW50TW9kZTIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzaG91bGRVcGRhdGU7XG59XG5cbmZ1bmN0aW9uIHByZXBhcmVUb0h5ZHJhdGVIb3N0U3VzcGVuc2VJbnN0YW5jZShmaWJlcikge1xuXG4gIHZhciBzdXNwZW5zZVN0YXRlID0gZmliZXIubWVtb2l6ZWRTdGF0ZTtcbiAgdmFyIHN1c3BlbnNlSW5zdGFuY2UgPSBzdXNwZW5zZVN0YXRlICE9PSBudWxsID8gc3VzcGVuc2VTdGF0ZS5kZWh5ZHJhdGVkIDogbnVsbDtcblxuICBpZiAoIXN1c3BlbnNlSW5zdGFuY2UpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHRvIGhhdmUgYSBoeWRyYXRlZCBzdXNwZW5zZSBpbnN0YW5jZS4gJyArICdUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICB9XG5cbiAgaHlkcmF0ZVN1c3BlbnNlSW5zdGFuY2Uoc3VzcGVuc2VJbnN0YW5jZSwgZmliZXIpO1xufVxuXG5mdW5jdGlvbiBza2lwUGFzdERlaHlkcmF0ZWRTdXNwZW5zZUluc3RhbmNlKGZpYmVyKSB7XG5cbiAgdmFyIHN1c3BlbnNlU3RhdGUgPSBmaWJlci5tZW1vaXplZFN0YXRlO1xuICB2YXIgc3VzcGVuc2VJbnN0YW5jZSA9IHN1c3BlbnNlU3RhdGUgIT09IG51bGwgPyBzdXNwZW5zZVN0YXRlLmRlaHlkcmF0ZWQgOiBudWxsO1xuXG4gIGlmICghc3VzcGVuc2VJbnN0YW5jZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdG8gaGF2ZSBhIGh5ZHJhdGVkIHN1c3BlbnNlIGluc3RhbmNlLiAnICsgJ1RoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gIH1cblxuICByZXR1cm4gZ2V0TmV4dEh5ZHJhdGFibGVJbnN0YW5jZUFmdGVyU3VzcGVuc2VJbnN0YW5jZShzdXNwZW5zZUluc3RhbmNlKTtcbn1cblxuZnVuY3Rpb24gcG9wVG9OZXh0SG9zdFBhcmVudChmaWJlcikge1xuICB2YXIgcGFyZW50ID0gZmliZXIucmV0dXJuO1xuXG4gIHdoaWxlIChwYXJlbnQgIT09IG51bGwgJiYgcGFyZW50LnRhZyAhPT0gSG9zdENvbXBvbmVudCAmJiBwYXJlbnQudGFnICE9PSBIb3N0Um9vdCAmJiBwYXJlbnQudGFnICE9PSBTdXNwZW5zZUNvbXBvbmVudCkge1xuICAgIHBhcmVudCA9IHBhcmVudC5yZXR1cm47XG4gIH1cblxuICBoeWRyYXRpb25QYXJlbnRGaWJlciA9IHBhcmVudDtcbn1cblxuZnVuY3Rpb24gcG9wSHlkcmF0aW9uU3RhdGUoZmliZXIpIHtcblxuICBpZiAoZmliZXIgIT09IGh5ZHJhdGlvblBhcmVudEZpYmVyKSB7XG4gICAgLy8gV2UncmUgZGVlcGVyIHRoYW4gdGhlIGN1cnJlbnQgaHlkcmF0aW9uIGNvbnRleHQsIGluc2lkZSBhbiBpbnNlcnRlZFxuICAgIC8vIHRyZWUuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFpc0h5ZHJhdGluZykge1xuICAgIC8vIElmIHdlJ3JlIG5vdCBjdXJyZW50bHkgaHlkcmF0aW5nIGJ1dCB3ZSdyZSBpbiBhIGh5ZHJhdGlvbiBjb250ZXh0LCB0aGVuXG4gICAgLy8gd2Ugd2VyZSBhbiBpbnNlcnRpb24gYW5kIG5vdyBuZWVkIHRvIHBvcCB1cCByZWVudGVyIGh5ZHJhdGlvbiBvZiBvdXJcbiAgICAvLyBzaWJsaW5ncy5cbiAgICBwb3BUb05leHRIb3N0UGFyZW50KGZpYmVyKTtcbiAgICBpc0h5ZHJhdGluZyA9IHRydWU7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IC8vIElmIHdlIGhhdmUgYW55IHJlbWFpbmluZyBoeWRyYXRhYmxlIG5vZGVzLCB3ZSBuZWVkIHRvIGRlbGV0ZSB0aGVtIG5vdy5cbiAgLy8gV2Ugb25seSBkbyB0aGlzIGRlZXBlciB0aGFuIGhlYWQgYW5kIGJvZHkgc2luY2UgdGhleSB0ZW5kIHRvIGhhdmUgcmFuZG9tXG4gIC8vIG90aGVyIG5vZGVzIGluIHRoZW0uIFdlIGFsc28gaWdub3JlIGNvbXBvbmVudHMgd2l0aCBwdXJlIHRleHQgY29udGVudCBpblxuICAvLyBzaWRlIG9mIHRoZW0uIFdlIGFsc28gZG9uJ3QgZGVsZXRlIGFueXRoaW5nIGluc2lkZSB0aGUgcm9vdCBjb250YWluZXIuXG5cblxuICBpZiAoZmliZXIudGFnICE9PSBIb3N0Um9vdCAmJiAoZmliZXIudGFnICE9PSBIb3N0Q29tcG9uZW50IHx8IHNob3VsZERlbGV0ZVVuaHlkcmF0ZWRUYWlsSW5zdGFuY2VzKGZpYmVyLnR5cGUpICYmICFzaG91bGRTZXRUZXh0Q29udGVudChmaWJlci50eXBlLCBmaWJlci5tZW1vaXplZFByb3BzKSkpIHtcbiAgICB2YXIgbmV4dEluc3RhbmNlID0gbmV4dEh5ZHJhdGFibGVJbnN0YW5jZTtcblxuICAgIGlmIChuZXh0SW5zdGFuY2UpIHtcbiAgICAgIGlmIChzaG91bGRDbGllbnRSZW5kZXJPbk1pc21hdGNoKGZpYmVyKSkge1xuICAgICAgICB3YXJuSWZVbmh5ZHJhdGVkVGFpbE5vZGVzKGZpYmVyKTtcbiAgICAgICAgdGhyb3dPbkh5ZHJhdGlvbk1pc21hdGNoKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3aGlsZSAobmV4dEluc3RhbmNlKSB7XG4gICAgICAgICAgZGVsZXRlSHlkcmF0YWJsZUluc3RhbmNlKGZpYmVyLCBuZXh0SW5zdGFuY2UpO1xuICAgICAgICAgIG5leHRJbnN0YW5jZSA9IGdldE5leHRIeWRyYXRhYmxlU2libGluZyhuZXh0SW5zdGFuY2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcG9wVG9OZXh0SG9zdFBhcmVudChmaWJlcik7XG5cbiAgaWYgKGZpYmVyLnRhZyA9PT0gU3VzcGVuc2VDb21wb25lbnQpIHtcbiAgICBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gc2tpcFBhc3REZWh5ZHJhdGVkU3VzcGVuc2VJbnN0YW5jZShmaWJlcik7XG4gIH0gZWxzZSB7XG4gICAgbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSA9IGh5ZHJhdGlvblBhcmVudEZpYmVyID8gZ2V0TmV4dEh5ZHJhdGFibGVTaWJsaW5nKGZpYmVyLnN0YXRlTm9kZSkgOiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGhhc1VuaHlkcmF0ZWRUYWlsTm9kZXMoKSB7XG4gIHJldHVybiBpc0h5ZHJhdGluZyAmJiBuZXh0SHlkcmF0YWJsZUluc3RhbmNlICE9PSBudWxsO1xufVxuXG5mdW5jdGlvbiB3YXJuSWZVbmh5ZHJhdGVkVGFpbE5vZGVzKGZpYmVyKSB7XG4gIHZhciBuZXh0SW5zdGFuY2UgPSBuZXh0SHlkcmF0YWJsZUluc3RhbmNlO1xuXG4gIHdoaWxlIChuZXh0SW5zdGFuY2UpIHtcbiAgICB3YXJuVW5oeWRyYXRlZEluc3RhbmNlKGZpYmVyLCBuZXh0SW5zdGFuY2UpO1xuICAgIG5leHRJbnN0YW5jZSA9IGdldE5leHRIeWRyYXRhYmxlU2libGluZyhuZXh0SW5zdGFuY2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlc2V0SHlkcmF0aW9uU3RhdGUoKSB7XG5cbiAgaHlkcmF0aW9uUGFyZW50RmliZXIgPSBudWxsO1xuICBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gbnVsbDtcbiAgaXNIeWRyYXRpbmcgPSBmYWxzZTtcbiAgZGlkU3VzcGVuZE9yRXJyb3JERVYgPSBmYWxzZTtcbn1cblxuZnVuY3Rpb24gdXBncmFkZUh5ZHJhdGlvbkVycm9yc1RvUmVjb3ZlcmFibGUoKSB7XG4gIGlmIChoeWRyYXRpb25FcnJvcnMgIT09IG51bGwpIHtcbiAgICAvLyBTdWNjZXNzZnVsbHkgY29tcGxldGVkIGEgZm9yY2VkIGNsaWVudCByZW5kZXIuIFRoZSBlcnJvcnMgdGhhdCBvY2N1cnJlZFxuICAgIC8vIGR1cmluZyB0aGUgaHlkcmF0aW9uIGF0dGVtcHQgYXJlIG5vdyByZWNvdmVyZWQuIFdlIHdpbGwgbG9nIHRoZW0gaW5cbiAgICAvLyBjb21taXQgcGhhc2UsIG9uY2UgdGhlIGVudGlyZSB0cmVlIGhhcyBmaW5pc2hlZC5cbiAgICBxdWV1ZVJlY292ZXJhYmxlRXJyb3JzKGh5ZHJhdGlvbkVycm9ycyk7XG4gICAgaHlkcmF0aW9uRXJyb3JzID0gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRJc0h5ZHJhdGluZygpIHtcbiAgcmV0dXJuIGlzSHlkcmF0aW5nO1xufVxuXG5mdW5jdGlvbiBxdWV1ZUh5ZHJhdGlvbkVycm9yKGVycm9yKSB7XG4gIGlmIChoeWRyYXRpb25FcnJvcnMgPT09IG51bGwpIHtcbiAgICBoeWRyYXRpb25FcnJvcnMgPSBbZXJyb3JdO1xuICB9IGVsc2Uge1xuICAgIGh5ZHJhdGlvbkVycm9ycy5wdXNoKGVycm9yKTtcbiAgfVxufVxuXG52YXIgUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnO1xudmFyIE5vVHJhbnNpdGlvbiA9IG51bGw7XG5mdW5jdGlvbiByZXF1ZXN0Q3VycmVudFRyYW5zaXRpb24oKSB7XG4gIHJldHVybiBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQxLnRyYW5zaXRpb247XG59XG5cbnZhciBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncyA9IHtcbiAgcmVjb3JkVW5zYWZlTGlmZWN5Y2xlV2FybmluZ3M6IGZ1bmN0aW9uIChmaWJlciwgaW5zdGFuY2UpIHt9LFxuICBmbHVzaFBlbmRpbmdVbnNhZmVMaWZlY3ljbGVXYXJuaW5nczogZnVuY3Rpb24gKCkge30sXG4gIHJlY29yZExlZ2FjeUNvbnRleHRXYXJuaW5nOiBmdW5jdGlvbiAoZmliZXIsIGluc3RhbmNlKSB7fSxcbiAgZmx1c2hMZWdhY3lDb250ZXh0V2FybmluZzogZnVuY3Rpb24gKCkge30sXG4gIGRpc2NhcmRQZW5kaW5nV2FybmluZ3M6IGZ1bmN0aW9uICgpIHt9XG59O1xuXG57XG4gIHZhciBmaW5kU3RyaWN0Um9vdCA9IGZ1bmN0aW9uIChmaWJlcikge1xuICAgIHZhciBtYXliZVN0cmljdFJvb3QgPSBudWxsO1xuICAgIHZhciBub2RlID0gZmliZXI7XG5cbiAgICB3aGlsZSAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgaWYgKG5vZGUubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUpIHtcbiAgICAgICAgbWF5YmVTdHJpY3RSb290ID0gbm9kZTtcbiAgICAgIH1cblxuICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiBtYXliZVN0cmljdFJvb3Q7XG4gIH07XG5cbiAgdmFyIHNldFRvU29ydGVkU3RyaW5nID0gZnVuY3Rpb24gKHNldCkge1xuICAgIHZhciBhcnJheSA9IFtdO1xuICAgIHNldC5mb3JFYWNoKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgYXJyYXkucHVzaCh2YWx1ZSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFycmF5LnNvcnQoKS5qb2luKCcsICcpO1xuICB9O1xuXG4gIHZhciBwZW5kaW5nQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MgPSBbXTtcbiAgdmFyIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MgPSBbXTtcbiAgdmFyIHBlbmRpbmdDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MgPSBbXTtcbiAgdmFyIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzID0gW107XG4gIHZhciBwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzID0gW107XG4gIHZhciBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncyA9IFtdOyAvLyBUcmFja3MgY29tcG9uZW50cyB3ZSBoYXZlIGFscmVhZHkgd2FybmVkIGFib3V0LlxuXG4gIHZhciBkaWRXYXJuQWJvdXRVbnNhZmVMaWZlY3ljbGVzID0gbmV3IFNldCgpO1xuXG4gIFJlYWN0U3RyaWN0TW9kZVdhcm5pbmdzLnJlY29yZFVuc2FmZUxpZmVjeWNsZVdhcm5pbmdzID0gZnVuY3Rpb24gKGZpYmVyLCBpbnN0YW5jZSkge1xuICAgIC8vIERlZHVwZSBzdHJhdGVneTogV2FybiBvbmNlIHBlciBjb21wb25lbnQuXG4gICAgaWYgKGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMuaGFzKGZpYmVyLnR5cGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicgJiYgLy8gRG9uJ3Qgd2FybiBhYm91dCByZWFjdC1saWZlY3ljbGVzLWNvbXBhdCBwb2x5ZmlsbGVkIGNvbXBvbmVudHMuXG4gICAgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50Ll9fc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmcgIT09IHRydWUpIHtcbiAgICAgIHBlbmRpbmdDb21wb25lbnRXaWxsTW91bnRXYXJuaW5ncy5wdXNoKGZpYmVyKTtcbiAgICB9XG5cbiAgICBpZiAoZmliZXIubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUgJiYgdHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MucHVzaChmaWJlcik7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID09PSAnZnVuY3Rpb24nICYmIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZyAhPT0gdHJ1ZSkge1xuICAgICAgcGVuZGluZ0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5wdXNoKGZpYmVyKTtcbiAgICB9XG5cbiAgICBpZiAoZmliZXIubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUgJiYgdHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5wdXNoKGZpYmVyKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicgJiYgaW5zdGFuY2UuY29tcG9uZW50V2lsbFVwZGF0ZS5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nICE9PSB0cnVlKSB7XG4gICAgICBwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLnB1c2goZmliZXIpO1xuICAgIH1cblxuICAgIGlmIChmaWJlci5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSAmJiB0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLnB1c2goZmliZXIpO1xuICAgIH1cbiAgfTtcblxuICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5mbHVzaFBlbmRpbmdVbnNhZmVMaWZlY3ljbGVXYXJuaW5ncyA9IGZ1bmN0aW9uICgpIHtcbiAgICAvLyBXZSBkbyBhbiBpbml0aWFsIHBhc3MgdG8gZ2F0aGVyIGNvbXBvbmVudCBuYW1lc1xuICAgIHZhciBjb21wb25lbnRXaWxsTW91bnRVbmlxdWVOYW1lcyA9IG5ldyBTZXQoKTtcblxuICAgIGlmIChwZW5kaW5nQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MubGVuZ3RoID4gMCkge1xuICAgICAgcGVuZGluZ0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzLmZvckVhY2goZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgICAgIGNvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzLmFkZChnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKSB8fCAnQ29tcG9uZW50Jyk7XG4gICAgICAgIGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMuYWRkKGZpYmVyLnR5cGUpO1xuICAgICAgfSk7XG4gICAgICBwZW5kaW5nQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MgPSBbXTtcbiAgICB9XG5cbiAgICB2YXIgVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzID0gbmV3IFNldCgpO1xuXG4gICAgaWYgKHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MubGVuZ3RoID4gMCkge1xuICAgICAgcGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsTW91bnRXYXJuaW5ncy5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICBVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50VW5pcXVlTmFtZXMuYWRkKGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8ICdDb21wb25lbnQnKTtcbiAgICAgICAgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcy5hZGQoZmliZXIudHlwZSk7XG4gICAgICB9KTtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MgPSBbXTtcbiAgICB9XG5cbiAgICB2YXIgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzID0gbmV3IFNldCgpO1xuXG4gICAgaWYgKHBlbmRpbmdDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MubGVuZ3RoID4gMCkge1xuICAgICAgcGVuZGluZ0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzVW5pcXVlTmFtZXMuYWRkKGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8ICdDb21wb25lbnQnKTtcbiAgICAgICAgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcy5hZGQoZmliZXIudHlwZSk7XG4gICAgICB9KTtcbiAgICAgIHBlbmRpbmdDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MgPSBbXTtcbiAgICB9XG5cbiAgICB2YXIgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNVbmlxdWVOYW1lcyA9IG5ldyBTZXQoKTtcblxuICAgIGlmIChwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5sZW5ndGggPiAwKSB7XG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzLmFkZChnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKSB8fCAnQ29tcG9uZW50Jyk7XG4gICAgICAgIGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMuYWRkKGZpYmVyLnR5cGUpO1xuICAgICAgfSk7XG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncyA9IFtdO1xuICAgIH1cblxuICAgIHZhciBjb21wb25lbnRXaWxsVXBkYXRlVW5pcXVlTmFtZXMgPSBuZXcgU2V0KCk7XG5cbiAgICBpZiAocGVuZGluZ0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncy5sZW5ndGggPiAwKSB7XG4gICAgICBwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLmZvckVhY2goZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgICAgIGNvbXBvbmVudFdpbGxVcGRhdGVVbmlxdWVOYW1lcy5hZGQoZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikgfHwgJ0NvbXBvbmVudCcpO1xuICAgICAgICBkaWRXYXJuQWJvdXRVbnNhZmVMaWZlY3ljbGVzLmFkZChmaWJlci50eXBlKTtcbiAgICAgIH0pO1xuICAgICAgcGVuZGluZ0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncyA9IFtdO1xuICAgIH1cblxuICAgIHZhciBVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZVVuaXF1ZU5hbWVzID0gbmV3IFNldCgpO1xuXG4gICAgaWYgKHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLmxlbmd0aCA+IDApIHtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLmZvckVhY2goZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgICAgIFVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlVW5pcXVlTmFtZXMuYWRkKGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8ICdDb21wb25lbnQnKTtcbiAgICAgICAgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcy5hZGQoZmliZXIudHlwZSk7XG4gICAgICB9KTtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzID0gW107XG4gICAgfSAvLyBGaW5hbGx5LCB3ZSBmbHVzaCBhbGwgdGhlIHdhcm5pbmdzXG4gICAgLy8gVU5TQUZFXyBvbmVzIGJlZm9yZSB0aGUgZGVwcmVjYXRlZCBvbmVzLCBzaW5jZSB0aGV5J2xsIGJlICdsb3VkZXInXG5cblxuICAgIGlmIChVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50VW5pcXVlTmFtZXMuc2l6ZSA+IDApIHtcbiAgICAgIHZhciBzb3J0ZWROYW1lcyA9IHNldFRvU29ydGVkU3RyaW5nKFVOU0FGRV9jb21wb25lbnRXaWxsTW91bnRVbmlxdWVOYW1lcyk7XG5cbiAgICAgIGVycm9yKCdVc2luZyBVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50IGluIHN0cmljdCBtb2RlIGlzIG5vdCByZWNvbW1lbmRlZCBhbmQgbWF5IGluZGljYXRlIGJ1Z3MgaW4geW91ciBjb2RlLiAnICsgJ1NlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvdW5zYWZlLWNvbXBvbmVudC1saWZlY3ljbGVzIGZvciBkZXRhaWxzLlxcblxcbicgKyAnKiBNb3ZlIGNvZGUgd2l0aCBzaWRlIGVmZmVjdHMgdG8gY29tcG9uZW50RGlkTW91bnQsIGFuZCBzZXQgaW5pdGlhbCBzdGF0ZSBpbiB0aGUgY29uc3RydWN0b3IuXFxuJyArICdcXG5QbGVhc2UgdXBkYXRlIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50czogJXMnLCBzb3J0ZWROYW1lcyk7XG4gICAgfVxuXG4gICAgaWYgKFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzVW5pcXVlTmFtZXMuc2l6ZSA+IDApIHtcbiAgICAgIHZhciBfc29ydGVkTmFtZXMgPSBzZXRUb1NvcnRlZFN0cmluZyhVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzKTtcblxuICAgICAgZXJyb3IoJ1VzaW5nIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIGluIHN0cmljdCBtb2RlIGlzIG5vdCByZWNvbW1lbmRlZCAnICsgJ2FuZCBtYXkgaW5kaWNhdGUgYnVncyBpbiB5b3VyIGNvZGUuICcgKyAnU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay91bnNhZmUtY29tcG9uZW50LWxpZmVjeWNsZXMgZm9yIGRldGFpbHMuXFxuXFxuJyArICcqIE1vdmUgZGF0YSBmZXRjaGluZyBjb2RlIG9yIHNpZGUgZWZmZWN0cyB0byBjb21wb25lbnREaWRVcGRhdGUuXFxuJyArIFwiKiBJZiB5b3UncmUgdXBkYXRpbmcgc3RhdGUgd2hlbmV2ZXIgcHJvcHMgY2hhbmdlLCBcIiArICdyZWZhY3RvciB5b3VyIGNvZGUgdG8gdXNlIG1lbW9pemF0aW9uIHRlY2huaXF1ZXMgb3IgbW92ZSBpdCB0byAnICsgJ3N0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMuIExlYXJuIG1vcmUgYXQ6IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9kZXJpdmVkLXN0YXRlXFxuJyArICdcXG5QbGVhc2UgdXBkYXRlIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50czogJXMnLCBfc29ydGVkTmFtZXMpO1xuICAgIH1cblxuICAgIGlmIChVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZVVuaXF1ZU5hbWVzLnNpemUgPiAwKSB7XG4gICAgICB2YXIgX3NvcnRlZE5hbWVzMiA9IHNldFRvU29ydGVkU3RyaW5nKFVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlVW5pcXVlTmFtZXMpO1xuXG4gICAgICBlcnJvcignVXNpbmcgVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgaW4gc3RyaWN0IG1vZGUgaXMgbm90IHJlY29tbWVuZGVkICcgKyAnYW5kIG1heSBpbmRpY2F0ZSBidWdzIGluIHlvdXIgY29kZS4gJyArICdTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3Vuc2FmZS1jb21wb25lbnQtbGlmZWN5Y2xlcyBmb3IgZGV0YWlscy5cXG5cXG4nICsgJyogTW92ZSBkYXRhIGZldGNoaW5nIGNvZGUgb3Igc2lkZSBlZmZlY3RzIHRvIGNvbXBvbmVudERpZFVwZGF0ZS5cXG4nICsgJ1xcblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlcycsIF9zb3J0ZWROYW1lczIpO1xuICAgIH1cblxuICAgIGlmIChjb21wb25lbnRXaWxsTW91bnRVbmlxdWVOYW1lcy5zaXplID4gMCkge1xuICAgICAgdmFyIF9zb3J0ZWROYW1lczMgPSBzZXRUb1NvcnRlZFN0cmluZyhjb21wb25lbnRXaWxsTW91bnRVbmlxdWVOYW1lcyk7XG5cbiAgICAgIHdhcm4oJ2NvbXBvbmVudFdpbGxNb3VudCBoYXMgYmVlbiByZW5hbWVkLCBhbmQgaXMgbm90IHJlY29tbWVuZGVkIGZvciB1c2UuICcgKyAnU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay91bnNhZmUtY29tcG9uZW50LWxpZmVjeWNsZXMgZm9yIGRldGFpbHMuXFxuXFxuJyArICcqIE1vdmUgY29kZSB3aXRoIHNpZGUgZWZmZWN0cyB0byBjb21wb25lbnREaWRNb3VudCwgYW5kIHNldCBpbml0aWFsIHN0YXRlIGluIHRoZSBjb25zdHJ1Y3Rvci5cXG4nICsgJyogUmVuYW1lIGNvbXBvbmVudFdpbGxNb3VudCB0byBVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50IHRvIHN1cHByZXNzICcgKyAndGhpcyB3YXJuaW5nIGluIG5vbi1zdHJpY3QgbW9kZS4gSW4gUmVhY3QgMTgueCwgb25seSB0aGUgVU5TQUZFXyBuYW1lIHdpbGwgd29yay4gJyArICdUbyByZW5hbWUgYWxsIGRlcHJlY2F0ZWQgbGlmZWN5Y2xlcyB0byB0aGVpciBuZXcgbmFtZXMsIHlvdSBjYW4gcnVuICcgKyAnYG5weCByZWFjdC1jb2RlbW9kIHJlbmFtZS11bnNhZmUtbGlmZWN5Y2xlc2AgaW4geW91ciBwcm9qZWN0IHNvdXJjZSBmb2xkZXIuXFxuJyArICdcXG5QbGVhc2UgdXBkYXRlIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50czogJXMnLCBfc29ydGVkTmFtZXMzKTtcbiAgICB9XG5cbiAgICBpZiAoY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzLnNpemUgPiAwKSB7XG4gICAgICB2YXIgX3NvcnRlZE5hbWVzNCA9IHNldFRvU29ydGVkU3RyaW5nKGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNVbmlxdWVOYW1lcyk7XG5cbiAgICAgIHdhcm4oJ2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgaGFzIGJlZW4gcmVuYW1lZCwgYW5kIGlzIG5vdCByZWNvbW1lbmRlZCBmb3IgdXNlLiAnICsgJ1NlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvdW5zYWZlLWNvbXBvbmVudC1saWZlY3ljbGVzIGZvciBkZXRhaWxzLlxcblxcbicgKyAnKiBNb3ZlIGRhdGEgZmV0Y2hpbmcgY29kZSBvciBzaWRlIGVmZmVjdHMgdG8gY29tcG9uZW50RGlkVXBkYXRlLlxcbicgKyBcIiogSWYgeW91J3JlIHVwZGF0aW5nIHN0YXRlIHdoZW5ldmVyIHByb3BzIGNoYW5nZSwgcmVmYWN0b3IgeW91ciBcIiArICdjb2RlIHRvIHVzZSBtZW1vaXphdGlvbiB0ZWNobmlxdWVzIG9yIG1vdmUgaXQgdG8gJyArICdzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLiBMZWFybiBtb3JlIGF0OiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvZGVyaXZlZC1zdGF0ZVxcbicgKyAnKiBSZW5hbWUgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyB0byBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyB0byBzdXBwcmVzcyAnICsgJ3RoaXMgd2FybmluZyBpbiBub24tc3RyaWN0IG1vZGUuIEluIFJlYWN0IDE4LngsIG9ubHkgdGhlIFVOU0FGRV8gbmFtZSB3aWxsIHdvcmsuICcgKyAnVG8gcmVuYW1lIGFsbCBkZXByZWNhdGVkIGxpZmVjeWNsZXMgdG8gdGhlaXIgbmV3IG5hbWVzLCB5b3UgY2FuIHJ1biAnICsgJ2BucHggcmVhY3QtY29kZW1vZCByZW5hbWUtdW5zYWZlLWxpZmVjeWNsZXNgIGluIHlvdXIgcHJvamVjdCBzb3VyY2UgZm9sZGVyLlxcbicgKyAnXFxuUGxlYXNlIHVwZGF0ZSB0aGUgZm9sbG93aW5nIGNvbXBvbmVudHM6ICVzJywgX3NvcnRlZE5hbWVzNCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbXBvbmVudFdpbGxVcGRhdGVVbmlxdWVOYW1lcy5zaXplID4gMCkge1xuICAgICAgdmFyIF9zb3J0ZWROYW1lczUgPSBzZXRUb1NvcnRlZFN0cmluZyhjb21wb25lbnRXaWxsVXBkYXRlVW5pcXVlTmFtZXMpO1xuXG4gICAgICB3YXJuKCdjb21wb25lbnRXaWxsVXBkYXRlIGhhcyBiZWVuIHJlbmFtZWQsIGFuZCBpcyBub3QgcmVjb21tZW5kZWQgZm9yIHVzZS4gJyArICdTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3Vuc2FmZS1jb21wb25lbnQtbGlmZWN5Y2xlcyBmb3IgZGV0YWlscy5cXG5cXG4nICsgJyogTW92ZSBkYXRhIGZldGNoaW5nIGNvZGUgb3Igc2lkZSBlZmZlY3RzIHRvIGNvbXBvbmVudERpZFVwZGF0ZS5cXG4nICsgJyogUmVuYW1lIGNvbXBvbmVudFdpbGxVcGRhdGUgdG8gVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgdG8gc3VwcHJlc3MgJyArICd0aGlzIHdhcm5pbmcgaW4gbm9uLXN0cmljdCBtb2RlLiBJbiBSZWFjdCAxOC54LCBvbmx5IHRoZSBVTlNBRkVfIG5hbWUgd2lsbCB3b3JrLiAnICsgJ1RvIHJlbmFtZSBhbGwgZGVwcmVjYXRlZCBsaWZlY3ljbGVzIHRvIHRoZWlyIG5ldyBuYW1lcywgeW91IGNhbiBydW4gJyArICdgbnB4IHJlYWN0LWNvZGVtb2QgcmVuYW1lLXVuc2FmZS1saWZlY3ljbGVzYCBpbiB5b3VyIHByb2plY3Qgc291cmNlIGZvbGRlci5cXG4nICsgJ1xcblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlcycsIF9zb3J0ZWROYW1lczUpO1xuICAgIH1cbiAgfTtcblxuICB2YXIgcGVuZGluZ0xlZ2FjeUNvbnRleHRXYXJuaW5nID0gbmV3IE1hcCgpOyAvLyBUcmFja3MgY29tcG9uZW50cyB3ZSBoYXZlIGFscmVhZHkgd2FybmVkIGFib3V0LlxuXG4gIHZhciBkaWRXYXJuQWJvdXRMZWdhY3lDb250ZXh0ID0gbmV3IFNldCgpO1xuXG4gIFJlYWN0U3RyaWN0TW9kZVdhcm5pbmdzLnJlY29yZExlZ2FjeUNvbnRleHRXYXJuaW5nID0gZnVuY3Rpb24gKGZpYmVyLCBpbnN0YW5jZSkge1xuICAgIHZhciBzdHJpY3RSb290ID0gZmluZFN0cmljdFJvb3QoZmliZXIpO1xuXG4gICAgaWYgKHN0cmljdFJvb3QgPT09IG51bGwpIHtcbiAgICAgIGVycm9yKCdFeHBlY3RlZCB0byBmaW5kIGEgU3RyaWN0TW9kZSBjb21wb25lbnQgaW4gYSBzdHJpY3QgbW9kZSB0cmVlLiAnICsgJ1RoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9IC8vIERlZHVwIHN0cmF0ZWd5OiBXYXJuIG9uY2UgcGVyIGNvbXBvbmVudC5cblxuXG4gICAgaWYgKGRpZFdhcm5BYm91dExlZ2FjeUNvbnRleHQuaGFzKGZpYmVyLnR5cGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHdhcm5pbmdzRm9yUm9vdCA9IHBlbmRpbmdMZWdhY3lDb250ZXh0V2FybmluZy5nZXQoc3RyaWN0Um9vdCk7XG5cbiAgICBpZiAoZmliZXIudHlwZS5jb250ZXh0VHlwZXMgIT0gbnVsbCB8fCBmaWJlci50eXBlLmNoaWxkQ29udGV4dFR5cGVzICE9IG51bGwgfHwgaW5zdGFuY2UgIT09IG51bGwgJiYgdHlwZW9mIGluc3RhbmNlLmdldENoaWxkQ29udGV4dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaWYgKHdhcm5pbmdzRm9yUm9vdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHdhcm5pbmdzRm9yUm9vdCA9IFtdO1xuICAgICAgICBwZW5kaW5nTGVnYWN5Q29udGV4dFdhcm5pbmcuc2V0KHN0cmljdFJvb3QsIHdhcm5pbmdzRm9yUm9vdCk7XG4gICAgICB9XG5cbiAgICAgIHdhcm5pbmdzRm9yUm9vdC5wdXNoKGZpYmVyKTtcbiAgICB9XG4gIH07XG5cbiAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MuZmx1c2hMZWdhY3lDb250ZXh0V2FybmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICBwZW5kaW5nTGVnYWN5Q29udGV4dFdhcm5pbmcuZm9yRWFjaChmdW5jdGlvbiAoZmliZXJBcnJheSwgc3RyaWN0Um9vdCkge1xuICAgICAgaWYgKGZpYmVyQXJyYXkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmFyIGZpcnN0RmliZXIgPSBmaWJlckFycmF5WzBdO1xuICAgICAgdmFyIHVuaXF1ZU5hbWVzID0gbmV3IFNldCgpO1xuICAgICAgZmliZXJBcnJheS5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICB1bmlxdWVOYW1lcy5hZGQoZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikgfHwgJ0NvbXBvbmVudCcpO1xuICAgICAgICBkaWRXYXJuQWJvdXRMZWdhY3lDb250ZXh0LmFkZChmaWJlci50eXBlKTtcbiAgICAgIH0pO1xuICAgICAgdmFyIHNvcnRlZE5hbWVzID0gc2V0VG9Tb3J0ZWRTdHJpbmcodW5pcXVlTmFtZXMpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBzZXRDdXJyZW50RmliZXIoZmlyc3RGaWJlcik7XG5cbiAgICAgICAgZXJyb3IoJ0xlZ2FjeSBjb250ZXh0IEFQSSBoYXMgYmVlbiBkZXRlY3RlZCB3aXRoaW4gYSBzdHJpY3QtbW9kZSB0cmVlLicgKyAnXFxuXFxuVGhlIG9sZCBBUEkgd2lsbCBiZSBzdXBwb3J0ZWQgaW4gYWxsIDE2LnggcmVsZWFzZXMsIGJ1dCBhcHBsaWNhdGlvbnMgJyArICd1c2luZyBpdCBzaG91bGQgbWlncmF0ZSB0byB0aGUgbmV3IHZlcnNpb24uJyArICdcXG5cXG5QbGVhc2UgdXBkYXRlIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50czogJXMnICsgJ1xcblxcbkxlYXJuIG1vcmUgYWJvdXQgdGhpcyB3YXJuaW5nIGhlcmU6IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9sZWdhY3ktY29udGV4dCcsIHNvcnRlZE5hbWVzKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MuZGlzY2FyZFBlbmRpbmdXYXJuaW5ncyA9IGZ1bmN0aW9uICgpIHtcbiAgICBwZW5kaW5nQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MgPSBbXTtcbiAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzID0gW107XG4gICAgcGVuZGluZ0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncyA9IFtdO1xuICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzID0gW107XG4gICAgcGVuZGluZ0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncyA9IFtdO1xuICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzID0gW107XG4gICAgcGVuZGluZ0xlZ2FjeUNvbnRleHRXYXJuaW5nID0gbmV3IE1hcCgpO1xuICB9O1xufVxuXG5mdW5jdGlvbiByZXNvbHZlRGVmYXVsdFByb3BzKENvbXBvbmVudCwgYmFzZVByb3BzKSB7XG4gIGlmIChDb21wb25lbnQgJiYgQ29tcG9uZW50LmRlZmF1bHRQcm9wcykge1xuICAgIC8vIFJlc29sdmUgZGVmYXVsdCBwcm9wcy4gVGFrZW4gZnJvbSBSZWFjdEVsZW1lbnRcbiAgICB2YXIgcHJvcHMgPSBhc3NpZ24oe30sIGJhc2VQcm9wcyk7XG4gICAgdmFyIGRlZmF1bHRQcm9wcyA9IENvbXBvbmVudC5kZWZhdWx0UHJvcHM7XG5cbiAgICBmb3IgKHZhciBwcm9wTmFtZSBpbiBkZWZhdWx0UHJvcHMpIHtcbiAgICAgIGlmIChwcm9wc1twcm9wTmFtZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBkZWZhdWx0UHJvcHNbcHJvcE5hbWVdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwcm9wcztcbiAgfVxuXG4gIHJldHVybiBiYXNlUHJvcHM7XG59XG5cbnZhciB2YWx1ZUN1cnNvciA9IGNyZWF0ZUN1cnNvcihudWxsKTtcbnZhciByZW5kZXJlclNpZ2lsO1xuXG57XG4gIC8vIFVzZSB0aGlzIHRvIGRldGVjdCBtdWx0aXBsZSByZW5kZXJlcnMgdXNpbmcgdGhlIHNhbWUgY29udGV4dFxuICByZW5kZXJlclNpZ2lsID0ge307XG59XG5cbnZhciBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciA9IG51bGw7XG52YXIgbGFzdENvbnRleHREZXBlbmRlbmN5ID0gbnVsbDtcbnZhciBsYXN0RnVsbHlPYnNlcnZlZENvbnRleHQgPSBudWxsO1xudmFyIGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYgPSBmYWxzZTtcbmZ1bmN0aW9uIHJlc2V0Q29udGV4dERlcGVuZGVuY2llcygpIHtcbiAgLy8gVGhpcyBpcyBjYWxsZWQgcmlnaHQgYmVmb3JlIFJlYWN0IHlpZWxkcyBleGVjdXRpb24sIHRvIGVuc3VyZSBgcmVhZENvbnRleHRgXG4gIC8vIGNhbm5vdCBiZSBjYWxsZWQgb3V0c2lkZSB0aGUgcmVuZGVyIHBoYXNlLlxuICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciA9IG51bGw7XG4gIGxhc3RDb250ZXh0RGVwZW5kZW5jeSA9IG51bGw7XG4gIGxhc3RGdWxseU9ic2VydmVkQ29udGV4dCA9IG51bGw7XG5cbiAge1xuICAgIGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYgPSBmYWxzZTtcbiAgfVxufVxuZnVuY3Rpb24gZW50ZXJEaXNhbGxvd2VkQ29udGV4dFJlYWRJbkRFVigpIHtcbiAge1xuICAgIGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYgPSB0cnVlO1xuICB9XG59XG5mdW5jdGlvbiBleGl0RGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYoKSB7XG4gIHtcbiAgICBpc0Rpc2FsbG93ZWRDb250ZXh0UmVhZEluREVWID0gZmFsc2U7XG4gIH1cbn1cbmZ1bmN0aW9uIHB1c2hQcm92aWRlcihwcm92aWRlckZpYmVyLCBjb250ZXh0LCBuZXh0VmFsdWUpIHtcbiAge1xuICAgIHB1c2godmFsdWVDdXJzb3IsIGNvbnRleHQuX2N1cnJlbnRWYWx1ZSwgcHJvdmlkZXJGaWJlcik7XG4gICAgY29udGV4dC5fY3VycmVudFZhbHVlID0gbmV4dFZhbHVlO1xuXG4gICAge1xuICAgICAgaWYgKGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciAhPT0gdW5kZWZpbmVkICYmIGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciAhPT0gbnVsbCAmJiBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIgIT09IHJlbmRlcmVyU2lnaWwpIHtcbiAgICAgICAgZXJyb3IoJ0RldGVjdGVkIG11bHRpcGxlIHJlbmRlcmVycyBjb25jdXJyZW50bHkgcmVuZGVyaW5nIHRoZSAnICsgJ3NhbWUgY29udGV4dCBwcm92aWRlci4gVGhpcyBpcyBjdXJyZW50bHkgdW5zdXBwb3J0ZWQuJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciA9IHJlbmRlcmVyU2lnaWw7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBwb3BQcm92aWRlcihjb250ZXh0LCBwcm92aWRlckZpYmVyKSB7XG4gIHZhciBjdXJyZW50VmFsdWUgPSB2YWx1ZUN1cnNvci5jdXJyZW50O1xuICBwb3AodmFsdWVDdXJzb3IsIHByb3ZpZGVyRmliZXIpO1xuXG4gIHtcbiAgICB7XG4gICAgICBjb250ZXh0Ll9jdXJyZW50VmFsdWUgPSBjdXJyZW50VmFsdWU7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBzY2hlZHVsZUNvbnRleHRXb3JrT25QYXJlbnRQYXRoKHBhcmVudCwgcmVuZGVyTGFuZXMsIHByb3BhZ2F0aW9uUm9vdCkge1xuICAvLyBVcGRhdGUgdGhlIGNoaWxkIGxhbmVzIG9mIGFsbCB0aGUgYW5jZXN0b3JzLCBpbmNsdWRpbmcgdGhlIGFsdGVybmF0ZXMuXG4gIHZhciBub2RlID0gcGFyZW50O1xuXG4gIHdoaWxlIChub2RlICE9PSBudWxsKSB7XG4gICAgdmFyIGFsdGVybmF0ZSA9IG5vZGUuYWx0ZXJuYXRlO1xuXG4gICAgaWYgKCFpc1N1YnNldE9mTGFuZXMobm9kZS5jaGlsZExhbmVzLCByZW5kZXJMYW5lcykpIHtcbiAgICAgIG5vZGUuY2hpbGRMYW5lcyA9IG1lcmdlTGFuZXMobm9kZS5jaGlsZExhbmVzLCByZW5kZXJMYW5lcyk7XG5cbiAgICAgIGlmIChhbHRlcm5hdGUgIT09IG51bGwpIHtcbiAgICAgICAgYWx0ZXJuYXRlLmNoaWxkTGFuZXMgPSBtZXJnZUxhbmVzKGFsdGVybmF0ZS5jaGlsZExhbmVzLCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChhbHRlcm5hdGUgIT09IG51bGwgJiYgIWlzU3Vic2V0T2ZMYW5lcyhhbHRlcm5hdGUuY2hpbGRMYW5lcywgcmVuZGVyTGFuZXMpKSB7XG4gICAgICBhbHRlcm5hdGUuY2hpbGRMYW5lcyA9IG1lcmdlTGFuZXMoYWx0ZXJuYXRlLmNoaWxkTGFuZXMsIHJlbmRlckxhbmVzKTtcbiAgICB9XG5cbiAgICBpZiAobm9kZSA9PT0gcHJvcGFnYXRpb25Sb290KSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBub2RlID0gbm9kZS5yZXR1cm47XG4gIH1cblxuICB7XG4gICAgaWYgKG5vZGUgIT09IHByb3BhZ2F0aW9uUm9vdCkge1xuICAgICAgZXJyb3IoJ0V4cGVjdGVkIHRvIGZpbmQgdGhlIHByb3BhZ2F0aW9uIHJvb3Qgd2hlbiBzY2hlZHVsaW5nIGNvbnRleHQgd29yay4gJyArICdUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gcHJvcGFnYXRlQ29udGV4dENoYW5nZSh3b3JrSW5Qcm9ncmVzcywgY29udGV4dCwgcmVuZGVyTGFuZXMpIHtcbiAge1xuICAgIHByb3BhZ2F0ZUNvbnRleHRDaGFuZ2VfZWFnZXIod29ya0luUHJvZ3Jlc3MsIGNvbnRleHQsIHJlbmRlckxhbmVzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwcm9wYWdhdGVDb250ZXh0Q2hhbmdlX2VhZ2VyKHdvcmtJblByb2dyZXNzLCBjb250ZXh0LCByZW5kZXJMYW5lcykge1xuXG4gIHZhciBmaWJlciA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuXG4gIGlmIChmaWJlciAhPT0gbnVsbCkge1xuICAgIC8vIFNldCB0aGUgcmV0dXJuIHBvaW50ZXIgb2YgdGhlIGNoaWxkIHRvIHRoZSB3b3JrLWluLXByb2dyZXNzIGZpYmVyLlxuICAgIGZpYmVyLnJldHVybiA9IHdvcmtJblByb2dyZXNzO1xuICB9XG5cbiAgd2hpbGUgKGZpYmVyICE9PSBudWxsKSB7XG4gICAgdmFyIG5leHRGaWJlciA9IHZvaWQgMDsgLy8gVmlzaXQgdGhpcyBmaWJlci5cblxuICAgIHZhciBsaXN0ID0gZmliZXIuZGVwZW5kZW5jaWVzO1xuXG4gICAgaWYgKGxpc3QgIT09IG51bGwpIHtcbiAgICAgIG5leHRGaWJlciA9IGZpYmVyLmNoaWxkO1xuICAgICAgdmFyIGRlcGVuZGVuY3kgPSBsaXN0LmZpcnN0Q29udGV4dDtcblxuICAgICAgd2hpbGUgKGRlcGVuZGVuY3kgIT09IG51bGwpIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGNvbnRleHQgbWF0Y2hlcy5cbiAgICAgICAgaWYgKGRlcGVuZGVuY3kuY29udGV4dCA9PT0gY29udGV4dCkge1xuICAgICAgICAgIC8vIE1hdGNoISBTY2hlZHVsZSBhbiB1cGRhdGUgb24gdGhpcyBmaWJlci5cbiAgICAgICAgICBpZiAoZmliZXIudGFnID09PSBDbGFzc0NvbXBvbmVudCkge1xuICAgICAgICAgICAgLy8gU2NoZWR1bGUgYSBmb3JjZSB1cGRhdGUgb24gdGhlIHdvcmstaW4tcHJvZ3Jlc3MuXG4gICAgICAgICAgICB2YXIgbGFuZSA9IHBpY2tBcmJpdHJhcnlMYW5lKHJlbmRlckxhbmVzKTtcbiAgICAgICAgICAgIHZhciB1cGRhdGUgPSBjcmVhdGVVcGRhdGUoTm9UaW1lc3RhbXAsIGxhbmUpO1xuICAgICAgICAgICAgdXBkYXRlLnRhZyA9IEZvcmNlVXBkYXRlOyAvLyBUT0RPOiBCZWNhdXNlIHdlIGRvbid0IGhhdmUgYSB3b3JrLWluLXByb2dyZXNzLCB0aGlzIHdpbGwgYWRkIHRoZVxuICAgICAgICAgICAgLy8gdXBkYXRlIHRvIHRoZSBjdXJyZW50IGZpYmVyLCB0b28sIHdoaWNoIG1lYW5zIGl0IHdpbGwgcGVyc2lzdCBldmVuIGlmXG4gICAgICAgICAgICAvLyB0aGlzIHJlbmRlciBpcyB0aHJvd24gYXdheS4gU2luY2UgaXQncyBhIHJhY2UgY29uZGl0aW9uLCBub3Qgc3VyZSBpdCdzXG4gICAgICAgICAgICAvLyB3b3J0aCBmaXhpbmcuXG4gICAgICAgICAgICAvLyBJbmxpbmVkIGBlbnF1ZXVlVXBkYXRlYCB0byByZW1vdmUgaW50ZXJsZWF2ZWQgdXBkYXRlIGNoZWNrXG5cbiAgICAgICAgICAgIHZhciB1cGRhdGVRdWV1ZSA9IGZpYmVyLnVwZGF0ZVF1ZXVlO1xuXG4gICAgICAgICAgICBpZiAodXBkYXRlUXVldWUgPT09IG51bGwpIDsgZWxzZSB7XG4gICAgICAgICAgICAgIHZhciBzaGFyZWRRdWV1ZSA9IHVwZGF0ZVF1ZXVlLnNoYXJlZDtcbiAgICAgICAgICAgICAgdmFyIHBlbmRpbmcgPSBzaGFyZWRRdWV1ZS5wZW5kaW5nO1xuXG4gICAgICAgICAgICAgIGlmIChwZW5kaW5nID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgZmlyc3QgdXBkYXRlLiBDcmVhdGUgYSBjaXJjdWxhciBsaXN0LlxuICAgICAgICAgICAgICAgIHVwZGF0ZS5uZXh0ID0gdXBkYXRlO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHVwZGF0ZS5uZXh0ID0gcGVuZGluZy5uZXh0O1xuICAgICAgICAgICAgICAgIHBlbmRpbmcubmV4dCA9IHVwZGF0ZTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHNoYXJlZFF1ZXVlLnBlbmRpbmcgPSB1cGRhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZmliZXIubGFuZXMgPSBtZXJnZUxhbmVzKGZpYmVyLmxhbmVzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgICAgdmFyIGFsdGVybmF0ZSA9IGZpYmVyLmFsdGVybmF0ZTtcblxuICAgICAgICAgIGlmIChhbHRlcm5hdGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGFsdGVybmF0ZS5sYW5lcyA9IG1lcmdlTGFuZXMoYWx0ZXJuYXRlLmxhbmVzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc2NoZWR1bGVDb250ZXh0V29ya09uUGFyZW50UGF0aChmaWJlci5yZXR1cm4sIHJlbmRlckxhbmVzLCB3b3JrSW5Qcm9ncmVzcyk7IC8vIE1hcmsgdGhlIHVwZGF0ZWQgbGFuZXMgb24gdGhlIGxpc3QsIHRvby5cblxuICAgICAgICAgIGxpc3QubGFuZXMgPSBtZXJnZUxhbmVzKGxpc3QubGFuZXMsIHJlbmRlckxhbmVzKTsgLy8gU2luY2Ugd2UgYWxyZWFkeSBmb3VuZCBhIG1hdGNoLCB3ZSBjYW4gc3RvcCB0cmF2ZXJzaW5nIHRoZVxuICAgICAgICAgIC8vIGRlcGVuZGVuY3kgbGlzdC5cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVwZW5kZW5jeSA9IGRlcGVuZGVuY3kubmV4dDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGZpYmVyLnRhZyA9PT0gQ29udGV4dFByb3ZpZGVyKSB7XG4gICAgICAvLyBEb24ndCBzY2FuIGRlZXBlciBpZiB0aGlzIGlzIGEgbWF0Y2hpbmcgcHJvdmlkZXJcbiAgICAgIG5leHRGaWJlciA9IGZpYmVyLnR5cGUgPT09IHdvcmtJblByb2dyZXNzLnR5cGUgPyBudWxsIDogZmliZXIuY2hpbGQ7XG4gICAgfSBlbHNlIGlmIChmaWJlci50YWcgPT09IERlaHlkcmF0ZWRGcmFnbWVudCkge1xuICAgICAgLy8gSWYgYSBkZWh5ZHJhdGVkIHN1c3BlbnNlIGJvdW5kYXJ5IGlzIGluIHRoaXMgc3VidHJlZSwgd2UgZG9uJ3Qga25vd1xuICAgICAgLy8gaWYgaXQgd2lsbCBoYXZlIGFueSBjb250ZXh0IGNvbnN1bWVycyBpbiBpdC4gVGhlIGJlc3Qgd2UgY2FuIGRvIGlzXG4gICAgICAvLyBtYXJrIGl0IGFzIGhhdmluZyB1cGRhdGVzLlxuICAgICAgdmFyIHBhcmVudFN1c3BlbnNlID0gZmliZXIucmV0dXJuO1xuXG4gICAgICBpZiAocGFyZW50U3VzcGVuc2UgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdXZSBqdXN0IGNhbWUgZnJvbSBhIHBhcmVudCBzbyB3ZSBtdXN0IGhhdmUgaGFkIGEgcGFyZW50LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LicpO1xuICAgICAgfVxuXG4gICAgICBwYXJlbnRTdXNwZW5zZS5sYW5lcyA9IG1lcmdlTGFuZXMocGFyZW50U3VzcGVuc2UubGFuZXMsIHJlbmRlckxhbmVzKTtcbiAgICAgIHZhciBfYWx0ZXJuYXRlID0gcGFyZW50U3VzcGVuc2UuYWx0ZXJuYXRlO1xuXG4gICAgICBpZiAoX2FsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgICBfYWx0ZXJuYXRlLmxhbmVzID0gbWVyZ2VMYW5lcyhfYWx0ZXJuYXRlLmxhbmVzLCByZW5kZXJMYW5lcyk7XG4gICAgICB9IC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBwYXNzaW5nIHRoaXMgZmliZXIgYXMgdGhlIHBhcmVudFxuICAgICAgLy8gYmVjYXVzZSB3ZSB3YW50IHRvIHNjaGVkdWxlIHRoaXMgZmliZXIgYXMgaGF2aW5nIHdvcmtcbiAgICAgIC8vIG9uIGl0cyBjaGlsZHJlbi4gV2UnbGwgdXNlIHRoZSBjaGlsZExhbmVzIG9uXG4gICAgICAvLyB0aGlzIGZpYmVyIHRvIGluZGljYXRlIHRoYXQgYSBjb250ZXh0IGhhcyBjaGFuZ2VkLlxuXG5cbiAgICAgIHNjaGVkdWxlQ29udGV4dFdvcmtPblBhcmVudFBhdGgocGFyZW50U3VzcGVuc2UsIHJlbmRlckxhbmVzLCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICBuZXh0RmliZXIgPSBmaWJlci5zaWJsaW5nO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUcmF2ZXJzZSBkb3duLlxuICAgICAgbmV4dEZpYmVyID0gZmliZXIuY2hpbGQ7XG4gICAgfVxuXG4gICAgaWYgKG5leHRGaWJlciAhPT0gbnVsbCkge1xuICAgICAgLy8gU2V0IHRoZSByZXR1cm4gcG9pbnRlciBvZiB0aGUgY2hpbGQgdG8gdGhlIHdvcmstaW4tcHJvZ3Jlc3MgZmliZXIuXG4gICAgICBuZXh0RmliZXIucmV0dXJuID0gZmliZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5vIGNoaWxkLiBUcmF2ZXJzZSB0byBuZXh0IHNpYmxpbmcuXG4gICAgICBuZXh0RmliZXIgPSBmaWJlcjtcblxuICAgICAgd2hpbGUgKG5leHRGaWJlciAhPT0gbnVsbCkge1xuICAgICAgICBpZiAobmV4dEZpYmVyID09PSB3b3JrSW5Qcm9ncmVzcykge1xuICAgICAgICAgIC8vIFdlJ3JlIGJhY2sgdG8gdGhlIHJvb3Qgb2YgdGhpcyBzdWJ0cmVlLiBFeGl0LlxuICAgICAgICAgIG5leHRGaWJlciA9IG51bGw7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgc2libGluZyA9IG5leHRGaWJlci5zaWJsaW5nO1xuXG4gICAgICAgIGlmIChzaWJsaW5nICE9PSBudWxsKSB7XG4gICAgICAgICAgLy8gU2V0IHRoZSByZXR1cm4gcG9pbnRlciBvZiB0aGUgc2libGluZyB0byB0aGUgd29yay1pbi1wcm9ncmVzcyBmaWJlci5cbiAgICAgICAgICBzaWJsaW5nLnJldHVybiA9IG5leHRGaWJlci5yZXR1cm47XG4gICAgICAgICAgbmV4dEZpYmVyID0gc2libGluZztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfSAvLyBObyBtb3JlIHNpYmxpbmdzLiBUcmF2ZXJzZSB1cC5cblxuXG4gICAgICAgIG5leHRGaWJlciA9IG5leHRGaWJlci5yZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgZmliZXIgPSBuZXh0RmliZXI7XG4gIH1cbn1cbmZ1bmN0aW9uIHByZXBhcmVUb1JlYWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciA9IHdvcmtJblByb2dyZXNzO1xuICBsYXN0Q29udGV4dERlcGVuZGVuY3kgPSBudWxsO1xuICBsYXN0RnVsbHlPYnNlcnZlZENvbnRleHQgPSBudWxsO1xuICB2YXIgZGVwZW5kZW5jaWVzID0gd29ya0luUHJvZ3Jlc3MuZGVwZW5kZW5jaWVzO1xuXG4gIGlmIChkZXBlbmRlbmNpZXMgIT09IG51bGwpIHtcbiAgICB7XG4gICAgICB2YXIgZmlyc3RDb250ZXh0ID0gZGVwZW5kZW5jaWVzLmZpcnN0Q29udGV4dDtcblxuICAgICAgaWYgKGZpcnN0Q29udGV4dCAhPT0gbnVsbCkge1xuICAgICAgICBpZiAoaW5jbHVkZXNTb21lTGFuZShkZXBlbmRlbmNpZXMubGFuZXMsIHJlbmRlckxhbmVzKSkge1xuICAgICAgICAgIC8vIENvbnRleHQgbGlzdCBoYXMgYSBwZW5kaW5nIHVwZGF0ZS4gTWFyayB0aGF0IHRoaXMgZmliZXIgcGVyZm9ybWVkIHdvcmsuXG4gICAgICAgICAgbWFya1dvcmtJblByb2dyZXNzUmVjZWl2ZWRVcGRhdGUoKTtcbiAgICAgICAgfSAvLyBSZXNldCB0aGUgd29yay1pbi1wcm9ncmVzcyBsaXN0XG5cblxuICAgICAgICBkZXBlbmRlbmNpZXMuZmlyc3RDb250ZXh0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIHJlYWRDb250ZXh0KGNvbnRleHQpIHtcbiAge1xuICAgIC8vIFRoaXMgd2FybmluZyB3b3VsZCBmaXJlIGlmIHlvdSByZWFkIGNvbnRleHQgaW5zaWRlIGEgSG9vayBsaWtlIHVzZU1lbW8uXG4gICAgLy8gVW5saWtlIHRoZSBjbGFzcyBjaGVjayBiZWxvdywgaXQncyBub3QgZW5mb3JjZWQgaW4gcHJvZHVjdGlvbiBmb3IgcGVyZi5cbiAgICBpZiAoaXNEaXNhbGxvd2VkQ29udGV4dFJlYWRJbkRFVikge1xuICAgICAgZXJyb3IoJ0NvbnRleHQgY2FuIG9ubHkgYmUgcmVhZCB3aGlsZSBSZWFjdCBpcyByZW5kZXJpbmcuICcgKyAnSW4gY2xhc3NlcywgeW91IGNhbiByZWFkIGl0IGluIHRoZSByZW5kZXIgbWV0aG9kIG9yIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcy4gJyArICdJbiBmdW5jdGlvbiBjb21wb25lbnRzLCB5b3UgY2FuIHJlYWQgaXQgZGlyZWN0bHkgaW4gdGhlIGZ1bmN0aW9uIGJvZHksIGJ1dCBub3QgJyArICdpbnNpZGUgSG9va3MgbGlrZSB1c2VSZWR1Y2VyKCkgb3IgdXNlTWVtbygpLicpO1xuICAgIH1cbiAgfVxuXG4gIHZhciB2YWx1ZSA9ICBjb250ZXh0Ll9jdXJyZW50VmFsdWUgO1xuXG4gIGlmIChsYXN0RnVsbHlPYnNlcnZlZENvbnRleHQgPT09IGNvbnRleHQpIDsgZWxzZSB7XG4gICAgdmFyIGNvbnRleHRJdGVtID0ge1xuICAgICAgY29udGV4dDogY29udGV4dCxcbiAgICAgIG1lbW9pemVkVmFsdWU6IHZhbHVlLFxuICAgICAgbmV4dDogbnVsbFxuICAgIH07XG5cbiAgICBpZiAobGFzdENvbnRleHREZXBlbmRlbmN5ID09PSBudWxsKSB7XG4gICAgICBpZiAoY3VycmVudGx5UmVuZGVyaW5nRmliZXIgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb250ZXh0IGNhbiBvbmx5IGJlIHJlYWQgd2hpbGUgUmVhY3QgaXMgcmVuZGVyaW5nLiAnICsgJ0luIGNsYXNzZXMsIHlvdSBjYW4gcmVhZCBpdCBpbiB0aGUgcmVuZGVyIG1ldGhvZCBvciBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMuICcgKyAnSW4gZnVuY3Rpb24gY29tcG9uZW50cywgeW91IGNhbiByZWFkIGl0IGRpcmVjdGx5IGluIHRoZSBmdW5jdGlvbiBib2R5LCBidXQgbm90ICcgKyAnaW5zaWRlIEhvb2tzIGxpa2UgdXNlUmVkdWNlcigpIG9yIHVzZU1lbW8oKS4nKTtcbiAgICAgIH0gLy8gVGhpcyBpcyB0aGUgZmlyc3QgZGVwZW5kZW5jeSBmb3IgdGhpcyBjb21wb25lbnQuIENyZWF0ZSBhIG5ldyBsaXN0LlxuXG5cbiAgICAgIGxhc3RDb250ZXh0RGVwZW5kZW5jeSA9IGNvbnRleHRJdGVtO1xuICAgICAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIuZGVwZW5kZW5jaWVzID0ge1xuICAgICAgICBsYW5lczogTm9MYW5lcyxcbiAgICAgICAgZmlyc3RDb250ZXh0OiBjb250ZXh0SXRlbVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQXBwZW5kIGEgbmV3IGNvbnRleHQgaXRlbS5cbiAgICAgIGxhc3RDb250ZXh0RGVwZW5kZW5jeSA9IGxhc3RDb250ZXh0RGVwZW5kZW5jeS5uZXh0ID0gY29udGV4dEl0ZW07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG4vLyByZW5kZXIuIFdoZW4gdGhpcyByZW5kZXIgZXhpdHMsIGVpdGhlciBiZWNhdXNlIGl0IGZpbmlzaGVzIG9yIGJlY2F1c2UgaXQgaXNcbi8vIGludGVycnVwdGVkLCB0aGUgaW50ZXJsZWF2ZWQgdXBkYXRlcyB3aWxsIGJlIHRyYW5zZmVycmVkIG9udG8gdGhlIG1haW4gcGFydFxuLy8gb2YgdGhlIHF1ZXVlLlxuXG52YXIgY29uY3VycmVudFF1ZXVlcyA9IG51bGw7XG5mdW5jdGlvbiBwdXNoQ29uY3VycmVudFVwZGF0ZVF1ZXVlKHF1ZXVlKSB7XG4gIGlmIChjb25jdXJyZW50UXVldWVzID09PSBudWxsKSB7XG4gICAgY29uY3VycmVudFF1ZXVlcyA9IFtxdWV1ZV07XG4gIH0gZWxzZSB7XG4gICAgY29uY3VycmVudFF1ZXVlcy5wdXNoKHF1ZXVlKTtcbiAgfVxufVxuZnVuY3Rpb24gZmluaXNoUXVldWVpbmdDb25jdXJyZW50VXBkYXRlcygpIHtcbiAgLy8gVHJhbnNmZXIgdGhlIGludGVybGVhdmVkIHVwZGF0ZXMgb250byB0aGUgbWFpbiBxdWV1ZS4gRWFjaCBxdWV1ZSBoYXMgYVxuICAvLyBgcGVuZGluZ2AgZmllbGQgYW5kIGFuIGBpbnRlcmxlYXZlZGAgZmllbGQuIFdoZW4gdGhleSBhcmUgbm90IG51bGwsIHRoZXlcbiAgLy8gcG9pbnQgdG8gdGhlIGxhc3Qgbm9kZSBpbiBhIGNpcmN1bGFyIGxpbmtlZCBsaXN0LiBXZSBuZWVkIHRvIGFwcGVuZCB0aGVcbiAgLy8gaW50ZXJsZWF2ZWQgbGlzdCB0byB0aGUgZW5kIG9mIHRoZSBwZW5kaW5nIGxpc3QgYnkgam9pbmluZyB0aGVtIGludG8gYVxuICAvLyBzaW5nbGUsIGNpcmN1bGFyIGxpc3QuXG4gIGlmIChjb25jdXJyZW50UXVldWVzICE9PSBudWxsKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25jdXJyZW50UXVldWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcXVldWUgPSBjb25jdXJyZW50UXVldWVzW2ldO1xuICAgICAgdmFyIGxhc3RJbnRlcmxlYXZlZFVwZGF0ZSA9IHF1ZXVlLmludGVybGVhdmVkO1xuXG4gICAgICBpZiAobGFzdEludGVybGVhdmVkVXBkYXRlICE9PSBudWxsKSB7XG4gICAgICAgIHF1ZXVlLmludGVybGVhdmVkID0gbnVsbDtcbiAgICAgICAgdmFyIGZpcnN0SW50ZXJsZWF2ZWRVcGRhdGUgPSBsYXN0SW50ZXJsZWF2ZWRVcGRhdGUubmV4dDtcbiAgICAgICAgdmFyIGxhc3RQZW5kaW5nVXBkYXRlID0gcXVldWUucGVuZGluZztcblxuICAgICAgICBpZiAobGFzdFBlbmRpbmdVcGRhdGUgIT09IG51bGwpIHtcbiAgICAgICAgICB2YXIgZmlyc3RQZW5kaW5nVXBkYXRlID0gbGFzdFBlbmRpbmdVcGRhdGUubmV4dDtcbiAgICAgICAgICBsYXN0UGVuZGluZ1VwZGF0ZS5uZXh0ID0gZmlyc3RJbnRlcmxlYXZlZFVwZGF0ZTtcbiAgICAgICAgICBsYXN0SW50ZXJsZWF2ZWRVcGRhdGUubmV4dCA9IGZpcnN0UGVuZGluZ1VwZGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHF1ZXVlLnBlbmRpbmcgPSBsYXN0SW50ZXJsZWF2ZWRVcGRhdGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uY3VycmVudFF1ZXVlcyA9IG51bGw7XG4gIH1cbn1cbmZ1bmN0aW9uIGVucXVldWVDb25jdXJyZW50SG9va1VwZGF0ZShmaWJlciwgcXVldWUsIHVwZGF0ZSwgbGFuZSkge1xuICB2YXIgaW50ZXJsZWF2ZWQgPSBxdWV1ZS5pbnRlcmxlYXZlZDtcblxuICBpZiAoaW50ZXJsZWF2ZWQgPT09IG51bGwpIHtcbiAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCB1cGRhdGUuIENyZWF0ZSBhIGNpcmN1bGFyIGxpc3QuXG4gICAgdXBkYXRlLm5leHQgPSB1cGRhdGU7IC8vIEF0IHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgcmVuZGVyLCB0aGlzIHF1ZXVlJ3MgaW50ZXJsZWF2ZWQgdXBkYXRlcyB3aWxsXG4gICAgLy8gYmUgdHJhbnNmZXJyZWQgdG8gdGhlIHBlbmRpbmcgcXVldWUuXG5cbiAgICBwdXNoQ29uY3VycmVudFVwZGF0ZVF1ZXVlKHF1ZXVlKTtcbiAgfSBlbHNlIHtcbiAgICB1cGRhdGUubmV4dCA9IGludGVybGVhdmVkLm5leHQ7XG4gICAgaW50ZXJsZWF2ZWQubmV4dCA9IHVwZGF0ZTtcbiAgfVxuXG4gIHF1ZXVlLmludGVybGVhdmVkID0gdXBkYXRlO1xuICByZXR1cm4gbWFya1VwZGF0ZUxhbmVGcm9tRmliZXJUb1Jvb3QoZmliZXIsIGxhbmUpO1xufVxuZnVuY3Rpb24gZW5xdWV1ZUNvbmN1cnJlbnRIb29rVXBkYXRlQW5kRWFnZXJseUJhaWxvdXQoZmliZXIsIHF1ZXVlLCB1cGRhdGUsIGxhbmUpIHtcbiAgdmFyIGludGVybGVhdmVkID0gcXVldWUuaW50ZXJsZWF2ZWQ7XG5cbiAgaWYgKGludGVybGVhdmVkID09PSBudWxsKSB7XG4gICAgLy8gVGhpcyBpcyB0aGUgZmlyc3QgdXBkYXRlLiBDcmVhdGUgYSBjaXJjdWxhciBsaXN0LlxuICAgIHVwZGF0ZS5uZXh0ID0gdXBkYXRlOyAvLyBBdCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IHJlbmRlciwgdGhpcyBxdWV1ZSdzIGludGVybGVhdmVkIHVwZGF0ZXMgd2lsbFxuICAgIC8vIGJlIHRyYW5zZmVycmVkIHRvIHRoZSBwZW5kaW5nIHF1ZXVlLlxuXG4gICAgcHVzaENvbmN1cnJlbnRVcGRhdGVRdWV1ZShxdWV1ZSk7XG4gIH0gZWxzZSB7XG4gICAgdXBkYXRlLm5leHQgPSBpbnRlcmxlYXZlZC5uZXh0O1xuICAgIGludGVybGVhdmVkLm5leHQgPSB1cGRhdGU7XG4gIH1cblxuICBxdWV1ZS5pbnRlcmxlYXZlZCA9IHVwZGF0ZTtcbn1cbmZ1bmN0aW9uIGVucXVldWVDb25jdXJyZW50Q2xhc3NVcGRhdGUoZmliZXIsIHF1ZXVlLCB1cGRhdGUsIGxhbmUpIHtcbiAgdmFyIGludGVybGVhdmVkID0gcXVldWUuaW50ZXJsZWF2ZWQ7XG5cbiAgaWYgKGludGVybGVhdmVkID09PSBudWxsKSB7XG4gICAgLy8gVGhpcyBpcyB0aGUgZmlyc3QgdXBkYXRlLiBDcmVhdGUgYSBjaXJjdWxhciBsaXN0LlxuICAgIHVwZGF0ZS5uZXh0ID0gdXBkYXRlOyAvLyBBdCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IHJlbmRlciwgdGhpcyBxdWV1ZSdzIGludGVybGVhdmVkIHVwZGF0ZXMgd2lsbFxuICAgIC8vIGJlIHRyYW5zZmVycmVkIHRvIHRoZSBwZW5kaW5nIHF1ZXVlLlxuXG4gICAgcHVzaENvbmN1cnJlbnRVcGRhdGVRdWV1ZShxdWV1ZSk7XG4gIH0gZWxzZSB7XG4gICAgdXBkYXRlLm5leHQgPSBpbnRlcmxlYXZlZC5uZXh0O1xuICAgIGludGVybGVhdmVkLm5leHQgPSB1cGRhdGU7XG4gIH1cblxuICBxdWV1ZS5pbnRlcmxlYXZlZCA9IHVwZGF0ZTtcbiAgcmV0dXJuIG1hcmtVcGRhdGVMYW5lRnJvbUZpYmVyVG9Sb290KGZpYmVyLCBsYW5lKTtcbn1cbmZ1bmN0aW9uIGVucXVldWVDb25jdXJyZW50UmVuZGVyRm9yTGFuZShmaWJlciwgbGFuZSkge1xuICByZXR1cm4gbWFya1VwZGF0ZUxhbmVGcm9tRmliZXJUb1Jvb3QoZmliZXIsIGxhbmUpO1xufSAvLyBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gb3V0c2lkZSB0aGlzIG1vZHVsZSBzaG91bGQgb25seSBiZSBkb25lIGZvciBiYWNrd2FyZHNcbi8vIGNvbXBhdGliaWxpdHkgYW5kIHNob3VsZCBhbHdheXMgYmUgYWNjb21wYW5pZWQgYnkgYSB3YXJuaW5nLlxuXG52YXIgdW5zYWZlX21hcmtVcGRhdGVMYW5lRnJvbUZpYmVyVG9Sb290ID0gbWFya1VwZGF0ZUxhbmVGcm9tRmliZXJUb1Jvb3Q7XG5cbmZ1bmN0aW9uIG1hcmtVcGRhdGVMYW5lRnJvbUZpYmVyVG9Sb290KHNvdXJjZUZpYmVyLCBsYW5lKSB7XG4gIC8vIFVwZGF0ZSB0aGUgc291cmNlIGZpYmVyJ3MgbGFuZXNcbiAgc291cmNlRmliZXIubGFuZXMgPSBtZXJnZUxhbmVzKHNvdXJjZUZpYmVyLmxhbmVzLCBsYW5lKTtcbiAgdmFyIGFsdGVybmF0ZSA9IHNvdXJjZUZpYmVyLmFsdGVybmF0ZTtcblxuICBpZiAoYWx0ZXJuYXRlICE9PSBudWxsKSB7XG4gICAgYWx0ZXJuYXRlLmxhbmVzID0gbWVyZ2VMYW5lcyhhbHRlcm5hdGUubGFuZXMsIGxhbmUpO1xuICB9XG5cbiAge1xuICAgIGlmIChhbHRlcm5hdGUgPT09IG51bGwgJiYgKHNvdXJjZUZpYmVyLmZsYWdzICYgKFBsYWNlbWVudCB8IEh5ZHJhdGluZykpICE9PSBOb0ZsYWdzKSB7XG4gICAgICB3YXJuQWJvdXRVcGRhdGVPbk5vdFlldE1vdW50ZWRGaWJlckluREVWKHNvdXJjZUZpYmVyKTtcbiAgICB9XG4gIH0gLy8gV2FsayB0aGUgcGFyZW50IHBhdGggdG8gdGhlIHJvb3QgYW5kIHVwZGF0ZSB0aGUgY2hpbGQgbGFuZXMuXG5cblxuICB2YXIgbm9kZSA9IHNvdXJjZUZpYmVyO1xuICB2YXIgcGFyZW50ID0gc291cmNlRmliZXIucmV0dXJuO1xuXG4gIHdoaWxlIChwYXJlbnQgIT09IG51bGwpIHtcbiAgICBwYXJlbnQuY2hpbGRMYW5lcyA9IG1lcmdlTGFuZXMocGFyZW50LmNoaWxkTGFuZXMsIGxhbmUpO1xuICAgIGFsdGVybmF0ZSA9IHBhcmVudC5hbHRlcm5hdGU7XG5cbiAgICBpZiAoYWx0ZXJuYXRlICE9PSBudWxsKSB7XG4gICAgICBhbHRlcm5hdGUuY2hpbGRMYW5lcyA9IG1lcmdlTGFuZXMoYWx0ZXJuYXRlLmNoaWxkTGFuZXMsIGxhbmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB7XG4gICAgICAgIGlmICgocGFyZW50LmZsYWdzICYgKFBsYWNlbWVudCB8IEh5ZHJhdGluZykpICE9PSBOb0ZsYWdzKSB7XG4gICAgICAgICAgd2FybkFib3V0VXBkYXRlT25Ob3RZZXRNb3VudGVkRmliZXJJbkRFVihzb3VyY2VGaWJlcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBub2RlID0gcGFyZW50O1xuICAgIHBhcmVudCA9IHBhcmVudC5yZXR1cm47XG4gIH1cblxuICBpZiAobm9kZS50YWcgPT09IEhvc3RSb290KSB7XG4gICAgdmFyIHJvb3QgPSBub2RlLnN0YXRlTm9kZTtcbiAgICByZXR1cm4gcm9vdDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG52YXIgVXBkYXRlU3RhdGUgPSAwO1xudmFyIFJlcGxhY2VTdGF0ZSA9IDE7XG52YXIgRm9yY2VVcGRhdGUgPSAyO1xudmFyIENhcHR1cmVVcGRhdGUgPSAzOyAvLyBHbG9iYWwgc3RhdGUgdGhhdCBpcyByZXNldCBhdCB0aGUgYmVnaW5uaW5nIG9mIGNhbGxpbmcgYHByb2Nlc3NVcGRhdGVRdWV1ZWAuXG4vLyBJdCBzaG91bGQgb25seSBiZSByZWFkIHJpZ2h0IGFmdGVyIGNhbGxpbmcgYHByb2Nlc3NVcGRhdGVRdWV1ZWAsIHZpYVxuLy8gYGNoZWNrSGFzRm9yY2VVcGRhdGVBZnRlclByb2Nlc3NpbmdgLlxuXG52YXIgaGFzRm9yY2VVcGRhdGUgPSBmYWxzZTtcbnZhciBkaWRXYXJuVXBkYXRlSW5zaWRlVXBkYXRlO1xudmFyIGN1cnJlbnRseVByb2Nlc3NpbmdRdWV1ZTtcblxue1xuICBkaWRXYXJuVXBkYXRlSW5zaWRlVXBkYXRlID0gZmFsc2U7XG4gIGN1cnJlbnRseVByb2Nlc3NpbmdRdWV1ZSA9IG51bGw7XG59XG5cbmZ1bmN0aW9uIGluaXRpYWxpemVVcGRhdGVRdWV1ZShmaWJlcikge1xuICB2YXIgcXVldWUgPSB7XG4gICAgYmFzZVN0YXRlOiBmaWJlci5tZW1vaXplZFN0YXRlLFxuICAgIGZpcnN0QmFzZVVwZGF0ZTogbnVsbCxcbiAgICBsYXN0QmFzZVVwZGF0ZTogbnVsbCxcbiAgICBzaGFyZWQ6IHtcbiAgICAgIHBlbmRpbmc6IG51bGwsXG4gICAgICBpbnRlcmxlYXZlZDogbnVsbCxcbiAgICAgIGxhbmVzOiBOb0xhbmVzXG4gICAgfSxcbiAgICBlZmZlY3RzOiBudWxsXG4gIH07XG4gIGZpYmVyLnVwZGF0ZVF1ZXVlID0gcXVldWU7XG59XG5mdW5jdGlvbiBjbG9uZVVwZGF0ZVF1ZXVlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKSB7XG4gIC8vIENsb25lIHRoZSB1cGRhdGUgcXVldWUgZnJvbSBjdXJyZW50LiBVbmxlc3MgaXQncyBhbHJlYWR5IGEgY2xvbmUuXG4gIHZhciBxdWV1ZSA9IHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlO1xuICB2YXIgY3VycmVudFF1ZXVlID0gY3VycmVudC51cGRhdGVRdWV1ZTtcblxuICBpZiAocXVldWUgPT09IGN1cnJlbnRRdWV1ZSkge1xuICAgIHZhciBjbG9uZSA9IHtcbiAgICAgIGJhc2VTdGF0ZTogY3VycmVudFF1ZXVlLmJhc2VTdGF0ZSxcbiAgICAgIGZpcnN0QmFzZVVwZGF0ZTogY3VycmVudFF1ZXVlLmZpcnN0QmFzZVVwZGF0ZSxcbiAgICAgIGxhc3RCYXNlVXBkYXRlOiBjdXJyZW50UXVldWUubGFzdEJhc2VVcGRhdGUsXG4gICAgICBzaGFyZWQ6IGN1cnJlbnRRdWV1ZS5zaGFyZWQsXG4gICAgICBlZmZlY3RzOiBjdXJyZW50UXVldWUuZWZmZWN0c1xuICAgIH07XG4gICAgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBjbG9uZTtcbiAgfVxufVxuZnVuY3Rpb24gY3JlYXRlVXBkYXRlKGV2ZW50VGltZSwgbGFuZSkge1xuICB2YXIgdXBkYXRlID0ge1xuICAgIGV2ZW50VGltZTogZXZlbnRUaW1lLFxuICAgIGxhbmU6IGxhbmUsXG4gICAgdGFnOiBVcGRhdGVTdGF0ZSxcbiAgICBwYXlsb2FkOiBudWxsLFxuICAgIGNhbGxiYWNrOiBudWxsLFxuICAgIG5leHQ6IG51bGxcbiAgfTtcbiAgcmV0dXJuIHVwZGF0ZTtcbn1cbmZ1bmN0aW9uIGVucXVldWVVcGRhdGUoZmliZXIsIHVwZGF0ZSwgbGFuZSkge1xuICB2YXIgdXBkYXRlUXVldWUgPSBmaWJlci51cGRhdGVRdWV1ZTtcblxuICBpZiAodXBkYXRlUXVldWUgPT09IG51bGwpIHtcbiAgICAvLyBPbmx5IG9jY3VycyBpZiB0aGUgZmliZXIgaGFzIGJlZW4gdW5tb3VudGVkLlxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIHNoYXJlZFF1ZXVlID0gdXBkYXRlUXVldWUuc2hhcmVkO1xuXG4gIHtcbiAgICBpZiAoY3VycmVudGx5UHJvY2Vzc2luZ1F1ZXVlID09PSBzaGFyZWRRdWV1ZSAmJiAhZGlkV2FyblVwZGF0ZUluc2lkZVVwZGF0ZSkge1xuICAgICAgZXJyb3IoJ0FuIHVwZGF0ZSAoc2V0U3RhdGUsIHJlcGxhY2VTdGF0ZSwgb3IgZm9yY2VVcGRhdGUpIHdhcyBzY2hlZHVsZWQgJyArICdmcm9tIGluc2lkZSBhbiB1cGRhdGUgZnVuY3Rpb24uIFVwZGF0ZSBmdW5jdGlvbnMgc2hvdWxkIGJlIHB1cmUsICcgKyAnd2l0aCB6ZXJvIHNpZGUtZWZmZWN0cy4gQ29uc2lkZXIgdXNpbmcgY29tcG9uZW50RGlkVXBkYXRlIG9yIGEgJyArICdjYWxsYmFjay4nKTtcblxuICAgICAgZGlkV2FyblVwZGF0ZUluc2lkZVVwZGF0ZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKGlzVW5zYWZlQ2xhc3NSZW5kZXJQaGFzZVVwZGF0ZSgpKSB7XG4gICAgLy8gVGhpcyBpcyBhbiB1bnNhZmUgcmVuZGVyIHBoYXNlIHVwZGF0ZS4gQWRkIGRpcmVjdGx5IHRvIHRoZSB1cGRhdGVcbiAgICAvLyBxdWV1ZSBzbyB3ZSBjYW4gcHJvY2VzcyBpdCBpbW1lZGlhdGVseSBkdXJpbmcgdGhlIGN1cnJlbnQgcmVuZGVyLlxuICAgIHZhciBwZW5kaW5nID0gc2hhcmVkUXVldWUucGVuZGluZztcblxuICAgIGlmIChwZW5kaW5nID09PSBudWxsKSB7XG4gICAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCB1cGRhdGUuIENyZWF0ZSBhIGNpcmN1bGFyIGxpc3QuXG4gICAgICB1cGRhdGUubmV4dCA9IHVwZGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdXBkYXRlLm5leHQgPSBwZW5kaW5nLm5leHQ7XG4gICAgICBwZW5kaW5nLm5leHQgPSB1cGRhdGU7XG4gICAgfVxuXG4gICAgc2hhcmVkUXVldWUucGVuZGluZyA9IHVwZGF0ZTsgLy8gVXBkYXRlIHRoZSBjaGlsZExhbmVzIGV2ZW4gdGhvdWdoIHdlJ3JlIG1vc3QgbGlrZWx5IGFscmVhZHkgcmVuZGVyaW5nXG4gICAgLy8gdGhpcyBmaWJlci4gVGhpcyBpcyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgaW4gdGhlIGNhc2Ugd2hlcmUgeW91XG4gICAgLy8gdXBkYXRlIGEgZGlmZmVyZW50IGNvbXBvbmVudCBkdXJpbmcgcmVuZGVyIHBoYXNlIHRoYW4gdGhlIG9uZSB0aGF0IGlzXG4gICAgLy8gY3VycmVudGx5IHJlbmRlcmluZ3MgKGEgcGF0dGVybiB0aGF0IGlzIGFjY29tcGFuaWVkIGJ5IGEgd2FybmluZykuXG5cbiAgICByZXR1cm4gdW5zYWZlX21hcmtVcGRhdGVMYW5lRnJvbUZpYmVyVG9Sb290KGZpYmVyLCBsYW5lKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZW5xdWV1ZUNvbmN1cnJlbnRDbGFzc1VwZGF0ZShmaWJlciwgc2hhcmVkUXVldWUsIHVwZGF0ZSwgbGFuZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGVudGFuZ2xlVHJhbnNpdGlvbnMocm9vdCwgZmliZXIsIGxhbmUpIHtcbiAgdmFyIHVwZGF0ZVF1ZXVlID0gZmliZXIudXBkYXRlUXVldWU7XG5cbiAgaWYgKHVwZGF0ZVF1ZXVlID09PSBudWxsKSB7XG4gICAgLy8gT25seSBvY2N1cnMgaWYgdGhlIGZpYmVyIGhhcyBiZWVuIHVubW91bnRlZC5cbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgc2hhcmVkUXVldWUgPSB1cGRhdGVRdWV1ZS5zaGFyZWQ7XG5cbiAgaWYgKGlzVHJhbnNpdGlvbkxhbmUobGFuZSkpIHtcbiAgICB2YXIgcXVldWVMYW5lcyA9IHNoYXJlZFF1ZXVlLmxhbmVzOyAvLyBJZiBhbnkgZW50YW5nbGVkIGxhbmVzIGFyZSBubyBsb25nZXIgcGVuZGluZyBvbiB0aGUgcm9vdCwgdGhlbiB0aGV5IG11c3RcbiAgICAvLyBoYXZlIGZpbmlzaGVkLiBXZSBjYW4gcmVtb3ZlIHRoZW0gZnJvbSB0aGUgc2hhcmVkIHF1ZXVlLCB3aGljaCByZXByZXNlbnRzXG4gICAgLy8gYSBzdXBlcnNldCBvZiB0aGUgYWN0dWFsbHkgcGVuZGluZyBsYW5lcy4gSW4gc29tZSBjYXNlcyB3ZSBtYXkgZW50YW5nbGVcbiAgICAvLyBtb3JlIHRoYW4gd2UgbmVlZCB0bywgYnV0IHRoYXQncyBPSy4gSW4gZmFjdCBpdCdzIHdvcnNlIGlmIHdlICpkb24ndCpcbiAgICAvLyBlbnRhbmdsZSB3aGVuIHdlIHNob3VsZC5cblxuICAgIHF1ZXVlTGFuZXMgPSBpbnRlcnNlY3RMYW5lcyhxdWV1ZUxhbmVzLCByb290LnBlbmRpbmdMYW5lcyk7IC8vIEVudGFuZ2xlIHRoZSBuZXcgdHJhbnNpdGlvbiBsYW5lIHdpdGggdGhlIG90aGVyIHRyYW5zaXRpb24gbGFuZXMuXG5cbiAgICB2YXIgbmV3UXVldWVMYW5lcyA9IG1lcmdlTGFuZXMocXVldWVMYW5lcywgbGFuZSk7XG4gICAgc2hhcmVkUXVldWUubGFuZXMgPSBuZXdRdWV1ZUxhbmVzOyAvLyBFdmVuIGlmIHF1ZXVlLmxhbmVzIGFscmVhZHkgaW5jbHVkZSBsYW5lLCB3ZSBkb24ndCBrbm93IGZvciBjZXJ0YWluIGlmXG4gICAgLy8gdGhlIGxhbmUgZmluaXNoZWQgc2luY2UgdGhlIGxhc3QgdGltZSB3ZSBlbnRhbmdsZWQgaXQuIFNvIHdlIG5lZWQgdG9cbiAgICAvLyBlbnRhbmdsZSBpdCBhZ2FpbiwganVzdCB0byBiZSBzdXJlLlxuXG4gICAgbWFya1Jvb3RFbnRhbmdsZWQocm9vdCwgbmV3UXVldWVMYW5lcyk7XG4gIH1cbn1cbmZ1bmN0aW9uIGVucXVldWVDYXB0dXJlZFVwZGF0ZSh3b3JrSW5Qcm9ncmVzcywgY2FwdHVyZWRVcGRhdGUpIHtcbiAgLy8gQ2FwdHVyZWQgdXBkYXRlcyBhcmUgdXBkYXRlcyB0aGF0IGFyZSB0aHJvd24gYnkgYSBjaGlsZCBkdXJpbmcgdGhlIHJlbmRlclxuICAvLyBwaGFzZS4gVGhleSBzaG91bGQgYmUgZGlzY2FyZGVkIGlmIHRoZSByZW5kZXIgaXMgYWJvcnRlZC4gVGhlcmVmb3JlLFxuICAvLyB3ZSBzaG91bGQgb25seSBwdXQgdGhlbSBvbiB0aGUgd29yay1pbi1wcm9ncmVzcyBxdWV1ZSwgbm90IHRoZSBjdXJyZW50IG9uZS5cbiAgdmFyIHF1ZXVlID0gd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWU7IC8vIENoZWNrIGlmIHRoZSB3b3JrLWluLXByb2dyZXNzIHF1ZXVlIGlzIGEgY2xvbmUuXG5cbiAgdmFyIGN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzcy5hbHRlcm5hdGU7XG5cbiAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICB2YXIgY3VycmVudFF1ZXVlID0gY3VycmVudC51cGRhdGVRdWV1ZTtcblxuICAgIGlmIChxdWV1ZSA9PT0gY3VycmVudFF1ZXVlKSB7XG4gICAgICAvLyBUaGUgd29yay1pbi1wcm9ncmVzcyBxdWV1ZSBpcyB0aGUgc2FtZSBhcyBjdXJyZW50LiBUaGlzIGhhcHBlbnMgd2hlblxuICAgICAgLy8gd2UgYmFpbCBvdXQgb24gYSBwYXJlbnQgZmliZXIgdGhhdCB0aGVuIGNhcHR1cmVzIGFuIGVycm9yIHRocm93biBieVxuICAgICAgLy8gYSBjaGlsZC4gU2luY2Ugd2Ugd2FudCB0byBhcHBlbmQgdGhlIHVwZGF0ZSBvbmx5IHRvIHRoZSB3b3JrLWluXG4gICAgICAvLyAtcHJvZ3Jlc3MgcXVldWUsIHdlIG5lZWQgdG8gY2xvbmUgdGhlIHVwZGF0ZXMuIFdlIHVzdWFsbHkgY2xvbmUgZHVyaW5nXG4gICAgICAvLyBwcm9jZXNzVXBkYXRlUXVldWUsIGJ1dCB0aGF0IGRpZG4ndCBoYXBwZW4gaW4gdGhpcyBjYXNlIGJlY2F1c2Ugd2VcbiAgICAgIC8vIHNraXBwZWQgb3ZlciB0aGUgcGFyZW50IHdoZW4gd2UgYmFpbGVkIG91dC5cbiAgICAgIHZhciBuZXdGaXJzdCA9IG51bGw7XG4gICAgICB2YXIgbmV3TGFzdCA9IG51bGw7XG4gICAgICB2YXIgZmlyc3RCYXNlVXBkYXRlID0gcXVldWUuZmlyc3RCYXNlVXBkYXRlO1xuXG4gICAgICBpZiAoZmlyc3RCYXNlVXBkYXRlICE9PSBudWxsKSB7XG4gICAgICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgdXBkYXRlcyBhbmQgY2xvbmUgdGhlbS5cbiAgICAgICAgdmFyIHVwZGF0ZSA9IGZpcnN0QmFzZVVwZGF0ZTtcblxuICAgICAgICBkbyB7XG4gICAgICAgICAgdmFyIGNsb25lID0ge1xuICAgICAgICAgICAgZXZlbnRUaW1lOiB1cGRhdGUuZXZlbnRUaW1lLFxuICAgICAgICAgICAgbGFuZTogdXBkYXRlLmxhbmUsXG4gICAgICAgICAgICB0YWc6IHVwZGF0ZS50YWcsXG4gICAgICAgICAgICBwYXlsb2FkOiB1cGRhdGUucGF5bG9hZCxcbiAgICAgICAgICAgIGNhbGxiYWNrOiB1cGRhdGUuY2FsbGJhY2ssXG4gICAgICAgICAgICBuZXh0OiBudWxsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGlmIChuZXdMYXN0ID09PSBudWxsKSB7XG4gICAgICAgICAgICBuZXdGaXJzdCA9IG5ld0xhc3QgPSBjbG9uZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3TGFzdC5uZXh0ID0gY2xvbmU7XG4gICAgICAgICAgICBuZXdMYXN0ID0gY2xvbmU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdXBkYXRlID0gdXBkYXRlLm5leHQ7XG4gICAgICAgIH0gd2hpbGUgKHVwZGF0ZSAhPT0gbnVsbCk7IC8vIEFwcGVuZCB0aGUgY2FwdHVyZWQgdXBkYXRlIHRoZSBlbmQgb2YgdGhlIGNsb25lZCBsaXN0LlxuXG5cbiAgICAgICAgaWYgKG5ld0xhc3QgPT09IG51bGwpIHtcbiAgICAgICAgICBuZXdGaXJzdCA9IG5ld0xhc3QgPSBjYXB0dXJlZFVwZGF0ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdMYXN0Lm5leHQgPSBjYXB0dXJlZFVwZGF0ZTtcbiAgICAgICAgICBuZXdMYXN0ID0gY2FwdHVyZWRVcGRhdGU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoZXJlIGFyZSBubyBiYXNlIHVwZGF0ZXMuXG4gICAgICAgIG5ld0ZpcnN0ID0gbmV3TGFzdCA9IGNhcHR1cmVkVXBkYXRlO1xuICAgICAgfVxuXG4gICAgICBxdWV1ZSA9IHtcbiAgICAgICAgYmFzZVN0YXRlOiBjdXJyZW50UXVldWUuYmFzZVN0YXRlLFxuICAgICAgICBmaXJzdEJhc2VVcGRhdGU6IG5ld0ZpcnN0LFxuICAgICAgICBsYXN0QmFzZVVwZGF0ZTogbmV3TGFzdCxcbiAgICAgICAgc2hhcmVkOiBjdXJyZW50UXVldWUuc2hhcmVkLFxuICAgICAgICBlZmZlY3RzOiBjdXJyZW50UXVldWUuZWZmZWN0c1xuICAgICAgfTtcbiAgICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gcXVldWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9IC8vIEFwcGVuZCB0aGUgdXBkYXRlIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuXG5cblxuICB2YXIgbGFzdEJhc2VVcGRhdGUgPSBxdWV1ZS5sYXN0QmFzZVVwZGF0ZTtcblxuICBpZiAobGFzdEJhc2VVcGRhdGUgPT09IG51bGwpIHtcbiAgICBxdWV1ZS5maXJzdEJhc2VVcGRhdGUgPSBjYXB0dXJlZFVwZGF0ZTtcbiAgfSBlbHNlIHtcbiAgICBsYXN0QmFzZVVwZGF0ZS5uZXh0ID0gY2FwdHVyZWRVcGRhdGU7XG4gIH1cblxuICBxdWV1ZS5sYXN0QmFzZVVwZGF0ZSA9IGNhcHR1cmVkVXBkYXRlO1xufVxuXG5mdW5jdGlvbiBnZXRTdGF0ZUZyb21VcGRhdGUod29ya0luUHJvZ3Jlc3MsIHF1ZXVlLCB1cGRhdGUsIHByZXZTdGF0ZSwgbmV4dFByb3BzLCBpbnN0YW5jZSkge1xuICBzd2l0Y2ggKHVwZGF0ZS50YWcpIHtcbiAgICBjYXNlIFJlcGxhY2VTdGF0ZTpcbiAgICAgIHtcbiAgICAgICAgdmFyIHBheWxvYWQgPSB1cGRhdGUucGF5bG9hZDtcblxuICAgICAgICBpZiAodHlwZW9mIHBheWxvYWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAvLyBVcGRhdGVyIGZ1bmN0aW9uXG4gICAgICAgICAge1xuICAgICAgICAgICAgZW50ZXJEaXNhbGxvd2VkQ29udGV4dFJlYWRJbkRFVigpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhciBuZXh0U3RhdGUgPSBwYXlsb2FkLmNhbGwoaW5zdGFuY2UsIHByZXZTdGF0ZSwgbmV4dFByb3BzKTtcblxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlmICggd29ya0luUHJvZ3Jlc3MubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUpIHtcbiAgICAgICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHModHJ1ZSk7XG5cbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBwYXlsb2FkLmNhbGwoaW5zdGFuY2UsIHByZXZTdGF0ZSwgbmV4dFByb3BzKTtcbiAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyhmYWxzZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZXhpdERpc2FsbG93ZWRDb250ZXh0UmVhZEluREVWKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG5leHRTdGF0ZTtcbiAgICAgICAgfSAvLyBTdGF0ZSBvYmplY3RcblxuXG4gICAgICAgIHJldHVybiBwYXlsb2FkO1xuICAgICAgfVxuXG4gICAgY2FzZSBDYXB0dXJlVXBkYXRlOlxuICAgICAge1xuICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyA9IHdvcmtJblByb2dyZXNzLmZsYWdzICYgflNob3VsZENhcHR1cmUgfCBEaWRDYXB0dXJlO1xuICAgICAgfVxuICAgIC8vIEludGVudGlvbmFsIGZhbGx0aHJvdWdoXG5cbiAgICBjYXNlIFVwZGF0ZVN0YXRlOlxuICAgICAge1xuICAgICAgICB2YXIgX3BheWxvYWQgPSB1cGRhdGUucGF5bG9hZDtcbiAgICAgICAgdmFyIHBhcnRpYWxTdGF0ZTtcblxuICAgICAgICBpZiAodHlwZW9mIF9wYXlsb2FkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgLy8gVXBkYXRlciBmdW5jdGlvblxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGVudGVyRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBwYXJ0aWFsU3RhdGUgPSBfcGF5bG9hZC5jYWxsKGluc3RhbmNlLCBwcmV2U3RhdGUsIG5leHRQcm9wcyk7XG5cbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlKSB7XG4gICAgICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKHRydWUpO1xuXG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgX3BheWxvYWQuY2FsbChpbnN0YW5jZSwgcHJldlN0YXRlLCBuZXh0UHJvcHMpO1xuICAgICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKGZhbHNlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBleGl0RGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gUGFydGlhbCBzdGF0ZSBvYmplY3RcbiAgICAgICAgICBwYXJ0aWFsU3RhdGUgPSBfcGF5bG9hZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXJ0aWFsU3RhdGUgPT09IG51bGwgfHwgcGFydGlhbFN0YXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAvLyBOdWxsIGFuZCB1bmRlZmluZWQgYXJlIHRyZWF0ZWQgYXMgbm8tb3BzLlxuICAgICAgICAgIHJldHVybiBwcmV2U3RhdGU7XG4gICAgICAgIH0gLy8gTWVyZ2UgdGhlIHBhcnRpYWwgc3RhdGUgYW5kIHRoZSBwcmV2aW91cyBzdGF0ZS5cblxuXG4gICAgICAgIHJldHVybiBhc3NpZ24oe30sIHByZXZTdGF0ZSwgcGFydGlhbFN0YXRlKTtcbiAgICAgIH1cblxuICAgIGNhc2UgRm9yY2VVcGRhdGU6XG4gICAgICB7XG4gICAgICAgIGhhc0ZvcmNlVXBkYXRlID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHByZXZTdGF0ZTtcbiAgICAgIH1cbiAgfVxuXG4gIHJldHVybiBwcmV2U3RhdGU7XG59XG5cbmZ1bmN0aW9uIHByb2Nlc3NVcGRhdGVRdWV1ZSh3b3JrSW5Qcm9ncmVzcywgcHJvcHMsIGluc3RhbmNlLCByZW5kZXJMYW5lcykge1xuICAvLyBUaGlzIGlzIGFsd2F5cyBub24tbnVsbCBvbiBhIENsYXNzQ29tcG9uZW50IG9yIEhvc3RSb290XG4gIHZhciBxdWV1ZSA9IHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlO1xuICBoYXNGb3JjZVVwZGF0ZSA9IGZhbHNlO1xuXG4gIHtcbiAgICBjdXJyZW50bHlQcm9jZXNzaW5nUXVldWUgPSBxdWV1ZS5zaGFyZWQ7XG4gIH1cblxuICB2YXIgZmlyc3RCYXNlVXBkYXRlID0gcXVldWUuZmlyc3RCYXNlVXBkYXRlO1xuICB2YXIgbGFzdEJhc2VVcGRhdGUgPSBxdWV1ZS5sYXN0QmFzZVVwZGF0ZTsgLy8gQ2hlY2sgaWYgdGhlcmUgYXJlIHBlbmRpbmcgdXBkYXRlcy4gSWYgc28sIHRyYW5zZmVyIHRoZW0gdG8gdGhlIGJhc2UgcXVldWUuXG5cbiAgdmFyIHBlbmRpbmdRdWV1ZSA9IHF1ZXVlLnNoYXJlZC5wZW5kaW5nO1xuXG4gIGlmIChwZW5kaW5nUXVldWUgIT09IG51bGwpIHtcbiAgICBxdWV1ZS5zaGFyZWQucGVuZGluZyA9IG51bGw7IC8vIFRoZSBwZW5kaW5nIHF1ZXVlIGlzIGNpcmN1bGFyLiBEaXNjb25uZWN0IHRoZSBwb2ludGVyIGJldHdlZW4gZmlyc3RcbiAgICAvLyBhbmQgbGFzdCBzbyB0aGF0IGl0J3Mgbm9uLWNpcmN1bGFyLlxuXG4gICAgdmFyIGxhc3RQZW5kaW5nVXBkYXRlID0gcGVuZGluZ1F1ZXVlO1xuICAgIHZhciBmaXJzdFBlbmRpbmdVcGRhdGUgPSBsYXN0UGVuZGluZ1VwZGF0ZS5uZXh0O1xuICAgIGxhc3RQZW5kaW5nVXBkYXRlLm5leHQgPSBudWxsOyAvLyBBcHBlbmQgcGVuZGluZyB1cGRhdGVzIHRvIGJhc2UgcXVldWVcblxuICAgIGlmIChsYXN0QmFzZVVwZGF0ZSA9PT0gbnVsbCkge1xuICAgICAgZmlyc3RCYXNlVXBkYXRlID0gZmlyc3RQZW5kaW5nVXBkYXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICBsYXN0QmFzZVVwZGF0ZS5uZXh0ID0gZmlyc3RQZW5kaW5nVXBkYXRlO1xuICAgIH1cblxuICAgIGxhc3RCYXNlVXBkYXRlID0gbGFzdFBlbmRpbmdVcGRhdGU7IC8vIElmIHRoZXJlJ3MgYSBjdXJyZW50IHF1ZXVlLCBhbmQgaXQncyBkaWZmZXJlbnQgZnJvbSB0aGUgYmFzZSBxdWV1ZSwgdGhlblxuICAgIC8vIHdlIG5lZWQgdG8gdHJhbnNmZXIgdGhlIHVwZGF0ZXMgdG8gdGhhdCBxdWV1ZSwgdG9vLiBCZWNhdXNlIHRoZSBiYXNlXG4gICAgLy8gcXVldWUgaXMgYSBzaW5nbHktbGlua2VkIGxpc3Qgd2l0aCBubyBjeWNsZXMsIHdlIGNhbiBhcHBlbmQgdG8gYm90aFxuICAgIC8vIGxpc3RzIGFuZCB0YWtlIGFkdmFudGFnZSBvZiBzdHJ1Y3R1cmFsIHNoYXJpbmcuXG4gICAgLy8gVE9ETzogUGFzcyBgY3VycmVudGAgYXMgYXJndW1lbnRcblxuICAgIHZhciBjdXJyZW50ID0gd29ya0luUHJvZ3Jlc3MuYWx0ZXJuYXRlO1xuXG4gICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgIC8vIFRoaXMgaXMgYWx3YXlzIG5vbi1udWxsIG9uIGEgQ2xhc3NDb21wb25lbnQgb3IgSG9zdFJvb3RcbiAgICAgIHZhciBjdXJyZW50UXVldWUgPSBjdXJyZW50LnVwZGF0ZVF1ZXVlO1xuICAgICAgdmFyIGN1cnJlbnRMYXN0QmFzZVVwZGF0ZSA9IGN1cnJlbnRRdWV1ZS5sYXN0QmFzZVVwZGF0ZTtcblxuICAgICAgaWYgKGN1cnJlbnRMYXN0QmFzZVVwZGF0ZSAhPT0gbGFzdEJhc2VVcGRhdGUpIHtcbiAgICAgICAgaWYgKGN1cnJlbnRMYXN0QmFzZVVwZGF0ZSA9PT0gbnVsbCkge1xuICAgICAgICAgIGN1cnJlbnRRdWV1ZS5maXJzdEJhc2VVcGRhdGUgPSBmaXJzdFBlbmRpbmdVcGRhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY3VycmVudExhc3RCYXNlVXBkYXRlLm5leHQgPSBmaXJzdFBlbmRpbmdVcGRhdGU7XG4gICAgICAgIH1cblxuICAgICAgICBjdXJyZW50UXVldWUubGFzdEJhc2VVcGRhdGUgPSBsYXN0UGVuZGluZ1VwZGF0ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0gLy8gVGhlc2UgdmFsdWVzIG1heSBjaGFuZ2UgYXMgd2UgcHJvY2VzcyB0aGUgcXVldWUuXG5cblxuICBpZiAoZmlyc3RCYXNlVXBkYXRlICE9PSBudWxsKSB7XG4gICAgLy8gSXRlcmF0ZSB0aHJvdWdoIHRoZSBsaXN0IG9mIHVwZGF0ZXMgdG8gY29tcHV0ZSB0aGUgcmVzdWx0LlxuICAgIHZhciBuZXdTdGF0ZSA9IHF1ZXVlLmJhc2VTdGF0ZTsgLy8gVE9ETzogRG9uJ3QgbmVlZCB0byBhY2N1bXVsYXRlIHRoaXMuIEluc3RlYWQsIHdlIGNhbiByZW1vdmUgcmVuZGVyTGFuZXNcbiAgICAvLyBmcm9tIHRoZSBvcmlnaW5hbCBsYW5lcy5cblxuICAgIHZhciBuZXdMYW5lcyA9IE5vTGFuZXM7XG4gICAgdmFyIG5ld0Jhc2VTdGF0ZSA9IG51bGw7XG4gICAgdmFyIG5ld0ZpcnN0QmFzZVVwZGF0ZSA9IG51bGw7XG4gICAgdmFyIG5ld0xhc3RCYXNlVXBkYXRlID0gbnVsbDtcbiAgICB2YXIgdXBkYXRlID0gZmlyc3RCYXNlVXBkYXRlO1xuXG4gICAgZG8ge1xuICAgICAgdmFyIHVwZGF0ZUxhbmUgPSB1cGRhdGUubGFuZTtcbiAgICAgIHZhciB1cGRhdGVFdmVudFRpbWUgPSB1cGRhdGUuZXZlbnRUaW1lO1xuXG4gICAgICBpZiAoIWlzU3Vic2V0T2ZMYW5lcyhyZW5kZXJMYW5lcywgdXBkYXRlTGFuZSkpIHtcbiAgICAgICAgLy8gUHJpb3JpdHkgaXMgaW5zdWZmaWNpZW50LiBTa2lwIHRoaXMgdXBkYXRlLiBJZiB0aGlzIGlzIHRoZSBmaXJzdFxuICAgICAgICAvLyBza2lwcGVkIHVwZGF0ZSwgdGhlIHByZXZpb3VzIHVwZGF0ZS9zdGF0ZSBpcyB0aGUgbmV3IGJhc2VcbiAgICAgICAgLy8gdXBkYXRlL3N0YXRlLlxuICAgICAgICB2YXIgY2xvbmUgPSB7XG4gICAgICAgICAgZXZlbnRUaW1lOiB1cGRhdGVFdmVudFRpbWUsXG4gICAgICAgICAgbGFuZTogdXBkYXRlTGFuZSxcbiAgICAgICAgICB0YWc6IHVwZGF0ZS50YWcsXG4gICAgICAgICAgcGF5bG9hZDogdXBkYXRlLnBheWxvYWQsXG4gICAgICAgICAgY2FsbGJhY2s6IHVwZGF0ZS5jYWxsYmFjayxcbiAgICAgICAgICBuZXh0OiBudWxsXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKG5ld0xhc3RCYXNlVXBkYXRlID09PSBudWxsKSB7XG4gICAgICAgICAgbmV3Rmlyc3RCYXNlVXBkYXRlID0gbmV3TGFzdEJhc2VVcGRhdGUgPSBjbG9uZTtcbiAgICAgICAgICBuZXdCYXNlU3RhdGUgPSBuZXdTdGF0ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdMYXN0QmFzZVVwZGF0ZSA9IG5ld0xhc3RCYXNlVXBkYXRlLm5leHQgPSBjbG9uZTtcbiAgICAgICAgfSAvLyBVcGRhdGUgdGhlIHJlbWFpbmluZyBwcmlvcml0eSBpbiB0aGUgcXVldWUuXG5cblxuICAgICAgICBuZXdMYW5lcyA9IG1lcmdlTGFuZXMobmV3TGFuZXMsIHVwZGF0ZUxhbmUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVGhpcyB1cGRhdGUgZG9lcyBoYXZlIHN1ZmZpY2llbnQgcHJpb3JpdHkuXG4gICAgICAgIGlmIChuZXdMYXN0QmFzZVVwZGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICAgIHZhciBfY2xvbmUgPSB7XG4gICAgICAgICAgICBldmVudFRpbWU6IHVwZGF0ZUV2ZW50VGltZSxcbiAgICAgICAgICAgIC8vIFRoaXMgdXBkYXRlIGlzIGdvaW5nIHRvIGJlIGNvbW1pdHRlZCBzbyB3ZSBuZXZlciB3YW50IHVuY29tbWl0XG4gICAgICAgICAgICAvLyBpdC4gVXNpbmcgTm9MYW5lIHdvcmtzIGJlY2F1c2UgMCBpcyBhIHN1YnNldCBvZiBhbGwgYml0bWFza3MsIHNvXG4gICAgICAgICAgICAvLyB0aGlzIHdpbGwgbmV2ZXIgYmUgc2tpcHBlZCBieSB0aGUgY2hlY2sgYWJvdmUuXG4gICAgICAgICAgICBsYW5lOiBOb0xhbmUsXG4gICAgICAgICAgICB0YWc6IHVwZGF0ZS50YWcsXG4gICAgICAgICAgICBwYXlsb2FkOiB1cGRhdGUucGF5bG9hZCxcbiAgICAgICAgICAgIGNhbGxiYWNrOiB1cGRhdGUuY2FsbGJhY2ssXG4gICAgICAgICAgICBuZXh0OiBudWxsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBuZXdMYXN0QmFzZVVwZGF0ZSA9IG5ld0xhc3RCYXNlVXBkYXRlLm5leHQgPSBfY2xvbmU7XG4gICAgICAgIH0gLy8gUHJvY2VzcyB0aGlzIHVwZGF0ZS5cblxuXG4gICAgICAgIG5ld1N0YXRlID0gZ2V0U3RhdGVGcm9tVXBkYXRlKHdvcmtJblByb2dyZXNzLCBxdWV1ZSwgdXBkYXRlLCBuZXdTdGF0ZSwgcHJvcHMsIGluc3RhbmNlKTtcbiAgICAgICAgdmFyIGNhbGxiYWNrID0gdXBkYXRlLmNhbGxiYWNrO1xuXG4gICAgICAgIGlmIChjYWxsYmFjayAhPT0gbnVsbCAmJiAvLyBJZiB0aGUgdXBkYXRlIHdhcyBhbHJlYWR5IGNvbW1pdHRlZCwgd2Ugc2hvdWxkIG5vdCBxdWV1ZSBpdHNcbiAgICAgICAgLy8gY2FsbGJhY2sgYWdhaW4uXG4gICAgICAgIHVwZGF0ZS5sYW5lICE9PSBOb0xhbmUpIHtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBDYWxsYmFjaztcbiAgICAgICAgICB2YXIgZWZmZWN0cyA9IHF1ZXVlLmVmZmVjdHM7XG5cbiAgICAgICAgICBpZiAoZWZmZWN0cyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcXVldWUuZWZmZWN0cyA9IFt1cGRhdGVdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlZmZlY3RzLnB1c2godXBkYXRlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdXBkYXRlID0gdXBkYXRlLm5leHQ7XG5cbiAgICAgIGlmICh1cGRhdGUgPT09IG51bGwpIHtcbiAgICAgICAgcGVuZGluZ1F1ZXVlID0gcXVldWUuc2hhcmVkLnBlbmRpbmc7XG5cbiAgICAgICAgaWYgKHBlbmRpbmdRdWV1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEFuIHVwZGF0ZSB3YXMgc2NoZWR1bGVkIGZyb20gaW5zaWRlIGEgcmVkdWNlci4gQWRkIHRoZSBuZXdcbiAgICAgICAgICAvLyBwZW5kaW5nIHVwZGF0ZXMgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdCBhbmQga2VlcCBwcm9jZXNzaW5nLlxuICAgICAgICAgIHZhciBfbGFzdFBlbmRpbmdVcGRhdGUgPSBwZW5kaW5nUXVldWU7IC8vIEludGVudGlvbmFsbHkgdW5zb3VuZC4gUGVuZGluZyB1cGRhdGVzIGZvcm0gYSBjaXJjdWxhciBsaXN0LCBidXQgd2VcbiAgICAgICAgICAvLyB1bnJhdmVsIHRoZW0gd2hlbiB0cmFuc2ZlcnJpbmcgdGhlbSB0byB0aGUgYmFzZSBxdWV1ZS5cblxuICAgICAgICAgIHZhciBfZmlyc3RQZW5kaW5nVXBkYXRlID0gX2xhc3RQZW5kaW5nVXBkYXRlLm5leHQ7XG4gICAgICAgICAgX2xhc3RQZW5kaW5nVXBkYXRlLm5leHQgPSBudWxsO1xuICAgICAgICAgIHVwZGF0ZSA9IF9maXJzdFBlbmRpbmdVcGRhdGU7XG4gICAgICAgICAgcXVldWUubGFzdEJhc2VVcGRhdGUgPSBfbGFzdFBlbmRpbmdVcGRhdGU7XG4gICAgICAgICAgcXVldWUuc2hhcmVkLnBlbmRpbmcgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSB3aGlsZSAodHJ1ZSk7XG5cbiAgICBpZiAobmV3TGFzdEJhc2VVcGRhdGUgPT09IG51bGwpIHtcbiAgICAgIG5ld0Jhc2VTdGF0ZSA9IG5ld1N0YXRlO1xuICAgIH1cblxuICAgIHF1ZXVlLmJhc2VTdGF0ZSA9IG5ld0Jhc2VTdGF0ZTtcbiAgICBxdWV1ZS5maXJzdEJhc2VVcGRhdGUgPSBuZXdGaXJzdEJhc2VVcGRhdGU7XG4gICAgcXVldWUubGFzdEJhc2VVcGRhdGUgPSBuZXdMYXN0QmFzZVVwZGF0ZTsgLy8gSW50ZXJsZWF2ZWQgdXBkYXRlcyBhcmUgc3RvcmVkIG9uIGEgc2VwYXJhdGUgcXVldWUuIFdlIGFyZW4ndCBnb2luZyB0b1xuICAgIC8vIHByb2Nlc3MgdGhlbSBkdXJpbmcgdGhpcyByZW5kZXIsIGJ1dCB3ZSBkbyBuZWVkIHRvIHRyYWNrIHdoaWNoIGxhbmVzXG4gICAgLy8gYXJlIHJlbWFpbmluZy5cblxuICAgIHZhciBsYXN0SW50ZXJsZWF2ZWQgPSBxdWV1ZS5zaGFyZWQuaW50ZXJsZWF2ZWQ7XG5cbiAgICBpZiAobGFzdEludGVybGVhdmVkICE9PSBudWxsKSB7XG4gICAgICB2YXIgaW50ZXJsZWF2ZWQgPSBsYXN0SW50ZXJsZWF2ZWQ7XG5cbiAgICAgIGRvIHtcbiAgICAgICAgbmV3TGFuZXMgPSBtZXJnZUxhbmVzKG5ld0xhbmVzLCBpbnRlcmxlYXZlZC5sYW5lKTtcbiAgICAgICAgaW50ZXJsZWF2ZWQgPSBpbnRlcmxlYXZlZC5uZXh0O1xuICAgICAgfSB3aGlsZSAoaW50ZXJsZWF2ZWQgIT09IGxhc3RJbnRlcmxlYXZlZCk7XG4gICAgfSBlbHNlIGlmIChmaXJzdEJhc2VVcGRhdGUgPT09IG51bGwpIHtcbiAgICAgIC8vIGBxdWV1ZS5sYW5lc2AgaXMgdXNlZCBmb3IgZW50YW5nbGluZyB0cmFuc2l0aW9ucy4gV2UgY2FuIHNldCBpdCBiYWNrIHRvXG4gICAgICAvLyB6ZXJvIG9uY2UgdGhlIHF1ZXVlIGlzIGVtcHR5LlxuICAgICAgcXVldWUuc2hhcmVkLmxhbmVzID0gTm9MYW5lcztcbiAgICB9IC8vIFNldCB0aGUgcmVtYWluaW5nIGV4cGlyYXRpb24gdGltZSB0byBiZSB3aGF0ZXZlciBpcyByZW1haW5pbmcgaW4gdGhlIHF1ZXVlLlxuICAgIC8vIFRoaXMgc2hvdWxkIGJlIGZpbmUgYmVjYXVzZSB0aGUgb25seSB0d28gb3RoZXIgdGhpbmdzIHRoYXQgY29udHJpYnV0ZSB0b1xuICAgIC8vIGV4cGlyYXRpb24gdGltZSBhcmUgcHJvcHMgYW5kIGNvbnRleHQuIFdlJ3JlIGFscmVhZHkgaW4gdGhlIG1pZGRsZSBvZiB0aGVcbiAgICAvLyBiZWdpbiBwaGFzZSBieSB0aGUgdGltZSB3ZSBzdGFydCBwcm9jZXNzaW5nIHRoZSBxdWV1ZSwgc28gd2UndmUgYWxyZWFkeVxuICAgIC8vIGRlYWx0IHdpdGggdGhlIHByb3BzLiBDb250ZXh0IGluIGNvbXBvbmVudHMgdGhhdCBzcGVjaWZ5XG4gICAgLy8gc2hvdWxkQ29tcG9uZW50VXBkYXRlIGlzIHRyaWNreTsgYnV0IHdlJ2xsIGhhdmUgdG8gYWNjb3VudCBmb3JcbiAgICAvLyB0aGF0IHJlZ2FyZGxlc3MuXG5cblxuICAgIG1hcmtTa2lwcGVkVXBkYXRlTGFuZXMobmV3TGFuZXMpO1xuICAgIHdvcmtJblByb2dyZXNzLmxhbmVzID0gbmV3TGFuZXM7XG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG5ld1N0YXRlO1xuICB9XG5cbiAge1xuICAgIGN1cnJlbnRseVByb2Nlc3NpbmdRdWV1ZSA9IG51bGw7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FsbENhbGxiYWNrKGNhbGxiYWNrLCBjb250ZXh0KSB7XG4gIGlmICh0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgYXJndW1lbnQgcGFzc2VkIGFzIGNhbGxiYWNrLiBFeHBlY3RlZCBhIGZ1bmN0aW9uLiBJbnN0ZWFkICcgKyAoXCJyZWNlaXZlZDogXCIgKyBjYWxsYmFjaykpO1xuICB9XG5cbiAgY2FsbGJhY2suY2FsbChjb250ZXh0KTtcbn1cblxuZnVuY3Rpb24gcmVzZXRIYXNGb3JjZVVwZGF0ZUJlZm9yZVByb2Nlc3NpbmcoKSB7XG4gIGhhc0ZvcmNlVXBkYXRlID0gZmFsc2U7XG59XG5mdW5jdGlvbiBjaGVja0hhc0ZvcmNlVXBkYXRlQWZ0ZXJQcm9jZXNzaW5nKCkge1xuICByZXR1cm4gaGFzRm9yY2VVcGRhdGU7XG59XG5mdW5jdGlvbiBjb21taXRVcGRhdGVRdWV1ZShmaW5pc2hlZFdvcmssIGZpbmlzaGVkUXVldWUsIGluc3RhbmNlKSB7XG4gIC8vIENvbW1pdCB0aGUgZWZmZWN0c1xuICB2YXIgZWZmZWN0cyA9IGZpbmlzaGVkUXVldWUuZWZmZWN0cztcbiAgZmluaXNoZWRRdWV1ZS5lZmZlY3RzID0gbnVsbDtcblxuICBpZiAoZWZmZWN0cyAhPT0gbnVsbCkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWZmZWN0cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGVmZmVjdCA9IGVmZmVjdHNbaV07XG4gICAgICB2YXIgY2FsbGJhY2sgPSBlZmZlY3QuY2FsbGJhY2s7XG5cbiAgICAgIGlmIChjYWxsYmFjayAhPT0gbnVsbCkge1xuICAgICAgICBlZmZlY3QuY2FsbGJhY2sgPSBudWxsO1xuICAgICAgICBjYWxsQ2FsbGJhY2soY2FsbGJhY2ssIGluc3RhbmNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxudmFyIGZha2VJbnRlcm5hbEluc3RhbmNlID0ge307IC8vIFJlYWN0LkNvbXBvbmVudCB1c2VzIGEgc2hhcmVkIGZyb3plbiBvYmplY3QgYnkgZGVmYXVsdC5cbi8vIFdlJ2xsIHVzZSBpdCB0byBkZXRlcm1pbmUgd2hldGhlciB3ZSBuZWVkIHRvIGluaXRpYWxpemUgbGVnYWN5IHJlZnMuXG5cbnZhciBlbXB0eVJlZnNPYmplY3QgPSBuZXcgUmVhY3QuQ29tcG9uZW50KCkucmVmcztcbnZhciBkaWRXYXJuQWJvdXRTdGF0ZUFzc2lnbm1lbnRGb3JDb21wb25lbnQ7XG52YXIgZGlkV2FybkFib3V0VW5pbml0aWFsaXplZFN0YXRlO1xudmFyIGRpZFdhcm5BYm91dEdldFNuYXBzaG90QmVmb3JlVXBkYXRlV2l0aG91dERpZFVwZGF0ZTtcbnZhciBkaWRXYXJuQWJvdXRMZWdhY3lMaWZlY3ljbGVzQW5kRGVyaXZlZFN0YXRlO1xudmFyIGRpZFdhcm5BYm91dFVuZGVmaW5lZERlcml2ZWRTdGF0ZTtcbnZhciB3YXJuT25VbmRlZmluZWREZXJpdmVkU3RhdGU7XG52YXIgd2Fybk9uSW52YWxpZENhbGxiYWNrO1xudmFyIGRpZFdhcm5BYm91dERpcmVjdGx5QXNzaWduaW5nUHJvcHNUb1N0YXRlO1xudmFyIGRpZFdhcm5BYm91dENvbnRleHRUeXBlQW5kQ29udGV4dFR5cGVzO1xudmFyIGRpZFdhcm5BYm91dEludmFsaWRhdGVDb250ZXh0VHlwZTtcblxue1xuICBkaWRXYXJuQWJvdXRTdGF0ZUFzc2lnbm1lbnRGb3JDb21wb25lbnQgPSBuZXcgU2V0KCk7XG4gIGRpZFdhcm5BYm91dFVuaW5pdGlhbGl6ZWRTdGF0ZSA9IG5ldyBTZXQoKTtcbiAgZGlkV2FybkFib3V0R2V0U25hcHNob3RCZWZvcmVVcGRhdGVXaXRob3V0RGlkVXBkYXRlID0gbmV3IFNldCgpO1xuICBkaWRXYXJuQWJvdXRMZWdhY3lMaWZlY3ljbGVzQW5kRGVyaXZlZFN0YXRlID0gbmV3IFNldCgpO1xuICBkaWRXYXJuQWJvdXREaXJlY3RseUFzc2lnbmluZ1Byb3BzVG9TdGF0ZSA9IG5ldyBTZXQoKTtcbiAgZGlkV2FybkFib3V0VW5kZWZpbmVkRGVyaXZlZFN0YXRlID0gbmV3IFNldCgpO1xuICBkaWRXYXJuQWJvdXRDb250ZXh0VHlwZUFuZENvbnRleHRUeXBlcyA9IG5ldyBTZXQoKTtcbiAgZGlkV2FybkFib3V0SW52YWxpZGF0ZUNvbnRleHRUeXBlID0gbmV3IFNldCgpO1xuICB2YXIgZGlkV2Fybk9uSW52YWxpZENhbGxiYWNrID0gbmV3IFNldCgpO1xuXG4gIHdhcm5PbkludmFsaWRDYWxsYmFjayA9IGZ1bmN0aW9uIChjYWxsYmFjaywgY2FsbGVyTmFtZSkge1xuICAgIGlmIChjYWxsYmFjayA9PT0gbnVsbCB8fCB0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIga2V5ID0gY2FsbGVyTmFtZSArICdfJyArIGNhbGxiYWNrO1xuXG4gICAgaWYgKCFkaWRXYXJuT25JbnZhbGlkQ2FsbGJhY2suaGFzKGtleSkpIHtcbiAgICAgIGRpZFdhcm5PbkludmFsaWRDYWxsYmFjay5hZGQoa2V5KTtcblxuICAgICAgZXJyb3IoJyVzKC4uLik6IEV4cGVjdGVkIHRoZSBsYXN0IG9wdGlvbmFsIGBjYWxsYmFja2AgYXJndW1lbnQgdG8gYmUgYSAnICsgJ2Z1bmN0aW9uLiBJbnN0ZWFkIHJlY2VpdmVkOiAlcy4nLCBjYWxsZXJOYW1lLCBjYWxsYmFjayk7XG4gICAgfVxuICB9O1xuXG4gIHdhcm5PblVuZGVmaW5lZERlcml2ZWRTdGF0ZSA9IGZ1bmN0aW9uICh0eXBlLCBwYXJ0aWFsU3RhdGUpIHtcbiAgICBpZiAocGFydGlhbFN0YXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpIHx8ICdDb21wb25lbnQnO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dFVuZGVmaW5lZERlcml2ZWRTdGF0ZS5oYXMoY29tcG9uZW50TmFtZSkpIHtcbiAgICAgICAgZGlkV2FybkFib3V0VW5kZWZpbmVkRGVyaXZlZFN0YXRlLmFkZChjb21wb25lbnROYW1lKTtcblxuICAgICAgICBlcnJvcignJXMuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKCk6IEEgdmFsaWQgc3RhdGUgb2JqZWN0IChvciBudWxsKSBtdXN0IGJlIHJldHVybmVkLiAnICsgJ1lvdSBoYXZlIHJldHVybmVkIHVuZGVmaW5lZC4nLCBjb21wb25lbnROYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH07IC8vIFRoaXMgaXMgc28gZ3Jvc3MgYnV0IGl0J3MgYXQgbGVhc3Qgbm9uLWNyaXRpY2FsIGFuZCBjYW4gYmUgcmVtb3ZlZCBpZlxuICAvLyBpdCBjYXVzZXMgcHJvYmxlbXMuIFRoaXMgaXMgbWVhbnQgdG8gZ2l2ZSBhIG5pY2VyIGVycm9yIG1lc3NhZ2UgZm9yXG4gIC8vIFJlYWN0RE9NMTUudW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXIocmVhY3RET00xNkNvbXBvbmVudCxcbiAgLy8gLi4uKSkgd2hpY2ggb3RoZXJ3aXNlIHRocm93cyBhIFwiX3Byb2Nlc3NDaGlsZENvbnRleHQgaXMgbm90IGEgZnVuY3Rpb25cIlxuICAvLyBleGNlcHRpb24uXG5cblxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZmFrZUludGVybmFsSW5zdGFuY2UsICdfcHJvY2Vzc0NoaWxkQ29udGV4dCcsIHtcbiAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICB2YWx1ZTogZnVuY3Rpb24gKCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdfcHJvY2Vzc0NoaWxkQ29udGV4dCBpcyBub3QgYXZhaWxhYmxlIGluIFJlYWN0IDE2Ky4gVGhpcyBsaWtlbHkgJyArICdtZWFucyB5b3UgaGF2ZSBtdWx0aXBsZSBjb3BpZXMgb2YgUmVhY3QgYW5kIGFyZSBhdHRlbXB0aW5nIHRvIG5lc3QgJyArICdhIFJlYWN0IDE1IHRyZWUgaW5zaWRlIGEgUmVhY3QgMTYgdHJlZSB1c2luZyAnICsgXCJ1bnN0YWJsZV9yZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lciwgd2hpY2ggaXNuJ3Qgc3VwcG9ydGVkLiBUcnkgXCIgKyAndG8gbWFrZSBzdXJlIHlvdSBoYXZlIG9ubHkgb25lIGNvcHkgb2YgUmVhY3QgKGFuZCBpZGVhbGx5LCBzd2l0Y2ggJyArICd0byBSZWFjdERPTS5jcmVhdGVQb3J0YWwpLicpO1xuICAgIH1cbiAgfSk7XG4gIE9iamVjdC5mcmVlemUoZmFrZUludGVybmFsSW5zdGFuY2UpO1xufVxuXG5mdW5jdGlvbiBhcHBseURlcml2ZWRTdGF0ZUZyb21Qcm9wcyh3b3JrSW5Qcm9ncmVzcywgY3RvciwgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLCBuZXh0UHJvcHMpIHtcbiAgdmFyIHByZXZTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gIHZhciBwYXJ0aWFsU3RhdGUgPSBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMobmV4dFByb3BzLCBwcmV2U3RhdGUpO1xuXG4gIHtcbiAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlKSB7XG4gICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyh0cnVlKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gSW52b2tlIHRoZSBmdW5jdGlvbiBhbiBleHRyYSB0aW1lIHRvIGhlbHAgZGV0ZWN0IHNpZGUtZWZmZWN0cy5cbiAgICAgICAgcGFydGlhbFN0YXRlID0gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5leHRQcm9wcywgcHJldlN0YXRlKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB3YXJuT25VbmRlZmluZWREZXJpdmVkU3RhdGUoY3RvciwgcGFydGlhbFN0YXRlKTtcbiAgfSAvLyBNZXJnZSB0aGUgcGFydGlhbCBzdGF0ZSBhbmQgdGhlIHByZXZpb3VzIHN0YXRlLlxuXG5cbiAgdmFyIG1lbW9pemVkU3RhdGUgPSBwYXJ0aWFsU3RhdGUgPT09IG51bGwgfHwgcGFydGlhbFN0YXRlID09PSB1bmRlZmluZWQgPyBwcmV2U3RhdGUgOiBhc3NpZ24oe30sIHByZXZTdGF0ZSwgcGFydGlhbFN0YXRlKTtcbiAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG1lbW9pemVkU3RhdGU7IC8vIE9uY2UgdGhlIHVwZGF0ZSBxdWV1ZSBpcyBlbXB0eSwgcGVyc2lzdCB0aGUgZGVyaXZlZCBzdGF0ZSBvbnRvIHRoZVxuICAvLyBiYXNlIHN0YXRlLlxuXG4gIGlmICh3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9PT0gTm9MYW5lcykge1xuICAgIC8vIFF1ZXVlIGlzIGFsd2F5cyBub24tbnVsbCBmb3IgY2xhc3Nlc1xuICAgIHZhciB1cGRhdGVRdWV1ZSA9IHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlO1xuICAgIHVwZGF0ZVF1ZXVlLmJhc2VTdGF0ZSA9IG1lbW9pemVkU3RhdGU7XG4gIH1cbn1cblxudmFyIGNsYXNzQ29tcG9uZW50VXBkYXRlciA9IHtcbiAgaXNNb3VudGVkOiBpc01vdW50ZWQsXG4gIGVucXVldWVTZXRTdGF0ZTogZnVuY3Rpb24gKGluc3QsIHBheWxvYWQsIGNhbGxiYWNrKSB7XG4gICAgdmFyIGZpYmVyID0gZ2V0KGluc3QpO1xuICAgIHZhciBldmVudFRpbWUgPSByZXF1ZXN0RXZlbnRUaW1lKCk7XG4gICAgdmFyIGxhbmUgPSByZXF1ZXN0VXBkYXRlTGFuZShmaWJlcik7XG4gICAgdmFyIHVwZGF0ZSA9IGNyZWF0ZVVwZGF0ZShldmVudFRpbWUsIGxhbmUpO1xuICAgIHVwZGF0ZS5wYXlsb2FkID0gcGF5bG9hZDtcblxuICAgIGlmIChjYWxsYmFjayAhPT0gdW5kZWZpbmVkICYmIGNhbGxiYWNrICE9PSBudWxsKSB7XG4gICAgICB7XG4gICAgICAgIHdhcm5PbkludmFsaWRDYWxsYmFjayhjYWxsYmFjaywgJ3NldFN0YXRlJyk7XG4gICAgICB9XG5cbiAgICAgIHVwZGF0ZS5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgIH1cblxuICAgIHZhciByb290ID0gZW5xdWV1ZVVwZGF0ZShmaWJlciwgdXBkYXRlLCBsYW5lKTtcblxuICAgIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIocm9vdCwgZmliZXIsIGxhbmUsIGV2ZW50VGltZSk7XG4gICAgICBlbnRhbmdsZVRyYW5zaXRpb25zKHJvb3QsIGZpYmVyLCBsYW5lKTtcbiAgICB9XG5cbiAgICB7XG4gICAgICBtYXJrU3RhdGVVcGRhdGVTY2hlZHVsZWQoZmliZXIsIGxhbmUpO1xuICAgIH1cbiAgfSxcbiAgZW5xdWV1ZVJlcGxhY2VTdGF0ZTogZnVuY3Rpb24gKGluc3QsIHBheWxvYWQsIGNhbGxiYWNrKSB7XG4gICAgdmFyIGZpYmVyID0gZ2V0KGluc3QpO1xuICAgIHZhciBldmVudFRpbWUgPSByZXF1ZXN0RXZlbnRUaW1lKCk7XG4gICAgdmFyIGxhbmUgPSByZXF1ZXN0VXBkYXRlTGFuZShmaWJlcik7XG4gICAgdmFyIHVwZGF0ZSA9IGNyZWF0ZVVwZGF0ZShldmVudFRpbWUsIGxhbmUpO1xuICAgIHVwZGF0ZS50YWcgPSBSZXBsYWNlU3RhdGU7XG4gICAgdXBkYXRlLnBheWxvYWQgPSBwYXlsb2FkO1xuXG4gICAgaWYgKGNhbGxiYWNrICE9PSB1bmRlZmluZWQgJiYgY2FsbGJhY2sgIT09IG51bGwpIHtcbiAgICAgIHtcbiAgICAgICAgd2Fybk9uSW52YWxpZENhbGxiYWNrKGNhbGxiYWNrLCAncmVwbGFjZVN0YXRlJyk7XG4gICAgICB9XG5cbiAgICAgIHVwZGF0ZS5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgIH1cblxuICAgIHZhciByb290ID0gZW5xdWV1ZVVwZGF0ZShmaWJlciwgdXBkYXRlLCBsYW5lKTtcblxuICAgIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIocm9vdCwgZmliZXIsIGxhbmUsIGV2ZW50VGltZSk7XG4gICAgICBlbnRhbmdsZVRyYW5zaXRpb25zKHJvb3QsIGZpYmVyLCBsYW5lKTtcbiAgICB9XG5cbiAgICB7XG4gICAgICBtYXJrU3RhdGVVcGRhdGVTY2hlZHVsZWQoZmliZXIsIGxhbmUpO1xuICAgIH1cbiAgfSxcbiAgZW5xdWV1ZUZvcmNlVXBkYXRlOiBmdW5jdGlvbiAoaW5zdCwgY2FsbGJhY2spIHtcbiAgICB2YXIgZmliZXIgPSBnZXQoaW5zdCk7XG4gICAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgICB2YXIgbGFuZSA9IHJlcXVlc3RVcGRhdGVMYW5lKGZpYmVyKTtcbiAgICB2YXIgdXBkYXRlID0gY3JlYXRlVXBkYXRlKGV2ZW50VGltZSwgbGFuZSk7XG4gICAgdXBkYXRlLnRhZyA9IEZvcmNlVXBkYXRlO1xuXG4gICAgaWYgKGNhbGxiYWNrICE9PSB1bmRlZmluZWQgJiYgY2FsbGJhY2sgIT09IG51bGwpIHtcbiAgICAgIHtcbiAgICAgICAgd2Fybk9uSW52YWxpZENhbGxiYWNrKGNhbGxiYWNrLCAnZm9yY2VVcGRhdGUnKTtcbiAgICAgIH1cblxuICAgICAgdXBkYXRlLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgfVxuXG4gICAgdmFyIHJvb3QgPSBlbnF1ZXVlVXBkYXRlKGZpYmVyLCB1cGRhdGUsIGxhbmUpO1xuXG4gICAgaWYgKHJvb3QgIT09IG51bGwpIHtcbiAgICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihyb290LCBmaWJlciwgbGFuZSwgZXZlbnRUaW1lKTtcbiAgICAgIGVudGFuZ2xlVHJhbnNpdGlvbnMocm9vdCwgZmliZXIsIGxhbmUpO1xuICAgIH1cblxuICAgIHtcbiAgICAgIG1hcmtGb3JjZVVwZGF0ZVNjaGVkdWxlZChmaWJlciwgbGFuZSk7XG4gICAgfVxuICB9XG59O1xuXG5mdW5jdGlvbiBjaGVja1Nob3VsZENvbXBvbmVudFVwZGF0ZSh3b3JrSW5Qcm9ncmVzcywgY3Rvciwgb2xkUHJvcHMsIG5ld1Byb3BzLCBvbGRTdGF0ZSwgbmV3U3RhdGUsIG5leHRDb250ZXh0KSB7XG4gIHZhciBpbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcblxuICBpZiAodHlwZW9mIGluc3RhbmNlLnNob3VsZENvbXBvbmVudFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHZhciBzaG91bGRVcGRhdGUgPSBpbnN0YW5jZS5zaG91bGRDb21wb25lbnRVcGRhdGUobmV3UHJvcHMsIG5ld1N0YXRlLCBuZXh0Q29udGV4dCk7XG5cbiAgICB7XG4gICAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlKSB7XG4gICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKHRydWUpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gSW52b2tlIHRoZSBmdW5jdGlvbiBhbiBleHRyYSB0aW1lIHRvIGhlbHAgZGV0ZWN0IHNpZGUtZWZmZWN0cy5cbiAgICAgICAgICBzaG91bGRVcGRhdGUgPSBpbnN0YW5jZS5zaG91bGRDb21wb25lbnRVcGRhdGUobmV3UHJvcHMsIG5ld1N0YXRlLCBuZXh0Q29udGV4dCk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChzaG91bGRVcGRhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBlcnJvcignJXMuc2hvdWxkQ29tcG9uZW50VXBkYXRlKCk6IFJldHVybmVkIHVuZGVmaW5lZCBpbnN0ZWFkIG9mIGEgJyArICdib29sZWFuIHZhbHVlLiBNYWtlIHN1cmUgdG8gcmV0dXJuIHRydWUgb3IgZmFsc2UuJywgZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGN0b3IpIHx8ICdDb21wb25lbnQnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc2hvdWxkVXBkYXRlO1xuICB9XG5cbiAgaWYgKGN0b3IucHJvdG90eXBlICYmIGN0b3IucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50KSB7XG4gICAgcmV0dXJuICFzaGFsbG93RXF1YWwob2xkUHJvcHMsIG5ld1Byb3BzKSB8fCAhc2hhbGxvd0VxdWFsKG9sZFN0YXRlLCBuZXdTdGF0ZSk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY2hlY2tDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBjdG9yLCBuZXdQcm9wcykge1xuICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG5cbiAge1xuICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGN0b3IpIHx8ICdDb21wb25lbnQnO1xuICAgIHZhciByZW5kZXJQcmVzZW50ID0gaW5zdGFuY2UucmVuZGVyO1xuXG4gICAgaWYgKCFyZW5kZXJQcmVzZW50KSB7XG4gICAgICBpZiAoY3Rvci5wcm90b3R5cGUgJiYgdHlwZW9mIGN0b3IucHJvdG90eXBlLnJlbmRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBlcnJvcignJXMoLi4uKTogTm8gYHJlbmRlcmAgbWV0aG9kIGZvdW5kIG9uIHRoZSByZXR1cm5lZCBjb21wb25lbnQgJyArICdpbnN0YW5jZTogZGlkIHlvdSBhY2NpZGVudGFsbHkgcmV0dXJuIGFuIG9iamVjdCBmcm9tIHRoZSBjb25zdHJ1Y3Rvcj8nLCBuYW1lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yKCclcyguLi4pOiBObyBgcmVuZGVyYCBtZXRob2QgZm91bmQgb24gdGhlIHJldHVybmVkIGNvbXBvbmVudCAnICsgJ2luc3RhbmNlOiB5b3UgbWF5IGhhdmUgZm9yZ290dGVuIHRvIGRlZmluZSBgcmVuZGVyYC4nLCBuYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaW5zdGFuY2UuZ2V0SW5pdGlhbFN0YXRlICYmICFpbnN0YW5jZS5nZXRJbml0aWFsU3RhdGUuaXNSZWFjdENsYXNzQXBwcm92ZWQgJiYgIWluc3RhbmNlLnN0YXRlKSB7XG4gICAgICBlcnJvcignZ2V0SW5pdGlhbFN0YXRlIHdhcyBkZWZpbmVkIG9uICVzLCBhIHBsYWluIEphdmFTY3JpcHQgY2xhc3MuICcgKyAnVGhpcyBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgY2xhc3NlcyBjcmVhdGVkIHVzaW5nIFJlYWN0LmNyZWF0ZUNsYXNzLiAnICsgJ0RpZCB5b3UgbWVhbiB0byBkZWZpbmUgYSBzdGF0ZSBwcm9wZXJ0eSBpbnN0ZWFkPycsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmIChpbnN0YW5jZS5nZXREZWZhdWx0UHJvcHMgJiYgIWluc3RhbmNlLmdldERlZmF1bHRQcm9wcy5pc1JlYWN0Q2xhc3NBcHByb3ZlZCkge1xuICAgICAgZXJyb3IoJ2dldERlZmF1bHRQcm9wcyB3YXMgZGVmaW5lZCBvbiAlcywgYSBwbGFpbiBKYXZhU2NyaXB0IGNsYXNzLiAnICsgJ1RoaXMgaXMgb25seSBzdXBwb3J0ZWQgZm9yIGNsYXNzZXMgY3JlYXRlZCB1c2luZyBSZWFjdC5jcmVhdGVDbGFzcy4gJyArICdVc2UgYSBzdGF0aWMgcHJvcGVydHkgdG8gZGVmaW5lIGRlZmF1bHRQcm9wcyBpbnN0ZWFkLicsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmIChpbnN0YW5jZS5wcm9wVHlwZXMpIHtcbiAgICAgIGVycm9yKCdwcm9wVHlwZXMgd2FzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgcHJvcGVydHkgb24gJXMuIFVzZSBhIHN0YXRpYyAnICsgJ3Byb3BlcnR5IHRvIGRlZmluZSBwcm9wVHlwZXMgaW5zdGVhZC4nLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAoaW5zdGFuY2UuY29udGV4dFR5cGUpIHtcbiAgICAgIGVycm9yKCdjb250ZXh0VHlwZSB3YXMgZGVmaW5lZCBhcyBhbiBpbnN0YW5jZSBwcm9wZXJ0eSBvbiAlcy4gVXNlIGEgc3RhdGljICcgKyAncHJvcGVydHkgdG8gZGVmaW5lIGNvbnRleHRUeXBlIGluc3RlYWQuJywgbmFtZSk7XG4gICAgfVxuXG4gICAge1xuICAgICAgaWYgKGluc3RhbmNlLmNvbnRleHRUeXBlcykge1xuICAgICAgICBlcnJvcignY29udGV4dFR5cGVzIHdhcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIHByb3BlcnR5IG9uICVzLiBVc2UgYSBzdGF0aWMgJyArICdwcm9wZXJ0eSB0byBkZWZpbmUgY29udGV4dFR5cGVzIGluc3RlYWQuJywgbmFtZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChjdG9yLmNvbnRleHRUeXBlICYmIGN0b3IuY29udGV4dFR5cGVzICYmICFkaWRXYXJuQWJvdXRDb250ZXh0VHlwZUFuZENvbnRleHRUeXBlcy5oYXMoY3RvcikpIHtcbiAgICAgICAgZGlkV2FybkFib3V0Q29udGV4dFR5cGVBbmRDb250ZXh0VHlwZXMuYWRkKGN0b3IpO1xuXG4gICAgICAgIGVycm9yKCclcyBkZWNsYXJlcyBib3RoIGNvbnRleHRUeXBlcyBhbmQgY29udGV4dFR5cGUgc3RhdGljIHByb3BlcnRpZXMuICcgKyAnVGhlIGxlZ2FjeSBjb250ZXh0VHlwZXMgcHJvcGVydHkgd2lsbCBiZSBpZ25vcmVkLicsIG5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50U2hvdWxkVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBlcnJvcignJXMgaGFzIGEgbWV0aG9kIGNhbGxlZCAnICsgJ2NvbXBvbmVudFNob3VsZFVwZGF0ZSgpLiBEaWQgeW91IG1lYW4gc2hvdWxkQ29tcG9uZW50VXBkYXRlKCk/ICcgKyAnVGhlIG5hbWUgaXMgcGhyYXNlZCBhcyBhIHF1ZXN0aW9uIGJlY2F1c2UgdGhlIGZ1bmN0aW9uIGlzICcgKyAnZXhwZWN0ZWQgdG8gcmV0dXJuIGEgdmFsdWUuJywgbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKGN0b3IucHJvdG90eXBlICYmIGN0b3IucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50ICYmIHR5cGVvZiBpbnN0YW5jZS5zaG91bGRDb21wb25lbnRVcGRhdGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBlcnJvcignJXMgaGFzIGEgbWV0aG9kIGNhbGxlZCBzaG91bGRDb21wb25lbnRVcGRhdGUoKS4gJyArICdzaG91bGRDb21wb25lbnRVcGRhdGUgc2hvdWxkIG5vdCBiZSB1c2VkIHdoZW4gZXh0ZW5kaW5nIFJlYWN0LlB1cmVDb21wb25lbnQuICcgKyAnUGxlYXNlIGV4dGVuZCBSZWFjdC5Db21wb25lbnQgaWYgc2hvdWxkQ29tcG9uZW50VXBkYXRlIGlzIHVzZWQuJywgZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGN0b3IpIHx8ICdBIHB1cmUgY29tcG9uZW50Jyk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnREaWRVbm1vdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBlcnJvcignJXMgaGFzIGEgbWV0aG9kIGNhbGxlZCAnICsgJ2NvbXBvbmVudERpZFVubW91bnQoKS4gQnV0IHRoZXJlIGlzIG5vIHN1Y2ggbGlmZWN5Y2xlIG1ldGhvZC4gJyArICdEaWQgeW91IG1lYW4gY29tcG9uZW50V2lsbFVubW91bnQoKT8nLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudERpZFJlY2VpdmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJyVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgJyArICdjb21wb25lbnREaWRSZWNlaXZlUHJvcHMoKS4gQnV0IHRoZXJlIGlzIG5vIHN1Y2ggbGlmZWN5Y2xlIG1ldGhvZC4gJyArICdJZiB5b3UgbWVhbnQgdG8gdXBkYXRlIHRoZSBzdGF0ZSBpbiByZXNwb25zZSB0byBjaGFuZ2luZyBwcm9wcywgJyArICd1c2UgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcygpLiBJZiB5b3UgbWVhbnQgdG8gZmV0Y2ggZGF0YSBvciAnICsgJ3J1biBzaWRlLWVmZmVjdHMgb3IgbXV0YXRpb25zIGFmdGVyIFJlYWN0IGhhcyB1cGRhdGVkIHRoZSBVSSwgdXNlIGNvbXBvbmVudERpZFVwZGF0ZSgpLicsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbFJlY2lldmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJyVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgJyArICdjb21wb25lbnRXaWxsUmVjaWV2ZVByb3BzKCkuIERpZCB5b3UgbWVhbiBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKCk/JywgbmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2lldmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJyVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgJyArICdVTlNBRkVfY29tcG9uZW50V2lsbFJlY2lldmVQcm9wcygpLiBEaWQgeW91IG1lYW4gVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoKT8nLCBuYW1lKTtcbiAgICB9XG5cbiAgICB2YXIgaGFzTXV0YXRlZFByb3BzID0gaW5zdGFuY2UucHJvcHMgIT09IG5ld1Byb3BzO1xuXG4gICAgaWYgKGluc3RhbmNlLnByb3BzICE9PSB1bmRlZmluZWQgJiYgaGFzTXV0YXRlZFByb3BzKSB7XG4gICAgICBlcnJvcignJXMoLi4uKTogV2hlbiBjYWxsaW5nIHN1cGVyKCkgaW4gYCVzYCwgbWFrZSBzdXJlIHRvIHBhc3MgJyArIFwidXAgdGhlIHNhbWUgcHJvcHMgdGhhdCB5b3VyIGNvbXBvbmVudCdzIGNvbnN0cnVjdG9yIHdhcyBwYXNzZWQuXCIsIG5hbWUsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmIChpbnN0YW5jZS5kZWZhdWx0UHJvcHMpIHtcbiAgICAgIGVycm9yKCdTZXR0aW5nIGRlZmF1bHRQcm9wcyBhcyBhbiBpbnN0YW5jZSBwcm9wZXJ0eSBvbiAlcyBpcyBub3Qgc3VwcG9ydGVkIGFuZCB3aWxsIGJlIGlnbm9yZWQuJyArICcgSW5zdGVhZCwgZGVmaW5lIGRlZmF1bHRQcm9wcyBhcyBhIHN0YXRpYyBwcm9wZXJ0eSBvbiAlcy4nLCBuYW1lLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnREaWRVcGRhdGUgIT09ICdmdW5jdGlvbicgJiYgIWRpZFdhcm5BYm91dEdldFNuYXBzaG90QmVmb3JlVXBkYXRlV2l0aG91dERpZFVwZGF0ZS5oYXMoY3RvcikpIHtcbiAgICAgIGRpZFdhcm5BYm91dEdldFNuYXBzaG90QmVmb3JlVXBkYXRlV2l0aG91dERpZFVwZGF0ZS5hZGQoY3Rvcik7XG5cbiAgICAgIGVycm9yKCclczogZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoKSBzaG91bGQgYmUgdXNlZCB3aXRoIGNvbXBvbmVudERpZFVwZGF0ZSgpLiAnICsgJ1RoaXMgY29tcG9uZW50IGRlZmluZXMgZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoKSBvbmx5LicsIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShjdG9yKSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCclczogZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKCkgaXMgZGVmaW5lZCBhcyBhbiBpbnN0YW5jZSBtZXRob2QgJyArICdhbmQgd2lsbCBiZSBpZ25vcmVkLiBJbnN0ZWFkLCBkZWNsYXJlIGl0IGFzIGEgc3RhdGljIG1ldGhvZC4nLCBuYW1lKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJyVzOiBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoKSBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCAnICsgJ2FuZCB3aWxsIGJlIGlnbm9yZWQuIEluc3RlYWQsIGRlY2xhcmUgaXQgYXMgYSBzdGF0aWMgbWV0aG9kLicsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY3Rvci5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJyVzOiBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSgpIGlzIGRlZmluZWQgYXMgYSBzdGF0aWMgbWV0aG9kICcgKyAnYW5kIHdpbGwgYmUgaWdub3JlZC4gSW5zdGVhZCwgZGVjbGFyZSBpdCBhcyBhbiBpbnN0YW5jZSBtZXRob2QuJywgbmFtZSk7XG4gICAgfVxuXG4gICAgdmFyIF9zdGF0ZSA9IGluc3RhbmNlLnN0YXRlO1xuXG4gICAgaWYgKF9zdGF0ZSAmJiAodHlwZW9mIF9zdGF0ZSAhPT0gJ29iamVjdCcgfHwgaXNBcnJheShfc3RhdGUpKSkge1xuICAgICAgZXJyb3IoJyVzLnN0YXRlOiBtdXN0IGJlIHNldCB0byBhbiBvYmplY3Qgb3IgbnVsbCcsIG5hbWUpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuZ2V0Q2hpbGRDb250ZXh0ID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBjdG9yLmNoaWxkQ29udGV4dFR5cGVzICE9PSAnb2JqZWN0Jykge1xuICAgICAgZXJyb3IoJyVzLmdldENoaWxkQ29udGV4dCgpOiBjaGlsZENvbnRleHRUeXBlcyBtdXN0IGJlIGRlZmluZWQgaW4gb3JkZXIgdG8gJyArICd1c2UgZ2V0Q2hpbGRDb250ZXh0KCkuJywgbmFtZSk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGFkb3B0Q2xhc3NJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcywgaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UudXBkYXRlciA9IGNsYXNzQ29tcG9uZW50VXBkYXRlcjtcbiAgd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlID0gaW5zdGFuY2U7IC8vIFRoZSBpbnN0YW5jZSBuZWVkcyBhY2Nlc3MgdG8gdGhlIGZpYmVyIHNvIHRoYXQgaXQgY2FuIHNjaGVkdWxlIHVwZGF0ZXNcblxuICBzZXQoaW5zdGFuY2UsIHdvcmtJblByb2dyZXNzKTtcblxuICB7XG4gICAgaW5zdGFuY2UuX3JlYWN0SW50ZXJuYWxJbnN0YW5jZSA9IGZha2VJbnRlcm5hbEluc3RhbmNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdENsYXNzSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIGN0b3IsIHByb3BzKSB7XG4gIHZhciBpc0xlZ2FjeUNvbnRleHRDb25zdW1lciA9IGZhbHNlO1xuICB2YXIgdW5tYXNrZWRDb250ZXh0ID0gZW1wdHlDb250ZXh0T2JqZWN0O1xuICB2YXIgY29udGV4dCA9IGVtcHR5Q29udGV4dE9iamVjdDtcbiAgdmFyIGNvbnRleHRUeXBlID0gY3Rvci5jb250ZXh0VHlwZTtcblxuICB7XG4gICAgaWYgKCdjb250ZXh0VHlwZScgaW4gY3Rvcikge1xuICAgICAgdmFyIGlzVmFsaWQgPSAvLyBBbGxvdyBudWxsIGZvciBjb25kaXRpb25hbCBkZWNsYXJhdGlvblxuICAgICAgY29udGV4dFR5cGUgPT09IG51bGwgfHwgY29udGV4dFR5cGUgIT09IHVuZGVmaW5lZCAmJiBjb250ZXh0VHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFICYmIGNvbnRleHRUeXBlLl9jb250ZXh0ID09PSB1bmRlZmluZWQ7IC8vIE5vdCBhIDxDb250ZXh0LkNvbnN1bWVyPlxuXG4gICAgICBpZiAoIWlzVmFsaWQgJiYgIWRpZFdhcm5BYm91dEludmFsaWRhdGVDb250ZXh0VHlwZS5oYXMoY3RvcikpIHtcbiAgICAgICAgZGlkV2FybkFib3V0SW52YWxpZGF0ZUNvbnRleHRUeXBlLmFkZChjdG9yKTtcbiAgICAgICAgdmFyIGFkZGVuZHVtID0gJyc7XG5cbiAgICAgICAgaWYgKGNvbnRleHRUeXBlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBhZGRlbmR1bSA9ICcgSG93ZXZlciwgaXQgaXMgc2V0IHRvIHVuZGVmaW5lZC4gJyArICdUaGlzIGNhbiBiZSBjYXVzZWQgYnkgYSB0eXBvIG9yIGJ5IG1peGluZyB1cCBuYW1lZCBhbmQgZGVmYXVsdCBpbXBvcnRzLiAnICsgJ1RoaXMgY2FuIGFsc28gaGFwcGVuIGR1ZSB0byBhIGNpcmN1bGFyIGRlcGVuZGVuY3ksIHNvICcgKyAndHJ5IG1vdmluZyB0aGUgY3JlYXRlQ29udGV4dCgpIGNhbGwgdG8gYSBzZXBhcmF0ZSBmaWxlLic7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvbnRleHRUeXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgIGFkZGVuZHVtID0gJyBIb3dldmVyLCBpdCBpcyBzZXQgdG8gYSAnICsgdHlwZW9mIGNvbnRleHRUeXBlICsgJy4nO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHRUeXBlLiQkdHlwZW9mID09PSBSRUFDVF9QUk9WSURFUl9UWVBFKSB7XG4gICAgICAgICAgYWRkZW5kdW0gPSAnIERpZCB5b3UgYWNjaWRlbnRhbGx5IHBhc3MgdGhlIENvbnRleHQuUHJvdmlkZXIgaW5zdGVhZD8nO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHRUeXBlLl9jb250ZXh0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAvLyA8Q29udGV4dC5Db25zdW1lcj5cbiAgICAgICAgICBhZGRlbmR1bSA9ICcgRGlkIHlvdSBhY2NpZGVudGFsbHkgcGFzcyB0aGUgQ29udGV4dC5Db25zdW1lciBpbnN0ZWFkPyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWRkZW5kdW0gPSAnIEhvd2V2ZXIsIGl0IGlzIHNldCB0byBhbiBvYmplY3Qgd2l0aCBrZXlzIHsnICsgT2JqZWN0LmtleXMoY29udGV4dFR5cGUpLmpvaW4oJywgJykgKyAnfS4nO1xuICAgICAgICB9XG5cbiAgICAgICAgZXJyb3IoJyVzIGRlZmluZXMgYW4gaW52YWxpZCBjb250ZXh0VHlwZS4gJyArICdjb250ZXh0VHlwZSBzaG91bGQgcG9pbnQgdG8gdGhlIENvbnRleHQgb2JqZWN0IHJldHVybmVkIGJ5IFJlYWN0LmNyZWF0ZUNvbnRleHQoKS4lcycsIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShjdG9yKSB8fCAnQ29tcG9uZW50JywgYWRkZW5kdW0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgY29udGV4dFR5cGUgPT09ICdvYmplY3QnICYmIGNvbnRleHRUeXBlICE9PSBudWxsKSB7XG4gICAgY29udGV4dCA9IHJlYWRDb250ZXh0KGNvbnRleHRUeXBlKTtcbiAgfSBlbHNlIHtcbiAgICB1bm1hc2tlZENvbnRleHQgPSBnZXRVbm1hc2tlZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIGN0b3IsIHRydWUpO1xuICAgIHZhciBjb250ZXh0VHlwZXMgPSBjdG9yLmNvbnRleHRUeXBlcztcbiAgICBpc0xlZ2FjeUNvbnRleHRDb25zdW1lciA9IGNvbnRleHRUeXBlcyAhPT0gbnVsbCAmJiBjb250ZXh0VHlwZXMgIT09IHVuZGVmaW5lZDtcbiAgICBjb250ZXh0ID0gaXNMZWdhY3lDb250ZXh0Q29uc3VtZXIgPyBnZXRNYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCB1bm1hc2tlZENvbnRleHQpIDogZW1wdHlDb250ZXh0T2JqZWN0O1xuICB9XG5cbiAgdmFyIGluc3RhbmNlID0gbmV3IGN0b3IocHJvcHMsIGNvbnRleHQpOyAvLyBJbnN0YW50aWF0ZSB0d2ljZSB0byBoZWxwIGRldGVjdCBzaWRlLWVmZmVjdHMuXG5cbiAge1xuICAgIGlmICggd29ya0luUHJvZ3Jlc3MubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUpIHtcbiAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKHRydWUpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBpbnN0YW5jZSA9IG5ldyBjdG9yKHByb3BzLCBjb250ZXh0KTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXdcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgc3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gaW5zdGFuY2Uuc3RhdGUgIT09IG51bGwgJiYgaW5zdGFuY2Uuc3RhdGUgIT09IHVuZGVmaW5lZCA/IGluc3RhbmNlLnN0YXRlIDogbnVsbDtcbiAgYWRvcHRDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBpbnN0YW5jZSk7XG5cbiAge1xuICAgIGlmICh0eXBlb2YgY3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPT09ICdmdW5jdGlvbicgJiYgc3RhdGUgPT09IG51bGwpIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGN0b3IpIHx8ICdDb21wb25lbnQnO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dFVuaW5pdGlhbGl6ZWRTdGF0ZS5oYXMoY29tcG9uZW50TmFtZSkpIHtcbiAgICAgICAgZGlkV2FybkFib3V0VW5pbml0aWFsaXplZFN0YXRlLmFkZChjb21wb25lbnROYW1lKTtcblxuICAgICAgICBlcnJvcignYCVzYCB1c2VzIGBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHNgIGJ1dCBpdHMgaW5pdGlhbCBzdGF0ZSBpcyAnICsgJyVzLiBUaGlzIGlzIG5vdCByZWNvbW1lbmRlZC4gSW5zdGVhZCwgZGVmaW5lIHRoZSBpbml0aWFsIHN0YXRlIGJ5ICcgKyAnYXNzaWduaW5nIGFuIG9iamVjdCB0byBgdGhpcy5zdGF0ZWAgaW4gdGhlIGNvbnN0cnVjdG9yIG9mIGAlc2AuICcgKyAnVGhpcyBlbnN1cmVzIHRoYXQgYGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc2AgYXJndW1lbnRzIGhhdmUgYSBjb25zaXN0ZW50IHNoYXBlLicsIGNvbXBvbmVudE5hbWUsIGluc3RhbmNlLnN0YXRlID09PSBudWxsID8gJ251bGwnIDogJ3VuZGVmaW5lZCcsIGNvbXBvbmVudE5hbWUpO1xuICAgICAgfVxuICAgIH0gLy8gSWYgbmV3IGNvbXBvbmVudCBBUElzIGFyZSBkZWZpbmVkLCBcInVuc2FmZVwiIGxpZmVjeWNsZXMgd29uJ3QgYmUgY2FsbGVkLlxuICAgIC8vIFdhcm4gYWJvdXQgdGhlc2UgbGlmZWN5Y2xlcyBpZiB0aGV5IGFyZSBwcmVzZW50LlxuICAgIC8vIERvbid0IHdhcm4gYWJvdXQgcmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQgcG9seWZpbGxlZCBtZXRob2RzIHRob3VnaC5cblxuXG4gICAgaWYgKHR5cGVvZiBjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciBmb3VuZFdpbGxNb3VudE5hbWUgPSBudWxsO1xuICAgICAgdmFyIGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgPSBudWxsO1xuICAgICAgdmFyIGZvdW5kV2lsbFVwZGF0ZU5hbWUgPSBudWxsO1xuXG4gICAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxNb3VudCA9PT0gJ2Z1bmN0aW9uJyAmJiBpbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZyAhPT0gdHJ1ZSkge1xuICAgICAgICBmb3VuZFdpbGxNb3VudE5hbWUgPSAnY29tcG9uZW50V2lsbE1vdW50JztcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZm91bmRXaWxsTW91bnROYW1lID0gJ1VOU0FGRV9jb21wb25lbnRXaWxsTW91bnQnO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicgJiYgaW5zdGFuY2UuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcy5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nICE9PSB0cnVlKSB7XG4gICAgICAgIGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgPSAnY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyc7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lID0gJ1VOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJztcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsVXBkYXRlID09PSAnZnVuY3Rpb24nICYmIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZyAhPT0gdHJ1ZSkge1xuICAgICAgICBmb3VuZFdpbGxVcGRhdGVOYW1lID0gJ2NvbXBvbmVudFdpbGxVcGRhdGUnO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZm91bmRXaWxsVXBkYXRlTmFtZSA9ICdVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSc7XG4gICAgICB9XG5cbiAgICAgIGlmIChmb3VuZFdpbGxNb3VudE5hbWUgIT09IG51bGwgfHwgZm91bmRXaWxsUmVjZWl2ZVByb3BzTmFtZSAhPT0gbnVsbCB8fCBmb3VuZFdpbGxVcGRhdGVOYW1lICE9PSBudWxsKSB7XG4gICAgICAgIHZhciBfY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShjdG9yKSB8fCAnQ29tcG9uZW50JztcblxuICAgICAgICB2YXIgbmV3QXBpTmFtZSA9IHR5cGVvZiBjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJyA/ICdnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMoKScgOiAnZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoKSc7XG5cbiAgICAgICAgaWYgKCFkaWRXYXJuQWJvdXRMZWdhY3lMaWZlY3ljbGVzQW5kRGVyaXZlZFN0YXRlLmhhcyhfY29tcG9uZW50TmFtZSkpIHtcbiAgICAgICAgICBkaWRXYXJuQWJvdXRMZWdhY3lMaWZlY3ljbGVzQW5kRGVyaXZlZFN0YXRlLmFkZChfY29tcG9uZW50TmFtZSk7XG5cbiAgICAgICAgICBlcnJvcignVW5zYWZlIGxlZ2FjeSBsaWZlY3ljbGVzIHdpbGwgbm90IGJlIGNhbGxlZCBmb3IgY29tcG9uZW50cyB1c2luZyBuZXcgY29tcG9uZW50IEFQSXMuXFxuXFxuJyArICclcyB1c2VzICVzIGJ1dCBhbHNvIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgbGVnYWN5IGxpZmVjeWNsZXM6JXMlcyVzXFxuXFxuJyArICdUaGUgYWJvdmUgbGlmZWN5Y2xlcyBzaG91bGQgYmUgcmVtb3ZlZC4gTGVhcm4gbW9yZSBhYm91dCB0aGlzIHdhcm5pbmcgaGVyZTpcXG4nICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay91bnNhZmUtY29tcG9uZW50LWxpZmVjeWNsZXMnLCBfY29tcG9uZW50TmFtZSwgbmV3QXBpTmFtZSwgZm91bmRXaWxsTW91bnROYW1lICE9PSBudWxsID8gXCJcXG4gIFwiICsgZm91bmRXaWxsTW91bnROYW1lIDogJycsIGZvdW5kV2lsbFJlY2VpdmVQcm9wc05hbWUgIT09IG51bGwgPyBcIlxcbiAgXCIgKyBmb3VuZFdpbGxSZWNlaXZlUHJvcHNOYW1lIDogJycsIGZvdW5kV2lsbFVwZGF0ZU5hbWUgIT09IG51bGwgPyBcIlxcbiAgXCIgKyBmb3VuZFdpbGxVcGRhdGVOYW1lIDogJycpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IC8vIENhY2hlIHVubWFza2VkIGNvbnRleHQgc28gd2UgY2FuIGF2b2lkIHJlY3JlYXRpbmcgbWFza2VkIGNvbnRleHQgdW5sZXNzIG5lY2Vzc2FyeS5cbiAgLy8gUmVhY3RGaWJlckNvbnRleHQgdXN1YWxseSB1cGRhdGVzIHRoaXMgY2FjaGUgYnV0IGNhbid0IGZvciBuZXdseS1jcmVhdGVkIGluc3RhbmNlcy5cblxuXG4gIGlmIChpc0xlZ2FjeUNvbnRleHRDb25zdW1lcikge1xuICAgIGNhY2hlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgdW5tYXNrZWRDb250ZXh0LCBjb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiBpbnN0YW5jZTtcbn1cblxuZnVuY3Rpb24gY2FsbENvbXBvbmVudFdpbGxNb3VudCh3b3JrSW5Qcm9ncmVzcywgaW5zdGFuY2UpIHtcbiAgdmFyIG9sZFN0YXRlID0gaW5zdGFuY2Uuc3RhdGU7XG5cbiAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQoKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKTtcbiAgfVxuXG4gIGlmIChvbGRTdGF0ZSAhPT0gaW5zdGFuY2Uuc3RhdGUpIHtcbiAgICB7XG4gICAgICBlcnJvcignJXMuY29tcG9uZW50V2lsbE1vdW50KCk6IEFzc2lnbmluZyBkaXJlY3RseSB0byB0aGlzLnN0YXRlIGlzICcgKyBcImRlcHJlY2F0ZWQgKGV4Y2VwdCBpbnNpZGUgYSBjb21wb25lbnQncyBcIiArICdjb25zdHJ1Y3RvcikuIFVzZSBzZXRTdGF0ZSBpbnN0ZWFkLicsIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIod29ya0luUHJvZ3Jlc3MpIHx8ICdDb21wb25lbnQnKTtcbiAgICB9XG5cbiAgICBjbGFzc0NvbXBvbmVudFVwZGF0ZXIuZW5xdWV1ZVJlcGxhY2VTdGF0ZShpbnN0YW5jZSwgaW5zdGFuY2Uuc3RhdGUsIG51bGwpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhbGxDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHdvcmtJblByb2dyZXNzLCBpbnN0YW5jZSwgbmV3UHJvcHMsIG5leHRDb250ZXh0KSB7XG4gIHZhciBvbGRTdGF0ZSA9IGluc3RhbmNlLnN0YXRlO1xuXG4gIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV3UHJvcHMsIG5leHRDb250ZXh0KTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXdQcm9wcywgbmV4dENvbnRleHQpO1xuICB9XG5cbiAgaWYgKGluc3RhbmNlLnN0YXRlICE9PSBvbGRTdGF0ZSkge1xuICAgIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcih3b3JrSW5Qcm9ncmVzcykgfHwgJ0NvbXBvbmVudCc7XG5cbiAgICAgIGlmICghZGlkV2FybkFib3V0U3RhdGVBc3NpZ25tZW50Rm9yQ29tcG9uZW50Lmhhcyhjb21wb25lbnROYW1lKSkge1xuICAgICAgICBkaWRXYXJuQWJvdXRTdGF0ZUFzc2lnbm1lbnRGb3JDb21wb25lbnQuYWRkKGNvbXBvbmVudE5hbWUpO1xuXG4gICAgICAgIGVycm9yKCclcy5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKCk6IEFzc2lnbmluZyBkaXJlY3RseSB0byAnICsgXCJ0aGlzLnN0YXRlIGlzIGRlcHJlY2F0ZWQgKGV4Y2VwdCBpbnNpZGUgYSBjb21wb25lbnQncyBcIiArICdjb25zdHJ1Y3RvcikuIFVzZSBzZXRTdGF0ZSBpbnN0ZWFkLicsIGNvbXBvbmVudE5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNsYXNzQ29tcG9uZW50VXBkYXRlci5lbnF1ZXVlUmVwbGFjZVN0YXRlKGluc3RhbmNlLCBpbnN0YW5jZS5zdGF0ZSwgbnVsbCk7XG4gIH1cbn0gLy8gSW52b2tlcyB0aGUgbW91bnQgbGlmZS1jeWNsZXMgb24gYSBwcmV2aW91c2x5IG5ldmVyIHJlbmRlcmVkIGluc3RhbmNlLlxuXG5cbmZ1bmN0aW9uIG1vdW50Q2xhc3NJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcywgY3RvciwgbmV3UHJvcHMsIHJlbmRlckxhbmVzKSB7XG4gIHtcbiAgICBjaGVja0NsYXNzSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIGN0b3IsIG5ld1Byb3BzKTtcbiAgfVxuXG4gIHZhciBpbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcbiAgaW5zdGFuY2UucHJvcHMgPSBuZXdQcm9wcztcbiAgaW5zdGFuY2Uuc3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICBpbnN0YW5jZS5yZWZzID0gZW1wdHlSZWZzT2JqZWN0O1xuICBpbml0aWFsaXplVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MpO1xuICB2YXIgY29udGV4dFR5cGUgPSBjdG9yLmNvbnRleHRUeXBlO1xuXG4gIGlmICh0eXBlb2YgY29udGV4dFR5cGUgPT09ICdvYmplY3QnICYmIGNvbnRleHRUeXBlICE9PSBudWxsKSB7XG4gICAgaW5zdGFuY2UuY29udGV4dCA9IHJlYWRDb250ZXh0KGNvbnRleHRUeXBlKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgdW5tYXNrZWRDb250ZXh0ID0gZ2V0VW5tYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCBjdG9yLCB0cnVlKTtcbiAgICBpbnN0YW5jZS5jb250ZXh0ID0gZ2V0TWFza2VkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgdW5tYXNrZWRDb250ZXh0KTtcbiAgfVxuXG4gIHtcbiAgICBpZiAoaW5zdGFuY2Uuc3RhdGUgPT09IG5ld1Byb3BzKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShjdG9yKSB8fCAnQ29tcG9uZW50JztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXREaXJlY3RseUFzc2lnbmluZ1Byb3BzVG9TdGF0ZS5oYXMoY29tcG9uZW50TmFtZSkpIHtcbiAgICAgICAgZGlkV2FybkFib3V0RGlyZWN0bHlBc3NpZ25pbmdQcm9wc1RvU3RhdGUuYWRkKGNvbXBvbmVudE5hbWUpO1xuXG4gICAgICAgIGVycm9yKCclczogSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIGFzc2lnbiBwcm9wcyBkaXJlY3RseSB0byBzdGF0ZSAnICsgXCJiZWNhdXNlIHVwZGF0ZXMgdG8gcHJvcHMgd29uJ3QgYmUgcmVmbGVjdGVkIGluIHN0YXRlLiBcIiArICdJbiBtb3N0IGNhc2VzLCBpdCBpcyBiZXR0ZXIgdG8gdXNlIHByb3BzIGRpcmVjdGx5LicsIGNvbXBvbmVudE5hbWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSkge1xuICAgICAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MucmVjb3JkTGVnYWN5Q29udGV4dFdhcm5pbmcod29ya0luUHJvZ3Jlc3MsIGluc3RhbmNlKTtcbiAgICB9XG5cbiAgICB7XG4gICAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5yZWNvcmRVbnNhZmVMaWZlY3ljbGVXYXJuaW5ncyh3b3JrSW5Qcm9ncmVzcywgaW5zdGFuY2UpO1xuICAgIH1cbiAgfVxuXG4gIGluc3RhbmNlLnN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgdmFyIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9IGN0b3IuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzO1xuXG4gIGlmICh0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgYXBwbHlEZXJpdmVkU3RhdGVGcm9tUHJvcHMod29ya0luUHJvZ3Jlc3MsIGN0b3IsIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcywgbmV3UHJvcHMpO1xuICAgIGluc3RhbmNlLnN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgfSAvLyBJbiBvcmRlciB0byBzdXBwb3J0IHJlYWN0LWxpZmVjeWNsZXMtY29tcGF0IHBvbHlmaWxsZWQgY29tcG9uZW50cyxcbiAgLy8gVW5zYWZlIGxpZmVjeWNsZXMgc2hvdWxkIG5vdCBiZSBpbnZva2VkIGZvciBjb21wb25lbnRzIHVzaW5nIHRoZSBuZXcgQVBJcy5cblxuXG4gIGlmICh0eXBlb2YgY3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgIT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGluc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlICE9PSAnZnVuY3Rpb24nICYmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50ID09PSAnZnVuY3Rpb24nKSkge1xuICAgIGNhbGxDb21wb25lbnRXaWxsTW91bnQod29ya0luUHJvZ3Jlc3MsIGluc3RhbmNlKTsgLy8gSWYgd2UgaGFkIGFkZGl0aW9uYWwgc3RhdGUgdXBkYXRlcyBkdXJpbmcgdGhpcyBsaWZlLWN5Y2xlLCBsZXQnc1xuICAgIC8vIHByb2Nlc3MgdGhlbSBub3cuXG5cbiAgICBwcm9jZXNzVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MsIG5ld1Byb3BzLCBpbnN0YW5jZSwgcmVuZGVyTGFuZXMpO1xuICAgIGluc3RhbmNlLnN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgZmliZXJGbGFncyA9IFVwZGF0ZTtcblxuICAgIHtcbiAgICAgIGZpYmVyRmxhZ3MgfD0gTGF5b3V0U3RhdGljO1xuICAgIH1cblxuICAgIGlmICggKHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RFZmZlY3RzTW9kZSkgIT09IE5vTW9kZSkge1xuICAgICAgZmliZXJGbGFncyB8PSBNb3VudExheW91dERldjtcbiAgICB9XG5cbiAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBmaWJlckZsYWdzO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlc3VtZU1vdW50Q2xhc3NJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcywgY3RvciwgbmV3UHJvcHMsIHJlbmRlckxhbmVzKSB7XG4gIHZhciBpbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcbiAgdmFyIG9sZFByb3BzID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRQcm9wcztcbiAgaW5zdGFuY2UucHJvcHMgPSBvbGRQcm9wcztcbiAgdmFyIG9sZENvbnRleHQgPSBpbnN0YW5jZS5jb250ZXh0O1xuICB2YXIgY29udGV4dFR5cGUgPSBjdG9yLmNvbnRleHRUeXBlO1xuICB2YXIgbmV4dENvbnRleHQgPSBlbXB0eUNvbnRleHRPYmplY3Q7XG5cbiAgaWYgKHR5cGVvZiBjb250ZXh0VHlwZSA9PT0gJ29iamVjdCcgJiYgY29udGV4dFR5cGUgIT09IG51bGwpIHtcbiAgICBuZXh0Q29udGV4dCA9IHJlYWRDb250ZXh0KGNvbnRleHRUeXBlKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgbmV4dExlZ2FjeVVubWFza2VkQ29udGV4dCA9IGdldFVubWFza2VkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgY3RvciwgdHJ1ZSk7XG4gICAgbmV4dENvbnRleHQgPSBnZXRNYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCBuZXh0TGVnYWN5VW5tYXNrZWRDb250ZXh0KTtcbiAgfVxuXG4gIHZhciBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgPSBjdG9yLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcztcbiAgdmFyIGhhc05ld0xpZmVjeWNsZXMgPSB0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBpbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJzsgLy8gTm90ZTogRHVyaW5nIHRoZXNlIGxpZmUtY3ljbGVzLCBpbnN0YW5jZS5wcm9wcy9pbnN0YW5jZS5zdGF0ZSBhcmUgd2hhdFxuICAvLyBldmVyIHRoZSBwcmV2aW91c2x5IGF0dGVtcHRlZCB0byByZW5kZXIgLSBub3QgdGhlIFwiY3VycmVudFwiLiBIb3dldmVyLFxuICAvLyBkdXJpbmcgY29tcG9uZW50RGlkVXBkYXRlIHdlIHBhc3MgdGhlIFwiY3VycmVudFwiIHByb3BzLlxuICAvLyBJbiBvcmRlciB0byBzdXBwb3J0IHJlYWN0LWxpZmVjeWNsZXMtY29tcGF0IHBvbHlmaWxsZWQgY29tcG9uZW50cyxcbiAgLy8gVW5zYWZlIGxpZmVjeWNsZXMgc2hvdWxkIG5vdCBiZSBpbnZva2VkIGZvciBjb21wb25lbnRzIHVzaW5nIHRoZSBuZXcgQVBJcy5cblxuICBpZiAoIWhhc05ld0xpZmVjeWNsZXMgJiYgKHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyA9PT0gJ2Z1bmN0aW9uJykpIHtcbiAgICBpZiAob2xkUHJvcHMgIT09IG5ld1Byb3BzIHx8IG9sZENvbnRleHQgIT09IG5leHRDb250ZXh0KSB7XG4gICAgICBjYWxsQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyh3b3JrSW5Qcm9ncmVzcywgaW5zdGFuY2UsIG5ld1Byb3BzLCBuZXh0Q29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAgcmVzZXRIYXNGb3JjZVVwZGF0ZUJlZm9yZVByb2Nlc3NpbmcoKTtcbiAgdmFyIG9sZFN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgdmFyIG5ld1N0YXRlID0gaW5zdGFuY2Uuc3RhdGUgPSBvbGRTdGF0ZTtcbiAgcHJvY2Vzc1VwZGF0ZVF1ZXVlKHdvcmtJblByb2dyZXNzLCBuZXdQcm9wcywgaW5zdGFuY2UsIHJlbmRlckxhbmVzKTtcbiAgbmV3U3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuXG4gIGlmIChvbGRQcm9wcyA9PT0gbmV3UHJvcHMgJiYgb2xkU3RhdGUgPT09IG5ld1N0YXRlICYmICFoYXNDb250ZXh0Q2hhbmdlZCgpICYmICFjaGVja0hhc0ZvcmNlVXBkYXRlQWZ0ZXJQcm9jZXNzaW5nKCkpIHtcbiAgICAvLyBJZiBhbiB1cGRhdGUgd2FzIGFscmVhZHkgaW4gcHJvZ3Jlc3MsIHdlIHNob3VsZCBzY2hlZHVsZSBhbiBVcGRhdGVcbiAgICAvLyBlZmZlY3QgZXZlbiB0aG91Z2ggd2UncmUgYmFpbGluZyBvdXQsIHNvIHRoYXQgY1dVL2NEVSBhcmUgY2FsbGVkLlxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciBmaWJlckZsYWdzID0gVXBkYXRlO1xuXG4gICAgICB7XG4gICAgICAgIGZpYmVyRmxhZ3MgfD0gTGF5b3V0U3RhdGljO1xuICAgICAgfVxuXG4gICAgICBpZiAoICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0RWZmZWN0c01vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgZmliZXJGbGFncyB8PSBNb3VudExheW91dERldjtcbiAgICAgIH1cblxuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gZmliZXJGbGFncztcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAodHlwZW9mIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGFwcGx5RGVyaXZlZFN0YXRlRnJvbVByb3BzKHdvcmtJblByb2dyZXNzLCBjdG9yLCBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMsIG5ld1Byb3BzKTtcbiAgICBuZXdTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gIH1cblxuICB2YXIgc2hvdWxkVXBkYXRlID0gY2hlY2tIYXNGb3JjZVVwZGF0ZUFmdGVyUHJvY2Vzc2luZygpIHx8IGNoZWNrU2hvdWxkQ29tcG9uZW50VXBkYXRlKHdvcmtJblByb2dyZXNzLCBjdG9yLCBvbGRQcm9wcywgbmV3UHJvcHMsIG9sZFN0YXRlLCBuZXdTdGF0ZSwgbmV4dENvbnRleHQpO1xuXG4gIGlmIChzaG91bGRVcGRhdGUpIHtcbiAgICAvLyBJbiBvcmRlciB0byBzdXBwb3J0IHJlYWN0LWxpZmVjeWNsZXMtY29tcGF0IHBvbHlmaWxsZWQgY29tcG9uZW50cyxcbiAgICAvLyBVbnNhZmUgbGlmZWN5Y2xlcyBzaG91bGQgbm90IGJlIGludm9rZWQgZm9yIGNvbXBvbmVudHMgdXNpbmcgdGhlIG5ldyBBUElzLlxuICAgIGlmICghaGFzTmV3TGlmZWN5Y2xlcyAmJiAodHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxNb3VudCA9PT0gJ2Z1bmN0aW9uJykpIHtcbiAgICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGluc3RhbmNlLmNvbXBvbmVudFdpbGxNb3VudCgpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkTW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciBfZmliZXJGbGFncyA9IFVwZGF0ZTtcblxuICAgICAge1xuICAgICAgICBfZmliZXJGbGFncyB8PSBMYXlvdXRTdGF0aWM7XG4gICAgICB9XG5cbiAgICAgIGlmICggKHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RFZmZlY3RzTW9kZSkgIT09IE5vTW9kZSkge1xuICAgICAgICBfZmliZXJGbGFncyB8PSBNb3VudExheW91dERldjtcbiAgICAgIH1cblxuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gX2ZpYmVyRmxhZ3M7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIElmIGFuIHVwZGF0ZSB3YXMgYWxyZWFkeSBpbiBwcm9ncmVzcywgd2Ugc2hvdWxkIHNjaGVkdWxlIGFuIFVwZGF0ZVxuICAgIC8vIGVmZmVjdCBldmVuIHRob3VnaCB3ZSdyZSBiYWlsaW5nIG91dCwgc28gdGhhdCBjV1UvY0RVIGFyZSBjYWxsZWQuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnREaWRNb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdmFyIF9maWJlckZsYWdzMiA9IFVwZGF0ZTtcblxuICAgICAge1xuICAgICAgICBfZmliZXJGbGFnczIgfD0gTGF5b3V0U3RhdGljO1xuICAgICAgfVxuXG4gICAgICBpZiAoICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0RWZmZWN0c01vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgX2ZpYmVyRmxhZ3MyIHw9IE1vdW50TGF5b3V0RGV2O1xuICAgICAgfVxuXG4gICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBfZmliZXJGbGFnczI7XG4gICAgfSAvLyBJZiBzaG91bGRDb21wb25lbnRVcGRhdGUgcmV0dXJuZWQgZmFsc2UsIHdlIHNob3VsZCBzdGlsbCB1cGRhdGUgdGhlXG4gICAgLy8gbWVtb2l6ZWQgc3RhdGUgdG8gaW5kaWNhdGUgdGhhdCB0aGlzIHdvcmsgY2FuIGJlIHJldXNlZC5cblxuXG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRQcm9wcyA9IG5ld1Byb3BzO1xuICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBuZXdTdGF0ZTtcbiAgfSAvLyBVcGRhdGUgdGhlIGV4aXN0aW5nIGluc3RhbmNlJ3Mgc3RhdGUsIHByb3BzLCBhbmQgY29udGV4dCBwb2ludGVycyBldmVuXG4gIC8vIGlmIHNob3VsZENvbXBvbmVudFVwZGF0ZSByZXR1cm5zIGZhbHNlLlxuXG5cbiAgaW5zdGFuY2UucHJvcHMgPSBuZXdQcm9wcztcbiAgaW5zdGFuY2Uuc3RhdGUgPSBuZXdTdGF0ZTtcbiAgaW5zdGFuY2UuY29udGV4dCA9IG5leHRDb250ZXh0O1xuICByZXR1cm4gc2hvdWxkVXBkYXRlO1xufSAvLyBJbnZva2VzIHRoZSB1cGRhdGUgbGlmZS1jeWNsZXMgYW5kIHJldHVybnMgZmFsc2UgaWYgaXQgc2hvdWxkbid0IHJlcmVuZGVyLlxuXG5cbmZ1bmN0aW9uIHVwZGF0ZUNsYXNzSW5zdGFuY2UoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIGN0b3IsIG5ld1Byb3BzLCByZW5kZXJMYW5lcykge1xuICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gIGNsb25lVXBkYXRlUXVldWUoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpO1xuICB2YXIgdW5yZXNvbHZlZE9sZFByb3BzID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRQcm9wcztcbiAgdmFyIG9sZFByb3BzID0gd29ya0luUHJvZ3Jlc3MudHlwZSA9PT0gd29ya0luUHJvZ3Jlc3MuZWxlbWVudFR5cGUgPyB1bnJlc29sdmVkT2xkUHJvcHMgOiByZXNvbHZlRGVmYXVsdFByb3BzKHdvcmtJblByb2dyZXNzLnR5cGUsIHVucmVzb2x2ZWRPbGRQcm9wcyk7XG4gIGluc3RhbmNlLnByb3BzID0gb2xkUHJvcHM7XG4gIHZhciB1bnJlc29sdmVkTmV3UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gIHZhciBvbGRDb250ZXh0ID0gaW5zdGFuY2UuY29udGV4dDtcbiAgdmFyIGNvbnRleHRUeXBlID0gY3Rvci5jb250ZXh0VHlwZTtcbiAgdmFyIG5leHRDb250ZXh0ID0gZW1wdHlDb250ZXh0T2JqZWN0O1xuXG4gIGlmICh0eXBlb2YgY29udGV4dFR5cGUgPT09ICdvYmplY3QnICYmIGNvbnRleHRUeXBlICE9PSBudWxsKSB7XG4gICAgbmV4dENvbnRleHQgPSByZWFkQ29udGV4dChjb250ZXh0VHlwZSk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIG5leHRVbm1hc2tlZENvbnRleHQgPSBnZXRVbm1hc2tlZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIGN0b3IsIHRydWUpO1xuICAgIG5leHRDb250ZXh0ID0gZ2V0TWFza2VkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgbmV4dFVubWFza2VkQ29udGV4dCk7XG4gIH1cblxuICB2YXIgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID0gY3Rvci5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7XG4gIHZhciBoYXNOZXdMaWZlY3ljbGVzID0gdHlwZW9mIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgPT09ICdmdW5jdGlvbic7IC8vIE5vdGU6IER1cmluZyB0aGVzZSBsaWZlLWN5Y2xlcywgaW5zdGFuY2UucHJvcHMvaW5zdGFuY2Uuc3RhdGUgYXJlIHdoYXRcbiAgLy8gZXZlciB0aGUgcHJldmlvdXNseSBhdHRlbXB0ZWQgdG8gcmVuZGVyIC0gbm90IHRoZSBcImN1cnJlbnRcIi4gSG93ZXZlcixcbiAgLy8gZHVyaW5nIGNvbXBvbmVudERpZFVwZGF0ZSB3ZSBwYXNzIHRoZSBcImN1cnJlbnRcIiBwcm9wcy5cbiAgLy8gSW4gb3JkZXIgdG8gc3VwcG9ydCByZWFjdC1saWZlY3ljbGVzLWNvbXBhdCBwb2x5ZmlsbGVkIGNvbXBvbmVudHMsXG4gIC8vIFVuc2FmZSBsaWZlY3ljbGVzIHNob3VsZCBub3QgYmUgaW52b2tlZCBmb3IgY29tcG9uZW50cyB1c2luZyB0aGUgbmV3IEFQSXMuXG5cbiAgaWYgKCFoYXNOZXdMaWZlY3ljbGVzICYmICh0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgPT09ICdmdW5jdGlvbicpKSB7XG4gICAgaWYgKHVucmVzb2x2ZWRPbGRQcm9wcyAhPT0gdW5yZXNvbHZlZE5ld1Byb3BzIHx8IG9sZENvbnRleHQgIT09IG5leHRDb250ZXh0KSB7XG4gICAgICBjYWxsQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyh3b3JrSW5Qcm9ncmVzcywgaW5zdGFuY2UsIG5ld1Byb3BzLCBuZXh0Q29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAgcmVzZXRIYXNGb3JjZVVwZGF0ZUJlZm9yZVByb2Nlc3NpbmcoKTtcbiAgdmFyIG9sZFN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgdmFyIG5ld1N0YXRlID0gaW5zdGFuY2Uuc3RhdGUgPSBvbGRTdGF0ZTtcbiAgcHJvY2Vzc1VwZGF0ZVF1ZXVlKHdvcmtJblByb2dyZXNzLCBuZXdQcm9wcywgaW5zdGFuY2UsIHJlbmRlckxhbmVzKTtcbiAgbmV3U3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuXG4gIGlmICh1bnJlc29sdmVkT2xkUHJvcHMgPT09IHVucmVzb2x2ZWROZXdQcm9wcyAmJiBvbGRTdGF0ZSA9PT0gbmV3U3RhdGUgJiYgIWhhc0NvbnRleHRDaGFuZ2VkKCkgJiYgIWNoZWNrSGFzRm9yY2VVcGRhdGVBZnRlclByb2Nlc3NpbmcoKSAmJiAhKGVuYWJsZUxhenlDb250ZXh0UHJvcGFnYXRpb24gICApKSB7XG4gICAgLy8gSWYgYW4gdXBkYXRlIHdhcyBhbHJlYWR5IGluIHByb2dyZXNzLCB3ZSBzaG91bGQgc2NoZWR1bGUgYW4gVXBkYXRlXG4gICAgLy8gZWZmZWN0IGV2ZW4gdGhvdWdoIHdlJ3JlIGJhaWxpbmcgb3V0LCBzbyB0aGF0IGNXVS9jRFUgYXJlIGNhbGxlZC5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudERpZFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaWYgKHVucmVzb2x2ZWRPbGRQcm9wcyAhPT0gY3VycmVudC5tZW1vaXplZFByb3BzIHx8IG9sZFN0YXRlICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUpIHtcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gVXBkYXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGlmICh1bnJlc29sdmVkT2xkUHJvcHMgIT09IGN1cnJlbnQubWVtb2l6ZWRQcm9wcyB8fCBvbGRTdGF0ZSAhPT0gY3VycmVudC5tZW1vaXplZFN0YXRlKSB7XG4gICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFNuYXBzaG90O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgYXBwbHlEZXJpdmVkU3RhdGVGcm9tUHJvcHMod29ya0luUHJvZ3Jlc3MsIGN0b3IsIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcywgbmV3UHJvcHMpO1xuICAgIG5ld1N0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgfVxuXG4gIHZhciBzaG91bGRVcGRhdGUgPSBjaGVja0hhc0ZvcmNlVXBkYXRlQWZ0ZXJQcm9jZXNzaW5nKCkgfHwgY2hlY2tTaG91bGRDb21wb25lbnRVcGRhdGUod29ya0luUHJvZ3Jlc3MsIGN0b3IsIG9sZFByb3BzLCBuZXdQcm9wcywgb2xkU3RhdGUsIG5ld1N0YXRlLCBuZXh0Q29udGV4dCkgfHwgLy8gVE9ETzogSW4gc29tZSBjYXNlcywgd2UnbGwgZW5kIHVwIGNoZWNraW5nIGlmIGNvbnRleHQgaGFzIGNoYW5nZWQgdHdpY2UsXG4gIC8vIGJvdGggYmVmb3JlIGFuZCBhZnRlciBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCBoYXMgYmVlbiBjYWxsZWQuIE5vdCBpZGVhbCxcbiAgLy8gYnV0IEknbSBsb2F0aCB0byByZWZhY3RvciB0aGlzIGZ1bmN0aW9uLiBUaGlzIG9ubHkgaGFwcGVucyBmb3IgbWVtb2l6ZWRcbiAgLy8gY29tcG9uZW50cyBzbyBpdCdzIG5vdCB0aGF0IGNvbW1vbi5cbiAgZW5hYmxlTGF6eUNvbnRleHRQcm9wYWdhdGlvbiAgIDtcblxuICBpZiAoc2hvdWxkVXBkYXRlKSB7XG4gICAgLy8gSW4gb3JkZXIgdG8gc3VwcG9ydCByZWFjdC1saWZlY3ljbGVzLWNvbXBhdCBwb2x5ZmlsbGVkIGNvbXBvbmVudHMsXG4gICAgLy8gVW5zYWZlIGxpZmVjeWNsZXMgc2hvdWxkIG5vdCBiZSBpbnZva2VkIGZvciBjb21wb25lbnRzIHVzaW5nIHRoZSBuZXcgQVBJcy5cbiAgICBpZiAoIWhhc05ld0xpZmVjeWNsZXMgJiYgKHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykpIHtcbiAgICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBpbnN0YW5jZS5jb21wb25lbnRXaWxsVXBkYXRlKG5ld1Byb3BzLCBuZXdTdGF0ZSwgbmV4dENvbnRleHQpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKG5ld1Byb3BzLCBuZXdTdGF0ZSwgbmV4dENvbnRleHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBVcGRhdGU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gU25hcHNob3Q7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIElmIGFuIHVwZGF0ZSB3YXMgYWxyZWFkeSBpbiBwcm9ncmVzcywgd2Ugc2hvdWxkIHNjaGVkdWxlIGFuIFVwZGF0ZVxuICAgIC8vIGVmZmVjdCBldmVuIHRob3VnaCB3ZSdyZSBiYWlsaW5nIG91dCwgc28gdGhhdCBjV1UvY0RVIGFyZSBjYWxsZWQuXG4gICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnREaWRVcGRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGlmICh1bnJlc29sdmVkT2xkUHJvcHMgIT09IGN1cnJlbnQubWVtb2l6ZWRQcm9wcyB8fCBvbGRTdGF0ZSAhPT0gY3VycmVudC5tZW1vaXplZFN0YXRlKSB7XG4gICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFVwZGF0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpZiAodW5yZXNvbHZlZE9sZFByb3BzICE9PSBjdXJyZW50Lm1lbW9pemVkUHJvcHMgfHwgb2xkU3RhdGUgIT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSkge1xuICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBTbmFwc2hvdDtcbiAgICAgIH1cbiAgICB9IC8vIElmIHNob3VsZENvbXBvbmVudFVwZGF0ZSByZXR1cm5lZCBmYWxzZSwgd2Ugc2hvdWxkIHN0aWxsIHVwZGF0ZSB0aGVcbiAgICAvLyBtZW1vaXplZCBwcm9wcy9zdGF0ZSB0byBpbmRpY2F0ZSB0aGF0IHRoaXMgd29yayBjYW4gYmUgcmV1c2VkLlxuXG5cbiAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzID0gbmV3UHJvcHM7XG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG5ld1N0YXRlO1xuICB9IC8vIFVwZGF0ZSB0aGUgZXhpc3RpbmcgaW5zdGFuY2UncyBzdGF0ZSwgcHJvcHMsIGFuZCBjb250ZXh0IHBvaW50ZXJzIGV2ZW5cbiAgLy8gaWYgc2hvdWxkQ29tcG9uZW50VXBkYXRlIHJldHVybnMgZmFsc2UuXG5cblxuICBpbnN0YW5jZS5wcm9wcyA9IG5ld1Byb3BzO1xuICBpbnN0YW5jZS5zdGF0ZSA9IG5ld1N0YXRlO1xuICBpbnN0YW5jZS5jb250ZXh0ID0gbmV4dENvbnRleHQ7XG4gIHJldHVybiBzaG91bGRVcGRhdGU7XG59XG5cbnZhciBkaWRXYXJuQWJvdXRNYXBzO1xudmFyIGRpZFdhcm5BYm91dEdlbmVyYXRvcnM7XG52YXIgZGlkV2FybkFib3V0U3RyaW5nUmVmcztcbnZhciBvd25lckhhc0tleVVzZVdhcm5pbmc7XG52YXIgb3duZXJIYXNGdW5jdGlvblR5cGVXYXJuaW5nO1xuXG52YXIgd2FybkZvck1pc3NpbmdLZXkgPSBmdW5jdGlvbiAoY2hpbGQsIHJldHVybkZpYmVyKSB7fTtcblxue1xuICBkaWRXYXJuQWJvdXRNYXBzID0gZmFsc2U7XG4gIGRpZFdhcm5BYm91dEdlbmVyYXRvcnMgPSBmYWxzZTtcbiAgZGlkV2FybkFib3V0U3RyaW5nUmVmcyA9IHt9O1xuICAvKipcbiAgICogV2FybiBpZiB0aGVyZSdzIG5vIGtleSBleHBsaWNpdGx5IHNldCBvbiBkeW5hbWljIGFycmF5cyBvZiBjaGlsZHJlbiBvclxuICAgKiBvYmplY3Qga2V5cyBhcmUgbm90IHZhbGlkLiBUaGlzIGFsbG93cyB1cyB0byBrZWVwIHRyYWNrIG9mIGNoaWxkcmVuIGJldHdlZW5cbiAgICogdXBkYXRlcy5cbiAgICovXG5cbiAgb3duZXJIYXNLZXlVc2VXYXJuaW5nID0ge307XG4gIG93bmVySGFzRnVuY3Rpb25UeXBlV2FybmluZyA9IHt9O1xuXG4gIHdhcm5Gb3JNaXNzaW5nS2V5ID0gZnVuY3Rpb24gKGNoaWxkLCByZXR1cm5GaWJlcikge1xuICAgIGlmIChjaGlsZCA9PT0gbnVsbCB8fCB0eXBlb2YgY2hpbGQgIT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFjaGlsZC5fc3RvcmUgfHwgY2hpbGQuX3N0b3JlLnZhbGlkYXRlZCB8fCBjaGlsZC5rZXkgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY2hpbGQuX3N0b3JlICE9PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZWFjdCBDb21wb25lbnQgaW4gd2FybkZvck1pc3NpbmdLZXkgc2hvdWxkIGhhdmUgYSBfc3RvcmUuICcgKyAnVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG5cbiAgICBjaGlsZC5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIocmV0dXJuRmliZXIpIHx8ICdDb21wb25lbnQnO1xuXG4gICAgaWYgKG93bmVySGFzS2V5VXNlV2FybmluZ1tjb21wb25lbnROYW1lXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG93bmVySGFzS2V5VXNlV2FybmluZ1tjb21wb25lbnROYW1lXSA9IHRydWU7XG5cbiAgICBlcnJvcignRWFjaCBjaGlsZCBpbiBhIGxpc3Qgc2hvdWxkIGhhdmUgYSB1bmlxdWUgJyArICdcImtleVwiIHByb3AuIFNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvd2FybmluZy1rZXlzIGZvciAnICsgJ21vcmUgaW5mb3JtYXRpb24uJyk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIGNvZXJjZVJlZihyZXR1cm5GaWJlciwgY3VycmVudCwgZWxlbWVudCkge1xuICB2YXIgbWl4ZWRSZWYgPSBlbGVtZW50LnJlZjtcblxuICBpZiAobWl4ZWRSZWYgIT09IG51bGwgJiYgdHlwZW9mIG1peGVkUmVmICE9PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBtaXhlZFJlZiAhPT0gJ29iamVjdCcpIHtcbiAgICB7XG4gICAgICAvLyBUT0RPOiBDbGVhbiB0aGlzIHVwIG9uY2Ugd2UgdHVybiBvbiB0aGUgc3RyaW5nIHJlZiB3YXJuaW5nIGZvclxuICAgICAgLy8gZXZlcnlvbmUsIGJlY2F1c2UgdGhlIHN0cmljdCBtb2RlIGNhc2Ugd2lsbCBubyBsb25nZXIgYmUgcmVsZXZhbnRcbiAgICAgIGlmICgocmV0dXJuRmliZXIubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUgfHwgd2FybkFib3V0U3RyaW5nUmVmcykgJiYgLy8gV2Ugd2FybiBpbiBSZWFjdEVsZW1lbnQuanMgaWYgb3duZXIgYW5kIHNlbGYgYXJlIGVxdWFsIGZvciBzdHJpbmcgcmVmc1xuICAgICAgLy8gYmVjYXVzZSB0aGVzZSBjYW5ub3QgYmUgYXV0b21hdGljYWxseSBjb252ZXJ0ZWQgdG8gYW4gYXJyb3cgZnVuY3Rpb25cbiAgICAgIC8vIHVzaW5nIGEgY29kZW1vZC4gVGhlcmVmb3JlLCB3ZSBkb24ndCBoYXZlIHRvIHdhcm4gYWJvdXQgc3RyaW5nIHJlZnMgYWdhaW4uXG4gICAgICAhKGVsZW1lbnQuX293bmVyICYmIGVsZW1lbnQuX3NlbGYgJiYgZWxlbWVudC5fb3duZXIuc3RhdGVOb2RlICE9PSBlbGVtZW50Ll9zZWxmKSkge1xuICAgICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIocmV0dXJuRmliZXIpIHx8ICdDb21wb25lbnQnO1xuXG4gICAgICAgIGlmICghZGlkV2FybkFib3V0U3RyaW5nUmVmc1tjb21wb25lbnROYW1lXSkge1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGVycm9yKCdBIHN0cmluZyByZWYsIFwiJXNcIiwgaGFzIGJlZW4gZm91bmQgd2l0aGluIGEgc3RyaWN0IG1vZGUgdHJlZS4gJyArICdTdHJpbmcgcmVmcyBhcmUgYSBzb3VyY2Ugb2YgcG90ZW50aWFsIGJ1Z3MgYW5kIHNob3VsZCBiZSBhdm9pZGVkLiAnICsgJ1dlIHJlY29tbWVuZCB1c2luZyB1c2VSZWYoKSBvciBjcmVhdGVSZWYoKSBpbnN0ZWFkLiAnICsgJ0xlYXJuIG1vcmUgYWJvdXQgdXNpbmcgcmVmcyBzYWZlbHkgaGVyZTogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3RyaWN0LW1vZGUtc3RyaW5nLXJlZicsIG1peGVkUmVmKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzW2NvbXBvbmVudE5hbWVdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChlbGVtZW50Ll9vd25lcikge1xuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICB2YXIgaW5zdDtcblxuICAgICAgaWYgKG93bmVyKSB7XG4gICAgICAgIHZhciBvd25lckZpYmVyID0gb3duZXI7XG5cbiAgICAgICAgaWYgKG93bmVyRmliZXIudGFnICE9PSBDbGFzc0NvbXBvbmVudCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRnVuY3Rpb24gY29tcG9uZW50cyBjYW5ub3QgaGF2ZSBzdHJpbmcgcmVmcy4gJyArICdXZSByZWNvbW1lbmQgdXNpbmcgdXNlUmVmKCkgaW5zdGVhZC4gJyArICdMZWFybiBtb3JlIGFib3V0IHVzaW5nIHJlZnMgc2FmZWx5IGhlcmU6ICcgKyAnaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3N0cmljdC1tb2RlLXN0cmluZy1yZWYnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGluc3QgPSBvd25lckZpYmVyLnN0YXRlTm9kZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFpbnN0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk1pc3Npbmcgb3duZXIgZm9yIHN0cmluZyByZWYgXCIgKyBtaXhlZFJlZiArIFwiLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBcIiArICdidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgICAgfSAvLyBBc3NpZ25pbmcgdGhpcyB0byBhIGNvbnN0IHNvIEZsb3cga25vd3MgaXQgd29uJ3QgY2hhbmdlIGluIHRoZSBjbG9zdXJlXG5cblxuICAgICAgdmFyIHJlc29sdmVkSW5zdCA9IGluc3Q7XG5cbiAgICAgIHtcbiAgICAgICAgY2hlY2tQcm9wU3RyaW5nQ29lcmNpb24obWl4ZWRSZWYsICdyZWYnKTtcbiAgICAgIH1cblxuICAgICAgdmFyIHN0cmluZ1JlZiA9ICcnICsgbWl4ZWRSZWY7IC8vIENoZWNrIGlmIHByZXZpb3VzIHN0cmluZyByZWYgbWF0Y2hlcyBuZXcgc3RyaW5nIHJlZlxuXG4gICAgICBpZiAoY3VycmVudCAhPT0gbnVsbCAmJiBjdXJyZW50LnJlZiAhPT0gbnVsbCAmJiB0eXBlb2YgY3VycmVudC5yZWYgPT09ICdmdW5jdGlvbicgJiYgY3VycmVudC5yZWYuX3N0cmluZ1JlZiA9PT0gc3RyaW5nUmVmKSB7XG4gICAgICAgIHJldHVybiBjdXJyZW50LnJlZjtcbiAgICAgIH1cblxuICAgICAgdmFyIHJlZiA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICB2YXIgcmVmcyA9IHJlc29sdmVkSW5zdC5yZWZzO1xuXG4gICAgICAgIGlmIChyZWZzID09PSBlbXB0eVJlZnNPYmplY3QpIHtcbiAgICAgICAgICAvLyBUaGlzIGlzIGEgbGF6eSBwb29sZWQgZnJvemVuIG9iamVjdCwgc28gd2UgbmVlZCB0byBpbml0aWFsaXplLlxuICAgICAgICAgIHJlZnMgPSByZXNvbHZlZEluc3QucmVmcyA9IHt9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgZGVsZXRlIHJlZnNbc3RyaW5nUmVmXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWZzW3N0cmluZ1JlZl0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgcmVmLl9zdHJpbmdSZWYgPSBzdHJpbmdSZWY7XG4gICAgICByZXR1cm4gcmVmO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodHlwZW9mIG1peGVkUmVmICE9PSAnc3RyaW5nJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHJlZiB0byBiZSBhIGZ1bmN0aW9uLCBhIHN0cmluZywgYW4gb2JqZWN0IHJldHVybmVkIGJ5IFJlYWN0LmNyZWF0ZVJlZigpLCBvciBudWxsLicpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWVsZW1lbnQuX293bmVyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkVsZW1lbnQgcmVmIHdhcyBzcGVjaWZpZWQgYXMgYSBzdHJpbmcgKFwiICsgbWl4ZWRSZWYgKyBcIikgYnV0IG5vIG93bmVyIHdhcyBzZXQuIFRoaXMgY291bGQgaGFwcGVuIGZvciBvbmUgb2ZcIiArICcgdGhlIGZvbGxvd2luZyByZWFzb25zOlxcbicgKyAnMS4gWW91IG1heSBiZSBhZGRpbmcgYSByZWYgdG8gYSBmdW5jdGlvbiBjb21wb25lbnRcXG4nICsgXCIyLiBZb3UgbWF5IGJlIGFkZGluZyBhIHJlZiB0byBhIGNvbXBvbmVudCB0aGF0IHdhcyBub3QgY3JlYXRlZCBpbnNpZGUgYSBjb21wb25lbnQncyByZW5kZXIgbWV0aG9kXFxuXCIgKyAnMy4gWW91IGhhdmUgbXVsdGlwbGUgY29waWVzIG9mIFJlYWN0IGxvYWRlZFxcbicgKyAnU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9yZWZzLW11c3QtaGF2ZS1vd25lciBmb3IgbW9yZSBpbmZvcm1hdGlvbi4nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWl4ZWRSZWY7XG59XG5cbmZ1bmN0aW9uIHRocm93T25JbnZhbGlkT2JqZWN0VHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpIHtcbiAgdmFyIGNoaWxkU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG5ld0NoaWxkKTtcbiAgdGhyb3cgbmV3IEVycm9yKFwiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiBcIiArIChjaGlsZFN0cmluZyA9PT0gJ1tvYmplY3QgT2JqZWN0XScgPyAnb2JqZWN0IHdpdGgga2V5cyB7JyArIE9iamVjdC5rZXlzKG5ld0NoaWxkKS5qb2luKCcsICcpICsgJ30nIDogY2hpbGRTdHJpbmcpICsgXCIpLiBcIiArICdJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5ICcgKyAnaW5zdGVhZC4nKTtcbn1cblxuZnVuY3Rpb24gd2Fybk9uRnVuY3Rpb25UeXBlKHJldHVybkZpYmVyKSB7XG4gIHtcbiAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIocmV0dXJuRmliZXIpIHx8ICdDb21wb25lbnQnO1xuXG4gICAgaWYgKG93bmVySGFzRnVuY3Rpb25UeXBlV2FybmluZ1tjb21wb25lbnROYW1lXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG93bmVySGFzRnVuY3Rpb25UeXBlV2FybmluZ1tjb21wb25lbnROYW1lXSA9IHRydWU7XG5cbiAgICBlcnJvcignRnVuY3Rpb25zIGFyZSBub3QgdmFsaWQgYXMgYSBSZWFjdCBjaGlsZC4gVGhpcyBtYXkgaGFwcGVuIGlmICcgKyAneW91IHJldHVybiBhIENvbXBvbmVudCBpbnN0ZWFkIG9mIDxDb21wb25lbnQgLz4gZnJvbSByZW5kZXIuICcgKyAnT3IgbWF5YmUgeW91IG1lYW50IHRvIGNhbGwgdGhpcyBmdW5jdGlvbiByYXRoZXIgdGhhbiByZXR1cm4gaXQuJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUxhenkobGF6eVR5cGUpIHtcbiAgdmFyIHBheWxvYWQgPSBsYXp5VHlwZS5fcGF5bG9hZDtcbiAgdmFyIGluaXQgPSBsYXp5VHlwZS5faW5pdDtcbiAgcmV0dXJuIGluaXQocGF5bG9hZCk7XG59IC8vIFRoaXMgd3JhcHBlciBmdW5jdGlvbiBleGlzdHMgYmVjYXVzZSBJIGV4cGVjdCB0byBjbG9uZSB0aGUgY29kZSBpbiBlYWNoIHBhdGhcbi8vIHRvIGJlIGFibGUgdG8gb3B0aW1pemUgZWFjaCBwYXRoIGluZGl2aWR1YWxseSBieSBicmFuY2hpbmcgZWFybHkuIFRoaXMgbmVlZHNcbi8vIGEgY29tcGlsZXIgb3Igd2UgY2FuIGRvIGl0IG1hbnVhbGx5LiBIZWxwZXJzIHRoYXQgZG9uJ3QgbmVlZCB0aGlzIGJyYW5jaGluZ1xuLy8gbGl2ZSBvdXRzaWRlIG9mIHRoaXMgZnVuY3Rpb24uXG5cblxuZnVuY3Rpb24gQ2hpbGRSZWNvbmNpbGVyKHNob3VsZFRyYWNrU2lkZUVmZmVjdHMpIHtcbiAgZnVuY3Rpb24gZGVsZXRlQ2hpbGQocmV0dXJuRmliZXIsIGNoaWxkVG9EZWxldGUpIHtcbiAgICBpZiAoIXNob3VsZFRyYWNrU2lkZUVmZmVjdHMpIHtcbiAgICAgIC8vIE5vb3AuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGRlbGV0aW9ucyA9IHJldHVybkZpYmVyLmRlbGV0aW9ucztcblxuICAgIGlmIChkZWxldGlvbnMgPT09IG51bGwpIHtcbiAgICAgIHJldHVybkZpYmVyLmRlbGV0aW9ucyA9IFtjaGlsZFRvRGVsZXRlXTtcbiAgICAgIHJldHVybkZpYmVyLmZsYWdzIHw9IENoaWxkRGVsZXRpb247XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0aW9ucy5wdXNoKGNoaWxkVG9EZWxldGUpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCkge1xuICAgIGlmICghc2hvdWxkVHJhY2tTaWRlRWZmZWN0cykge1xuICAgICAgLy8gTm9vcC5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gLy8gVE9ETzogRm9yIHRoZSBzaG91bGRDbG9uZSBjYXNlLCB0aGlzIGNvdWxkIGJlIG1pY3JvLW9wdGltaXplZCBhIGJpdCBieVxuICAgIC8vIGFzc3VtaW5nIHRoYXQgYWZ0ZXIgdGhlIGZpcnN0IGNoaWxkIHdlJ3ZlIGFscmVhZHkgYWRkZWQgZXZlcnl0aGluZy5cblxuXG4gICAgdmFyIGNoaWxkVG9EZWxldGUgPSBjdXJyZW50Rmlyc3RDaGlsZDtcblxuICAgIHdoaWxlIChjaGlsZFRvRGVsZXRlICE9PSBudWxsKSB7XG4gICAgICBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgY2hpbGRUb0RlbGV0ZSk7XG4gICAgICBjaGlsZFRvRGVsZXRlID0gY2hpbGRUb0RlbGV0ZS5zaWJsaW5nO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZnVuY3Rpb24gbWFwUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkKSB7XG4gICAgLy8gQWRkIHRoZSByZW1haW5pbmcgY2hpbGRyZW4gdG8gYSB0ZW1wb3JhcnkgbWFwIHNvIHRoYXQgd2UgY2FuIGZpbmQgdGhlbSBieVxuICAgIC8vIGtleXMgcXVpY2tseS4gSW1wbGljaXQgKG51bGwpIGtleXMgZ2V0IGFkZGVkIHRvIHRoaXMgc2V0IHdpdGggdGhlaXIgaW5kZXhcbiAgICAvLyBpbnN0ZWFkLlxuICAgIHZhciBleGlzdGluZ0NoaWxkcmVuID0gbmV3IE1hcCgpO1xuICAgIHZhciBleGlzdGluZ0NoaWxkID0gY3VycmVudEZpcnN0Q2hpbGQ7XG5cbiAgICB3aGlsZSAoZXhpc3RpbmdDaGlsZCAhPT0gbnVsbCkge1xuICAgICAgaWYgKGV4aXN0aW5nQ2hpbGQua2V5ICE9PSBudWxsKSB7XG4gICAgICAgIGV4aXN0aW5nQ2hpbGRyZW4uc2V0KGV4aXN0aW5nQ2hpbGQua2V5LCBleGlzdGluZ0NoaWxkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4aXN0aW5nQ2hpbGRyZW4uc2V0KGV4aXN0aW5nQ2hpbGQuaW5kZXgsIGV4aXN0aW5nQ2hpbGQpO1xuICAgICAgfVxuXG4gICAgICBleGlzdGluZ0NoaWxkID0gZXhpc3RpbmdDaGlsZC5zaWJsaW5nO1xuICAgIH1cblxuICAgIHJldHVybiBleGlzdGluZ0NoaWxkcmVuO1xuICB9XG5cbiAgZnVuY3Rpb24gdXNlRmliZXIoZmliZXIsIHBlbmRpbmdQcm9wcykge1xuICAgIC8vIFdlIGN1cnJlbnRseSBzZXQgc2libGluZyB0byBudWxsIGFuZCBpbmRleCB0byAwIGhlcmUgYmVjYXVzZSBpdCBpcyBlYXN5XG4gICAgLy8gdG8gZm9yZ2V0IHRvIGRvIGJlZm9yZSByZXR1cm5pbmcgaXQuIEUuZy4gZm9yIHRoZSBzaW5nbGUgY2hpbGQgY2FzZS5cbiAgICB2YXIgY2xvbmUgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhmaWJlciwgcGVuZGluZ1Byb3BzKTtcbiAgICBjbG9uZS5pbmRleCA9IDA7XG4gICAgY2xvbmUuc2libGluZyA9IG51bGw7XG4gICAgcmV0dXJuIGNsb25lO1xuICB9XG5cbiAgZnVuY3Rpb24gcGxhY2VDaGlsZChuZXdGaWJlciwgbGFzdFBsYWNlZEluZGV4LCBuZXdJbmRleCkge1xuICAgIG5ld0ZpYmVyLmluZGV4ID0gbmV3SW5kZXg7XG5cbiAgICBpZiAoIXNob3VsZFRyYWNrU2lkZUVmZmVjdHMpIHtcbiAgICAgIC8vIER1cmluZyBoeWRyYXRpb24sIHRoZSB1c2VJZCBhbGdvcml0aG0gbmVlZHMgdG8ga25vdyB3aGljaCBmaWJlcnMgYXJlXG4gICAgICAvLyBwYXJ0IG9mIGEgbGlzdCBvZiBjaGlsZHJlbiAoYXJyYXlzLCBpdGVyYXRvcnMpLlxuICAgICAgbmV3RmliZXIuZmxhZ3MgfD0gRm9ya2VkO1xuICAgICAgcmV0dXJuIGxhc3RQbGFjZWRJbmRleDtcbiAgICB9XG5cbiAgICB2YXIgY3VycmVudCA9IG5ld0ZpYmVyLmFsdGVybmF0ZTtcblxuICAgIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICB2YXIgb2xkSW5kZXggPSBjdXJyZW50LmluZGV4O1xuXG4gICAgICBpZiAob2xkSW5kZXggPCBsYXN0UGxhY2VkSW5kZXgpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBhIG1vdmUuXG4gICAgICAgIG5ld0ZpYmVyLmZsYWdzIHw9IFBsYWNlbWVudDtcbiAgICAgICAgcmV0dXJuIGxhc3RQbGFjZWRJbmRleDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoaXMgaXRlbSBjYW4gc3RheSBpbiBwbGFjZS5cbiAgICAgICAgcmV0dXJuIG9sZEluZGV4O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGlzIGlzIGFuIGluc2VydGlvbi5cbiAgICAgIG5ld0ZpYmVyLmZsYWdzIHw9IFBsYWNlbWVudDtcbiAgICAgIHJldHVybiBsYXN0UGxhY2VkSW5kZXg7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcGxhY2VTaW5nbGVDaGlsZChuZXdGaWJlcikge1xuICAgIC8vIFRoaXMgaXMgc2ltcGxlciBmb3IgdGhlIHNpbmdsZSBjaGlsZCBjYXNlLiBXZSBvbmx5IG5lZWQgdG8gZG8gYVxuICAgIC8vIHBsYWNlbWVudCBmb3IgaW5zZXJ0aW5nIG5ldyBjaGlsZHJlbi5cbiAgICBpZiAoc2hvdWxkVHJhY2tTaWRlRWZmZWN0cyAmJiBuZXdGaWJlci5hbHRlcm5hdGUgPT09IG51bGwpIHtcbiAgICAgIG5ld0ZpYmVyLmZsYWdzIHw9IFBsYWNlbWVudDtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3RmliZXI7XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGVUZXh0Tm9kZShyZXR1cm5GaWJlciwgY3VycmVudCwgdGV4dENvbnRlbnQsIGxhbmVzKSB7XG4gICAgaWYgKGN1cnJlbnQgPT09IG51bGwgfHwgY3VycmVudC50YWcgIT09IEhvc3RUZXh0KSB7XG4gICAgICAvLyBJbnNlcnRcbiAgICAgIHZhciBjcmVhdGVkID0gY3JlYXRlRmliZXJGcm9tVGV4dCh0ZXh0Q29udGVudCwgcmV0dXJuRmliZXIubW9kZSwgbGFuZXMpO1xuICAgICAgY3JlYXRlZC5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgIHJldHVybiBjcmVhdGVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBVcGRhdGVcbiAgICAgIHZhciBleGlzdGluZyA9IHVzZUZpYmVyKGN1cnJlbnQsIHRleHRDb250ZW50KTtcbiAgICAgIGV4aXN0aW5nLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHVwZGF0ZUVsZW1lbnQocmV0dXJuRmliZXIsIGN1cnJlbnQsIGVsZW1lbnQsIGxhbmVzKSB7XG4gICAgdmFyIGVsZW1lbnRUeXBlID0gZWxlbWVudC50eXBlO1xuXG4gICAgaWYgKGVsZW1lbnRUeXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFKSB7XG4gICAgICByZXR1cm4gdXBkYXRlRnJhZ21lbnQocmV0dXJuRmliZXIsIGN1cnJlbnQsIGVsZW1lbnQucHJvcHMuY2hpbGRyZW4sIGxhbmVzLCBlbGVtZW50LmtleSk7XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgIGlmIChjdXJyZW50LmVsZW1lbnRUeXBlID09PSBlbGVtZW50VHlwZSB8fCAoIC8vIEtlZXAgdGhpcyBjaGVjayBpbmxpbmUgc28gaXQgb25seSBydW5zIG9uIHRoZSBmYWxzZSBwYXRoOlxuICAgICAgIGlzQ29tcGF0aWJsZUZhbWlseUZvckhvdFJlbG9hZGluZyhjdXJyZW50LCBlbGVtZW50KSApIHx8IC8vIExhenkgdHlwZXMgc2hvdWxkIHJlY29uY2lsZSB0aGVpciByZXNvbHZlZCB0eXBlLlxuICAgICAgLy8gV2UgbmVlZCB0byBkbyB0aGlzIGFmdGVyIHRoZSBIb3QgUmVsb2FkaW5nIGNoZWNrIGFib3ZlLFxuICAgICAgLy8gYmVjYXVzZSBob3QgcmVsb2FkaW5nIGhhcyBkaWZmZXJlbnQgc2VtYW50aWNzIHRoYW4gcHJvZCBiZWNhdXNlXG4gICAgICAvLyBpdCBkb2Vzbid0IHJlc3VzcGVuZC4gU28gd2UgY2FuJ3QgbGV0IHRoZSBjYWxsIGJlbG93IHN1c3BlbmQuXG4gICAgICB0eXBlb2YgZWxlbWVudFR5cGUgPT09ICdvYmplY3QnICYmIGVsZW1lbnRUeXBlICE9PSBudWxsICYmIGVsZW1lbnRUeXBlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEUgJiYgcmVzb2x2ZUxhenkoZWxlbWVudFR5cGUpID09PSBjdXJyZW50LnR5cGUpIHtcbiAgICAgICAgLy8gTW92ZSBiYXNlZCBvbiBpbmRleFxuICAgICAgICB2YXIgZXhpc3RpbmcgPSB1c2VGaWJlcihjdXJyZW50LCBlbGVtZW50LnByb3BzKTtcbiAgICAgICAgZXhpc3RpbmcucmVmID0gY29lcmNlUmVmKHJldHVybkZpYmVyLCBjdXJyZW50LCBlbGVtZW50KTtcbiAgICAgICAgZXhpc3RpbmcucmV0dXJuID0gcmV0dXJuRmliZXI7XG5cbiAgICAgICAge1xuICAgICAgICAgIGV4aXN0aW5nLl9kZWJ1Z1NvdXJjZSA9IGVsZW1lbnQuX3NvdXJjZTtcbiAgICAgICAgICBleGlzdGluZy5fZGVidWdPd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgICAgfVxuICAgIH0gLy8gSW5zZXJ0XG5cblxuICAgIHZhciBjcmVhdGVkID0gY3JlYXRlRmliZXJGcm9tRWxlbWVudChlbGVtZW50LCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcyk7XG4gICAgY3JlYXRlZC5yZWYgPSBjb2VyY2VSZWYocmV0dXJuRmliZXIsIGN1cnJlbnQsIGVsZW1lbnQpO1xuICAgIGNyZWF0ZWQucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgcmV0dXJuIGNyZWF0ZWQ7XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGVQb3J0YWwocmV0dXJuRmliZXIsIGN1cnJlbnQsIHBvcnRhbCwgbGFuZXMpIHtcbiAgICBpZiAoY3VycmVudCA9PT0gbnVsbCB8fCBjdXJyZW50LnRhZyAhPT0gSG9zdFBvcnRhbCB8fCBjdXJyZW50LnN0YXRlTm9kZS5jb250YWluZXJJbmZvICE9PSBwb3J0YWwuY29udGFpbmVySW5mbyB8fCBjdXJyZW50LnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiAhPT0gcG9ydGFsLmltcGxlbWVudGF0aW9uKSB7XG4gICAgICAvLyBJbnNlcnRcbiAgICAgIHZhciBjcmVhdGVkID0gY3JlYXRlRmliZXJGcm9tUG9ydGFsKHBvcnRhbCwgcmV0dXJuRmliZXIubW9kZSwgbGFuZXMpO1xuICAgICAgY3JlYXRlZC5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgIHJldHVybiBjcmVhdGVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBVcGRhdGVcbiAgICAgIHZhciBleGlzdGluZyA9IHVzZUZpYmVyKGN1cnJlbnQsIHBvcnRhbC5jaGlsZHJlbiB8fCBbXSk7XG4gICAgICBleGlzdGluZy5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgIHJldHVybiBleGlzdGluZztcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGVGcmFnbWVudChyZXR1cm5GaWJlciwgY3VycmVudCwgZnJhZ21lbnQsIGxhbmVzLCBrZXkpIHtcbiAgICBpZiAoY3VycmVudCA9PT0gbnVsbCB8fCBjdXJyZW50LnRhZyAhPT0gRnJhZ21lbnQpIHtcbiAgICAgIC8vIEluc2VydFxuICAgICAgdmFyIGNyZWF0ZWQgPSBjcmVhdGVGaWJlckZyb21GcmFnbWVudChmcmFnbWVudCwgcmV0dXJuRmliZXIubW9kZSwgbGFuZXMsIGtleSk7XG4gICAgICBjcmVhdGVkLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgcmV0dXJuIGNyZWF0ZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVwZGF0ZVxuICAgICAgdmFyIGV4aXN0aW5nID0gdXNlRmliZXIoY3VycmVudCwgZnJhZ21lbnQpO1xuICAgICAgZXhpc3RpbmcucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlQ2hpbGQocmV0dXJuRmliZXIsIG5ld0NoaWxkLCBsYW5lcykge1xuICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdzdHJpbmcnICYmIG5ld0NoaWxkICE9PSAnJyB8fCB0eXBlb2YgbmV3Q2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICAvLyBUZXh0IG5vZGVzIGRvbid0IGhhdmUga2V5cy4gSWYgdGhlIHByZXZpb3VzIG5vZGUgaXMgaW1wbGljaXRseSBrZXllZFxuICAgICAgLy8gd2UgY2FuIGNvbnRpbnVlIHRvIHJlcGxhY2UgaXQgd2l0aG91dCBhYm9ydGluZyBldmVuIGlmIGl0IGlzIG5vdCBhIHRleHRcbiAgICAgIC8vIG5vZGUuXG4gICAgICB2YXIgY3JlYXRlZCA9IGNyZWF0ZUZpYmVyRnJvbVRleHQoJycgKyBuZXdDaGlsZCwgcmV0dXJuRmliZXIubW9kZSwgbGFuZXMpO1xuICAgICAgY3JlYXRlZC5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgIHJldHVybiBjcmVhdGVkO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdvYmplY3QnICYmIG5ld0NoaWxkICE9PSBudWxsKSB7XG4gICAgICBzd2l0Y2ggKG5ld0NoaWxkLiQkdHlwZW9mKSB7XG4gICAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciBfY3JlYXRlZCA9IGNyZWF0ZUZpYmVyRnJvbUVsZW1lbnQobmV3Q2hpbGQsIHJldHVybkZpYmVyLm1vZGUsIGxhbmVzKTtcblxuICAgICAgICAgICAgX2NyZWF0ZWQucmVmID0gY29lcmNlUmVmKHJldHVybkZpYmVyLCBudWxsLCBuZXdDaGlsZCk7XG4gICAgICAgICAgICBfY3JlYXRlZC5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgICAgICAgIHJldHVybiBfY3JlYXRlZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YXIgX2NyZWF0ZWQyID0gY3JlYXRlRmliZXJGcm9tUG9ydGFsKG5ld0NoaWxkLCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcyk7XG5cbiAgICAgICAgICAgIF9jcmVhdGVkMi5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgICAgICAgIHJldHVybiBfY3JlYXRlZDI7XG4gICAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciBwYXlsb2FkID0gbmV3Q2hpbGQuX3BheWxvYWQ7XG4gICAgICAgICAgICB2YXIgaW5pdCA9IG5ld0NoaWxkLl9pbml0O1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNoaWxkKHJldHVybkZpYmVyLCBpbml0KHBheWxvYWQpLCBsYW5lcyk7XG4gICAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNBcnJheShuZXdDaGlsZCkgfHwgZ2V0SXRlcmF0b3JGbihuZXdDaGlsZCkpIHtcbiAgICAgICAgdmFyIF9jcmVhdGVkMyA9IGNyZWF0ZUZpYmVyRnJvbUZyYWdtZW50KG5ld0NoaWxkLCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcywgbnVsbCk7XG5cbiAgICAgICAgX2NyZWF0ZWQzLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgICByZXR1cm4gX2NyZWF0ZWQzO1xuICAgICAgfVxuXG4gICAgICB0aHJvd09uSW52YWxpZE9iamVjdFR5cGUocmV0dXJuRmliZXIsIG5ld0NoaWxkKTtcbiAgICB9XG5cbiAgICB7XG4gICAgICBpZiAodHlwZW9mIG5ld0NoaWxkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHdhcm5PbkZ1bmN0aW9uVHlwZShyZXR1cm5GaWJlcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGVTbG90KHJldHVybkZpYmVyLCBvbGRGaWJlciwgbmV3Q2hpbGQsIGxhbmVzKSB7XG4gICAgLy8gVXBkYXRlIHRoZSBmaWJlciBpZiB0aGUga2V5cyBtYXRjaCwgb3RoZXJ3aXNlIHJldHVybiBudWxsLlxuICAgIHZhciBrZXkgPSBvbGRGaWJlciAhPT0gbnVsbCA/IG9sZEZpYmVyLmtleSA6IG51bGw7XG5cbiAgICBpZiAodHlwZW9mIG5ld0NoaWxkID09PSAnc3RyaW5nJyAmJiBuZXdDaGlsZCAhPT0gJycgfHwgdHlwZW9mIG5ld0NoaWxkID09PSAnbnVtYmVyJykge1xuICAgICAgLy8gVGV4dCBub2RlcyBkb24ndCBoYXZlIGtleXMuIElmIHRoZSBwcmV2aW91cyBub2RlIGlzIGltcGxpY2l0bHkga2V5ZWRcbiAgICAgIC8vIHdlIGNhbiBjb250aW51ZSB0byByZXBsYWNlIGl0IHdpdGhvdXQgYWJvcnRpbmcgZXZlbiBpZiBpdCBpcyBub3QgYSB0ZXh0XG4gICAgICAvLyBub2RlLlxuICAgICAgaWYgKGtleSAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVwZGF0ZVRleHROb2RlKHJldHVybkZpYmVyLCBvbGRGaWJlciwgJycgKyBuZXdDaGlsZCwgbGFuZXMpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdvYmplY3QnICYmIG5ld0NoaWxkICE9PSBudWxsKSB7XG4gICAgICBzd2l0Y2ggKG5ld0NoaWxkLiQkdHlwZW9mKSB7XG4gICAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlmIChuZXdDaGlsZC5rZXkgPT09IGtleSkge1xuICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlRWxlbWVudChyZXR1cm5GaWJlciwgb2xkRmliZXIsIG5ld0NoaWxkLCBsYW5lcyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZiAobmV3Q2hpbGQua2V5ID09PSBrZXkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZVBvcnRhbChyZXR1cm5GaWJlciwgb2xkRmliZXIsIG5ld0NoaWxkLCBsYW5lcyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFyIHBheWxvYWQgPSBuZXdDaGlsZC5fcGF5bG9hZDtcbiAgICAgICAgICAgIHZhciBpbml0ID0gbmV3Q2hpbGQuX2luaXQ7XG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlU2xvdChyZXR1cm5GaWJlciwgb2xkRmliZXIsIGluaXQocGF5bG9hZCksIGxhbmVzKTtcbiAgICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0FycmF5KG5ld0NoaWxkKSB8fCBnZXRJdGVyYXRvckZuKG5ld0NoaWxkKSkge1xuICAgICAgICBpZiAoa2V5ICE9PSBudWxsKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdXBkYXRlRnJhZ21lbnQocmV0dXJuRmliZXIsIG9sZEZpYmVyLCBuZXdDaGlsZCwgbGFuZXMsIG51bGwpO1xuICAgICAgfVxuXG4gICAgICB0aHJvd09uSW52YWxpZE9iamVjdFR5cGUocmV0dXJuRmliZXIsIG5ld0NoaWxkKTtcbiAgICB9XG5cbiAgICB7XG4gICAgICBpZiAodHlwZW9mIG5ld0NoaWxkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHdhcm5PbkZ1bmN0aW9uVHlwZShyZXR1cm5GaWJlcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGVGcm9tTWFwKGV4aXN0aW5nQ2hpbGRyZW4sIHJldHVybkZpYmVyLCBuZXdJZHgsIG5ld0NoaWxkLCBsYW5lcykge1xuICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdzdHJpbmcnICYmIG5ld0NoaWxkICE9PSAnJyB8fCB0eXBlb2YgbmV3Q2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgICAvLyBUZXh0IG5vZGVzIGRvbid0IGhhdmUga2V5cywgc28gd2UgbmVpdGhlciBoYXZlIHRvIGNoZWNrIHRoZSBvbGQgbm9yXG4gICAgICAvLyBuZXcgbm9kZSBmb3IgdGhlIGtleS4gSWYgYm90aCBhcmUgdGV4dCBub2RlcywgdGhleSBtYXRjaC5cbiAgICAgIHZhciBtYXRjaGVkRmliZXIgPSBleGlzdGluZ0NoaWxkcmVuLmdldChuZXdJZHgpIHx8IG51bGw7XG4gICAgICByZXR1cm4gdXBkYXRlVGV4dE5vZGUocmV0dXJuRmliZXIsIG1hdGNoZWRGaWJlciwgJycgKyBuZXdDaGlsZCwgbGFuZXMpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdvYmplY3QnICYmIG5ld0NoaWxkICE9PSBudWxsKSB7XG4gICAgICBzd2l0Y2ggKG5ld0NoaWxkLiQkdHlwZW9mKSB7XG4gICAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciBfbWF0Y2hlZEZpYmVyID0gZXhpc3RpbmdDaGlsZHJlbi5nZXQobmV3Q2hpbGQua2V5ID09PSBudWxsID8gbmV3SWR4IDogbmV3Q2hpbGQua2V5KSB8fCBudWxsO1xuXG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlRWxlbWVudChyZXR1cm5GaWJlciwgX21hdGNoZWRGaWJlciwgbmV3Q2hpbGQsIGxhbmVzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YXIgX21hdGNoZWRGaWJlcjIgPSBleGlzdGluZ0NoaWxkcmVuLmdldChuZXdDaGlsZC5rZXkgPT09IG51bGwgPyBuZXdJZHggOiBuZXdDaGlsZC5rZXkpIHx8IG51bGw7XG5cbiAgICAgICAgICAgIHJldHVybiB1cGRhdGVQb3J0YWwocmV0dXJuRmliZXIsIF9tYXRjaGVkRmliZXIyLCBuZXdDaGlsZCwgbGFuZXMpO1xuICAgICAgICAgIH1cblxuICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICB2YXIgcGF5bG9hZCA9IG5ld0NoaWxkLl9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbmV3Q2hpbGQuX2luaXQ7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZUZyb21NYXAoZXhpc3RpbmdDaGlsZHJlbiwgcmV0dXJuRmliZXIsIG5ld0lkeCwgaW5pdChwYXlsb2FkKSwgbGFuZXMpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNBcnJheShuZXdDaGlsZCkgfHwgZ2V0SXRlcmF0b3JGbihuZXdDaGlsZCkpIHtcbiAgICAgICAgdmFyIF9tYXRjaGVkRmliZXIzID0gZXhpc3RpbmdDaGlsZHJlbi5nZXQobmV3SWR4KSB8fCBudWxsO1xuXG4gICAgICAgIHJldHVybiB1cGRhdGVGcmFnbWVudChyZXR1cm5GaWJlciwgX21hdGNoZWRGaWJlcjMsIG5ld0NoaWxkLCBsYW5lcywgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIHRocm93T25JbnZhbGlkT2JqZWN0VHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGlmICh0eXBlb2YgbmV3Q2hpbGQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgd2Fybk9uRnVuY3Rpb25UeXBlKHJldHVybkZpYmVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICAvKipcbiAgICogV2FybnMgaWYgdGhlcmUgaXMgYSBkdXBsaWNhdGUgb3IgbWlzc2luZyBrZXlcbiAgICovXG5cblxuICBmdW5jdGlvbiB3YXJuT25JbnZhbGlkS2V5KGNoaWxkLCBrbm93bktleXMsIHJldHVybkZpYmVyKSB7XG4gICAge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZCAhPT0gJ29iamVjdCcgfHwgY2hpbGQgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGtub3duS2V5cztcbiAgICAgIH1cblxuICAgICAgc3dpdGNoIChjaGlsZC4kJHR5cGVvZikge1xuICAgICAgICBjYXNlIFJFQUNUX0VMRU1FTlRfVFlQRTpcbiAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICB3YXJuRm9yTWlzc2luZ0tleShjaGlsZCwgcmV0dXJuRmliZXIpO1xuICAgICAgICAgIHZhciBrZXkgPSBjaGlsZC5rZXk7XG5cbiAgICAgICAgICBpZiAodHlwZW9mIGtleSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChrbm93bktleXMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGtub3duS2V5cyA9IG5ldyBTZXQoKTtcbiAgICAgICAgICAgIGtub3duS2V5cy5hZGQoa2V5KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICgha25vd25LZXlzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICBrbm93bktleXMuYWRkKGtleSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlcnJvcignRW5jb3VudGVyZWQgdHdvIGNoaWxkcmVuIHdpdGggdGhlIHNhbWUga2V5LCBgJXNgLiAnICsgJ0tleXMgc2hvdWxkIGJlIHVuaXF1ZSBzbyB0aGF0IGNvbXBvbmVudHMgbWFpbnRhaW4gdGhlaXIgaWRlbnRpdHkgJyArICdhY3Jvc3MgdXBkYXRlcy4gTm9uLXVuaXF1ZSBrZXlzIG1heSBjYXVzZSBjaGlsZHJlbiB0byBiZSAnICsgJ2R1cGxpY2F0ZWQgYW5kL29yIG9taXR0ZWQg4oCUIHRoZSBiZWhhdmlvciBpcyB1bnN1cHBvcnRlZCBhbmQgJyArICdjb3VsZCBjaGFuZ2UgaW4gYSBmdXR1cmUgdmVyc2lvbi4nLCBrZXkpO1xuXG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBjaGlsZC5fcGF5bG9hZDtcbiAgICAgICAgICB2YXIgaW5pdCA9IGNoaWxkLl9pbml0O1xuICAgICAgICAgIHdhcm5PbkludmFsaWRLZXkoaW5pdChwYXlsb2FkKSwga25vd25LZXlzLCByZXR1cm5GaWJlcik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGtub3duS2V5cztcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlY29uY2lsZUNoaWxkcmVuQXJyYXkocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkLCBuZXdDaGlsZHJlbiwgbGFuZXMpIHtcbiAgICAvLyBUaGlzIGFsZ29yaXRobSBjYW4ndCBvcHRpbWl6ZSBieSBzZWFyY2hpbmcgZnJvbSBib3RoIGVuZHMgc2luY2Ugd2VcbiAgICAvLyBkb24ndCBoYXZlIGJhY2twb2ludGVycyBvbiBmaWJlcnMuIEknbSB0cnlpbmcgdG8gc2VlIGhvdyBmYXIgd2UgY2FuIGdldFxuICAgIC8vIHdpdGggdGhhdCBtb2RlbC4gSWYgaXQgZW5kcyB1cCBub3QgYmVpbmcgd29ydGggdGhlIHRyYWRlb2Zmcywgd2UgY2FuXG4gICAgLy8gYWRkIGl0IGxhdGVyLlxuICAgIC8vIEV2ZW4gd2l0aCBhIHR3byBlbmRlZCBvcHRpbWl6YXRpb24sIHdlJ2Qgd2FudCB0byBvcHRpbWl6ZSBmb3IgdGhlIGNhc2VcbiAgICAvLyB3aGVyZSB0aGVyZSBhcmUgZmV3IGNoYW5nZXMgYW5kIGJydXRlIGZvcmNlIHRoZSBjb21wYXJpc29uIGluc3RlYWQgb2ZcbiAgICAvLyBnb2luZyBmb3IgdGhlIE1hcC4gSXQnZCBsaWtlIHRvIGV4cGxvcmUgaGl0dGluZyB0aGF0IHBhdGggZmlyc3QgaW5cbiAgICAvLyBmb3J3YXJkLW9ubHkgbW9kZSBhbmQgb25seSBnbyBmb3IgdGhlIE1hcCBvbmNlIHdlIG5vdGljZSB0aGF0IHdlIG5lZWRcbiAgICAvLyBsb3RzIG9mIGxvb2sgYWhlYWQuIFRoaXMgZG9lc24ndCBoYW5kbGUgcmV2ZXJzYWwgYXMgd2VsbCBhcyB0d28gZW5kZWRcbiAgICAvLyBzZWFyY2ggYnV0IHRoYXQncyB1bnVzdWFsLiBCZXNpZGVzLCBmb3IgdGhlIHR3byBlbmRlZCBvcHRpbWl6YXRpb24gdG9cbiAgICAvLyB3b3JrIG9uIEl0ZXJhYmxlcywgd2UnZCBuZWVkIHRvIGNvcHkgdGhlIHdob2xlIHNldC5cbiAgICAvLyBJbiB0aGlzIGZpcnN0IGl0ZXJhdGlvbiwgd2UnbGwganVzdCBsaXZlIHdpdGggaGl0dGluZyB0aGUgYmFkIGNhc2VcbiAgICAvLyAoYWRkaW5nIGV2ZXJ5dGhpbmcgdG8gYSBNYXApIGluIGZvciBldmVyeSBpbnNlcnQvbW92ZS5cbiAgICAvLyBJZiB5b3UgY2hhbmdlIHRoaXMgY29kZSwgYWxzbyB1cGRhdGUgcmVjb25jaWxlQ2hpbGRyZW5JdGVyYXRvcigpIHdoaWNoXG4gICAgLy8gdXNlcyB0aGUgc2FtZSBhbGdvcml0aG0uXG4gICAge1xuICAgICAgLy8gRmlyc3QsIHZhbGlkYXRlIGtleXMuXG4gICAgICB2YXIga25vd25LZXlzID0gbnVsbDtcblxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuZXdDaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgY2hpbGQgPSBuZXdDaGlsZHJlbltpXTtcbiAgICAgICAga25vd25LZXlzID0gd2Fybk9uSW52YWxpZEtleShjaGlsZCwga25vd25LZXlzLCByZXR1cm5GaWJlcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHJlc3VsdGluZ0ZpcnN0Q2hpbGQgPSBudWxsO1xuICAgIHZhciBwcmV2aW91c05ld0ZpYmVyID0gbnVsbDtcbiAgICB2YXIgb2xkRmliZXIgPSBjdXJyZW50Rmlyc3RDaGlsZDtcbiAgICB2YXIgbGFzdFBsYWNlZEluZGV4ID0gMDtcbiAgICB2YXIgbmV3SWR4ID0gMDtcbiAgICB2YXIgbmV4dE9sZEZpYmVyID0gbnVsbDtcblxuICAgIGZvciAoOyBvbGRGaWJlciAhPT0gbnVsbCAmJiBuZXdJZHggPCBuZXdDaGlsZHJlbi5sZW5ndGg7IG5ld0lkeCsrKSB7XG4gICAgICBpZiAob2xkRmliZXIuaW5kZXggPiBuZXdJZHgpIHtcbiAgICAgICAgbmV4dE9sZEZpYmVyID0gb2xkRmliZXI7XG4gICAgICAgIG9sZEZpYmVyID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHRPbGRGaWJlciA9IG9sZEZpYmVyLnNpYmxpbmc7XG4gICAgICB9XG5cbiAgICAgIHZhciBuZXdGaWJlciA9IHVwZGF0ZVNsb3QocmV0dXJuRmliZXIsIG9sZEZpYmVyLCBuZXdDaGlsZHJlbltuZXdJZHhdLCBsYW5lcyk7XG5cbiAgICAgIGlmIChuZXdGaWJlciA9PT0gbnVsbCkge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGJyZWFrcyBvbiBlbXB0eSBzbG90cyBsaWtlIG51bGwgY2hpbGRyZW4uIFRoYXQnc1xuICAgICAgICAvLyB1bmZvcnR1bmF0ZSBiZWNhdXNlIGl0IHRyaWdnZXJzIHRoZSBzbG93IHBhdGggYWxsIHRoZSB0aW1lLiBXZSBuZWVkXG4gICAgICAgIC8vIGEgYmV0dGVyIHdheSB0byBjb21tdW5pY2F0ZSB3aGV0aGVyIHRoaXMgd2FzIGEgbWlzcyBvciBudWxsLFxuICAgICAgICAvLyBib29sZWFuLCB1bmRlZmluZWQsIGV0Yy5cbiAgICAgICAgaWYgKG9sZEZpYmVyID09PSBudWxsKSB7XG4gICAgICAgICAgb2xkRmliZXIgPSBuZXh0T2xkRmliZXI7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKHNob3VsZFRyYWNrU2lkZUVmZmVjdHMpIHtcbiAgICAgICAgaWYgKG9sZEZpYmVyICYmIG5ld0ZpYmVyLmFsdGVybmF0ZSA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIFdlIG1hdGNoZWQgdGhlIHNsb3QsIGJ1dCB3ZSBkaWRuJ3QgcmV1c2UgdGhlIGV4aXN0aW5nIGZpYmVyLCBzbyB3ZVxuICAgICAgICAgIC8vIG5lZWQgdG8gZGVsZXRlIHRoZSBleGlzdGluZyBjaGlsZC5cbiAgICAgICAgICBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgb2xkRmliZXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGxhc3RQbGFjZWRJbmRleCA9IHBsYWNlQ2hpbGQobmV3RmliZXIsIGxhc3RQbGFjZWRJbmRleCwgbmV3SWR4KTtcblxuICAgICAgaWYgKHByZXZpb3VzTmV3RmliZXIgPT09IG51bGwpIHtcbiAgICAgICAgLy8gVE9ETzogTW92ZSBvdXQgb2YgdGhlIGxvb3AuIFRoaXMgb25seSBoYXBwZW5zIGZvciB0aGUgZmlyc3QgcnVuLlxuICAgICAgICByZXN1bHRpbmdGaXJzdENoaWxkID0gbmV3RmliZXI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUT0RPOiBEZWZlciBzaWJsaW5ncyBpZiB3ZSdyZSBub3QgYXQgdGhlIHJpZ2h0IGluZGV4IGZvciB0aGlzIHNsb3QuXG4gICAgICAgIC8vIEkuZS4gaWYgd2UgaGFkIG51bGwgdmFsdWVzIGJlZm9yZSwgdGhlbiB3ZSB3YW50IHRvIGRlZmVyIHRoaXNcbiAgICAgICAgLy8gZm9yIGVhY2ggbnVsbCB2YWx1ZS4gSG93ZXZlciwgd2UgYWxzbyBkb24ndCB3YW50IHRvIGNhbGwgdXBkYXRlU2xvdFxuICAgICAgICAvLyB3aXRoIHRoZSBwcmV2aW91cyBvbmUuXG4gICAgICAgIHByZXZpb3VzTmV3RmliZXIuc2libGluZyA9IG5ld0ZpYmVyO1xuICAgICAgfVxuXG4gICAgICBwcmV2aW91c05ld0ZpYmVyID0gbmV3RmliZXI7XG4gICAgICBvbGRGaWJlciA9IG5leHRPbGRGaWJlcjtcbiAgICB9XG5cbiAgICBpZiAobmV3SWR4ID09PSBuZXdDaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIC8vIFdlJ3ZlIHJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgbmV3IGNoaWxkcmVuLiBXZSBjYW4gZGVsZXRlIHRoZSByZXN0LlxuICAgICAgZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIG9sZEZpYmVyKTtcblxuICAgICAgaWYgKGdldElzSHlkcmF0aW5nKCkpIHtcbiAgICAgICAgdmFyIG51bWJlck9mRm9ya3MgPSBuZXdJZHg7XG4gICAgICAgIHB1c2hUcmVlRm9yayhyZXR1cm5GaWJlciwgbnVtYmVyT2ZGb3Jrcyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHRpbmdGaXJzdENoaWxkO1xuICAgIH1cblxuICAgIGlmIChvbGRGaWJlciA9PT0gbnVsbCkge1xuICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhbnkgbW9yZSBleGlzdGluZyBjaGlsZHJlbiB3ZSBjYW4gY2hvb3NlIGEgZmFzdCBwYXRoXG4gICAgICAvLyBzaW5jZSB0aGUgcmVzdCB3aWxsIGFsbCBiZSBpbnNlcnRpb25zLlxuICAgICAgZm9yICg7IG5ld0lkeCA8IG5ld0NoaWxkcmVuLmxlbmd0aDsgbmV3SWR4KyspIHtcbiAgICAgICAgdmFyIF9uZXdGaWJlciA9IGNyZWF0ZUNoaWxkKHJldHVybkZpYmVyLCBuZXdDaGlsZHJlbltuZXdJZHhdLCBsYW5lcyk7XG5cbiAgICAgICAgaWYgKF9uZXdGaWJlciA9PT0gbnVsbCkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGFzdFBsYWNlZEluZGV4ID0gcGxhY2VDaGlsZChfbmV3RmliZXIsIGxhc3RQbGFjZWRJbmRleCwgbmV3SWR4KTtcblxuICAgICAgICBpZiAocHJldmlvdXNOZXdGaWJlciA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIFRPRE86IE1vdmUgb3V0IG9mIHRoZSBsb29wLiBUaGlzIG9ubHkgaGFwcGVucyBmb3IgdGhlIGZpcnN0IHJ1bi5cbiAgICAgICAgICByZXN1bHRpbmdGaXJzdENoaWxkID0gX25ld0ZpYmVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByZXZpb3VzTmV3RmliZXIuc2libGluZyA9IF9uZXdGaWJlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHByZXZpb3VzTmV3RmliZXIgPSBfbmV3RmliZXI7XG4gICAgICB9XG5cbiAgICAgIGlmIChnZXRJc0h5ZHJhdGluZygpKSB7XG4gICAgICAgIHZhciBfbnVtYmVyT2ZGb3JrcyA9IG5ld0lkeDtcbiAgICAgICAgcHVzaFRyZWVGb3JrKHJldHVybkZpYmVyLCBfbnVtYmVyT2ZGb3Jrcyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHRpbmdGaXJzdENoaWxkO1xuICAgIH0gLy8gQWRkIGFsbCBjaGlsZHJlbiB0byBhIGtleSBtYXAgZm9yIHF1aWNrIGxvb2t1cHMuXG5cblxuICAgIHZhciBleGlzdGluZ0NoaWxkcmVuID0gbWFwUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIG9sZEZpYmVyKTsgLy8gS2VlcCBzY2FubmluZyBhbmQgdXNlIHRoZSBtYXAgdG8gcmVzdG9yZSBkZWxldGVkIGl0ZW1zIGFzIG1vdmVzLlxuXG4gICAgZm9yICg7IG5ld0lkeCA8IG5ld0NoaWxkcmVuLmxlbmd0aDsgbmV3SWR4KyspIHtcbiAgICAgIHZhciBfbmV3RmliZXIyID0gdXBkYXRlRnJvbU1hcChleGlzdGluZ0NoaWxkcmVuLCByZXR1cm5GaWJlciwgbmV3SWR4LCBuZXdDaGlsZHJlbltuZXdJZHhdLCBsYW5lcyk7XG5cbiAgICAgIGlmIChfbmV3RmliZXIyICE9PSBudWxsKSB7XG4gICAgICAgIGlmIChzaG91bGRUcmFja1NpZGVFZmZlY3RzKSB7XG4gICAgICAgICAgaWYgKF9uZXdGaWJlcjIuYWx0ZXJuYXRlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBUaGUgbmV3IGZpYmVyIGlzIGEgd29yayBpbiBwcm9ncmVzcywgYnV0IGlmIHRoZXJlIGV4aXN0cyBhXG4gICAgICAgICAgICAvLyBjdXJyZW50LCB0aGF0IG1lYW5zIHRoYXQgd2UgcmV1c2VkIHRoZSBmaWJlci4gV2UgbmVlZCB0byBkZWxldGVcbiAgICAgICAgICAgIC8vIGl0IGZyb20gdGhlIGNoaWxkIGxpc3Qgc28gdGhhdCB3ZSBkb24ndCBhZGQgaXQgdG8gdGhlIGRlbGV0aW9uXG4gICAgICAgICAgICAvLyBsaXN0LlxuICAgICAgICAgICAgZXhpc3RpbmdDaGlsZHJlbi5kZWxldGUoX25ld0ZpYmVyMi5rZXkgPT09IG51bGwgPyBuZXdJZHggOiBfbmV3RmliZXIyLmtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGFzdFBsYWNlZEluZGV4ID0gcGxhY2VDaGlsZChfbmV3RmliZXIyLCBsYXN0UGxhY2VkSW5kZXgsIG5ld0lkeCk7XG5cbiAgICAgICAgaWYgKHByZXZpb3VzTmV3RmliZXIgPT09IG51bGwpIHtcbiAgICAgICAgICByZXN1bHRpbmdGaXJzdENoaWxkID0gX25ld0ZpYmVyMjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmV2aW91c05ld0ZpYmVyLnNpYmxpbmcgPSBfbmV3RmliZXIyO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJldmlvdXNOZXdGaWJlciA9IF9uZXdGaWJlcjI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHNob3VsZFRyYWNrU2lkZUVmZmVjdHMpIHtcbiAgICAgIC8vIEFueSBleGlzdGluZyBjaGlsZHJlbiB0aGF0IHdlcmVuJ3QgY29uc3VtZWQgYWJvdmUgd2VyZSBkZWxldGVkLiBXZSBuZWVkXG4gICAgICAvLyB0byBhZGQgdGhlbSB0byB0aGUgZGVsZXRpb24gbGlzdC5cbiAgICAgIGV4aXN0aW5nQ2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgcmV0dXJuIGRlbGV0ZUNoaWxkKHJldHVybkZpYmVyLCBjaGlsZCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoZ2V0SXNIeWRyYXRpbmcoKSkge1xuICAgICAgdmFyIF9udW1iZXJPZkZvcmtzMiA9IG5ld0lkeDtcbiAgICAgIHB1c2hUcmVlRm9yayhyZXR1cm5GaWJlciwgX251bWJlck9mRm9ya3MyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0aW5nRmlyc3RDaGlsZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlY29uY2lsZUNoaWxkcmVuSXRlcmF0b3IocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkLCBuZXdDaGlsZHJlbkl0ZXJhYmxlLCBsYW5lcykge1xuICAgIC8vIFRoaXMgaXMgdGhlIHNhbWUgaW1wbGVtZW50YXRpb24gYXMgcmVjb25jaWxlQ2hpbGRyZW5BcnJheSgpLFxuICAgIC8vIGJ1dCB1c2luZyB0aGUgaXRlcmF0b3IgaW5zdGVhZC5cbiAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4obmV3Q2hpbGRyZW5JdGVyYWJsZSk7XG5cbiAgICBpZiAodHlwZW9mIGl0ZXJhdG9yRm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQW4gb2JqZWN0IGlzIG5vdCBhbiBpdGVyYWJsZS4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluICcgKyAnUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgIH1cblxuICAgIHtcbiAgICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgcmVuZGVyaW5nIEdlbmVyYXRvcnMgYmVjYXVzZSBpdCdzIGEgbXV0YXRpb24uXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMjk5NVxuICAgICAgaWYgKHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgLy8gJEZsb3dGaXhNZSBGbG93IGRvZXNuJ3Qga25vdyBhYm91dCB0b1N0cmluZ1RhZ1xuICAgICAgbmV3Q2hpbGRyZW5JdGVyYWJsZVtTeW1ib2wudG9TdHJpbmdUYWddID09PSAnR2VuZXJhdG9yJykge1xuICAgICAgICBpZiAoIWRpZFdhcm5BYm91dEdlbmVyYXRvcnMpIHtcbiAgICAgICAgICBlcnJvcignVXNpbmcgR2VuZXJhdG9ycyBhcyBjaGlsZHJlbiBpcyB1bnN1cHBvcnRlZCBhbmQgd2lsbCBsaWtlbHkgeWllbGQgJyArICd1bmV4cGVjdGVkIHJlc3VsdHMgYmVjYXVzZSBlbnVtZXJhdGluZyBhIGdlbmVyYXRvciBtdXRhdGVzIGl0LiAnICsgJ1lvdSBtYXkgY29udmVydCBpdCB0byBhbiBhcnJheSB3aXRoIGBBcnJheS5mcm9tKClgIG9yIHRoZSAnICsgJ2BbLi4uc3ByZWFkXWAgb3BlcmF0b3IgYmVmb3JlIHJlbmRlcmluZy4gS2VlcCBpbiBtaW5kICcgKyAneW91IG1pZ2h0IG5lZWQgdG8gcG9seWZpbGwgdGhlc2UgZmVhdHVyZXMgZm9yIG9sZGVyIGJyb3dzZXJzLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGlkV2FybkFib3V0R2VuZXJhdG9ycyA9IHRydWU7XG4gICAgICB9IC8vIFdhcm4gYWJvdXQgdXNpbmcgTWFwcyBhcyBjaGlsZHJlblxuXG5cbiAgICAgIGlmIChuZXdDaGlsZHJlbkl0ZXJhYmxlLmVudHJpZXMgPT09IGl0ZXJhdG9yRm4pIHtcbiAgICAgICAgaWYgKCFkaWRXYXJuQWJvdXRNYXBzKSB7XG4gICAgICAgICAgZXJyb3IoJ1VzaW5nIE1hcHMgYXMgY2hpbGRyZW4gaXMgbm90IHN1cHBvcnRlZC4gJyArICdVc2UgYW4gYXJyYXkgb2Yga2V5ZWQgUmVhY3RFbGVtZW50cyBpbnN0ZWFkLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGlkV2FybkFib3V0TWFwcyA9IHRydWU7XG4gICAgICB9IC8vIEZpcnN0LCB2YWxpZGF0ZSBrZXlzLlxuICAgICAgLy8gV2UnbGwgZ2V0IGEgZGlmZmVyZW50IGl0ZXJhdG9yIGxhdGVyIGZvciB0aGUgbWFpbiBwYXNzLlxuXG5cbiAgICAgIHZhciBfbmV3Q2hpbGRyZW4gPSBpdGVyYXRvckZuLmNhbGwobmV3Q2hpbGRyZW5JdGVyYWJsZSk7XG5cbiAgICAgIGlmIChfbmV3Q2hpbGRyZW4pIHtcbiAgICAgICAgdmFyIGtub3duS2V5cyA9IG51bGw7XG5cbiAgICAgICAgdmFyIF9zdGVwID0gX25ld0NoaWxkcmVuLm5leHQoKTtcblxuICAgICAgICBmb3IgKDsgIV9zdGVwLmRvbmU7IF9zdGVwID0gX25ld0NoaWxkcmVuLm5leHQoKSkge1xuICAgICAgICAgIHZhciBjaGlsZCA9IF9zdGVwLnZhbHVlO1xuICAgICAgICAgIGtub3duS2V5cyA9IHdhcm5PbkludmFsaWRLZXkoY2hpbGQsIGtub3duS2V5cywgcmV0dXJuRmliZXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIG5ld0NoaWxkcmVuID0gaXRlcmF0b3JGbi5jYWxsKG5ld0NoaWxkcmVuSXRlcmFibGUpO1xuXG4gICAgaWYgKG5ld0NoaWxkcmVuID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQW4gaXRlcmFibGUgb2JqZWN0IHByb3ZpZGVkIG5vIGl0ZXJhdG9yLicpO1xuICAgIH1cblxuICAgIHZhciByZXN1bHRpbmdGaXJzdENoaWxkID0gbnVsbDtcbiAgICB2YXIgcHJldmlvdXNOZXdGaWJlciA9IG51bGw7XG4gICAgdmFyIG9sZEZpYmVyID0gY3VycmVudEZpcnN0Q2hpbGQ7XG4gICAgdmFyIGxhc3RQbGFjZWRJbmRleCA9IDA7XG4gICAgdmFyIG5ld0lkeCA9IDA7XG4gICAgdmFyIG5leHRPbGRGaWJlciA9IG51bGw7XG4gICAgdmFyIHN0ZXAgPSBuZXdDaGlsZHJlbi5uZXh0KCk7XG5cbiAgICBmb3IgKDsgb2xkRmliZXIgIT09IG51bGwgJiYgIXN0ZXAuZG9uZTsgbmV3SWR4KyssIHN0ZXAgPSBuZXdDaGlsZHJlbi5uZXh0KCkpIHtcbiAgICAgIGlmIChvbGRGaWJlci5pbmRleCA+IG5ld0lkeCkge1xuICAgICAgICBuZXh0T2xkRmliZXIgPSBvbGRGaWJlcjtcbiAgICAgICAgb2xkRmliZXIgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV4dE9sZEZpYmVyID0gb2xkRmliZXIuc2libGluZztcbiAgICAgIH1cblxuICAgICAgdmFyIG5ld0ZpYmVyID0gdXBkYXRlU2xvdChyZXR1cm5GaWJlciwgb2xkRmliZXIsIHN0ZXAudmFsdWUsIGxhbmVzKTtcblxuICAgICAgaWYgKG5ld0ZpYmVyID09PSBudWxsKSB7XG4gICAgICAgIC8vIFRPRE86IFRoaXMgYnJlYWtzIG9uIGVtcHR5IHNsb3RzIGxpa2UgbnVsbCBjaGlsZHJlbi4gVGhhdCdzXG4gICAgICAgIC8vIHVuZm9ydHVuYXRlIGJlY2F1c2UgaXQgdHJpZ2dlcnMgdGhlIHNsb3cgcGF0aCBhbGwgdGhlIHRpbWUuIFdlIG5lZWRcbiAgICAgICAgLy8gYSBiZXR0ZXIgd2F5IHRvIGNvbW11bmljYXRlIHdoZXRoZXIgdGhpcyB3YXMgYSBtaXNzIG9yIG51bGwsXG4gICAgICAgIC8vIGJvb2xlYW4sIHVuZGVmaW5lZCwgZXRjLlxuICAgICAgICBpZiAob2xkRmliZXIgPT09IG51bGwpIHtcbiAgICAgICAgICBvbGRGaWJlciA9IG5leHRPbGRGaWJlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBpZiAoc2hvdWxkVHJhY2tTaWRlRWZmZWN0cykge1xuICAgICAgICBpZiAob2xkRmliZXIgJiYgbmV3RmliZXIuYWx0ZXJuYXRlID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gV2UgbWF0Y2hlZCB0aGUgc2xvdCwgYnV0IHdlIGRpZG4ndCByZXVzZSB0aGUgZXhpc3RpbmcgZmliZXIsIHNvIHdlXG4gICAgICAgICAgLy8gbmVlZCB0byBkZWxldGUgdGhlIGV4aXN0aW5nIGNoaWxkLlxuICAgICAgICAgIGRlbGV0ZUNoaWxkKHJldHVybkZpYmVyLCBvbGRGaWJlcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGFzdFBsYWNlZEluZGV4ID0gcGxhY2VDaGlsZChuZXdGaWJlciwgbGFzdFBsYWNlZEluZGV4LCBuZXdJZHgpO1xuXG4gICAgICBpZiAocHJldmlvdXNOZXdGaWJlciA9PT0gbnVsbCkge1xuICAgICAgICAvLyBUT0RPOiBNb3ZlIG91dCBvZiB0aGUgbG9vcC4gVGhpcyBvbmx5IGhhcHBlbnMgZm9yIHRoZSBmaXJzdCBydW4uXG4gICAgICAgIHJlc3VsdGluZ0ZpcnN0Q2hpbGQgPSBuZXdGaWJlcjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRPRE86IERlZmVyIHNpYmxpbmdzIGlmIHdlJ3JlIG5vdCBhdCB0aGUgcmlnaHQgaW5kZXggZm9yIHRoaXMgc2xvdC5cbiAgICAgICAgLy8gSS5lLiBpZiB3ZSBoYWQgbnVsbCB2YWx1ZXMgYmVmb3JlLCB0aGVuIHdlIHdhbnQgdG8gZGVmZXIgdGhpc1xuICAgICAgICAvLyBmb3IgZWFjaCBudWxsIHZhbHVlLiBIb3dldmVyLCB3ZSBhbHNvIGRvbid0IHdhbnQgdG8gY2FsbCB1cGRhdGVTbG90XG4gICAgICAgIC8vIHdpdGggdGhlIHByZXZpb3VzIG9uZS5cbiAgICAgICAgcHJldmlvdXNOZXdGaWJlci5zaWJsaW5nID0gbmV3RmliZXI7XG4gICAgICB9XG5cbiAgICAgIHByZXZpb3VzTmV3RmliZXIgPSBuZXdGaWJlcjtcbiAgICAgIG9sZEZpYmVyID0gbmV4dE9sZEZpYmVyO1xuICAgIH1cblxuICAgIGlmIChzdGVwLmRvbmUpIHtcbiAgICAgIC8vIFdlJ3ZlIHJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgbmV3IGNoaWxkcmVuLiBXZSBjYW4gZGVsZXRlIHRoZSByZXN0LlxuICAgICAgZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIG9sZEZpYmVyKTtcblxuICAgICAgaWYgKGdldElzSHlkcmF0aW5nKCkpIHtcbiAgICAgICAgdmFyIG51bWJlck9mRm9ya3MgPSBuZXdJZHg7XG4gICAgICAgIHB1c2hUcmVlRm9yayhyZXR1cm5GaWJlciwgbnVtYmVyT2ZGb3Jrcyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHRpbmdGaXJzdENoaWxkO1xuICAgIH1cblxuICAgIGlmIChvbGRGaWJlciA9PT0gbnVsbCkge1xuICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhbnkgbW9yZSBleGlzdGluZyBjaGlsZHJlbiB3ZSBjYW4gY2hvb3NlIGEgZmFzdCBwYXRoXG4gICAgICAvLyBzaW5jZSB0aGUgcmVzdCB3aWxsIGFsbCBiZSBpbnNlcnRpb25zLlxuICAgICAgZm9yICg7ICFzdGVwLmRvbmU7IG5ld0lkeCsrLCBzdGVwID0gbmV3Q2hpbGRyZW4ubmV4dCgpKSB7XG4gICAgICAgIHZhciBfbmV3RmliZXIzID0gY3JlYXRlQ2hpbGQocmV0dXJuRmliZXIsIHN0ZXAudmFsdWUsIGxhbmVzKTtcblxuICAgICAgICBpZiAoX25ld0ZpYmVyMyA9PT0gbnVsbCkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGFzdFBsYWNlZEluZGV4ID0gcGxhY2VDaGlsZChfbmV3RmliZXIzLCBsYXN0UGxhY2VkSW5kZXgsIG5ld0lkeCk7XG5cbiAgICAgICAgaWYgKHByZXZpb3VzTmV3RmliZXIgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBUT0RPOiBNb3ZlIG91dCBvZiB0aGUgbG9vcC4gVGhpcyBvbmx5IGhhcHBlbnMgZm9yIHRoZSBmaXJzdCBydW4uXG4gICAgICAgICAgcmVzdWx0aW5nRmlyc3RDaGlsZCA9IF9uZXdGaWJlcjM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJldmlvdXNOZXdGaWJlci5zaWJsaW5nID0gX25ld0ZpYmVyMztcbiAgICAgICAgfVxuXG4gICAgICAgIHByZXZpb3VzTmV3RmliZXIgPSBfbmV3RmliZXIzO1xuICAgICAgfVxuXG4gICAgICBpZiAoZ2V0SXNIeWRyYXRpbmcoKSkge1xuICAgICAgICB2YXIgX251bWJlck9mRm9ya3MzID0gbmV3SWR4O1xuICAgICAgICBwdXNoVHJlZUZvcmsocmV0dXJuRmliZXIsIF9udW1iZXJPZkZvcmtzMyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHRpbmdGaXJzdENoaWxkO1xuICAgIH0gLy8gQWRkIGFsbCBjaGlsZHJlbiB0byBhIGtleSBtYXAgZm9yIHF1aWNrIGxvb2t1cHMuXG5cblxuICAgIHZhciBleGlzdGluZ0NoaWxkcmVuID0gbWFwUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIG9sZEZpYmVyKTsgLy8gS2VlcCBzY2FubmluZyBhbmQgdXNlIHRoZSBtYXAgdG8gcmVzdG9yZSBkZWxldGVkIGl0ZW1zIGFzIG1vdmVzLlxuXG4gICAgZm9yICg7ICFzdGVwLmRvbmU7IG5ld0lkeCsrLCBzdGVwID0gbmV3Q2hpbGRyZW4ubmV4dCgpKSB7XG4gICAgICB2YXIgX25ld0ZpYmVyNCA9IHVwZGF0ZUZyb21NYXAoZXhpc3RpbmdDaGlsZHJlbiwgcmV0dXJuRmliZXIsIG5ld0lkeCwgc3RlcC52YWx1ZSwgbGFuZXMpO1xuXG4gICAgICBpZiAoX25ld0ZpYmVyNCAhPT0gbnVsbCkge1xuICAgICAgICBpZiAoc2hvdWxkVHJhY2tTaWRlRWZmZWN0cykge1xuICAgICAgICAgIGlmIChfbmV3RmliZXI0LmFsdGVybmF0ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gVGhlIG5ldyBmaWJlciBpcyBhIHdvcmsgaW4gcHJvZ3Jlc3MsIGJ1dCBpZiB0aGVyZSBleGlzdHMgYVxuICAgICAgICAgICAgLy8gY3VycmVudCwgdGhhdCBtZWFucyB0aGF0IHdlIHJldXNlZCB0aGUgZmliZXIuIFdlIG5lZWQgdG8gZGVsZXRlXG4gICAgICAgICAgICAvLyBpdCBmcm9tIHRoZSBjaGlsZCBsaXN0IHNvIHRoYXQgd2UgZG9uJ3QgYWRkIGl0IHRvIHRoZSBkZWxldGlvblxuICAgICAgICAgICAgLy8gbGlzdC5cbiAgICAgICAgICAgIGV4aXN0aW5nQ2hpbGRyZW4uZGVsZXRlKF9uZXdGaWJlcjQua2V5ID09PSBudWxsID8gbmV3SWR4IDogX25ld0ZpYmVyNC5rZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxhc3RQbGFjZWRJbmRleCA9IHBsYWNlQ2hpbGQoX25ld0ZpYmVyNCwgbGFzdFBsYWNlZEluZGV4LCBuZXdJZHgpO1xuXG4gICAgICAgIGlmIChwcmV2aW91c05ld0ZpYmVyID09PSBudWxsKSB7XG4gICAgICAgICAgcmVzdWx0aW5nRmlyc3RDaGlsZCA9IF9uZXdGaWJlcjQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcHJldmlvdXNOZXdGaWJlci5zaWJsaW5nID0gX25ld0ZpYmVyNDtcbiAgICAgICAgfVxuXG4gICAgICAgIHByZXZpb3VzTmV3RmliZXIgPSBfbmV3RmliZXI0O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzaG91bGRUcmFja1NpZGVFZmZlY3RzKSB7XG4gICAgICAvLyBBbnkgZXhpc3RpbmcgY2hpbGRyZW4gdGhhdCB3ZXJlbid0IGNvbnN1bWVkIGFib3ZlIHdlcmUgZGVsZXRlZC4gV2UgbmVlZFxuICAgICAgLy8gdG8gYWRkIHRoZW0gdG8gdGhlIGRlbGV0aW9uIGxpc3QuXG4gICAgICBleGlzdGluZ0NoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgIHJldHVybiBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgY2hpbGQpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGdldElzSHlkcmF0aW5nKCkpIHtcbiAgICAgIHZhciBfbnVtYmVyT2ZGb3JrczQgPSBuZXdJZHg7XG4gICAgICBwdXNoVHJlZUZvcmsocmV0dXJuRmliZXIsIF9udW1iZXJPZkZvcmtzNCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdGluZ0ZpcnN0Q2hpbGQ7XG4gIH1cblxuICBmdW5jdGlvbiByZWNvbmNpbGVTaW5nbGVUZXh0Tm9kZShyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQsIHRleHRDb250ZW50LCBsYW5lcykge1xuICAgIC8vIFRoZXJlJ3Mgbm8gbmVlZCB0byBjaGVjayBmb3Iga2V5cyBvbiB0ZXh0IG5vZGVzIHNpbmNlIHdlIGRvbid0IGhhdmUgYVxuICAgIC8vIHdheSB0byBkZWZpbmUgdGhlbS5cbiAgICBpZiAoY3VycmVudEZpcnN0Q2hpbGQgIT09IG51bGwgJiYgY3VycmVudEZpcnN0Q2hpbGQudGFnID09PSBIb3N0VGV4dCkge1xuICAgICAgLy8gV2UgYWxyZWFkeSBoYXZlIGFuIGV4aXN0aW5nIG5vZGUgc28gbGV0J3MganVzdCB1cGRhdGUgaXQgYW5kIGRlbGV0ZVxuICAgICAgLy8gdGhlIHJlc3QuXG4gICAgICBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQuc2libGluZyk7XG4gICAgICB2YXIgZXhpc3RpbmcgPSB1c2VGaWJlcihjdXJyZW50Rmlyc3RDaGlsZCwgdGV4dENvbnRlbnQpO1xuICAgICAgZXhpc3RpbmcucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgfSAvLyBUaGUgZXhpc3RpbmcgZmlyc3QgY2hpbGQgaXMgbm90IGEgdGV4dCBub2RlIHNvIHdlIG5lZWQgdG8gY3JlYXRlIG9uZVxuICAgIC8vIGFuZCBkZWxldGUgdGhlIGV4aXN0aW5nIG9uZXMuXG5cblxuICAgIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCk7XG4gICAgdmFyIGNyZWF0ZWQgPSBjcmVhdGVGaWJlckZyb21UZXh0KHRleHRDb250ZW50LCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcyk7XG4gICAgY3JlYXRlZC5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICByZXR1cm4gY3JlYXRlZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlY29uY2lsZVNpbmdsZUVsZW1lbnQocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkLCBlbGVtZW50LCBsYW5lcykge1xuICAgIHZhciBrZXkgPSBlbGVtZW50LmtleTtcbiAgICB2YXIgY2hpbGQgPSBjdXJyZW50Rmlyc3RDaGlsZDtcblxuICAgIHdoaWxlIChjaGlsZCAhPT0gbnVsbCkge1xuICAgICAgLy8gVE9ETzogSWYga2V5ID09PSBudWxsIGFuZCBjaGlsZC5rZXkgPT09IG51bGwsIHRoZW4gdGhpcyBvbmx5IGFwcGxpZXMgdG9cbiAgICAgIC8vIHRoZSBmaXJzdCBpdGVtIGluIHRoZSBsaXN0LlxuICAgICAgaWYgKGNoaWxkLmtleSA9PT0ga2V5KSB7XG4gICAgICAgIHZhciBlbGVtZW50VHlwZSA9IGVsZW1lbnQudHlwZTtcblxuICAgICAgICBpZiAoZWxlbWVudFR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUpIHtcbiAgICAgICAgICBpZiAoY2hpbGQudGFnID09PSBGcmFnbWVudCkge1xuICAgICAgICAgICAgZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIGNoaWxkLnNpYmxpbmcpO1xuICAgICAgICAgICAgdmFyIGV4aXN0aW5nID0gdXNlRmliZXIoY2hpbGQsIGVsZW1lbnQucHJvcHMuY2hpbGRyZW4pO1xuICAgICAgICAgICAgZXhpc3RpbmcucmV0dXJuID0gcmV0dXJuRmliZXI7XG5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZXhpc3RpbmcuX2RlYnVnU291cmNlID0gZWxlbWVudC5fc291cmNlO1xuICAgICAgICAgICAgICBleGlzdGluZy5fZGVidWdPd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChjaGlsZC5lbGVtZW50VHlwZSA9PT0gZWxlbWVudFR5cGUgfHwgKCAvLyBLZWVwIHRoaXMgY2hlY2sgaW5saW5lIHNvIGl0IG9ubHkgcnVucyBvbiB0aGUgZmFsc2UgcGF0aDpcbiAgICAgICAgICAgaXNDb21wYXRpYmxlRmFtaWx5Rm9ySG90UmVsb2FkaW5nKGNoaWxkLCBlbGVtZW50KSApIHx8IC8vIExhenkgdHlwZXMgc2hvdWxkIHJlY29uY2lsZSB0aGVpciByZXNvbHZlZCB0eXBlLlxuICAgICAgICAgIC8vIFdlIG5lZWQgdG8gZG8gdGhpcyBhZnRlciB0aGUgSG90IFJlbG9hZGluZyBjaGVjayBhYm92ZSxcbiAgICAgICAgICAvLyBiZWNhdXNlIGhvdCByZWxvYWRpbmcgaGFzIGRpZmZlcmVudCBzZW1hbnRpY3MgdGhhbiBwcm9kIGJlY2F1c2VcbiAgICAgICAgICAvLyBpdCBkb2Vzbid0IHJlc3VzcGVuZC4gU28gd2UgY2FuJ3QgbGV0IHRoZSBjYWxsIGJlbG93IHN1c3BlbmQuXG4gICAgICAgICAgdHlwZW9mIGVsZW1lbnRUeXBlID09PSAnb2JqZWN0JyAmJiBlbGVtZW50VHlwZSAhPT0gbnVsbCAmJiBlbGVtZW50VHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFICYmIHJlc29sdmVMYXp5KGVsZW1lbnRUeXBlKSA9PT0gY2hpbGQudHlwZSkge1xuICAgICAgICAgICAgZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIGNoaWxkLnNpYmxpbmcpO1xuXG4gICAgICAgICAgICB2YXIgX2V4aXN0aW5nID0gdXNlRmliZXIoY2hpbGQsIGVsZW1lbnQucHJvcHMpO1xuXG4gICAgICAgICAgICBfZXhpc3RpbmcucmVmID0gY29lcmNlUmVmKHJldHVybkZpYmVyLCBjaGlsZCwgZWxlbWVudCk7XG4gICAgICAgICAgICBfZXhpc3RpbmcucmV0dXJuID0gcmV0dXJuRmliZXI7XG5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgX2V4aXN0aW5nLl9kZWJ1Z1NvdXJjZSA9IGVsZW1lbnQuX3NvdXJjZTtcbiAgICAgICAgICAgICAgX2V4aXN0aW5nLl9kZWJ1Z093bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBfZXhpc3Rpbmc7XG4gICAgICAgICAgfVxuICAgICAgICB9IC8vIERpZG4ndCBtYXRjaC5cblxuXG4gICAgICAgIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBjaGlsZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlQ2hpbGQocmV0dXJuRmliZXIsIGNoaWxkKTtcbiAgICAgIH1cblxuICAgICAgY2hpbGQgPSBjaGlsZC5zaWJsaW5nO1xuICAgIH1cblxuICAgIGlmIChlbGVtZW50LnR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUpIHtcbiAgICAgIHZhciBjcmVhdGVkID0gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQoZWxlbWVudC5wcm9wcy5jaGlsZHJlbiwgcmV0dXJuRmliZXIubW9kZSwgbGFuZXMsIGVsZW1lbnQua2V5KTtcbiAgICAgIGNyZWF0ZWQucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICByZXR1cm4gY3JlYXRlZDtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIF9jcmVhdGVkNCA9IGNyZWF0ZUZpYmVyRnJvbUVsZW1lbnQoZWxlbWVudCwgcmV0dXJuRmliZXIubW9kZSwgbGFuZXMpO1xuXG4gICAgICBfY3JlYXRlZDQucmVmID0gY29lcmNlUmVmKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgZWxlbWVudCk7XG4gICAgICBfY3JlYXRlZDQucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICByZXR1cm4gX2NyZWF0ZWQ0O1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHJlY29uY2lsZVNpbmdsZVBvcnRhbChyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQsIHBvcnRhbCwgbGFuZXMpIHtcbiAgICB2YXIga2V5ID0gcG9ydGFsLmtleTtcbiAgICB2YXIgY2hpbGQgPSBjdXJyZW50Rmlyc3RDaGlsZDtcblxuICAgIHdoaWxlIChjaGlsZCAhPT0gbnVsbCkge1xuICAgICAgLy8gVE9ETzogSWYga2V5ID09PSBudWxsIGFuZCBjaGlsZC5rZXkgPT09IG51bGwsIHRoZW4gdGhpcyBvbmx5IGFwcGxpZXMgdG9cbiAgICAgIC8vIHRoZSBmaXJzdCBpdGVtIGluIHRoZSBsaXN0LlxuICAgICAgaWYgKGNoaWxkLmtleSA9PT0ga2V5KSB7XG4gICAgICAgIGlmIChjaGlsZC50YWcgPT09IEhvc3RQb3J0YWwgJiYgY2hpbGQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8gPT09IHBvcnRhbC5jb250YWluZXJJbmZvICYmIGNoaWxkLnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiA9PT0gcG9ydGFsLmltcGxlbWVudGF0aW9uKSB7XG4gICAgICAgICAgZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIGNoaWxkLnNpYmxpbmcpO1xuICAgICAgICAgIHZhciBleGlzdGluZyA9IHVzZUZpYmVyKGNoaWxkLCBwb3J0YWwuY2hpbGRyZW4gfHwgW10pO1xuICAgICAgICAgIGV4aXN0aW5nLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgICAgIHJldHVybiBleGlzdGluZztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgY2hpbGQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgY2hpbGQpO1xuICAgICAgfVxuXG4gICAgICBjaGlsZCA9IGNoaWxkLnNpYmxpbmc7XG4gICAgfVxuXG4gICAgdmFyIGNyZWF0ZWQgPSBjcmVhdGVGaWJlckZyb21Qb3J0YWwocG9ydGFsLCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcyk7XG4gICAgY3JlYXRlZC5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICByZXR1cm4gY3JlYXRlZDtcbiAgfSAvLyBUaGlzIEFQSSB3aWxsIHRhZyB0aGUgY2hpbGRyZW4gd2l0aCB0aGUgc2lkZS1lZmZlY3Qgb2YgdGhlIHJlY29uY2lsaWF0aW9uXG4gIC8vIGl0c2VsZi4gVGhleSB3aWxsIGJlIGFkZGVkIHRvIHRoZSBzaWRlLWVmZmVjdCBsaXN0IGFzIHdlIHBhc3MgdGhyb3VnaCB0aGVcbiAgLy8gY2hpbGRyZW4gYW5kIHRoZSBwYXJlbnQuXG5cblxuICBmdW5jdGlvbiByZWNvbmNpbGVDaGlsZEZpYmVycyhyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQsIG5ld0NoaWxkLCBsYW5lcykge1xuICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgbm90IHJlY3Vyc2l2ZS5cbiAgICAvLyBJZiB0aGUgdG9wIGxldmVsIGl0ZW0gaXMgYW4gYXJyYXksIHdlIHRyZWF0IGl0IGFzIGEgc2V0IG9mIGNoaWxkcmVuLFxuICAgIC8vIG5vdCBhcyBhIGZyYWdtZW50LiBOZXN0ZWQgYXJyYXlzIG9uIHRoZSBvdGhlciBoYW5kIHdpbGwgYmUgdHJlYXRlZCBhc1xuICAgIC8vIGZyYWdtZW50IG5vZGVzLiBSZWN1cnNpb24gaGFwcGVucyBhdCB0aGUgbm9ybWFsIGZsb3cuXG4gICAgLy8gSGFuZGxlIHRvcCBsZXZlbCB1bmtleWVkIGZyYWdtZW50cyBhcyBpZiB0aGV5IHdlcmUgYXJyYXlzLlxuICAgIC8vIFRoaXMgbGVhZHMgdG8gYW4gYW1iaWd1aXR5IGJldHdlZW4gPD57Wy4uLl19PC8+IGFuZCA8Pi4uLjwvPi5cbiAgICAvLyBXZSB0cmVhdCB0aGUgYW1iaWd1b3VzIGNhc2VzIGFib3ZlIHRoZSBzYW1lLlxuICAgIHZhciBpc1Vua2V5ZWRUb3BMZXZlbEZyYWdtZW50ID0gdHlwZW9mIG5ld0NoaWxkID09PSAnb2JqZWN0JyAmJiBuZXdDaGlsZCAhPT0gbnVsbCAmJiBuZXdDaGlsZC50eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFICYmIG5ld0NoaWxkLmtleSA9PT0gbnVsbDtcblxuICAgIGlmIChpc1Vua2V5ZWRUb3BMZXZlbEZyYWdtZW50KSB7XG4gICAgICBuZXdDaGlsZCA9IG5ld0NoaWxkLnByb3BzLmNoaWxkcmVuO1xuICAgIH0gLy8gSGFuZGxlIG9iamVjdCB0eXBlc1xuXG5cbiAgICBpZiAodHlwZW9mIG5ld0NoaWxkID09PSAnb2JqZWN0JyAmJiBuZXdDaGlsZCAhPT0gbnVsbCkge1xuICAgICAgc3dpdGNoIChuZXdDaGlsZC4kJHR5cGVvZikge1xuICAgICAgICBjYXNlIFJFQUNUX0VMRU1FTlRfVFlQRTpcbiAgICAgICAgICByZXR1cm4gcGxhY2VTaW5nbGVDaGlsZChyZWNvbmNpbGVTaW5nbGVFbGVtZW50KHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3Q2hpbGQsIGxhbmVzKSk7XG5cbiAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICByZXR1cm4gcGxhY2VTaW5nbGVDaGlsZChyZWNvbmNpbGVTaW5nbGVQb3J0YWwocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkLCBuZXdDaGlsZCwgbGFuZXMpKTtcblxuICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICB2YXIgcGF5bG9hZCA9IG5ld0NoaWxkLl9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbmV3Q2hpbGQuX2luaXQ7IC8vIFRPRE86IFRoaXMgZnVuY3Rpb24gaXMgc3VwcG9zZWQgdG8gYmUgbm9uLXJlY3Vyc2l2ZS5cblxuICAgICAgICAgIHJldHVybiByZWNvbmNpbGVDaGlsZEZpYmVycyhyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQsIGluaXQocGF5bG9hZCksIGxhbmVzKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzQXJyYXkobmV3Q2hpbGQpKSB7XG4gICAgICAgIHJldHVybiByZWNvbmNpbGVDaGlsZHJlbkFycmF5KHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3Q2hpbGQsIGxhbmVzKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGdldEl0ZXJhdG9yRm4obmV3Q2hpbGQpKSB7XG4gICAgICAgIHJldHVybiByZWNvbmNpbGVDaGlsZHJlbkl0ZXJhdG9yKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3Q2hpbGQsIGxhbmVzKTtcbiAgICAgIH1cblxuICAgICAgdGhyb3dPbkludmFsaWRPYmplY3RUeXBlKHJldHVybkZpYmVyLCBuZXdDaGlsZCk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBuZXdDaGlsZCA9PT0gJ3N0cmluZycgJiYgbmV3Q2hpbGQgIT09ICcnIHx8IHR5cGVvZiBuZXdDaGlsZCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBwbGFjZVNpbmdsZUNoaWxkKHJlY29uY2lsZVNpbmdsZVRleHROb2RlKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgJycgKyBuZXdDaGlsZCwgbGFuZXMpKTtcbiAgICB9XG5cbiAgICB7XG4gICAgICBpZiAodHlwZW9mIG5ld0NoaWxkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHdhcm5PbkZ1bmN0aW9uVHlwZShyZXR1cm5GaWJlcik7XG4gICAgICB9XG4gICAgfSAvLyBSZW1haW5pbmcgY2FzZXMgYXJlIGFsbCB0cmVhdGVkIGFzIGVtcHR5LlxuXG5cbiAgICByZXR1cm4gZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkKTtcbiAgfVxuXG4gIHJldHVybiByZWNvbmNpbGVDaGlsZEZpYmVycztcbn1cblxudmFyIHJlY29uY2lsZUNoaWxkRmliZXJzID0gQ2hpbGRSZWNvbmNpbGVyKHRydWUpO1xudmFyIG1vdW50Q2hpbGRGaWJlcnMgPSBDaGlsZFJlY29uY2lsZXIoZmFsc2UpO1xuZnVuY3Rpb24gY2xvbmVDaGlsZEZpYmVycyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcykge1xuICBpZiAoY3VycmVudCAhPT0gbnVsbCAmJiB3b3JrSW5Qcm9ncmVzcy5jaGlsZCAhPT0gY3VycmVudC5jaGlsZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignUmVzdW1pbmcgd29yayBub3QgeWV0IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgaWYgKHdvcmtJblByb2dyZXNzLmNoaWxkID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGN1cnJlbnRDaGlsZCA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICB2YXIgbmV3Q2hpbGQgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhjdXJyZW50Q2hpbGQsIGN1cnJlbnRDaGlsZC5wZW5kaW5nUHJvcHMpO1xuICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IG5ld0NoaWxkO1xuICBuZXdDaGlsZC5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcblxuICB3aGlsZSAoY3VycmVudENoaWxkLnNpYmxpbmcgIT09IG51bGwpIHtcbiAgICBjdXJyZW50Q2hpbGQgPSBjdXJyZW50Q2hpbGQuc2libGluZztcbiAgICBuZXdDaGlsZCA9IG5ld0NoaWxkLnNpYmxpbmcgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhjdXJyZW50Q2hpbGQsIGN1cnJlbnRDaGlsZC5wZW5kaW5nUHJvcHMpO1xuICAgIG5ld0NoaWxkLnJldHVybiA9IHdvcmtJblByb2dyZXNzO1xuICB9XG5cbiAgbmV3Q2hpbGQuc2libGluZyA9IG51bGw7XG59IC8vIFJlc2V0IGEgd29ya0luUHJvZ3Jlc3MgY2hpbGQgc2V0IHRvIHByZXBhcmUgaXQgZm9yIGEgc2Vjb25kIHBhc3MuXG5cbmZ1bmN0aW9uIHJlc2V0Q2hpbGRGaWJlcnMod29ya0luUHJvZ3Jlc3MsIGxhbmVzKSB7XG4gIHZhciBjaGlsZCA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuXG4gIHdoaWxlIChjaGlsZCAhPT0gbnVsbCkge1xuICAgIHJlc2V0V29ya0luUHJvZ3Jlc3MoY2hpbGQsIGxhbmVzKTtcbiAgICBjaGlsZCA9IGNoaWxkLnNpYmxpbmc7XG4gIH1cbn1cblxudmFyIE5PX0NPTlRFWFQgPSB7fTtcbnZhciBjb250ZXh0U3RhY2tDdXJzb3IkMSA9IGNyZWF0ZUN1cnNvcihOT19DT05URVhUKTtcbnZhciBjb250ZXh0RmliZXJTdGFja0N1cnNvciA9IGNyZWF0ZUN1cnNvcihOT19DT05URVhUKTtcbnZhciByb290SW5zdGFuY2VTdGFja0N1cnNvciA9IGNyZWF0ZUN1cnNvcihOT19DT05URVhUKTtcblxuZnVuY3Rpb24gcmVxdWlyZWRDb250ZXh0KGMpIHtcbiAgaWYgKGMgPT09IE5PX0NPTlRFWFQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGhvc3QgY29udGV4dCB0byBleGlzdC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnICcgKyAnaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICB9XG5cbiAgcmV0dXJuIGM7XG59XG5cbmZ1bmN0aW9uIGdldFJvb3RIb3N0Q29udGFpbmVyKCkge1xuICB2YXIgcm9vdEluc3RhbmNlID0gcmVxdWlyZWRDb250ZXh0KHJvb3RJbnN0YW5jZVN0YWNrQ3Vyc29yLmN1cnJlbnQpO1xuICByZXR1cm4gcm9vdEluc3RhbmNlO1xufVxuXG5mdW5jdGlvbiBwdXNoSG9zdENvbnRhaW5lcihmaWJlciwgbmV4dFJvb3RJbnN0YW5jZSkge1xuICAvLyBQdXNoIGN1cnJlbnQgcm9vdCBpbnN0YW5jZSBvbnRvIHRoZSBzdGFjaztcbiAgLy8gVGhpcyBhbGxvd3MgdXMgdG8gcmVzZXQgcm9vdCB3aGVuIHBvcnRhbHMgYXJlIHBvcHBlZC5cbiAgcHVzaChyb290SW5zdGFuY2VTdGFja0N1cnNvciwgbmV4dFJvb3RJbnN0YW5jZSwgZmliZXIpOyAvLyBUcmFjayB0aGUgY29udGV4dCBhbmQgdGhlIEZpYmVyIHRoYXQgcHJvdmlkZWQgaXQuXG4gIC8vIFRoaXMgZW5hYmxlcyB1cyB0byBwb3Agb25seSBGaWJlcnMgdGhhdCBwcm92aWRlIHVuaXF1ZSBjb250ZXh0cy5cblxuICBwdXNoKGNvbnRleHRGaWJlclN0YWNrQ3Vyc29yLCBmaWJlciwgZmliZXIpOyAvLyBGaW5hbGx5LCB3ZSBuZWVkIHRvIHB1c2ggdGhlIGhvc3QgY29udGV4dCB0byB0aGUgc3RhY2suXG4gIC8vIEhvd2V2ZXIsIHdlIGNhbid0IGp1c3QgY2FsbCBnZXRSb290SG9zdENvbnRleHQoKSBhbmQgcHVzaCBpdCBiZWNhdXNlXG4gIC8vIHdlJ2QgaGF2ZSBhIGRpZmZlcmVudCBudW1iZXIgb2YgZW50cmllcyBvbiB0aGUgc3RhY2sgZGVwZW5kaW5nIG9uXG4gIC8vIHdoZXRoZXIgZ2V0Um9vdEhvc3RDb250ZXh0KCkgdGhyb3dzIHNvbWV3aGVyZSBpbiByZW5kZXJlciBjb2RlIG9yIG5vdC5cbiAgLy8gU28gd2UgcHVzaCBhbiBlbXB0eSB2YWx1ZSBmaXJzdC4gVGhpcyBsZXRzIHVzIHNhZmVseSB1bndpbmQgb24gZXJyb3JzLlxuXG4gIHB1c2goY29udGV4dFN0YWNrQ3Vyc29yJDEsIE5PX0NPTlRFWFQsIGZpYmVyKTtcbiAgdmFyIG5leHRSb290Q29udGV4dCA9IGdldFJvb3RIb3N0Q29udGV4dChuZXh0Um9vdEluc3RhbmNlKTsgLy8gTm93IHRoYXQgd2Uga25vdyB0aGlzIGZ1bmN0aW9uIGRvZXNuJ3QgdGhyb3csIHJlcGxhY2UgaXQuXG5cbiAgcG9wKGNvbnRleHRTdGFja0N1cnNvciQxLCBmaWJlcik7XG4gIHB1c2goY29udGV4dFN0YWNrQ3Vyc29yJDEsIG5leHRSb290Q29udGV4dCwgZmliZXIpO1xufVxuXG5mdW5jdGlvbiBwb3BIb3N0Q29udGFpbmVyKGZpYmVyKSB7XG4gIHBvcChjb250ZXh0U3RhY2tDdXJzb3IkMSwgZmliZXIpO1xuICBwb3AoY29udGV4dEZpYmVyU3RhY2tDdXJzb3IsIGZpYmVyKTtcbiAgcG9wKHJvb3RJbnN0YW5jZVN0YWNrQ3Vyc29yLCBmaWJlcik7XG59XG5cbmZ1bmN0aW9uIGdldEhvc3RDb250ZXh0KCkge1xuICB2YXIgY29udGV4dCA9IHJlcXVpcmVkQ29udGV4dChjb250ZXh0U3RhY2tDdXJzb3IkMS5jdXJyZW50KTtcbiAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbmZ1bmN0aW9uIHB1c2hIb3N0Q29udGV4dChmaWJlcikge1xuICB2YXIgcm9vdEluc3RhbmNlID0gcmVxdWlyZWRDb250ZXh0KHJvb3RJbnN0YW5jZVN0YWNrQ3Vyc29yLmN1cnJlbnQpO1xuICB2YXIgY29udGV4dCA9IHJlcXVpcmVkQ29udGV4dChjb250ZXh0U3RhY2tDdXJzb3IkMS5jdXJyZW50KTtcbiAgdmFyIG5leHRDb250ZXh0ID0gZ2V0Q2hpbGRIb3N0Q29udGV4dChjb250ZXh0LCBmaWJlci50eXBlKTsgLy8gRG9uJ3QgcHVzaCB0aGlzIEZpYmVyJ3MgY29udGV4dCB1bmxlc3MgaXQncyB1bmlxdWUuXG5cbiAgaWYgKGNvbnRleHQgPT09IG5leHRDb250ZXh0KSB7XG4gICAgcmV0dXJuO1xuICB9IC8vIFRyYWNrIHRoZSBjb250ZXh0IGFuZCB0aGUgRmliZXIgdGhhdCBwcm92aWRlZCBpdC5cbiAgLy8gVGhpcyBlbmFibGVzIHVzIHRvIHBvcCBvbmx5IEZpYmVycyB0aGF0IHByb3ZpZGUgdW5pcXVlIGNvbnRleHRzLlxuXG5cbiAgcHVzaChjb250ZXh0RmliZXJTdGFja0N1cnNvciwgZmliZXIsIGZpYmVyKTtcbiAgcHVzaChjb250ZXh0U3RhY2tDdXJzb3IkMSwgbmV4dENvbnRleHQsIGZpYmVyKTtcbn1cblxuZnVuY3Rpb24gcG9wSG9zdENvbnRleHQoZmliZXIpIHtcbiAgLy8gRG8gbm90IHBvcCB1bmxlc3MgdGhpcyBGaWJlciBwcm92aWRlZCB0aGUgY3VycmVudCBjb250ZXh0LlxuICAvLyBwdXNoSG9zdENvbnRleHQoKSBvbmx5IHB1c2hlcyBGaWJlcnMgdGhhdCBwcm92aWRlIHVuaXF1ZSBjb250ZXh0cy5cbiAgaWYgKGNvbnRleHRGaWJlclN0YWNrQ3Vyc29yLmN1cnJlbnQgIT09IGZpYmVyKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcG9wKGNvbnRleHRTdGFja0N1cnNvciQxLCBmaWJlcik7XG4gIHBvcChjb250ZXh0RmliZXJTdGFja0N1cnNvciwgZmliZXIpO1xufVxuXG52YXIgRGVmYXVsdFN1c3BlbnNlQ29udGV4dCA9IDA7IC8vIFRoZSBTdXNwZW5zZSBDb250ZXh0IGlzIHNwbGl0IGludG8gdHdvIHBhcnRzLiBUaGUgbG93ZXIgYml0cyBpc1xuLy8gaW5oZXJpdGVkIGRlZXBseSBkb3duIHRoZSBzdWJ0cmVlLiBUaGUgdXBwZXIgYml0cyBvbmx5IGFmZmVjdFxuLy8gdGhpcyBpbW1lZGlhdGUgc3VzcGVuc2UgYm91bmRhcnkgYW5kIGdldHMgcmVzZXQgZWFjaCBuZXdcbi8vIGJvdW5kYXJ5IG9yIHN1c3BlbnNlIGxpc3QuXG5cbnZhciBTdWJ0cmVlU3VzcGVuc2VDb250ZXh0TWFzayA9IDE7IC8vIFN1YnRyZWUgRmxhZ3M6XG4vLyBJbnZpc2libGVQYXJlbnRTdXNwZW5zZUNvbnRleHQgaW5kaWNhdGVzIHRoYXQgb25lIG9mIG91ciBwYXJlbnQgU3VzcGVuc2Vcbi8vIGJvdW5kYXJpZXMgaXMgbm90IGN1cnJlbnRseSBzaG93aW5nIHZpc2libGUgbWFpbiBjb250ZW50LlxuLy8gRWl0aGVyIGJlY2F1c2UgaXQgaXMgYWxyZWFkeSBzaG93aW5nIGEgZmFsbGJhY2sgb3IgaXMgbm90IG1vdW50ZWQgYXQgYWxsLlxuLy8gV2UgY2FuIHVzZSB0aGlzIHRvIGRldGVybWluZSBpZiBpdCBpcyBkZXNpcmFibGUgdG8gdHJpZ2dlciBhIGZhbGxiYWNrIGF0XG4vLyB0aGUgcGFyZW50LiBJZiBub3QsIHRoZW4gd2UgbWlnaHQgbmVlZCB0byB0cmlnZ2VyIHVuZGVzaXJhYmxlIGJvdW5kYXJpZXNcbi8vIGFuZC9vciBzdXNwZW5kIHRoZSBjb21taXQgdG8gYXZvaWQgaGlkaW5nIHRoZSBwYXJlbnQgY29udGVudC5cblxudmFyIEludmlzaWJsZVBhcmVudFN1c3BlbnNlQ29udGV4dCA9IDE7IC8vIFNoYWxsb3cgRmxhZ3M6XG4vLyBGb3JjZVN1c3BlbnNlRmFsbGJhY2sgY2FuIGJlIHVzZWQgYnkgU3VzcGVuc2VMaXN0IHRvIGZvcmNlIG5ld2x5IGFkZGVkXG4vLyBpdGVtcyBpbnRvIHRoZWlyIGZhbGxiYWNrIHN0YXRlIGR1cmluZyBvbmUgb2YgdGhlIHJlbmRlciBwYXNzZXMuXG5cbnZhciBGb3JjZVN1c3BlbnNlRmFsbGJhY2sgPSAyO1xudmFyIHN1c3BlbnNlU3RhY2tDdXJzb3IgPSBjcmVhdGVDdXJzb3IoRGVmYXVsdFN1c3BlbnNlQ29udGV4dCk7XG5mdW5jdGlvbiBoYXNTdXNwZW5zZUNvbnRleHQocGFyZW50Q29udGV4dCwgZmxhZykge1xuICByZXR1cm4gKHBhcmVudENvbnRleHQgJiBmbGFnKSAhPT0gMDtcbn1cbmZ1bmN0aW9uIHNldERlZmF1bHRTaGFsbG93U3VzcGVuc2VDb250ZXh0KHBhcmVudENvbnRleHQpIHtcbiAgcmV0dXJuIHBhcmVudENvbnRleHQgJiBTdWJ0cmVlU3VzcGVuc2VDb250ZXh0TWFzaztcbn1cbmZ1bmN0aW9uIHNldFNoYWxsb3dTdXNwZW5zZUNvbnRleHQocGFyZW50Q29udGV4dCwgc2hhbGxvd0NvbnRleHQpIHtcbiAgcmV0dXJuIHBhcmVudENvbnRleHQgJiBTdWJ0cmVlU3VzcGVuc2VDb250ZXh0TWFzayB8IHNoYWxsb3dDb250ZXh0O1xufVxuZnVuY3Rpb24gYWRkU3VidHJlZVN1c3BlbnNlQ29udGV4dChwYXJlbnRDb250ZXh0LCBzdWJ0cmVlQ29udGV4dCkge1xuICByZXR1cm4gcGFyZW50Q29udGV4dCB8IHN1YnRyZWVDb250ZXh0O1xufVxuZnVuY3Rpb24gcHVzaFN1c3BlbnNlQ29udGV4dChmaWJlciwgbmV3Q29udGV4dCkge1xuICBwdXNoKHN1c3BlbnNlU3RhY2tDdXJzb3IsIG5ld0NvbnRleHQsIGZpYmVyKTtcbn1cbmZ1bmN0aW9uIHBvcFN1c3BlbnNlQ29udGV4dChmaWJlcikge1xuICBwb3Aoc3VzcGVuc2VTdGFja0N1cnNvciwgZmliZXIpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRDYXB0dXJlU3VzcGVuc2Uod29ya0luUHJvZ3Jlc3MsIGhhc0ludmlzaWJsZVBhcmVudCkge1xuICAvLyBJZiBpdCB3YXMgdGhlIHByaW1hcnkgY2hpbGRyZW4gdGhhdCBqdXN0IHN1c3BlbmRlZCwgY2FwdHVyZSBhbmQgcmVuZGVyIHRoZVxuICAvLyBmYWxsYmFjay4gT3RoZXJ3aXNlLCBkb24ndCBjYXB0dXJlIGFuZCBidWJibGUgdG8gdGhlIG5leHQgYm91bmRhcnkuXG4gIHZhciBuZXh0U3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuXG4gIGlmIChuZXh0U3RhdGUgIT09IG51bGwpIHtcbiAgICBpZiAobmV4dFN0YXRlLmRlaHlkcmF0ZWQgIT09IG51bGwpIHtcbiAgICAgIC8vIEEgZGVoeWRyYXRlZCBib3VuZGFyeSBhbHdheXMgY2FwdHVyZXMuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgcHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzOyAvLyBSZWd1bGFyIGJvdW5kYXJpZXMgYWx3YXlzIGNhcHR1cmUuXG5cbiAge1xuICAgIHJldHVybiB0cnVlO1xuICB9IC8vIElmIGl0J3MgYSBib3VuZGFyeSB3ZSBzaG91bGQgYXZvaWQsIHRoZW4gd2UgcHJlZmVyIHRvIGJ1YmJsZSB1cCB0byB0aGVcbn1cbmZ1bmN0aW9uIGZpbmRGaXJzdFN1c3BlbmRlZChyb3cpIHtcbiAgdmFyIG5vZGUgPSByb3c7XG5cbiAgd2hpbGUgKG5vZGUgIT09IG51bGwpIHtcbiAgICBpZiAobm9kZS50YWcgPT09IFN1c3BlbnNlQ29tcG9uZW50KSB7XG4gICAgICB2YXIgc3RhdGUgPSBub2RlLm1lbW9pemVkU3RhdGU7XG5cbiAgICAgIGlmIChzdGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgZGVoeWRyYXRlZCA9IHN0YXRlLmRlaHlkcmF0ZWQ7XG5cbiAgICAgICAgaWYgKGRlaHlkcmF0ZWQgPT09IG51bGwgfHwgaXNTdXNwZW5zZUluc3RhbmNlUGVuZGluZyhkZWh5ZHJhdGVkKSB8fCBpc1N1c3BlbnNlSW5zdGFuY2VGYWxsYmFjayhkZWh5ZHJhdGVkKSkge1xuICAgICAgICAgIHJldHVybiBub2RlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChub2RlLnRhZyA9PT0gU3VzcGVuc2VMaXN0Q29tcG9uZW50ICYmIC8vIHJldmVhbE9yZGVyIHVuZGVmaW5lZCBjYW4ndCBiZSB0cnVzdGVkIGJlY2F1c2UgaXQgZG9uJ3RcbiAgICAvLyBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgaXQgc3VzcGVuZGVkIG9yIG5vdC5cbiAgICBub2RlLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIGRpZFN1c3BlbmQgPSAobm9kZS5mbGFncyAmIERpZENhcHR1cmUpICE9PSBOb0ZsYWdzO1xuXG4gICAgICBpZiAoZGlkU3VzcGVuZCkge1xuICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5vZGUuY2hpbGQgIT09IG51bGwpIHtcbiAgICAgIG5vZGUuY2hpbGQucmV0dXJuID0gbm9kZTtcbiAgICAgIG5vZGUgPSBub2RlLmNoaWxkO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUgPT09IHJvdykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgd2hpbGUgKG5vZGUuc2libGluZyA9PT0gbnVsbCkge1xuICAgICAgaWYgKG5vZGUucmV0dXJuID09PSBudWxsIHx8IG5vZGUucmV0dXJuID09PSByb3cpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9XG5cbiAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47XG4gICAgbm9kZSA9IG5vZGUuc2libGluZztcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG52YXIgTm9GbGFncyQxID1cbi8qICAgKi9cbjA7IC8vIFJlcHJlc2VudHMgd2hldGhlciBlZmZlY3Qgc2hvdWxkIGZpcmUuXG5cbnZhciBIYXNFZmZlY3QgPVxuLyogKi9cbjE7IC8vIFJlcHJlc2VudHMgdGhlIHBoYXNlIGluIHdoaWNoIHRoZSBlZmZlY3QgKG5vdCB0aGUgY2xlYW4tdXApIGZpcmVzLlxuXG52YXIgSW5zZXJ0aW9uID1cbi8qICAqL1xuMjtcbnZhciBMYXlvdXQgPVxuLyogICAgKi9cbjQ7XG52YXIgUGFzc2l2ZSQxID1cbi8qICAgKi9cbjg7XG5cbi8vIGFuZCBzaG91bGQgYmUgcmVzZXQgYmVmb3JlIHN0YXJ0aW5nIGEgbmV3IHJlbmRlci5cbi8vIFRoaXMgdHJhY2tzIHdoaWNoIG11dGFibGUgc291cmNlcyBuZWVkIHRvIGJlIHJlc2V0IGFmdGVyIGEgcmVuZGVyLlxuXG52YXIgd29ya0luUHJvZ3Jlc3NTb3VyY2VzID0gW107XG5mdW5jdGlvbiByZXNldFdvcmtJblByb2dyZXNzVmVyc2lvbnMoKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgd29ya0luUHJvZ3Jlc3NTb3VyY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIG11dGFibGVTb3VyY2UgPSB3b3JrSW5Qcm9ncmVzc1NvdXJjZXNbaV07XG5cbiAgICB7XG4gICAgICBtdXRhYmxlU291cmNlLl93b3JrSW5Qcm9ncmVzc1ZlcnNpb25QcmltYXJ5ID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICB3b3JrSW5Qcm9ncmVzc1NvdXJjZXMubGVuZ3RoID0gMDtcbn1cbi8vIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSB2ZXJzaW9uIHVzZWQgZm9yIHNlcnZlciByZW5kZXJpbmcgbWF0Y2hlcyB0aGUgb25lXG4vLyB0aGF0IGlzIGV2ZW50dWFsbHkgcmVhZCBkdXJpbmcgaHlkcmF0aW9uLlxuLy8gSWYgdGhleSBkb24ndCBtYXRjaCB0aGVyZSdzIGEgcG90ZW50aWFsIHRlYXIgYW5kIGEgZnVsbCBkZW9wdCByZW5kZXIgaXMgcmVxdWlyZWQuXG5cbmZ1bmN0aW9uIHJlZ2lzdGVyTXV0YWJsZVNvdXJjZUZvckh5ZHJhdGlvbihyb290LCBtdXRhYmxlU291cmNlKSB7XG4gIHZhciBnZXRWZXJzaW9uID0gbXV0YWJsZVNvdXJjZS5fZ2V0VmVyc2lvbjtcbiAgdmFyIHZlcnNpb24gPSBnZXRWZXJzaW9uKG11dGFibGVTb3VyY2UuX3NvdXJjZSk7IC8vIFRPRE8gQ2xlYXIgdGhpcyBkYXRhIG9uY2UgYWxsIHBlbmRpbmcgaHlkcmF0aW9uIHdvcmsgaXMgZmluaXNoZWQuXG4gIC8vIFJldGFpbmluZyBpdCBmb3JldmVyIG1heSBpbnRlcmZlcmUgd2l0aCBHQy5cblxuICBpZiAocm9vdC5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhID09IG51bGwpIHtcbiAgICByb290Lm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGEgPSBbbXV0YWJsZVNvdXJjZSwgdmVyc2lvbl07XG4gIH0gZWxzZSB7XG4gICAgcm9vdC5tdXRhYmxlU291cmNlRWFnZXJIeWRyYXRpb25EYXRhLnB1c2gobXV0YWJsZVNvdXJjZSwgdmVyc2lvbik7XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXIsXG4gICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMiA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnO1xudmFyIGRpZFdhcm5BYm91dE1pc21hdGNoZWRIb29rc0ZvckNvbXBvbmVudDtcbnZhciBkaWRXYXJuVW5jYWNoZWRHZXRTbmFwc2hvdDtcblxue1xuICBkaWRXYXJuQWJvdXRNaXNtYXRjaGVkSG9va3NGb3JDb21wb25lbnQgPSBuZXcgU2V0KCk7XG59XG5cbi8vIFRoZXNlIGFyZSBzZXQgcmlnaHQgYmVmb3JlIGNhbGxpbmcgdGhlIGNvbXBvbmVudC5cbnZhciByZW5kZXJMYW5lcyA9IE5vTGFuZXM7IC8vIFRoZSB3b3JrLWluLXByb2dyZXNzIGZpYmVyLiBJJ3ZlIG5hbWVkIGl0IGRpZmZlcmVudGx5IHRvIGRpc3Rpbmd1aXNoIGl0IGZyb21cbi8vIHRoZSB3b3JrLWluLXByb2dyZXNzIGhvb2suXG5cbnZhciBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxID0gbnVsbDsgLy8gSG9va3MgYXJlIHN0b3JlZCBhcyBhIGxpbmtlZCBsaXN0IG9uIHRoZSBmaWJlcidzIG1lbW9pemVkU3RhdGUgZmllbGQuIFRoZVxuLy8gY3VycmVudCBob29rIGxpc3QgaXMgdGhlIGxpc3QgdGhhdCBiZWxvbmdzIHRvIHRoZSBjdXJyZW50IGZpYmVyLiBUaGVcbi8vIHdvcmstaW4tcHJvZ3Jlc3MgaG9vayBsaXN0IGlzIGEgbmV3IGxpc3QgdGhhdCB3aWxsIGJlIGFkZGVkIHRvIHRoZVxuLy8gd29yay1pbi1wcm9ncmVzcyBmaWJlci5cblxudmFyIGN1cnJlbnRIb29rID0gbnVsbDtcbnZhciB3b3JrSW5Qcm9ncmVzc0hvb2sgPSBudWxsOyAvLyBXaGV0aGVyIGFuIHVwZGF0ZSB3YXMgc2NoZWR1bGVkIGF0IGFueSBwb2ludCBkdXJpbmcgdGhlIHJlbmRlciBwaGFzZS4gVGhpc1xuLy8gZG9lcyBub3QgZ2V0IHJlc2V0IGlmIHdlIGRvIGFub3RoZXIgcmVuZGVyIHBhc3M7IG9ubHkgd2hlbiB3ZSdyZSBjb21wbGV0ZWx5XG4vLyBmaW5pc2hlZCBldmFsdWF0aW5nIHRoaXMgY29tcG9uZW50LiBUaGlzIGlzIGFuIG9wdGltaXphdGlvbiBzbyB3ZSBrbm93XG4vLyB3aGV0aGVyIHdlIG5lZWQgdG8gY2xlYXIgcmVuZGVyIHBoYXNlIHVwZGF0ZXMgYWZ0ZXIgYSB0aHJvdy5cblxudmFyIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGUgPSBmYWxzZTsgLy8gV2hlcmUgYW4gdXBkYXRlIHdhcyBzY2hlZHVsZWQgb25seSBkdXJpbmcgdGhlIGN1cnJlbnQgcmVuZGVyIHBhc3MuIFRoaXNcbi8vIGdldHMgcmVzZXQgYWZ0ZXIgZWFjaCBhdHRlbXB0LlxuLy8gVE9ETzogTWF5YmUgdGhlcmUncyBzb21lIHdheSB0byBjb25zb2xpZGF0ZSB0aGlzIHdpdGhcbi8vIGBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlYC4gT3Igd2l0aCBgbnVtYmVyT2ZSZVJlbmRlcnNgLlxuXG52YXIgZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZUR1cmluZ1RoaXNQYXNzID0gZmFsc2U7IC8vIENvdW50cyB0aGUgbnVtYmVyIG9mIHVzZUlkIGhvb2tzIGluIHRoaXMgY29tcG9uZW50LlxuXG52YXIgbG9jYWxJZENvdW50ZXIgPSAwOyAvLyBVc2VkIGZvciBpZHMgdGhhdCBhcmUgZ2VuZXJhdGVkIGNvbXBsZXRlbHkgY2xpZW50LXNpZGUgKGkuZS4gbm90IGR1cmluZ1xuLy8gaHlkcmF0aW9uKS4gVGhpcyBjb3VudGVyIGlzIGdsb2JhbCwgc28gY2xpZW50IGlkcyBhcmUgbm90IHN0YWJsZSBhY3Jvc3Ncbi8vIHJlbmRlciBhdHRlbXB0cy5cblxudmFyIGdsb2JhbENsaWVudElkQ291bnRlciA9IDA7XG52YXIgUkVfUkVOREVSX0xJTUlUID0gMjU7IC8vIEluIERFViwgdGhpcyBpcyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyBwcmltaXRpdmUgaG9va1xuXG52YXIgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBudWxsOyAvLyBJbiBERVYsIHRoaXMgbGlzdCBlbnN1cmVzIHRoYXQgaG9va3MgYXJlIGNhbGxlZCBpbiB0aGUgc2FtZSBvcmRlciBiZXR3ZWVuIHJlbmRlcnMuXG4vLyBUaGUgbGlzdCBzdG9yZXMgdGhlIG9yZGVyIG9mIGhvb2tzIHVzZWQgZHVyaW5nIHRoZSBpbml0aWFsIHJlbmRlciAobW91bnQpLlxuLy8gU3Vic2VxdWVudCByZW5kZXJzICh1cGRhdGVzKSByZWZlcmVuY2UgdGhpcyBsaXN0LlxuXG52YXIgaG9va1R5cGVzRGV2ID0gbnVsbDtcbnZhciBob29rVHlwZXNVcGRhdGVJbmRleERldiA9IC0xOyAvLyBJbiBERVYsIHRoaXMgdHJhY2tzIHdoZXRoZXIgY3VycmVudGx5IHJlbmRlcmluZyBjb21wb25lbnQgbmVlZHMgdG8gaWdub3JlXG4vLyB0aGUgZGVwZW5kZW5jaWVzIGZvciBIb29rcyB0aGF0IG5lZWQgdGhlbSAoZS5nLiB1c2VFZmZlY3Qgb3IgdXNlTWVtbykuXG4vLyBXaGVuIHRydWUsIHN1Y2ggSG9va3Mgd2lsbCBhbHdheXMgYmUgXCJyZW1vdW50ZWRcIi4gT25seSB1c2VkIGR1cmluZyBob3QgcmVsb2FkLlxuXG52YXIgaWdub3JlUHJldmlvdXNEZXBlbmRlbmNpZXMgPSBmYWxzZTtcblxuZnVuY3Rpb24gbW91bnRIb29rVHlwZXNEZXYoKSB7XG4gIHtcbiAgICB2YXIgaG9va05hbWUgPSBjdXJyZW50SG9va05hbWVJbkRldjtcblxuICAgIGlmIChob29rVHlwZXNEZXYgPT09IG51bGwpIHtcbiAgICAgIGhvb2tUeXBlc0RldiA9IFtob29rTmFtZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGhvb2tUeXBlc0Rldi5wdXNoKGhvb2tOYW1lKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlSG9va1R5cGVzRGV2KCkge1xuICB7XG4gICAgdmFyIGhvb2tOYW1lID0gY3VycmVudEhvb2tOYW1lSW5EZXY7XG5cbiAgICBpZiAoaG9va1R5cGVzRGV2ICE9PSBudWxsKSB7XG4gICAgICBob29rVHlwZXNVcGRhdGVJbmRleERldisrO1xuXG4gICAgICBpZiAoaG9va1R5cGVzRGV2W2hvb2tUeXBlc1VwZGF0ZUluZGV4RGV2XSAhPT0gaG9va05hbWUpIHtcbiAgICAgICAgd2Fybk9uSG9va01pc21hdGNoSW5EZXYoaG9va05hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjaGVja0RlcHNBcmVBcnJheURldihkZXBzKSB7XG4gIHtcbiAgICBpZiAoZGVwcyAhPT0gdW5kZWZpbmVkICYmIGRlcHMgIT09IG51bGwgJiYgIWlzQXJyYXkoZGVwcykpIHtcbiAgICAgIC8vIFZlcmlmeSBkZXBzLCBidXQgb25seSBvbiBtb3VudCB0byBhdm9pZCBleHRyYSBjaGVja3MuXG4gICAgICAvLyBJdCdzIHVubGlrZWx5IHRoZWlyIHR5cGUgd291bGQgY2hhbmdlIGFzIHVzdWFsbHkgeW91IGRlZmluZSB0aGVtIGlubGluZS5cbiAgICAgIGVycm9yKCclcyByZWNlaXZlZCBhIGZpbmFsIGFyZ3VtZW50IHRoYXQgaXMgbm90IGFuIGFycmF5IChpbnN0ZWFkLCByZWNlaXZlZCBgJXNgKS4gV2hlbiAnICsgJ3NwZWNpZmllZCwgdGhlIGZpbmFsIGFyZ3VtZW50IG11c3QgYmUgYW4gYXJyYXkuJywgY3VycmVudEhvb2tOYW1lSW5EZXYsIHR5cGVvZiBkZXBzKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gd2Fybk9uSG9va01pc21hdGNoSW5EZXYoY3VycmVudEhvb2tOYW1lKSB7XG4gIHtcbiAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMSk7XG5cbiAgICBpZiAoIWRpZFdhcm5BYm91dE1pc21hdGNoZWRIb29rc0ZvckNvbXBvbmVudC5oYXMoY29tcG9uZW50TmFtZSkpIHtcbiAgICAgIGRpZFdhcm5BYm91dE1pc21hdGNoZWRIb29rc0ZvckNvbXBvbmVudC5hZGQoY29tcG9uZW50TmFtZSk7XG5cbiAgICAgIGlmIChob29rVHlwZXNEZXYgIT09IG51bGwpIHtcbiAgICAgICAgdmFyIHRhYmxlID0gJyc7XG4gICAgICAgIHZhciBzZWNvbmRDb2x1bW5TdGFydCA9IDMwO1xuXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDw9IGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2OyBpKyspIHtcbiAgICAgICAgICB2YXIgb2xkSG9va05hbWUgPSBob29rVHlwZXNEZXZbaV07XG4gICAgICAgICAgdmFyIG5ld0hvb2tOYW1lID0gaSA9PT0gaG9va1R5cGVzVXBkYXRlSW5kZXhEZXYgPyBjdXJyZW50SG9va05hbWUgOiBvbGRIb29rTmFtZTtcbiAgICAgICAgICB2YXIgcm93ID0gaSArIDEgKyBcIi4gXCIgKyBvbGRIb29rTmFtZTsgLy8gRXh0cmEgc3BhY2Ugc28gc2Vjb25kIGNvbHVtbiBsaW5lcyB1cFxuICAgICAgICAgIC8vIGxvbCBAIElFIG5vdCBzdXBwb3J0aW5nIFN0cmluZyNyZXBlYXRcblxuICAgICAgICAgIHdoaWxlIChyb3cubGVuZ3RoIDwgc2Vjb25kQ29sdW1uU3RhcnQpIHtcbiAgICAgICAgICAgIHJvdyArPSAnICc7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcm93ICs9IG5ld0hvb2tOYW1lICsgJ1xcbic7XG4gICAgICAgICAgdGFibGUgKz0gcm93O1xuICAgICAgICB9XG5cbiAgICAgICAgZXJyb3IoJ1JlYWN0IGhhcyBkZXRlY3RlZCBhIGNoYW5nZSBpbiB0aGUgb3JkZXIgb2YgSG9va3MgY2FsbGVkIGJ5ICVzLiAnICsgJ1RoaXMgd2lsbCBsZWFkIHRvIGJ1Z3MgYW5kIGVycm9ycyBpZiBub3QgZml4ZWQuICcgKyAnRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlYWQgdGhlIFJ1bGVzIG9mIEhvb2tzOiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvcnVsZXMtb2YtaG9va3NcXG5cXG4nICsgJyAgIFByZXZpb3VzIHJlbmRlciAgICAgICAgICAgIE5leHQgcmVuZGVyXFxuJyArICcgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4nICsgJyVzJyArICcgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5cXG4nLCBjb21wb25lbnROYW1lLCB0YWJsZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHRocm93SW52YWxpZEhvb2tFcnJvcigpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGhvb2sgY2FsbC4gSG9va3MgY2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBvZiB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uIGNvbXBvbmVudC4gVGhpcyBjb3VsZCBoYXBwZW4gZm9yJyArICcgb25lIG9mIHRoZSBmb2xsb3dpbmcgcmVhc29uczpcXG4nICsgJzEuIFlvdSBtaWdodCBoYXZlIG1pc21hdGNoaW5nIHZlcnNpb25zIG9mIFJlYWN0IGFuZCB0aGUgcmVuZGVyZXIgKHN1Y2ggYXMgUmVhY3QgRE9NKVxcbicgKyAnMi4gWW91IG1pZ2h0IGJlIGJyZWFraW5nIHRoZSBSdWxlcyBvZiBIb29rc1xcbicgKyAnMy4gWW91IG1pZ2h0IGhhdmUgbW9yZSB0aGFuIG9uZSBjb3B5IG9mIFJlYWN0IGluIHRoZSBzYW1lIGFwcFxcbicgKyAnU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9pbnZhbGlkLWhvb2stY2FsbCBmb3IgdGlwcyBhYm91dCBob3cgdG8gZGVidWcgYW5kIGZpeCB0aGlzIHByb2JsZW0uJyk7XG59XG5cbmZ1bmN0aW9uIGFyZUhvb2tJbnB1dHNFcXVhbChuZXh0RGVwcywgcHJldkRlcHMpIHtcbiAge1xuICAgIGlmIChpZ25vcmVQcmV2aW91c0RlcGVuZGVuY2llcykge1xuICAgICAgLy8gT25seSB0cnVlIHdoZW4gdGhpcyBjb21wb25lbnQgaXMgYmVpbmcgaG90IHJlbG9hZGVkLlxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGlmIChwcmV2RGVwcyA9PT0gbnVsbCkge1xuICAgIHtcbiAgICAgIGVycm9yKCclcyByZWNlaXZlZCBhIGZpbmFsIGFyZ3VtZW50IGR1cmluZyB0aGlzIHJlbmRlciwgYnV0IG5vdCBkdXJpbmcgJyArICd0aGUgcHJldmlvdXMgcmVuZGVyLiBFdmVuIHRob3VnaCB0aGUgZmluYWwgYXJndW1lbnQgaXMgb3B0aW9uYWwsICcgKyAnaXRzIHR5cGUgY2Fubm90IGNoYW5nZSBiZXR3ZWVuIHJlbmRlcnMuJywgY3VycmVudEhvb2tOYW1lSW5EZXYpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHtcbiAgICAvLyBEb24ndCBib3RoZXIgY29tcGFyaW5nIGxlbmd0aHMgaW4gcHJvZCBiZWNhdXNlIHRoZXNlIGFycmF5cyBzaG91bGQgYmVcbiAgICAvLyBwYXNzZWQgaW5saW5lLlxuICAgIGlmIChuZXh0RGVwcy5sZW5ndGggIT09IHByZXZEZXBzLmxlbmd0aCkge1xuICAgICAgZXJyb3IoJ1RoZSBmaW5hbCBhcmd1bWVudCBwYXNzZWQgdG8gJXMgY2hhbmdlZCBzaXplIGJldHdlZW4gcmVuZGVycy4gVGhlICcgKyAnb3JkZXIgYW5kIHNpemUgb2YgdGhpcyBhcnJheSBtdXN0IHJlbWFpbiBjb25zdGFudC5cXG5cXG4nICsgJ1ByZXZpb3VzOiAlc1xcbicgKyAnSW5jb21pbmc6ICVzJywgY3VycmVudEhvb2tOYW1lSW5EZXYsIFwiW1wiICsgcHJldkRlcHMuam9pbignLCAnKSArIFwiXVwiLCBcIltcIiArIG5leHREZXBzLmpvaW4oJywgJykgKyBcIl1cIik7XG4gICAgfVxuICB9XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcmV2RGVwcy5sZW5ndGggJiYgaSA8IG5leHREZXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKG9iamVjdElzKG5leHREZXBzW2ldLCBwcmV2RGVwc1tpXSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiByZW5kZXJXaXRoSG9va3MoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgcHJvcHMsIHNlY29uZEFyZywgbmV4dFJlbmRlckxhbmVzKSB7XG4gIHJlbmRlckxhbmVzID0gbmV4dFJlbmRlckxhbmVzO1xuICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxID0gd29ya0luUHJvZ3Jlc3M7XG5cbiAge1xuICAgIGhvb2tUeXBlc0RldiA9IGN1cnJlbnQgIT09IG51bGwgPyBjdXJyZW50Ll9kZWJ1Z0hvb2tUeXBlcyA6IG51bGw7XG4gICAgaG9va1R5cGVzVXBkYXRlSW5kZXhEZXYgPSAtMTsgLy8gVXNlZCBmb3IgaG90IHJlbG9hZGluZzpcblxuICAgIGlnbm9yZVByZXZpb3VzRGVwZW5kZW5jaWVzID0gY3VycmVudCAhPT0gbnVsbCAmJiBjdXJyZW50LnR5cGUgIT09IHdvcmtJblByb2dyZXNzLnR5cGU7XG4gIH1cblxuICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBudWxsO1xuICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IE5vTGFuZXM7IC8vIFRoZSBmb2xsb3dpbmcgc2hvdWxkIGhhdmUgYWxyZWFkeSBiZWVuIHJlc2V0XG4gIC8vIGN1cnJlbnRIb29rID0gbnVsbDtcbiAgLy8gd29ya0luUHJvZ3Jlc3NIb29rID0gbnVsbDtcbiAgLy8gZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZSA9IGZhbHNlO1xuICAvLyBsb2NhbElkQ291bnRlciA9IDA7XG4gIC8vIFRPRE8gV2FybiBpZiBubyBob29rcyBhcmUgdXNlZCBhdCBhbGwgZHVyaW5nIG1vdW50LCB0aGVuIHNvbWUgYXJlIHVzZWQgZHVyaW5nIHVwZGF0ZS5cbiAgLy8gQ3VycmVudGx5IHdlIHdpbGwgaWRlbnRpZnkgdGhlIHVwZGF0ZSByZW5kZXIgYXMgYSBtb3VudCBiZWNhdXNlIG1lbW9pemVkU3RhdGUgPT09IG51bGwuXG4gIC8vIFRoaXMgaXMgdHJpY2t5IGJlY2F1c2UgaXQncyB2YWxpZCBmb3IgY2VydGFpbiB0eXBlcyBvZiBjb21wb25lbnRzIChlLmcuIFJlYWN0LmxhenkpXG4gIC8vIFVzaW5nIG1lbW9pemVkU3RhdGUgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIG1vdW50L3VwZGF0ZSBvbmx5IHdvcmtzIGlmIGF0IGxlYXN0IG9uZSBzdGF0ZWZ1bCBob29rIGlzIHVzZWQuXG4gIC8vIE5vbi1zdGF0ZWZ1bCBob29rcyAoZS5nLiBjb250ZXh0KSBkb24ndCBnZXQgYWRkZWQgdG8gbWVtb2l6ZWRTdGF0ZSxcbiAgLy8gc28gbWVtb2l6ZWRTdGF0ZSB3b3VsZCBiZSBudWxsIGR1cmluZyB1cGRhdGVzIGFuZCBtb3VudHMuXG5cbiAge1xuICAgIGlmIChjdXJyZW50ICE9PSBudWxsICYmIGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSAhPT0gbnVsbCkge1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWO1xuICAgIH0gZWxzZSBpZiAoaG9va1R5cGVzRGV2ICE9PSBudWxsKSB7XG4gICAgICAvLyBUaGlzIGRpc3BhdGNoZXIgaGFuZGxlcyBhbiBlZGdlIGNhc2Ugd2hlcmUgYSBjb21wb25lbnQgaXMgdXBkYXRpbmcsXG4gICAgICAvLyBidXQgbm8gc3RhdGVmdWwgaG9va3MgaGF2ZSBiZWVuIHVzZWQuXG4gICAgICAvLyBXZSB3YW50IHRvIG1hdGNoIHRoZSBwcm9kdWN0aW9uIGNvZGUgYmVoYXZpb3IgKHdoaWNoIHdpbGwgdXNlIEhvb2tzRGlzcGF0Y2hlck9uTW91bnQpLFxuICAgICAgLy8gYnV0IHdpdGggdGhlIGV4dHJhIERFViB2YWxpZGF0aW9uIHRvIGVuc3VyZSBob29rcyBvcmRlcmluZyBoYXNuJ3QgY2hhbmdlZC5cbiAgICAgIC8vIFRoaXMgZGlzcGF0Y2hlciBkb2VzIHRoYXQuXG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEhvb2tzRGlzcGF0Y2hlck9uTW91bnRXaXRoSG9va1R5cGVzSW5ERVY7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuICAgIH1cbiAgfVxuXG4gIHZhciBjaGlsZHJlbiA9IENvbXBvbmVudChwcm9wcywgc2Vjb25kQXJnKTsgLy8gQ2hlY2sgaWYgdGhlcmUgd2FzIGEgcmVuZGVyIHBoYXNlIHVwZGF0ZVxuXG4gIGlmIChkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlRHVyaW5nVGhpc1Bhc3MpIHtcbiAgICAvLyBLZWVwIHJlbmRlcmluZyBpbiBhIGxvb3AgZm9yIGFzIGxvbmcgYXMgcmVuZGVyIHBoYXNlIHVwZGF0ZXMgY29udGludWUgdG9cbiAgICAvLyBiZSBzY2hlZHVsZWQuIFVzZSBhIGNvdW50ZXIgdG8gcHJldmVudCBpbmZpbml0ZSBsb29wcy5cbiAgICB2YXIgbnVtYmVyT2ZSZVJlbmRlcnMgPSAwO1xuXG4gICAgZG8ge1xuICAgICAgZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZUR1cmluZ1RoaXNQYXNzID0gZmFsc2U7XG4gICAgICBsb2NhbElkQ291bnRlciA9IDA7XG5cbiAgICAgIGlmIChudW1iZXJPZlJlUmVuZGVycyA+PSBSRV9SRU5ERVJfTElNSVQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUb28gbWFueSByZS1yZW5kZXJzLiBSZWFjdCBsaW1pdHMgdGhlIG51bWJlciBvZiByZW5kZXJzIHRvIHByZXZlbnQgJyArICdhbiBpbmZpbml0ZSBsb29wLicpO1xuICAgICAgfVxuXG4gICAgICBudW1iZXJPZlJlUmVuZGVycyArPSAxO1xuXG4gICAgICB7XG4gICAgICAgIC8vIEV2ZW4gd2hlbiBob3QgcmVsb2FkaW5nLCBhbGxvdyBkZXBlbmRlbmNpZXMgdG8gc3RhYmlsaXplXG4gICAgICAgIC8vIGFmdGVyIGZpcnN0IHJlbmRlciB0byBwcmV2ZW50IGluZmluaXRlIHJlbmRlciBwaGFzZSB1cGRhdGVzLlxuICAgICAgICBpZ25vcmVQcmV2aW91c0RlcGVuZGVuY2llcyA9IGZhbHNlO1xuICAgICAgfSAvLyBTdGFydCBvdmVyIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlzdFxuXG5cbiAgICAgIGN1cnJlbnRIb29rID0gbnVsbDtcbiAgICAgIHdvcmtJblByb2dyZXNzSG9vayA9IG51bGw7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IG51bGw7XG5cbiAgICAgIHtcbiAgICAgICAgLy8gQWxzbyB2YWxpZGF0ZSBob29rIG9yZGVyIGZvciBjYXNjYWRpbmcgdXBkYXRlcy5cbiAgICAgICAgaG9va1R5cGVzVXBkYXRlSW5kZXhEZXYgPSAtMTtcbiAgICAgIH1cblxuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSAgSG9va3NEaXNwYXRjaGVyT25SZXJlbmRlckluREVWIDtcbiAgICAgIGNoaWxkcmVuID0gQ29tcG9uZW50KHByb3BzLCBzZWNvbmRBcmcpO1xuICAgIH0gd2hpbGUgKGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGVEdXJpbmdUaGlzUGFzcyk7XG4gIH0gLy8gV2UgY2FuIGFzc3VtZSB0aGUgcHJldmlvdXMgZGlzcGF0Y2hlciBpcyBhbHdheXMgdGhpcyBvbmUsIHNpbmNlIHdlIHNldCBpdFxuICAvLyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSByZW5kZXIgcGhhc2UgYW5kIHRoZXJlJ3Mgbm8gcmUtZW50cmFuY2UuXG5cblxuICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IENvbnRleHRPbmx5RGlzcGF0Y2hlcjtcblxuICB7XG4gICAgd29ya0luUHJvZ3Jlc3MuX2RlYnVnSG9va1R5cGVzID0gaG9va1R5cGVzRGV2O1xuICB9IC8vIFRoaXMgY2hlY2sgdXNlcyBjdXJyZW50SG9vayBzbyB0aGF0IGl0IHdvcmtzIHRoZSBzYW1lIGluIERFViBhbmQgcHJvZCBidW5kbGVzLlxuICAvLyBob29rVHlwZXNEZXYgY291bGQgY2F0Y2ggbW9yZSBjYXNlcyAoZS5nLiBjb250ZXh0KSBidXQgb25seSBpbiBERVYgYnVuZGxlcy5cblxuXG4gIHZhciBkaWRSZW5kZXJUb29GZXdIb29rcyA9IGN1cnJlbnRIb29rICE9PSBudWxsICYmIGN1cnJlbnRIb29rLm5leHQgIT09IG51bGw7XG4gIHJlbmRlckxhbmVzID0gTm9MYW5lcztcbiAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMSA9IG51bGw7XG4gIGN1cnJlbnRIb29rID0gbnVsbDtcbiAgd29ya0luUHJvZ3Jlc3NIb29rID0gbnVsbDtcblxuICB7XG4gICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBudWxsO1xuICAgIGhvb2tUeXBlc0RldiA9IG51bGw7XG4gICAgaG9va1R5cGVzVXBkYXRlSW5kZXhEZXYgPSAtMTsgLy8gQ29uZmlybSB0aGF0IGEgc3RhdGljIGZsYWcgd2FzIG5vdCBhZGRlZCBvciByZW1vdmVkIHNpbmNlIHRoZSBsYXN0XG4gICAgLy8gcmVuZGVyLiBJZiB0aGlzIGZpcmVzLCBpdCBzdWdnZXN0cyB0aGF0IHdlIGluY29ycmVjdGx5IHJlc2V0IHRoZSBzdGF0aWNcbiAgICAvLyBmbGFncyBpbiBzb21lIG90aGVyIHBhcnQgb2YgdGhlIGNvZGViYXNlLiBUaGlzIGhhcyBoYXBwZW5lZCBiZWZvcmUsIGZvclxuICAgIC8vIGV4YW1wbGUsIGluIHRoZSBTdXNwZW5zZUxpc3QgaW1wbGVtZW50YXRpb24uXG5cbiAgICBpZiAoY3VycmVudCAhPT0gbnVsbCAmJiAoY3VycmVudC5mbGFncyAmIFN0YXRpY01hc2spICE9PSAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiBTdGF0aWNNYXNrKSAmJiAvLyBEaXNhYmxlIHRoaXMgd2FybmluZyBpbiBsZWdhY3kgbW9kZSwgYmVjYXVzZSBsZWdhY3kgU3VzcGVuc2UgaXMgd2VpcmRcbiAgICAvLyBhbmQgY3JlYXRlcyBmYWxzZSBwb3NpdGl2ZXMuIFRvIG1ha2UgdGhpcyB3b3JrIGluIGxlZ2FjeSBtb2RlLCB3ZSdkXG4gICAgLy8gbmVlZCB0byBtYXJrIGZpYmVycyB0aGF0IGNvbW1pdCBpbiBhbiBpbmNvbXBsZXRlIHN0YXRlLCBzb21laG93LiBGb3JcbiAgICAvLyBub3cgSSdsbCBkaXNhYmxlIHRoZSB3YXJuaW5nIHRoYXQgbW9zdCBvZiB0aGUgYnVncyB0aGF0IHdvdWxkIHRyaWdnZXJcbiAgICAvLyBpdCBhcmUgZWl0aGVyIGV4Y2x1c2l2ZSB0byBjb25jdXJyZW50IG1vZGUgb3IgZXhpc3QgaW4gYm90aC5cbiAgICAoY3VycmVudC5tb2RlICYgQ29uY3VycmVudE1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgIGVycm9yKCdJbnRlcm5hbCBSZWFjdCBlcnJvcjogRXhwZWN0ZWQgc3RhdGljIGZsYWcgd2FzIG1pc3NpbmcuIFBsZWFzZSAnICsgJ25vdGlmeSB0aGUgUmVhY3QgdGVhbS4nKTtcbiAgICB9XG4gIH1cblxuICBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlID0gZmFsc2U7IC8vIFRoaXMgaXMgcmVzZXQgYnkgY2hlY2tEaWRSZW5kZXJJZEhvb2tcbiAgLy8gbG9jYWxJZENvdW50ZXIgPSAwO1xuXG4gIGlmIChkaWRSZW5kZXJUb29GZXdIb29rcykge1xuICAgIHRocm93IG5ldyBFcnJvcignUmVuZGVyZWQgZmV3ZXIgaG9va3MgdGhhbiBleHBlY3RlZC4gVGhpcyBtYXkgYmUgY2F1c2VkIGJ5IGFuIGFjY2lkZW50YWwgJyArICdlYXJseSByZXR1cm4gc3RhdGVtZW50LicpO1xuICB9XG5cbiAgcmV0dXJuIGNoaWxkcmVuO1xufVxuZnVuY3Rpb24gY2hlY2tEaWRSZW5kZXJJZEhvb2soKSB7XG4gIC8vIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBpbW1lZGlhdGVseSBhZnRlciBldmVyeSByZW5kZXJXaXRoSG9va3MgY2FsbC5cbiAgLy8gQ29uY2VwdHVhbGx5LCBpdCdzIHBhcnQgb2YgdGhlIHJldHVybiB2YWx1ZSBvZiByZW5kZXJXaXRoSG9va3M7IGl0J3Mgb25seSBhXG4gIC8vIHNlcGFyYXRlIGZ1bmN0aW9uIHRvIGF2b2lkIHVzaW5nIGFuIGFycmF5IHR1cGxlLlxuICB2YXIgZGlkUmVuZGVySWRIb29rID0gbG9jYWxJZENvdW50ZXIgIT09IDA7XG4gIGxvY2FsSWRDb3VudGVyID0gMDtcbiAgcmV0dXJuIGRpZFJlbmRlcklkSG9vaztcbn1cbmZ1bmN0aW9uIGJhaWxvdXRIb29rcyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbGFuZXMpIHtcbiAgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBjdXJyZW50LnVwZGF0ZVF1ZXVlOyAvLyBUT0RPOiBEb24ndCBuZWVkIHRvIHJlc2V0IHRoZSBmbGFncyBoZXJlLCBiZWNhdXNlIHRoZXkncmUgcmVzZXQgaW4gdGhlXG4gIC8vIGNvbXBsZXRlIHBoYXNlIChidWJibGVQcm9wZXJ0aWVzKS5cblxuICBpZiAoICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0RWZmZWN0c01vZGUpICE9PSBOb01vZGUpIHtcbiAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyAmPSB+KE1vdW50UGFzc2l2ZURldiB8IE1vdW50TGF5b3V0RGV2IHwgUGFzc2l2ZSB8IFVwZGF0ZSk7XG4gIH0gZWxzZSB7XG4gICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgJj0gfihQYXNzaXZlIHwgVXBkYXRlKTtcbiAgfVxuXG4gIGN1cnJlbnQubGFuZXMgPSByZW1vdmVMYW5lcyhjdXJyZW50LmxhbmVzLCBsYW5lcyk7XG59XG5mdW5jdGlvbiByZXNldEhvb2tzQWZ0ZXJUaHJvdygpIHtcbiAgLy8gV2UgY2FuIGFzc3VtZSB0aGUgcHJldmlvdXMgZGlzcGF0Y2hlciBpcyBhbHdheXMgdGhpcyBvbmUsIHNpbmNlIHdlIHNldCBpdFxuICAvLyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSByZW5kZXIgcGhhc2UgYW5kIHRoZXJlJ3Mgbm8gcmUtZW50cmFuY2UuXG4gIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gQ29udGV4dE9ubHlEaXNwYXRjaGVyO1xuXG4gIGlmIChkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlKSB7XG4gICAgLy8gVGhlcmUgd2VyZSByZW5kZXIgcGhhc2UgdXBkYXRlcy4gVGhlc2UgYXJlIG9ubHkgdmFsaWQgZm9yIHRoaXMgcmVuZGVyXG4gICAgLy8gcGhhc2UsIHdoaWNoIHdlIGFyZSBub3cgYWJvcnRpbmcuIFJlbW92ZSB0aGUgdXBkYXRlcyBmcm9tIHRoZSBxdWV1ZXMgc29cbiAgICAvLyB0aGV5IGRvIG5vdCBwZXJzaXN0IHRvIHRoZSBuZXh0IHJlbmRlci4gRG8gbm90IHJlbW92ZSB1cGRhdGVzIGZyb20gaG9va3NcbiAgICAvLyB0aGF0IHdlcmVuJ3QgcHJvY2Vzc2VkLlxuICAgIC8vXG4gICAgLy8gT25seSByZXNldCB0aGUgdXBkYXRlcyBmcm9tIHRoZSBxdWV1ZSBpZiBpdCBoYXMgYSBjbG9uZS4gSWYgaXQgZG9lc1xuICAgIC8vIG5vdCBoYXZlIGEgY2xvbmUsIHRoYXQgbWVhbnMgaXQgd2Fzbid0IHByb2Nlc3NlZCwgYW5kIHRoZSB1cGRhdGVzIHdlcmVcbiAgICAvLyBzY2hlZHVsZWQgYmVmb3JlIHdlIGVudGVyZWQgdGhlIHJlbmRlciBwaGFzZS5cbiAgICB2YXIgaG9vayA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEubWVtb2l6ZWRTdGF0ZTtcblxuICAgIHdoaWxlIChob29rICE9PSBudWxsKSB7XG4gICAgICB2YXIgcXVldWUgPSBob29rLnF1ZXVlO1xuXG4gICAgICBpZiAocXVldWUgIT09IG51bGwpIHtcbiAgICAgICAgcXVldWUucGVuZGluZyA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIGhvb2sgPSBob29rLm5leHQ7XG4gICAgfVxuXG4gICAgZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZSA9IGZhbHNlO1xuICB9XG5cbiAgcmVuZGVyTGFuZXMgPSBOb0xhbmVzO1xuICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxID0gbnVsbDtcbiAgY3VycmVudEhvb2sgPSBudWxsO1xuICB3b3JrSW5Qcm9ncmVzc0hvb2sgPSBudWxsO1xuXG4gIHtcbiAgICBob29rVHlwZXNEZXYgPSBudWxsO1xuICAgIGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2ID0gLTE7XG4gICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBudWxsO1xuICAgIGlzVXBkYXRpbmdPcGFxdWVWYWx1ZUluUmVuZGVyUGhhc2UgPSBmYWxzZTtcbiAgfVxuXG4gIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGVEdXJpbmdUaGlzUGFzcyA9IGZhbHNlO1xuICBsb2NhbElkQ291bnRlciA9IDA7XG59XG5cbmZ1bmN0aW9uIG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCkge1xuICB2YXIgaG9vayA9IHtcbiAgICBtZW1vaXplZFN0YXRlOiBudWxsLFxuICAgIGJhc2VTdGF0ZTogbnVsbCxcbiAgICBiYXNlUXVldWU6IG51bGwsXG4gICAgcXVldWU6IG51bGwsXG4gICAgbmV4dDogbnVsbFxuICB9O1xuXG4gIGlmICh3b3JrSW5Qcm9ncmVzc0hvb2sgPT09IG51bGwpIHtcbiAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCBob29rIGluIHRoZSBsaXN0XG4gICAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMS5tZW1vaXplZFN0YXRlID0gd29ya0luUHJvZ3Jlc3NIb29rID0gaG9vaztcbiAgfSBlbHNlIHtcbiAgICAvLyBBcHBlbmQgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdFxuICAgIHdvcmtJblByb2dyZXNzSG9vayA9IHdvcmtJblByb2dyZXNzSG9vay5uZXh0ID0gaG9vaztcbiAgfVxuXG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzc0hvb2s7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpIHtcbiAgLy8gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGJvdGggZm9yIHVwZGF0ZXMgYW5kIGZvciByZS1yZW5kZXJzIHRyaWdnZXJlZCBieSBhXG4gIC8vIHJlbmRlciBwaGFzZSB1cGRhdGUuIEl0IGFzc3VtZXMgdGhlcmUgaXMgZWl0aGVyIGEgY3VycmVudCBob29rIHdlIGNhblxuICAvLyBjbG9uZSwgb3IgYSB3b3JrLWluLXByb2dyZXNzIGhvb2sgZnJvbSBhIHByZXZpb3VzIHJlbmRlciBwYXNzIHRoYXQgd2UgY2FuXG4gIC8vIHVzZSBhcyBhIGJhc2UuIFdoZW4gd2UgcmVhY2ggdGhlIGVuZCBvZiB0aGUgYmFzZSBsaXN0LCB3ZSBtdXN0IHN3aXRjaCB0b1xuICAvLyB0aGUgZGlzcGF0Y2hlciB1c2VkIGZvciBtb3VudHMuXG4gIHZhciBuZXh0Q3VycmVudEhvb2s7XG5cbiAgaWYgKGN1cnJlbnRIb29rID09PSBudWxsKSB7XG4gICAgdmFyIGN1cnJlbnQgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLmFsdGVybmF0ZTtcblxuICAgIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICBuZXh0Q3VycmVudEhvb2sgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5leHRDdXJyZW50SG9vayA9IG51bGw7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG5leHRDdXJyZW50SG9vayA9IGN1cnJlbnRIb29rLm5leHQ7XG4gIH1cblxuICB2YXIgbmV4dFdvcmtJblByb2dyZXNzSG9vaztcblxuICBpZiAod29ya0luUHJvZ3Jlc3NIb29rID09PSBudWxsKSB7XG4gICAgbmV4dFdvcmtJblByb2dyZXNzSG9vayA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEubWVtb2l6ZWRTdGF0ZTtcbiAgfSBlbHNlIHtcbiAgICBuZXh0V29ya0luUHJvZ3Jlc3NIb29rID0gd29ya0luUHJvZ3Jlc3NIb29rLm5leHQ7XG4gIH1cblxuICBpZiAobmV4dFdvcmtJblByb2dyZXNzSG9vayAhPT0gbnVsbCkge1xuICAgIC8vIFRoZXJlJ3MgYWxyZWFkeSBhIHdvcmstaW4tcHJvZ3Jlc3MuIFJldXNlIGl0LlxuICAgIHdvcmtJblByb2dyZXNzSG9vayA9IG5leHRXb3JrSW5Qcm9ncmVzc0hvb2s7XG4gICAgbmV4dFdvcmtJblByb2dyZXNzSG9vayA9IHdvcmtJblByb2dyZXNzSG9vay5uZXh0O1xuICAgIGN1cnJlbnRIb29rID0gbmV4dEN1cnJlbnRIb29rO1xuICB9IGVsc2Uge1xuICAgIC8vIENsb25lIGZyb20gdGhlIGN1cnJlbnQgaG9vay5cbiAgICBpZiAobmV4dEN1cnJlbnRIb29rID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlbmRlcmVkIG1vcmUgaG9va3MgdGhhbiBkdXJpbmcgdGhlIHByZXZpb3VzIHJlbmRlci4nKTtcbiAgICB9XG5cbiAgICBjdXJyZW50SG9vayA9IG5leHRDdXJyZW50SG9vaztcbiAgICB2YXIgbmV3SG9vayA9IHtcbiAgICAgIG1lbW9pemVkU3RhdGU6IGN1cnJlbnRIb29rLm1lbW9pemVkU3RhdGUsXG4gICAgICBiYXNlU3RhdGU6IGN1cnJlbnRIb29rLmJhc2VTdGF0ZSxcbiAgICAgIGJhc2VRdWV1ZTogY3VycmVudEhvb2suYmFzZVF1ZXVlLFxuICAgICAgcXVldWU6IGN1cnJlbnRIb29rLnF1ZXVlLFxuICAgICAgbmV4dDogbnVsbFxuICAgIH07XG5cbiAgICBpZiAod29ya0luUHJvZ3Jlc3NIb29rID09PSBudWxsKSB7XG4gICAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCBob29rIGluIHRoZSBsaXN0LlxuICAgICAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMS5tZW1vaXplZFN0YXRlID0gd29ya0luUHJvZ3Jlc3NIb29rID0gbmV3SG9vaztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQXBwZW5kIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuXG4gICAgICB3b3JrSW5Qcm9ncmVzc0hvb2sgPSB3b3JrSW5Qcm9ncmVzc0hvb2submV4dCA9IG5ld0hvb2s7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzSG9vaztcbn1cblxuZnVuY3Rpb24gY3JlYXRlRnVuY3Rpb25Db21wb25lbnRVcGRhdGVRdWV1ZSgpIHtcbiAgcmV0dXJuIHtcbiAgICBsYXN0RWZmZWN0OiBudWxsLFxuICAgIHN0b3JlczogbnVsbFxuICB9O1xufVxuXG5mdW5jdGlvbiBiYXNpY1N0YXRlUmVkdWNlcihzdGF0ZSwgYWN0aW9uKSB7XG4gIC8vICRGbG93Rml4TWU6IEZsb3cgZG9lc24ndCBsaWtlIG1peGVkIHR5cGVzXG4gIHJldHVybiB0eXBlb2YgYWN0aW9uID09PSAnZnVuY3Rpb24nID8gYWN0aW9uKHN0YXRlKSA6IGFjdGlvbjtcbn1cblxuZnVuY3Rpb24gbW91bnRSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpO1xuICB2YXIgaW5pdGlhbFN0YXRlO1xuXG4gIGlmIChpbml0ICE9PSB1bmRlZmluZWQpIHtcbiAgICBpbml0aWFsU3RhdGUgPSBpbml0KGluaXRpYWxBcmcpO1xuICB9IGVsc2Uge1xuICAgIGluaXRpYWxTdGF0ZSA9IGluaXRpYWxBcmc7XG4gIH1cblxuICBob29rLm1lbW9pemVkU3RhdGUgPSBob29rLmJhc2VTdGF0ZSA9IGluaXRpYWxTdGF0ZTtcbiAgdmFyIHF1ZXVlID0ge1xuICAgIHBlbmRpbmc6IG51bGwsXG4gICAgaW50ZXJsZWF2ZWQ6IG51bGwsXG4gICAgbGFuZXM6IE5vTGFuZXMsXG4gICAgZGlzcGF0Y2g6IG51bGwsXG4gICAgbGFzdFJlbmRlcmVkUmVkdWNlcjogcmVkdWNlcixcbiAgICBsYXN0UmVuZGVyZWRTdGF0ZTogaW5pdGlhbFN0YXRlXG4gIH07XG4gIGhvb2sucXVldWUgPSBxdWV1ZTtcbiAgdmFyIGRpc3BhdGNoID0gcXVldWUuZGlzcGF0Y2ggPSBkaXNwYXRjaFJlZHVjZXJBY3Rpb24uYmluZChudWxsLCBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLCBxdWV1ZSk7XG4gIHJldHVybiBbaG9vay5tZW1vaXplZFN0YXRlLCBkaXNwYXRjaF07XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICB2YXIgcXVldWUgPSBob29rLnF1ZXVlO1xuXG4gIGlmIChxdWV1ZSA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIGhhdmUgYSBxdWV1ZS4gVGhpcyBpcyBsaWtlbHkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICB9XG5cbiAgcXVldWUubGFzdFJlbmRlcmVkUmVkdWNlciA9IHJlZHVjZXI7XG4gIHZhciBjdXJyZW50ID0gY3VycmVudEhvb2s7IC8vIFRoZSBsYXN0IHJlYmFzZSB1cGRhdGUgdGhhdCBpcyBOT1QgcGFydCBvZiB0aGUgYmFzZSBzdGF0ZS5cblxuICB2YXIgYmFzZVF1ZXVlID0gY3VycmVudC5iYXNlUXVldWU7IC8vIFRoZSBsYXN0IHBlbmRpbmcgdXBkYXRlIHRoYXQgaGFzbid0IGJlZW4gcHJvY2Vzc2VkIHlldC5cblxuICB2YXIgcGVuZGluZ1F1ZXVlID0gcXVldWUucGVuZGluZztcblxuICBpZiAocGVuZGluZ1F1ZXVlICE9PSBudWxsKSB7XG4gICAgLy8gV2UgaGF2ZSBuZXcgdXBkYXRlcyB0aGF0IGhhdmVuJ3QgYmVlbiBwcm9jZXNzZWQgeWV0LlxuICAgIC8vIFdlJ2xsIGFkZCB0aGVtIHRvIHRoZSBiYXNlIHF1ZXVlLlxuICAgIGlmIChiYXNlUXVldWUgIT09IG51bGwpIHtcbiAgICAgIC8vIE1lcmdlIHRoZSBwZW5kaW5nIHF1ZXVlIGFuZCB0aGUgYmFzZSBxdWV1ZS5cbiAgICAgIHZhciBiYXNlRmlyc3QgPSBiYXNlUXVldWUubmV4dDtcbiAgICAgIHZhciBwZW5kaW5nRmlyc3QgPSBwZW5kaW5nUXVldWUubmV4dDtcbiAgICAgIGJhc2VRdWV1ZS5uZXh0ID0gcGVuZGluZ0ZpcnN0O1xuICAgICAgcGVuZGluZ1F1ZXVlLm5leHQgPSBiYXNlRmlyc3Q7XG4gICAgfVxuXG4gICAge1xuICAgICAgaWYgKGN1cnJlbnQuYmFzZVF1ZXVlICE9PSBiYXNlUXVldWUpIHtcbiAgICAgICAgLy8gSW50ZXJuYWwgaW52YXJpYW50IHRoYXQgc2hvdWxkIG5ldmVyIGhhcHBlbiwgYnV0IGZlYXNpYmx5IGNvdWxkIGluXG4gICAgICAgIC8vIHRoZSBmdXR1cmUgaWYgd2UgaW1wbGVtZW50IHJlc3VtaW5nLCBvciBzb21lIGZvcm0gb2YgdGhhdC5cbiAgICAgICAgZXJyb3IoJ0ludGVybmFsIGVycm9yOiBFeHBlY3RlZCB3b3JrLWluLXByb2dyZXNzIHF1ZXVlIHRvIGJlIGEgY2xvbmUuICcgKyAnVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjdXJyZW50LmJhc2VRdWV1ZSA9IGJhc2VRdWV1ZSA9IHBlbmRpbmdRdWV1ZTtcbiAgICBxdWV1ZS5wZW5kaW5nID0gbnVsbDtcbiAgfVxuXG4gIGlmIChiYXNlUXVldWUgIT09IG51bGwpIHtcbiAgICAvLyBXZSBoYXZlIGEgcXVldWUgdG8gcHJvY2Vzcy5cbiAgICB2YXIgZmlyc3QgPSBiYXNlUXVldWUubmV4dDtcbiAgICB2YXIgbmV3U3RhdGUgPSBjdXJyZW50LmJhc2VTdGF0ZTtcbiAgICB2YXIgbmV3QmFzZVN0YXRlID0gbnVsbDtcbiAgICB2YXIgbmV3QmFzZVF1ZXVlRmlyc3QgPSBudWxsO1xuICAgIHZhciBuZXdCYXNlUXVldWVMYXN0ID0gbnVsbDtcbiAgICB2YXIgdXBkYXRlID0gZmlyc3Q7XG5cbiAgICBkbyB7XG4gICAgICB2YXIgdXBkYXRlTGFuZSA9IHVwZGF0ZS5sYW5lO1xuXG4gICAgICBpZiAoIWlzU3Vic2V0T2ZMYW5lcyhyZW5kZXJMYW5lcywgdXBkYXRlTGFuZSkpIHtcbiAgICAgICAgLy8gUHJpb3JpdHkgaXMgaW5zdWZmaWNpZW50LiBTa2lwIHRoaXMgdXBkYXRlLiBJZiB0aGlzIGlzIHRoZSBmaXJzdFxuICAgICAgICAvLyBza2lwcGVkIHVwZGF0ZSwgdGhlIHByZXZpb3VzIHVwZGF0ZS9zdGF0ZSBpcyB0aGUgbmV3IGJhc2VcbiAgICAgICAgLy8gdXBkYXRlL3N0YXRlLlxuICAgICAgICB2YXIgY2xvbmUgPSB7XG4gICAgICAgICAgbGFuZTogdXBkYXRlTGFuZSxcbiAgICAgICAgICBhY3Rpb246IHVwZGF0ZS5hY3Rpb24sXG4gICAgICAgICAgaGFzRWFnZXJTdGF0ZTogdXBkYXRlLmhhc0VhZ2VyU3RhdGUsXG4gICAgICAgICAgZWFnZXJTdGF0ZTogdXBkYXRlLmVhZ2VyU3RhdGUsXG4gICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChuZXdCYXNlUXVldWVMYXN0ID09PSBudWxsKSB7XG4gICAgICAgICAgbmV3QmFzZVF1ZXVlRmlyc3QgPSBuZXdCYXNlUXVldWVMYXN0ID0gY2xvbmU7XG4gICAgICAgICAgbmV3QmFzZVN0YXRlID0gbmV3U3RhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3QmFzZVF1ZXVlTGFzdCA9IG5ld0Jhc2VRdWV1ZUxhc3QubmV4dCA9IGNsb25lO1xuICAgICAgICB9IC8vIFVwZGF0ZSB0aGUgcmVtYWluaW5nIHByaW9yaXR5IGluIHRoZSBxdWV1ZS5cbiAgICAgICAgLy8gVE9ETzogRG9uJ3QgbmVlZCB0byBhY2N1bXVsYXRlIHRoaXMuIEluc3RlYWQsIHdlIGNhbiByZW1vdmVcbiAgICAgICAgLy8gcmVuZGVyTGFuZXMgZnJvbSB0aGUgb3JpZ2luYWwgbGFuZXMuXG5cblxuICAgICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLmxhbmVzID0gbWVyZ2VMYW5lcyhjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLmxhbmVzLCB1cGRhdGVMYW5lKTtcbiAgICAgICAgbWFya1NraXBwZWRVcGRhdGVMYW5lcyh1cGRhdGVMYW5lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoaXMgdXBkYXRlIGRvZXMgaGF2ZSBzdWZmaWNpZW50IHByaW9yaXR5LlxuICAgICAgICBpZiAobmV3QmFzZVF1ZXVlTGFzdCAhPT0gbnVsbCkge1xuICAgICAgICAgIHZhciBfY2xvbmUgPSB7XG4gICAgICAgICAgICAvLyBUaGlzIHVwZGF0ZSBpcyBnb2luZyB0byBiZSBjb21taXR0ZWQgc28gd2UgbmV2ZXIgd2FudCB1bmNvbW1pdFxuICAgICAgICAgICAgLy8gaXQuIFVzaW5nIE5vTGFuZSB3b3JrcyBiZWNhdXNlIDAgaXMgYSBzdWJzZXQgb2YgYWxsIGJpdG1hc2tzLCBzb1xuICAgICAgICAgICAgLy8gdGhpcyB3aWxsIG5ldmVyIGJlIHNraXBwZWQgYnkgdGhlIGNoZWNrIGFib3ZlLlxuICAgICAgICAgICAgbGFuZTogTm9MYW5lLFxuICAgICAgICAgICAgYWN0aW9uOiB1cGRhdGUuYWN0aW9uLFxuICAgICAgICAgICAgaGFzRWFnZXJTdGF0ZTogdXBkYXRlLmhhc0VhZ2VyU3RhdGUsXG4gICAgICAgICAgICBlYWdlclN0YXRlOiB1cGRhdGUuZWFnZXJTdGF0ZSxcbiAgICAgICAgICAgIG5leHQ6IG51bGxcbiAgICAgICAgICB9O1xuICAgICAgICAgIG5ld0Jhc2VRdWV1ZUxhc3QgPSBuZXdCYXNlUXVldWVMYXN0Lm5leHQgPSBfY2xvbmU7XG4gICAgICAgIH0gLy8gUHJvY2VzcyB0aGlzIHVwZGF0ZS5cblxuXG4gICAgICAgIGlmICh1cGRhdGUuaGFzRWFnZXJTdGF0ZSkge1xuICAgICAgICAgIC8vIElmIHRoaXMgdXBkYXRlIGlzIGEgc3RhdGUgdXBkYXRlIChub3QgYSByZWR1Y2VyKSBhbmQgd2FzIHByb2Nlc3NlZCBlYWdlcmx5LFxuICAgICAgICAgIC8vIHdlIGNhbiB1c2UgdGhlIGVhZ2VybHkgY29tcHV0ZWQgc3RhdGVcbiAgICAgICAgICBuZXdTdGF0ZSA9IHVwZGF0ZS5lYWdlclN0YXRlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBhY3Rpb24gPSB1cGRhdGUuYWN0aW9uO1xuICAgICAgICAgIG5ld1N0YXRlID0gcmVkdWNlcihuZXdTdGF0ZSwgYWN0aW9uKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB1cGRhdGUgPSB1cGRhdGUubmV4dDtcbiAgICB9IHdoaWxlICh1cGRhdGUgIT09IG51bGwgJiYgdXBkYXRlICE9PSBmaXJzdCk7XG5cbiAgICBpZiAobmV3QmFzZVF1ZXVlTGFzdCA9PT0gbnVsbCkge1xuICAgICAgbmV3QmFzZVN0YXRlID0gbmV3U3RhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0Jhc2VRdWV1ZUxhc3QubmV4dCA9IG5ld0Jhc2VRdWV1ZUZpcnN0O1xuICAgIH0gLy8gTWFyayB0aGF0IHRoZSBmaWJlciBwZXJmb3JtZWQgd29yaywgYnV0IG9ubHkgaWYgdGhlIG5ldyBzdGF0ZSBpc1xuICAgIC8vIGRpZmZlcmVudCBmcm9tIHRoZSBjdXJyZW50IHN0YXRlLlxuXG5cbiAgICBpZiAoIW9iamVjdElzKG5ld1N0YXRlLCBob29rLm1lbW9pemVkU3RhdGUpKSB7XG4gICAgICBtYXJrV29ya0luUHJvZ3Jlc3NSZWNlaXZlZFVwZGF0ZSgpO1xuICAgIH1cblxuICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IG5ld1N0YXRlO1xuICAgIGhvb2suYmFzZVN0YXRlID0gbmV3QmFzZVN0YXRlO1xuICAgIGhvb2suYmFzZVF1ZXVlID0gbmV3QmFzZVF1ZXVlTGFzdDtcbiAgICBxdWV1ZS5sYXN0UmVuZGVyZWRTdGF0ZSA9IG5ld1N0YXRlO1xuICB9IC8vIEludGVybGVhdmVkIHVwZGF0ZXMgYXJlIHN0b3JlZCBvbiBhIHNlcGFyYXRlIHF1ZXVlLiBXZSBhcmVuJ3QgZ29pbmcgdG9cbiAgLy8gcHJvY2VzcyB0aGVtIGR1cmluZyB0aGlzIHJlbmRlciwgYnV0IHdlIGRvIG5lZWQgdG8gdHJhY2sgd2hpY2ggbGFuZXNcbiAgLy8gYXJlIHJlbWFpbmluZy5cblxuXG4gIHZhciBsYXN0SW50ZXJsZWF2ZWQgPSBxdWV1ZS5pbnRlcmxlYXZlZDtcblxuICBpZiAobGFzdEludGVybGVhdmVkICE9PSBudWxsKSB7XG4gICAgdmFyIGludGVybGVhdmVkID0gbGFzdEludGVybGVhdmVkO1xuXG4gICAgZG8ge1xuICAgICAgdmFyIGludGVybGVhdmVkTGFuZSA9IGludGVybGVhdmVkLmxhbmU7XG4gICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLmxhbmVzID0gbWVyZ2VMYW5lcyhjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLmxhbmVzLCBpbnRlcmxlYXZlZExhbmUpO1xuICAgICAgbWFya1NraXBwZWRVcGRhdGVMYW5lcyhpbnRlcmxlYXZlZExhbmUpO1xuICAgICAgaW50ZXJsZWF2ZWQgPSBpbnRlcmxlYXZlZC5uZXh0O1xuICAgIH0gd2hpbGUgKGludGVybGVhdmVkICE9PSBsYXN0SW50ZXJsZWF2ZWQpO1xuICB9IGVsc2UgaWYgKGJhc2VRdWV1ZSA9PT0gbnVsbCkge1xuICAgIC8vIGBxdWV1ZS5sYW5lc2AgaXMgdXNlZCBmb3IgZW50YW5nbGluZyB0cmFuc2l0aW9ucy4gV2UgY2FuIHNldCBpdCBiYWNrIHRvXG4gICAgLy8gemVybyBvbmNlIHRoZSBxdWV1ZSBpcyBlbXB0eS5cbiAgICBxdWV1ZS5sYW5lcyA9IE5vTGFuZXM7XG4gIH1cblxuICB2YXIgZGlzcGF0Y2ggPSBxdWV1ZS5kaXNwYXRjaDtcbiAgcmV0dXJuIFtob29rLm1lbW9pemVkU3RhdGUsIGRpc3BhdGNoXTtcbn1cblxuZnVuY3Rpb24gcmVyZW5kZXJSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIHF1ZXVlID0gaG9vay5xdWV1ZTtcblxuICBpZiAocXVldWUgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBoYXZlIGEgcXVldWUuIFRoaXMgaXMgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgfVxuXG4gIHF1ZXVlLmxhc3RSZW5kZXJlZFJlZHVjZXIgPSByZWR1Y2VyOyAvLyBUaGlzIGlzIGEgcmUtcmVuZGVyLiBBcHBseSB0aGUgbmV3IHJlbmRlciBwaGFzZSB1cGRhdGVzIHRvIHRoZSBwcmV2aW91c1xuICAvLyB3b3JrLWluLXByb2dyZXNzIGhvb2suXG5cbiAgdmFyIGRpc3BhdGNoID0gcXVldWUuZGlzcGF0Y2g7XG4gIHZhciBsYXN0UmVuZGVyUGhhc2VVcGRhdGUgPSBxdWV1ZS5wZW5kaW5nO1xuICB2YXIgbmV3U3RhdGUgPSBob29rLm1lbW9pemVkU3RhdGU7XG5cbiAgaWYgKGxhc3RSZW5kZXJQaGFzZVVwZGF0ZSAhPT0gbnVsbCkge1xuICAgIC8vIFRoZSBxdWV1ZSBkb2Vzbid0IHBlcnNpc3QgcGFzdCB0aGlzIHJlbmRlciBwYXNzLlxuICAgIHF1ZXVlLnBlbmRpbmcgPSBudWxsO1xuICAgIHZhciBmaXJzdFJlbmRlclBoYXNlVXBkYXRlID0gbGFzdFJlbmRlclBoYXNlVXBkYXRlLm5leHQ7XG4gICAgdmFyIHVwZGF0ZSA9IGZpcnN0UmVuZGVyUGhhc2VVcGRhdGU7XG5cbiAgICBkbyB7XG4gICAgICAvLyBQcm9jZXNzIHRoaXMgcmVuZGVyIHBoYXNlIHVwZGF0ZS4gV2UgZG9uJ3QgaGF2ZSB0byBjaGVjayB0aGVcbiAgICAgIC8vIHByaW9yaXR5IGJlY2F1c2UgaXQgd2lsbCBhbHdheXMgYmUgdGhlIHNhbWUgYXMgdGhlIGN1cnJlbnRcbiAgICAgIC8vIHJlbmRlcidzLlxuICAgICAgdmFyIGFjdGlvbiA9IHVwZGF0ZS5hY3Rpb247XG4gICAgICBuZXdTdGF0ZSA9IHJlZHVjZXIobmV3U3RhdGUsIGFjdGlvbik7XG4gICAgICB1cGRhdGUgPSB1cGRhdGUubmV4dDtcbiAgICB9IHdoaWxlICh1cGRhdGUgIT09IGZpcnN0UmVuZGVyUGhhc2VVcGRhdGUpOyAvLyBNYXJrIHRoYXQgdGhlIGZpYmVyIHBlcmZvcm1lZCB3b3JrLCBidXQgb25seSBpZiB0aGUgbmV3IHN0YXRlIGlzXG4gICAgLy8gZGlmZmVyZW50IGZyb20gdGhlIGN1cnJlbnQgc3RhdGUuXG5cblxuICAgIGlmICghb2JqZWN0SXMobmV3U3RhdGUsIGhvb2subWVtb2l6ZWRTdGF0ZSkpIHtcbiAgICAgIG1hcmtXb3JrSW5Qcm9ncmVzc1JlY2VpdmVkVXBkYXRlKCk7XG4gICAgfVxuXG4gICAgaG9vay5tZW1vaXplZFN0YXRlID0gbmV3U3RhdGU7IC8vIERvbid0IHBlcnNpc3QgdGhlIHN0YXRlIGFjY3VtdWxhdGVkIGZyb20gdGhlIHJlbmRlciBwaGFzZSB1cGRhdGVzIHRvXG4gICAgLy8gdGhlIGJhc2Ugc3RhdGUgdW5sZXNzIHRoZSBxdWV1ZSBpcyBlbXB0eS5cbiAgICAvLyBUT0RPOiBOb3Qgc3VyZSBpZiB0aGlzIGlzIHRoZSBkZXNpcmVkIHNlbWFudGljcywgYnV0IGl0J3Mgd2hhdCB3ZVxuICAgIC8vIGRvIGZvciBnRFNGUC4gSSBjYW4ndCByZW1lbWJlciB3aHkuXG5cbiAgICBpZiAoaG9vay5iYXNlUXVldWUgPT09IG51bGwpIHtcbiAgICAgIGhvb2suYmFzZVN0YXRlID0gbmV3U3RhdGU7XG4gICAgfVxuXG4gICAgcXVldWUubGFzdFJlbmRlcmVkU3RhdGUgPSBuZXdTdGF0ZTtcbiAgfVxuXG4gIHJldHVybiBbbmV3U3RhdGUsIGRpc3BhdGNoXTtcbn1cblxuZnVuY3Rpb24gbW91bnRNdXRhYmxlU291cmNlKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSkge1xuICB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5mdW5jdGlvbiB1cGRhdGVNdXRhYmxlU291cmNlKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSkge1xuICB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5mdW5jdGlvbiBtb3VudFN5bmNFeHRlcm5hbFN0b3JlKHN1YnNjcmliZSwgZ2V0U25hcHNob3QsIGdldFNlcnZlclNuYXBzaG90KSB7XG4gIHZhciBmaWJlciA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDE7XG4gIHZhciBob29rID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIG5leHRTbmFwc2hvdDtcbiAgdmFyIGlzSHlkcmF0aW5nID0gZ2V0SXNIeWRyYXRpbmcoKTtcblxuICBpZiAoaXNIeWRyYXRpbmcpIHtcbiAgICBpZiAoZ2V0U2VydmVyU25hcHNob3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIGdldFNlcnZlclNuYXBzaG90LCB3aGljaCBpcyByZXF1aXJlZCBmb3IgJyArICdzZXJ2ZXItcmVuZGVyZWQgY29udGVudC4gV2lsbCByZXZlcnQgdG8gY2xpZW50IHJlbmRlcmluZy4nKTtcbiAgICB9XG5cbiAgICBuZXh0U25hcHNob3QgPSBnZXRTZXJ2ZXJTbmFwc2hvdCgpO1xuXG4gICAge1xuICAgICAgaWYgKCFkaWRXYXJuVW5jYWNoZWRHZXRTbmFwc2hvdCkge1xuICAgICAgICBpZiAobmV4dFNuYXBzaG90ICE9PSBnZXRTZXJ2ZXJTbmFwc2hvdCgpKSB7XG4gICAgICAgICAgZXJyb3IoJ1RoZSByZXN1bHQgb2YgZ2V0U2VydmVyU25hcHNob3Qgc2hvdWxkIGJlIGNhY2hlZCB0byBhdm9pZCBhbiBpbmZpbml0ZSBsb29wJyk7XG5cbiAgICAgICAgICBkaWRXYXJuVW5jYWNoZWRHZXRTbmFwc2hvdCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbmV4dFNuYXBzaG90ID0gZ2V0U25hcHNob3QoKTtcblxuICAgIHtcbiAgICAgIGlmICghZGlkV2FyblVuY2FjaGVkR2V0U25hcHNob3QpIHtcbiAgICAgICAgdmFyIGNhY2hlZFNuYXBzaG90ID0gZ2V0U25hcHNob3QoKTtcblxuICAgICAgICBpZiAoIW9iamVjdElzKG5leHRTbmFwc2hvdCwgY2FjaGVkU25hcHNob3QpKSB7XG4gICAgICAgICAgZXJyb3IoJ1RoZSByZXN1bHQgb2YgZ2V0U25hcHNob3Qgc2hvdWxkIGJlIGNhY2hlZCB0byBhdm9pZCBhbiBpbmZpbml0ZSBsb29wJyk7XG5cbiAgICAgICAgICBkaWRXYXJuVW5jYWNoZWRHZXRTbmFwc2hvdCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IC8vIFVubGVzcyB3ZSdyZSByZW5kZXJpbmcgYSBibG9ja2luZyBsYW5lLCBzY2hlZHVsZSBhIGNvbnNpc3RlbmN5IGNoZWNrLlxuICAgIC8vIFJpZ2h0IGJlZm9yZSBjb21taXR0aW5nLCB3ZSB3aWxsIHdhbGsgdGhlIHRyZWUgYW5kIGNoZWNrIGlmIGFueSBvZiB0aGVcbiAgICAvLyBzdG9yZXMgd2VyZSBtdXRhdGVkLlxuICAgIC8vXG4gICAgLy8gV2Ugd29uJ3QgZG8gdGhpcyBpZiB3ZSdyZSBoeWRyYXRpbmcgc2VydmVyLXJlbmRlcmVkIGNvbnRlbnQsIGJlY2F1c2UgaWZcbiAgICAvLyB0aGUgY29udGVudCBpcyBzdGFsZSwgaXQncyBhbHJlYWR5IHZpc2libGUgYW55d2F5LiBJbnN0ZWFkIHdlJ2xsIHBhdGNoXG4gICAgLy8gaXQgdXAgaW4gYSBwYXNzaXZlIGVmZmVjdC5cblxuXG4gICAgdmFyIHJvb3QgPSBnZXRXb3JrSW5Qcm9ncmVzc1Jvb3QoKTtcblxuICAgIGlmIChyb290ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGEgd29yay1pbi1wcm9ncmVzcyByb290LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG5cbiAgICBpZiAoIWluY2x1ZGVzQmxvY2tpbmdMYW5lKHJvb3QsIHJlbmRlckxhbmVzKSkge1xuICAgICAgcHVzaFN0b3JlQ29uc2lzdGVuY3lDaGVjayhmaWJlciwgZ2V0U25hcHNob3QsIG5leHRTbmFwc2hvdCk7XG4gICAgfVxuICB9IC8vIFJlYWQgdGhlIGN1cnJlbnQgc25hcHNob3QgZnJvbSB0aGUgc3RvcmUgb24gZXZlcnkgcmVuZGVyLiBUaGlzIGJyZWFrcyB0aGVcbiAgLy8gbm9ybWFsIHJ1bGVzIG9mIFJlYWN0LCBhbmQgb25seSB3b3JrcyBiZWNhdXNlIHN0b3JlIHVwZGF0ZXMgYXJlXG4gIC8vIGFsd2F5cyBzeW5jaHJvbm91cy5cblxuXG4gIGhvb2subWVtb2l6ZWRTdGF0ZSA9IG5leHRTbmFwc2hvdDtcbiAgdmFyIGluc3QgPSB7XG4gICAgdmFsdWU6IG5leHRTbmFwc2hvdCxcbiAgICBnZXRTbmFwc2hvdDogZ2V0U25hcHNob3RcbiAgfTtcbiAgaG9vay5xdWV1ZSA9IGluc3Q7IC8vIFNjaGVkdWxlIGFuIGVmZmVjdCB0byBzdWJzY3JpYmUgdG8gdGhlIHN0b3JlLlxuXG4gIG1vdW50RWZmZWN0KHN1YnNjcmliZVRvU3RvcmUuYmluZChudWxsLCBmaWJlciwgaW5zdCwgc3Vic2NyaWJlKSwgW3N1YnNjcmliZV0pOyAvLyBTY2hlZHVsZSBhbiBlZmZlY3QgdG8gdXBkYXRlIHRoZSBtdXRhYmxlIGluc3RhbmNlIGZpZWxkcy4gV2Ugd2lsbCB1cGRhdGVcbiAgLy8gdGhpcyB3aGVuZXZlciBzdWJzY3JpYmUsIGdldFNuYXBzaG90LCBvciB2YWx1ZSBjaGFuZ2VzLiBCZWNhdXNlIHRoZXJlJ3Mgbm9cbiAgLy8gY2xlYW4tdXAgZnVuY3Rpb24sIGFuZCB3ZSB0cmFjayB0aGUgZGVwcyBjb3JyZWN0bHksIHdlIGNhbiBjYWxsIHB1c2hFZmZlY3RcbiAgLy8gZGlyZWN0bHksIHdpdGhvdXQgc3RvcmluZyBhbnkgYWRkaXRpb25hbCBzdGF0ZS4gRm9yIHRoZSBzYW1lIHJlYXNvbiwgd2VcbiAgLy8gZG9uJ3QgbmVlZCB0byBzZXQgYSBzdGF0aWMgZmxhZywgZWl0aGVyLlxuICAvLyBUT0RPOiBXZSBjYW4gbW92ZSB0aGlzIHRvIHRoZSBwYXNzaXZlIHBoYXNlIG9uY2Ugd2UgYWRkIGEgcHJlLWNvbW1pdFxuICAvLyBjb25zaXN0ZW5jeSBjaGVjay4gU2VlIHRoZSBuZXh0IGNvbW1lbnQuXG5cbiAgZmliZXIuZmxhZ3MgfD0gUGFzc2l2ZTtcbiAgcHVzaEVmZmVjdChIYXNFZmZlY3QgfCBQYXNzaXZlJDEsIHVwZGF0ZVN0b3JlSW5zdGFuY2UuYmluZChudWxsLCBmaWJlciwgaW5zdCwgbmV4dFNuYXBzaG90LCBnZXRTbmFwc2hvdCksIHVuZGVmaW5lZCwgbnVsbCk7XG4gIHJldHVybiBuZXh0U25hcHNob3Q7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVN5bmNFeHRlcm5hbFN0b3JlKHN1YnNjcmliZSwgZ2V0U25hcHNob3QsIGdldFNlcnZlclNuYXBzaG90KSB7XG4gIHZhciBmaWJlciA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDE7XG4gIHZhciBob29rID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCk7IC8vIFJlYWQgdGhlIGN1cnJlbnQgc25hcHNob3QgZnJvbSB0aGUgc3RvcmUgb24gZXZlcnkgcmVuZGVyLiBUaGlzIGJyZWFrcyB0aGVcbiAgLy8gbm9ybWFsIHJ1bGVzIG9mIFJlYWN0LCBhbmQgb25seSB3b3JrcyBiZWNhdXNlIHN0b3JlIHVwZGF0ZXMgYXJlXG4gIC8vIGFsd2F5cyBzeW5jaHJvbm91cy5cblxuICB2YXIgbmV4dFNuYXBzaG90ID0gZ2V0U25hcHNob3QoKTtcblxuICB7XG4gICAgaWYgKCFkaWRXYXJuVW5jYWNoZWRHZXRTbmFwc2hvdCkge1xuICAgICAgdmFyIGNhY2hlZFNuYXBzaG90ID0gZ2V0U25hcHNob3QoKTtcblxuICAgICAgaWYgKCFvYmplY3RJcyhuZXh0U25hcHNob3QsIGNhY2hlZFNuYXBzaG90KSkge1xuICAgICAgICBlcnJvcignVGhlIHJlc3VsdCBvZiBnZXRTbmFwc2hvdCBzaG91bGQgYmUgY2FjaGVkIHRvIGF2b2lkIGFuIGluZmluaXRlIGxvb3AnKTtcblxuICAgICAgICBkaWRXYXJuVW5jYWNoZWRHZXRTbmFwc2hvdCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIHByZXZTbmFwc2hvdCA9IGhvb2subWVtb2l6ZWRTdGF0ZTtcbiAgdmFyIHNuYXBzaG90Q2hhbmdlZCA9ICFvYmplY3RJcyhwcmV2U25hcHNob3QsIG5leHRTbmFwc2hvdCk7XG5cbiAgaWYgKHNuYXBzaG90Q2hhbmdlZCkge1xuICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IG5leHRTbmFwc2hvdDtcbiAgICBtYXJrV29ya0luUHJvZ3Jlc3NSZWNlaXZlZFVwZGF0ZSgpO1xuICB9XG5cbiAgdmFyIGluc3QgPSBob29rLnF1ZXVlO1xuICB1cGRhdGVFZmZlY3Qoc3Vic2NyaWJlVG9TdG9yZS5iaW5kKG51bGwsIGZpYmVyLCBpbnN0LCBzdWJzY3JpYmUpLCBbc3Vic2NyaWJlXSk7IC8vIFdoZW5ldmVyIGdldFNuYXBzaG90IG9yIHN1YnNjcmliZSBjaGFuZ2VzLCB3ZSBuZWVkIHRvIGNoZWNrIGluIHRoZVxuICAvLyBjb21taXQgcGhhc2UgaWYgdGhlcmUgd2FzIGFuIGludGVybGVhdmVkIG11dGF0aW9uLiBJbiBjb25jdXJyZW50IG1vZGVcbiAgLy8gdGhpcyBjYW4gaGFwcGVuIGFsbCB0aGUgdGltZSwgYnV0IGV2ZW4gaW4gc3luY2hyb25vdXMgbW9kZSwgYW4gZWFybGllclxuICAvLyBlZmZlY3QgbWF5IGhhdmUgbXV0YXRlZCB0aGUgc3RvcmUuXG5cbiAgaWYgKGluc3QuZ2V0U25hcHNob3QgIT09IGdldFNuYXBzaG90IHx8IHNuYXBzaG90Q2hhbmdlZCB8fCAvLyBDaGVjayBpZiB0aGUgc3VzYmNyaWJlIGZ1bmN0aW9uIGNoYW5nZWQuIFdlIGNhbiBzYXZlIHNvbWUgbWVtb3J5IGJ5XG4gIC8vIGNoZWNraW5nIHdoZXRoZXIgd2Ugc2NoZWR1bGVkIGEgc3Vic2NyaXB0aW9uIGVmZmVjdCBhYm92ZS5cbiAgd29ya0luUHJvZ3Jlc3NIb29rICE9PSBudWxsICYmIHdvcmtJblByb2dyZXNzSG9vay5tZW1vaXplZFN0YXRlLnRhZyAmIEhhc0VmZmVjdCkge1xuICAgIGZpYmVyLmZsYWdzIHw9IFBhc3NpdmU7XG4gICAgcHVzaEVmZmVjdChIYXNFZmZlY3QgfCBQYXNzaXZlJDEsIHVwZGF0ZVN0b3JlSW5zdGFuY2UuYmluZChudWxsLCBmaWJlciwgaW5zdCwgbmV4dFNuYXBzaG90LCBnZXRTbmFwc2hvdCksIHVuZGVmaW5lZCwgbnVsbCk7IC8vIFVubGVzcyB3ZSdyZSByZW5kZXJpbmcgYSBibG9ja2luZyBsYW5lLCBzY2hlZHVsZSBhIGNvbnNpc3RlbmN5IGNoZWNrLlxuICAgIC8vIFJpZ2h0IGJlZm9yZSBjb21taXR0aW5nLCB3ZSB3aWxsIHdhbGsgdGhlIHRyZWUgYW5kIGNoZWNrIGlmIGFueSBvZiB0aGVcbiAgICAvLyBzdG9yZXMgd2VyZSBtdXRhdGVkLlxuXG4gICAgdmFyIHJvb3QgPSBnZXRXb3JrSW5Qcm9ncmVzc1Jvb3QoKTtcblxuICAgIGlmIChyb290ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGEgd29yay1pbi1wcm9ncmVzcyByb290LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG5cbiAgICBpZiAoIWluY2x1ZGVzQmxvY2tpbmdMYW5lKHJvb3QsIHJlbmRlckxhbmVzKSkge1xuICAgICAgcHVzaFN0b3JlQ29uc2lzdGVuY3lDaGVjayhmaWJlciwgZ2V0U25hcHNob3QsIG5leHRTbmFwc2hvdCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5leHRTbmFwc2hvdDtcbn1cblxuZnVuY3Rpb24gcHVzaFN0b3JlQ29uc2lzdGVuY3lDaGVjayhmaWJlciwgZ2V0U25hcHNob3QsIHJlbmRlcmVkU25hcHNob3QpIHtcbiAgZmliZXIuZmxhZ3MgfD0gU3RvcmVDb25zaXN0ZW5jeTtcbiAgdmFyIGNoZWNrID0ge1xuICAgIGdldFNuYXBzaG90OiBnZXRTbmFwc2hvdCxcbiAgICB2YWx1ZTogcmVuZGVyZWRTbmFwc2hvdFxuICB9O1xuICB2YXIgY29tcG9uZW50VXBkYXRlUXVldWUgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLnVwZGF0ZVF1ZXVlO1xuXG4gIGlmIChjb21wb25lbnRVcGRhdGVRdWV1ZSA9PT0gbnVsbCkge1xuICAgIGNvbXBvbmVudFVwZGF0ZVF1ZXVlID0gY3JlYXRlRnVuY3Rpb25Db21wb25lbnRVcGRhdGVRdWV1ZSgpO1xuICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEudXBkYXRlUXVldWUgPSBjb21wb25lbnRVcGRhdGVRdWV1ZTtcbiAgICBjb21wb25lbnRVcGRhdGVRdWV1ZS5zdG9yZXMgPSBbY2hlY2tdO1xuICB9IGVsc2Uge1xuICAgIHZhciBzdG9yZXMgPSBjb21wb25lbnRVcGRhdGVRdWV1ZS5zdG9yZXM7XG5cbiAgICBpZiAoc3RvcmVzID09PSBudWxsKSB7XG4gICAgICBjb21wb25lbnRVcGRhdGVRdWV1ZS5zdG9yZXMgPSBbY2hlY2tdO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdG9yZXMucHVzaChjaGVjayk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVN0b3JlSW5zdGFuY2UoZmliZXIsIGluc3QsIG5leHRTbmFwc2hvdCwgZ2V0U25hcHNob3QpIHtcbiAgLy8gVGhlc2UgYXJlIHVwZGF0ZWQgaW4gdGhlIHBhc3NpdmUgcGhhc2VcbiAgaW5zdC52YWx1ZSA9IG5leHRTbmFwc2hvdDtcbiAgaW5zdC5nZXRTbmFwc2hvdCA9IGdldFNuYXBzaG90OyAvLyBTb21ldGhpbmcgbWF5IGhhdmUgYmVlbiBtdXRhdGVkIGluIGJldHdlZW4gcmVuZGVyIGFuZCBjb21taXQuIFRoaXMgY291bGRcbiAgLy8gaGF2ZSBiZWVuIGluIGFuIGV2ZW50IHRoYXQgZmlyZWQgYmVmb3JlIHRoZSBwYXNzaXZlIGVmZmVjdHMsIG9yIGl0IGNvdWxkXG4gIC8vIGhhdmUgYmVlbiBpbiBhIGxheW91dCBlZmZlY3QuIEluIHRoYXQgY2FzZSwgd2Ugd291bGQgaGF2ZSB1c2VkIHRoZSBvbGRcbiAgLy8gc25hcHNobyBhbmQgZ2V0U25hcHNob3QgdmFsdWVzIHRvIGJhaWwgb3V0LiBXZSBuZWVkIHRvIGNoZWNrIG9uZSBtb3JlIHRpbWUuXG5cbiAgaWYgKGNoZWNrSWZTbmFwc2hvdENoYW5nZWQoaW5zdCkpIHtcbiAgICAvLyBGb3JjZSBhIHJlLXJlbmRlci5cbiAgICBmb3JjZVN0b3JlUmVyZW5kZXIoZmliZXIpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHN1YnNjcmliZVRvU3RvcmUoZmliZXIsIGluc3QsIHN1YnNjcmliZSkge1xuICB2YXIgaGFuZGxlU3RvcmVDaGFuZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgLy8gVGhlIHN0b3JlIGNoYW5nZWQuIENoZWNrIGlmIHRoZSBzbmFwc2hvdCBjaGFuZ2VkIHNpbmNlIHRoZSBsYXN0IHRpbWUgd2VcbiAgICAvLyByZWFkIGZyb20gdGhlIHN0b3JlLlxuICAgIGlmIChjaGVja0lmU25hcHNob3RDaGFuZ2VkKGluc3QpKSB7XG4gICAgICAvLyBGb3JjZSBhIHJlLXJlbmRlci5cbiAgICAgIGZvcmNlU3RvcmVSZXJlbmRlcihmaWJlcik7XG4gICAgfVxuICB9OyAvLyBTdWJzY3JpYmUgdG8gdGhlIHN0b3JlIGFuZCByZXR1cm4gYSBjbGVhbi11cCBmdW5jdGlvbi5cblxuXG4gIHJldHVybiBzdWJzY3JpYmUoaGFuZGxlU3RvcmVDaGFuZ2UpO1xufVxuXG5mdW5jdGlvbiBjaGVja0lmU25hcHNob3RDaGFuZ2VkKGluc3QpIHtcbiAgdmFyIGxhdGVzdEdldFNuYXBzaG90ID0gaW5zdC5nZXRTbmFwc2hvdDtcbiAgdmFyIHByZXZWYWx1ZSA9IGluc3QudmFsdWU7XG5cbiAgdHJ5IHtcbiAgICB2YXIgbmV4dFZhbHVlID0gbGF0ZXN0R2V0U25hcHNob3QoKTtcbiAgICByZXR1cm4gIW9iamVjdElzKHByZXZWYWx1ZSwgbmV4dFZhbHVlKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmb3JjZVN0b3JlUmVyZW5kZXIoZmliZXIpIHtcbiAgdmFyIHJvb3QgPSBlbnF1ZXVlQ29uY3VycmVudFJlbmRlckZvckxhbmUoZmliZXIsIFN5bmNMYW5lKTtcblxuICBpZiAocm9vdCAhPT0gbnVsbCkge1xuICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihyb290LCBmaWJlciwgU3luY0xhbmUsIE5vVGltZXN0YW1wKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtb3VudFN0YXRlKGluaXRpYWxTdGF0ZSkge1xuICB2YXIgaG9vayA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCk7XG5cbiAgaWYgKHR5cGVvZiBpbml0aWFsU3RhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyAkRmxvd0ZpeE1lOiBGbG93IGRvZXNuJ3QgbGlrZSBtaXhlZCB0eXBlc1xuICAgIGluaXRpYWxTdGF0ZSA9IGluaXRpYWxTdGF0ZSgpO1xuICB9XG5cbiAgaG9vay5tZW1vaXplZFN0YXRlID0gaG9vay5iYXNlU3RhdGUgPSBpbml0aWFsU3RhdGU7XG4gIHZhciBxdWV1ZSA9IHtcbiAgICBwZW5kaW5nOiBudWxsLFxuICAgIGludGVybGVhdmVkOiBudWxsLFxuICAgIGxhbmVzOiBOb0xhbmVzLFxuICAgIGRpc3BhdGNoOiBudWxsLFxuICAgIGxhc3RSZW5kZXJlZFJlZHVjZXI6IGJhc2ljU3RhdGVSZWR1Y2VyLFxuICAgIGxhc3RSZW5kZXJlZFN0YXRlOiBpbml0aWFsU3RhdGVcbiAgfTtcbiAgaG9vay5xdWV1ZSA9IHF1ZXVlO1xuICB2YXIgZGlzcGF0Y2ggPSBxdWV1ZS5kaXNwYXRjaCA9IGRpc3BhdGNoU2V0U3RhdGUuYmluZChudWxsLCBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLCBxdWV1ZSk7XG4gIHJldHVybiBbaG9vay5tZW1vaXplZFN0YXRlLCBkaXNwYXRjaF07XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVN0YXRlKGluaXRpYWxTdGF0ZSkge1xuICByZXR1cm4gdXBkYXRlUmVkdWNlcihiYXNpY1N0YXRlUmVkdWNlcik7XG59XG5cbmZ1bmN0aW9uIHJlcmVuZGVyU3RhdGUoaW5pdGlhbFN0YXRlKSB7XG4gIHJldHVybiByZXJlbmRlclJlZHVjZXIoYmFzaWNTdGF0ZVJlZHVjZXIpO1xufVxuXG5mdW5jdGlvbiBwdXNoRWZmZWN0KHRhZywgY3JlYXRlLCBkZXN0cm95LCBkZXBzKSB7XG4gIHZhciBlZmZlY3QgPSB7XG4gICAgdGFnOiB0YWcsXG4gICAgY3JlYXRlOiBjcmVhdGUsXG4gICAgZGVzdHJveTogZGVzdHJveSxcbiAgICBkZXBzOiBkZXBzLFxuICAgIC8vIENpcmN1bGFyXG4gICAgbmV4dDogbnVsbFxuICB9O1xuICB2YXIgY29tcG9uZW50VXBkYXRlUXVldWUgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxLnVwZGF0ZVF1ZXVlO1xuXG4gIGlmIChjb21wb25lbnRVcGRhdGVRdWV1ZSA9PT0gbnVsbCkge1xuICAgIGNvbXBvbmVudFVwZGF0ZVF1ZXVlID0gY3JlYXRlRnVuY3Rpb25Db21wb25lbnRVcGRhdGVRdWV1ZSgpO1xuICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEudXBkYXRlUXVldWUgPSBjb21wb25lbnRVcGRhdGVRdWV1ZTtcbiAgICBjb21wb25lbnRVcGRhdGVRdWV1ZS5sYXN0RWZmZWN0ID0gZWZmZWN0Lm5leHQgPSBlZmZlY3Q7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGxhc3RFZmZlY3QgPSBjb21wb25lbnRVcGRhdGVRdWV1ZS5sYXN0RWZmZWN0O1xuXG4gICAgaWYgKGxhc3RFZmZlY3QgPT09IG51bGwpIHtcbiAgICAgIGNvbXBvbmVudFVwZGF0ZVF1ZXVlLmxhc3RFZmZlY3QgPSBlZmZlY3QubmV4dCA9IGVmZmVjdDtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGZpcnN0RWZmZWN0ID0gbGFzdEVmZmVjdC5uZXh0O1xuICAgICAgbGFzdEVmZmVjdC5uZXh0ID0gZWZmZWN0O1xuICAgICAgZWZmZWN0Lm5leHQgPSBmaXJzdEVmZmVjdDtcbiAgICAgIGNvbXBvbmVudFVwZGF0ZVF1ZXVlLmxhc3RFZmZlY3QgPSBlZmZlY3Q7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVmZmVjdDtcbn1cblxuZnVuY3Rpb24gbW91bnRSZWYoaW5pdGlhbFZhbHVlKSB7XG4gIHZhciBob29rID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTtcblxuICB7XG4gICAgdmFyIF9yZWYyID0ge1xuICAgICAgY3VycmVudDogaW5pdGlhbFZhbHVlXG4gICAgfTtcbiAgICBob29rLm1lbW9pemVkU3RhdGUgPSBfcmVmMjtcbiAgICByZXR1cm4gX3JlZjI7XG4gIH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlUmVmKGluaXRpYWxWYWx1ZSkge1xuICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICByZXR1cm4gaG9vay5tZW1vaXplZFN0YXRlO1xufVxuXG5mdW5jdGlvbiBtb3VudEVmZmVjdEltcGwoZmliZXJGbGFncywgaG9va0ZsYWdzLCBjcmVhdGUsIGRlcHMpIHtcbiAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpO1xuICB2YXIgbmV4dERlcHMgPSBkZXBzID09PSB1bmRlZmluZWQgPyBudWxsIDogZGVwcztcbiAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMS5mbGFncyB8PSBmaWJlckZsYWdzO1xuICBob29rLm1lbW9pemVkU3RhdGUgPSBwdXNoRWZmZWN0KEhhc0VmZmVjdCB8IGhvb2tGbGFncywgY3JlYXRlLCB1bmRlZmluZWQsIG5leHREZXBzKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlRWZmZWN0SW1wbChmaWJlckZsYWdzLCBob29rRmxhZ3MsIGNyZWF0ZSwgZGVwcykge1xuICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICB2YXIgbmV4dERlcHMgPSBkZXBzID09PSB1bmRlZmluZWQgPyBudWxsIDogZGVwcztcbiAgdmFyIGRlc3Ryb3kgPSB1bmRlZmluZWQ7XG5cbiAgaWYgKGN1cnJlbnRIb29rICE9PSBudWxsKSB7XG4gICAgdmFyIHByZXZFZmZlY3QgPSBjdXJyZW50SG9vay5tZW1vaXplZFN0YXRlO1xuICAgIGRlc3Ryb3kgPSBwcmV2RWZmZWN0LmRlc3Ryb3k7XG5cbiAgICBpZiAobmV4dERlcHMgIT09IG51bGwpIHtcbiAgICAgIHZhciBwcmV2RGVwcyA9IHByZXZFZmZlY3QuZGVwcztcblxuICAgICAgaWYgKGFyZUhvb2tJbnB1dHNFcXVhbChuZXh0RGVwcywgcHJldkRlcHMpKSB7XG4gICAgICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IHB1c2hFZmZlY3QoaG9va0ZsYWdzLCBjcmVhdGUsIGRlc3Ryb3ksIG5leHREZXBzKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEuZmxhZ3MgfD0gZmliZXJGbGFncztcbiAgaG9vay5tZW1vaXplZFN0YXRlID0gcHVzaEVmZmVjdChIYXNFZmZlY3QgfCBob29rRmxhZ3MsIGNyZWF0ZSwgZGVzdHJveSwgbmV4dERlcHMpO1xufVxuXG5mdW5jdGlvbiBtb3VudEVmZmVjdChjcmVhdGUsIGRlcHMpIHtcbiAgaWYgKCAoY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMS5tb2RlICYgU3RyaWN0RWZmZWN0c01vZGUpICE9PSBOb01vZGUpIHtcbiAgICByZXR1cm4gbW91bnRFZmZlY3RJbXBsKE1vdW50UGFzc2l2ZURldiB8IFBhc3NpdmUgfCBQYXNzaXZlU3RhdGljLCBQYXNzaXZlJDEsIGNyZWF0ZSwgZGVwcyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG1vdW50RWZmZWN0SW1wbChQYXNzaXZlIHwgUGFzc2l2ZVN0YXRpYywgUGFzc2l2ZSQxLCBjcmVhdGUsIGRlcHMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUVmZmVjdChjcmVhdGUsIGRlcHMpIHtcbiAgcmV0dXJuIHVwZGF0ZUVmZmVjdEltcGwoUGFzc2l2ZSwgUGFzc2l2ZSQxLCBjcmVhdGUsIGRlcHMpO1xufVxuXG5mdW5jdGlvbiBtb3VudEluc2VydGlvbkVmZmVjdChjcmVhdGUsIGRlcHMpIHtcbiAgcmV0dXJuIG1vdW50RWZmZWN0SW1wbChVcGRhdGUsIEluc2VydGlvbiwgY3JlYXRlLCBkZXBzKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlSW5zZXJ0aW9uRWZmZWN0KGNyZWF0ZSwgZGVwcykge1xuICByZXR1cm4gdXBkYXRlRWZmZWN0SW1wbChVcGRhdGUsIEluc2VydGlvbiwgY3JlYXRlLCBkZXBzKTtcbn1cblxuZnVuY3Rpb24gbW91bnRMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBmaWJlckZsYWdzID0gVXBkYXRlO1xuXG4gIHtcbiAgICBmaWJlckZsYWdzIHw9IExheW91dFN0YXRpYztcbiAgfVxuXG4gIGlmICggKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEubW9kZSAmIFN0cmljdEVmZmVjdHNNb2RlKSAhPT0gTm9Nb2RlKSB7XG4gICAgZmliZXJGbGFncyB8PSBNb3VudExheW91dERldjtcbiAgfVxuXG4gIHJldHVybiBtb3VudEVmZmVjdEltcGwoZmliZXJGbGFncywgTGF5b3V0LCBjcmVhdGUsIGRlcHMpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gIHJldHVybiB1cGRhdGVFZmZlY3RJbXBsKFVwZGF0ZSwgTGF5b3V0LCBjcmVhdGUsIGRlcHMpO1xufVxuXG5mdW5jdGlvbiBpbXBlcmF0aXZlSGFuZGxlRWZmZWN0KGNyZWF0ZSwgcmVmKSB7XG4gIGlmICh0eXBlb2YgcmVmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdmFyIHJlZkNhbGxiYWNrID0gcmVmO1xuXG4gICAgdmFyIF9pbnN0ID0gY3JlYXRlKCk7XG5cbiAgICByZWZDYWxsYmFjayhfaW5zdCk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJlZkNhbGxiYWNrKG51bGwpO1xuICAgIH07XG4gIH0gZWxzZSBpZiAocmVmICE9PSBudWxsICYmIHJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdmFyIHJlZk9iamVjdCA9IHJlZjtcblxuICAgIHtcbiAgICAgIGlmICghcmVmT2JqZWN0Lmhhc093blByb3BlcnR5KCdjdXJyZW50JykpIHtcbiAgICAgICAgZXJyb3IoJ0V4cGVjdGVkIHVzZUltcGVyYXRpdmVIYW5kbGUoKSBmaXJzdCBhcmd1bWVudCB0byBlaXRoZXIgYmUgYSAnICsgJ3JlZiBjYWxsYmFjayBvciBSZWFjdC5jcmVhdGVSZWYoKSBvYmplY3QuIEluc3RlYWQgcmVjZWl2ZWQ6ICVzLicsICdhbiBvYmplY3Qgd2l0aCBrZXlzIHsnICsgT2JqZWN0LmtleXMocmVmT2JqZWN0KS5qb2luKCcsICcpICsgJ30nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgX2luc3QyID0gY3JlYXRlKCk7XG5cbiAgICByZWZPYmplY3QuY3VycmVudCA9IF9pbnN0MjtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgcmVmT2JqZWN0LmN1cnJlbnQgPSBudWxsO1xuICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gbW91bnRJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gIHtcbiAgICBpZiAodHlwZW9mIGNyZWF0ZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJ0V4cGVjdGVkIHVzZUltcGVyYXRpdmVIYW5kbGUoKSBzZWNvbmQgYXJndW1lbnQgdG8gYmUgYSBmdW5jdGlvbiAnICsgJ3RoYXQgY3JlYXRlcyBhIGhhbmRsZS4gSW5zdGVhZCByZWNlaXZlZDogJXMuJywgY3JlYXRlICE9PSBudWxsID8gdHlwZW9mIGNyZWF0ZSA6ICdudWxsJyk7XG4gICAgfVxuICB9IC8vIFRPRE86IElmIGRlcHMgYXJlIHByb3ZpZGVkLCBzaG91bGQgd2Ugc2tpcCBjb21wYXJpbmcgdGhlIHJlZiBpdHNlbGY/XG5cblxuICB2YXIgZWZmZWN0RGVwcyA9IGRlcHMgIT09IG51bGwgJiYgZGVwcyAhPT0gdW5kZWZpbmVkID8gZGVwcy5jb25jYXQoW3JlZl0pIDogbnVsbDtcbiAgdmFyIGZpYmVyRmxhZ3MgPSBVcGRhdGU7XG5cbiAge1xuICAgIGZpYmVyRmxhZ3MgfD0gTGF5b3V0U3RhdGljO1xuICB9XG5cbiAgaWYgKCAoY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMS5tb2RlICYgU3RyaWN0RWZmZWN0c01vZGUpICE9PSBOb01vZGUpIHtcbiAgICBmaWJlckZsYWdzIHw9IE1vdW50TGF5b3V0RGV2O1xuICB9XG5cbiAgcmV0dXJuIG1vdW50RWZmZWN0SW1wbChmaWJlckZsYWdzLCBMYXlvdXQsIGltcGVyYXRpdmVIYW5kbGVFZmZlY3QuYmluZChudWxsLCBjcmVhdGUsIHJlZiksIGVmZmVjdERlcHMpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gIHtcbiAgICBpZiAodHlwZW9mIGNyZWF0ZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJ0V4cGVjdGVkIHVzZUltcGVyYXRpdmVIYW5kbGUoKSBzZWNvbmQgYXJndW1lbnQgdG8gYmUgYSBmdW5jdGlvbiAnICsgJ3RoYXQgY3JlYXRlcyBhIGhhbmRsZS4gSW5zdGVhZCByZWNlaXZlZDogJXMuJywgY3JlYXRlICE9PSBudWxsID8gdHlwZW9mIGNyZWF0ZSA6ICdudWxsJyk7XG4gICAgfVxuICB9IC8vIFRPRE86IElmIGRlcHMgYXJlIHByb3ZpZGVkLCBzaG91bGQgd2Ugc2tpcCBjb21wYXJpbmcgdGhlIHJlZiBpdHNlbGY/XG5cblxuICB2YXIgZWZmZWN0RGVwcyA9IGRlcHMgIT09IG51bGwgJiYgZGVwcyAhPT0gdW5kZWZpbmVkID8gZGVwcy5jb25jYXQoW3JlZl0pIDogbnVsbDtcbiAgcmV0dXJuIHVwZGF0ZUVmZmVjdEltcGwoVXBkYXRlLCBMYXlvdXQsIGltcGVyYXRpdmVIYW5kbGVFZmZlY3QuYmluZChudWxsLCBjcmVhdGUsIHJlZiksIGVmZmVjdERlcHMpO1xufVxuXG5mdW5jdGlvbiBtb3VudERlYnVnVmFsdWUodmFsdWUsIGZvcm1hdHRlckZuKSB7Ly8gVGhpcyBob29rIGlzIG5vcm1hbGx5IGEgbm8tb3AuXG4gIC8vIFRoZSByZWFjdC1kZWJ1Zy1ob29rcyBwYWNrYWdlIGluamVjdHMgaXRzIG93biBpbXBsZW1lbnRhdGlvblxuICAvLyBzbyB0aGF0IGUuZy4gRGV2VG9vbHMgY2FuIGRpc3BsYXkgY3VzdG9tIGhvb2sgdmFsdWVzLlxufVxuXG52YXIgdXBkYXRlRGVidWdWYWx1ZSA9IG1vdW50RGVidWdWYWx1ZTtcblxuZnVuY3Rpb24gbW91bnRDYWxsYmFjayhjYWxsYmFjaywgZGVwcykge1xuICB2YXIgaG9vayA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gIHZhciBuZXh0RGVwcyA9IGRlcHMgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBkZXBzO1xuICBob29rLm1lbW9pemVkU3RhdGUgPSBbY2FsbGJhY2ssIG5leHREZXBzXTtcbiAgcmV0dXJuIGNhbGxiYWNrO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVDYWxsYmFjayhjYWxsYmFjaywgZGVwcykge1xuICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICB2YXIgbmV4dERlcHMgPSBkZXBzID09PSB1bmRlZmluZWQgPyBudWxsIDogZGVwcztcbiAgdmFyIHByZXZTdGF0ZSA9IGhvb2subWVtb2l6ZWRTdGF0ZTtcblxuICBpZiAocHJldlN0YXRlICE9PSBudWxsKSB7XG4gICAgaWYgKG5leHREZXBzICE9PSBudWxsKSB7XG4gICAgICB2YXIgcHJldkRlcHMgPSBwcmV2U3RhdGVbMV07XG5cbiAgICAgIGlmIChhcmVIb29rSW5wdXRzRXF1YWwobmV4dERlcHMsIHByZXZEZXBzKSkge1xuICAgICAgICByZXR1cm4gcHJldlN0YXRlWzBdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhvb2subWVtb2l6ZWRTdGF0ZSA9IFtjYWxsYmFjaywgbmV4dERlcHNdO1xuICByZXR1cm4gY2FsbGJhY2s7XG59XG5cbmZ1bmN0aW9uIG1vdW50TWVtbyhuZXh0Q3JlYXRlLCBkZXBzKSB7XG4gIHZhciBob29rID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIG5leHREZXBzID0gZGVwcyA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGRlcHM7XG4gIHZhciBuZXh0VmFsdWUgPSBuZXh0Q3JlYXRlKCk7XG4gIGhvb2subWVtb2l6ZWRTdGF0ZSA9IFtuZXh0VmFsdWUsIG5leHREZXBzXTtcbiAgcmV0dXJuIG5leHRWYWx1ZTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlTWVtbyhuZXh0Q3JlYXRlLCBkZXBzKSB7XG4gIHZhciBob29rID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gIHZhciBuZXh0RGVwcyA9IGRlcHMgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBkZXBzO1xuICB2YXIgcHJldlN0YXRlID0gaG9vay5tZW1vaXplZFN0YXRlO1xuXG4gIGlmIChwcmV2U3RhdGUgIT09IG51bGwpIHtcbiAgICAvLyBBc3N1bWUgdGhlc2UgYXJlIGRlZmluZWQuIElmIHRoZXkncmUgbm90LCBhcmVIb29rSW5wdXRzRXF1YWwgd2lsbCB3YXJuLlxuICAgIGlmIChuZXh0RGVwcyAhPT0gbnVsbCkge1xuICAgICAgdmFyIHByZXZEZXBzID0gcHJldlN0YXRlWzFdO1xuXG4gICAgICBpZiAoYXJlSG9va0lucHV0c0VxdWFsKG5leHREZXBzLCBwcmV2RGVwcykpIHtcbiAgICAgICAgcmV0dXJuIHByZXZTdGF0ZVswXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgbmV4dFZhbHVlID0gbmV4dENyZWF0ZSgpO1xuICBob29rLm1lbW9pemVkU3RhdGUgPSBbbmV4dFZhbHVlLCBuZXh0RGVwc107XG4gIHJldHVybiBuZXh0VmFsdWU7XG59XG5cbmZ1bmN0aW9uIG1vdW50RGVmZXJyZWRWYWx1ZSh2YWx1ZSkge1xuICB2YXIgaG9vayA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gIGhvb2subWVtb2l6ZWRTdGF0ZSA9IHZhbHVlO1xuICByZXR1cm4gdmFsdWU7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZURlZmVycmVkVmFsdWUodmFsdWUpIHtcbiAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIHJlc29sdmVkQ3VycmVudEhvb2sgPSBjdXJyZW50SG9vaztcbiAgdmFyIHByZXZWYWx1ZSA9IHJlc29sdmVkQ3VycmVudEhvb2subWVtb2l6ZWRTdGF0ZTtcbiAgcmV0dXJuIHVwZGF0ZURlZmVycmVkVmFsdWVJbXBsKGhvb2ssIHByZXZWYWx1ZSwgdmFsdWUpO1xufVxuXG5mdW5jdGlvbiByZXJlbmRlckRlZmVycmVkVmFsdWUodmFsdWUpIHtcbiAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcblxuICBpZiAoY3VycmVudEhvb2sgPT09IG51bGwpIHtcbiAgICAvLyBUaGlzIGlzIGEgcmVyZW5kZXIgZHVyaW5nIGEgbW91bnQuXG4gICAgaG9vay5tZW1vaXplZFN0YXRlID0gdmFsdWU7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9IGVsc2Uge1xuICAgIC8vIFRoaXMgaXMgYSByZXJlbmRlciBkdXJpbmcgYW4gdXBkYXRlLlxuICAgIHZhciBwcmV2VmFsdWUgPSBjdXJyZW50SG9vay5tZW1vaXplZFN0YXRlO1xuICAgIHJldHVybiB1cGRhdGVEZWZlcnJlZFZhbHVlSW1wbChob29rLCBwcmV2VmFsdWUsIHZhbHVlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB1cGRhdGVEZWZlcnJlZFZhbHVlSW1wbChob29rLCBwcmV2VmFsdWUsIHZhbHVlKSB7XG4gIHZhciBzaG91bGREZWZlclZhbHVlID0gIWluY2x1ZGVzT25seU5vblVyZ2VudExhbmVzKHJlbmRlckxhbmVzKTtcblxuICBpZiAoc2hvdWxkRGVmZXJWYWx1ZSkge1xuICAgIC8vIFRoaXMgaXMgYW4gdXJnZW50IHVwZGF0ZS4gSWYgdGhlIHZhbHVlIGhhcyBjaGFuZ2VkLCBrZWVwIHVzaW5nIHRoZVxuICAgIC8vIHByZXZpb3VzIHZhbHVlIGFuZCBzcGF3biBhIGRlZmVycmVkIHJlbmRlciB0byB1cGRhdGUgaXQgbGF0ZXIuXG4gICAgaWYgKCFvYmplY3RJcyh2YWx1ZSwgcHJldlZhbHVlKSkge1xuICAgICAgLy8gU2NoZWR1bGUgYSBkZWZlcnJlZCByZW5kZXJcbiAgICAgIHZhciBkZWZlcnJlZExhbmUgPSBjbGFpbU5leHRUcmFuc2l0aW9uTGFuZSgpO1xuICAgICAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMS5sYW5lcyA9IG1lcmdlTGFuZXMoY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMS5sYW5lcywgZGVmZXJyZWRMYW5lKTtcbiAgICAgIG1hcmtTa2lwcGVkVXBkYXRlTGFuZXMoZGVmZXJyZWRMYW5lKTsgLy8gU2V0IHRoaXMgdG8gdHJ1ZSB0byBpbmRpY2F0ZSB0aGF0IHRoZSByZW5kZXJlZCB2YWx1ZSBpcyBpbmNvbnNpc3RlbnRcbiAgICAgIC8vIGZyb20gdGhlIGxhdGVzdCB2YWx1ZS4gVGhlIG5hbWUgXCJiYXNlU3RhdGVcIiBkb2Vzbid0IHJlYWxseSBtYXRjaCBob3cgd2VcbiAgICAgIC8vIHVzZSBpdCBiZWNhdXNlIHdlJ3JlIHJldXNpbmcgYSBzdGF0ZSBob29rIGZpZWxkIGluc3RlYWQgb2YgY3JlYXRpbmcgYVxuICAgICAgLy8gbmV3IG9uZS5cblxuICAgICAgaG9vay5iYXNlU3RhdGUgPSB0cnVlO1xuICAgIH0gLy8gUmV1c2UgdGhlIHByZXZpb3VzIHZhbHVlXG5cblxuICAgIHJldHVybiBwcmV2VmFsdWU7XG4gIH0gZWxzZSB7XG4gICAgLy8gVGhpcyBpcyBub3QgYW4gdXJnZW50IHVwZGF0ZSwgc28gd2UgY2FuIHVzZSB0aGUgbGF0ZXN0IHZhbHVlIHJlZ2FyZGxlc3NcbiAgICAvLyBvZiB3aGF0IGl0IGlzLiBObyBuZWVkIHRvIGRlZmVyIGl0LlxuICAgIC8vIEhvd2V2ZXIsIGlmIHdlJ3JlIGN1cnJlbnRseSBpbnNpZGUgYSBzcGF3bmVkIHJlbmRlciwgdGhlbiB3ZSBuZWVkIHRvIG1hcmtcbiAgICAvLyB0aGlzIGFzIGFuIHVwZGF0ZSB0byBwcmV2ZW50IHRoZSBmaWJlciBmcm9tIGJhaWxpbmcgb3V0LlxuICAgIC8vXG4gICAgLy8gYGJhc2VTdGF0ZWAgaXMgdHJ1ZSB3aGVuIHRoZSBjdXJyZW50IHZhbHVlIGlzIGRpZmZlcmVudCBmcm9tIHRoZSByZW5kZXJlZFxuICAgIC8vIHZhbHVlLiBUaGUgbmFtZSBkb2Vzbid0IHJlYWxseSBtYXRjaCBob3cgd2UgdXNlIGl0IGJlY2F1c2Ugd2UncmUgcmV1c2luZ1xuICAgIC8vIGEgc3RhdGUgaG9vayBmaWVsZCBpbnN0ZWFkIG9mIGNyZWF0aW5nIGEgbmV3IG9uZS5cbiAgICBpZiAoaG9vay5iYXNlU3RhdGUpIHtcbiAgICAgIC8vIEZsaXAgdGhpcyBiYWNrIHRvIGZhbHNlLlxuICAgICAgaG9vay5iYXNlU3RhdGUgPSBmYWxzZTtcbiAgICAgIG1hcmtXb3JrSW5Qcm9ncmVzc1JlY2VpdmVkVXBkYXRlKCk7XG4gICAgfVxuXG4gICAgaG9vay5tZW1vaXplZFN0YXRlID0gdmFsdWU7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHN0YXJ0VHJhbnNpdGlvbihzZXRQZW5kaW5nLCBjYWxsYmFjaywgb3B0aW9ucykge1xuICB2YXIgcHJldmlvdXNQcmlvcml0eSA9IGdldEN1cnJlbnRVcGRhdGVQcmlvcml0eSgpO1xuICBzZXRDdXJyZW50VXBkYXRlUHJpb3JpdHkoaGlnaGVyRXZlbnRQcmlvcml0eShwcmV2aW91c1ByaW9yaXR5LCBDb250aW51b3VzRXZlbnRQcmlvcml0eSkpO1xuICBzZXRQZW5kaW5nKHRydWUpO1xuICB2YXIgcHJldlRyYW5zaXRpb24gPSBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQyLnRyYW5zaXRpb247XG4gIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDIudHJhbnNpdGlvbiA9IHt9O1xuICB2YXIgY3VycmVudFRyYW5zaXRpb24gPSBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQyLnRyYW5zaXRpb247XG5cbiAge1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDIudHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycyA9IG5ldyBTZXQoKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgc2V0UGVuZGluZyhmYWxzZSk7XG4gICAgY2FsbGJhY2soKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBzZXRDdXJyZW50VXBkYXRlUHJpb3JpdHkocHJldmlvdXNQcmlvcml0eSk7XG4gICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMi50cmFuc2l0aW9uID0gcHJldlRyYW5zaXRpb247XG5cbiAgICB7XG4gICAgICBpZiAocHJldlRyYW5zaXRpb24gPT09IG51bGwgJiYgY3VycmVudFRyYW5zaXRpb24uX3VwZGF0ZWRGaWJlcnMpIHtcbiAgICAgICAgdmFyIHVwZGF0ZWRGaWJlcnNDb3VudCA9IGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzLnNpemU7XG5cbiAgICAgICAgaWYgKHVwZGF0ZWRGaWJlcnNDb3VudCA+IDEwKSB7XG4gICAgICAgICAgd2FybignRGV0ZWN0ZWQgYSBsYXJnZSBudW1iZXIgb2YgdXBkYXRlcyBpbnNpZGUgc3RhcnRUcmFuc2l0aW9uLiAnICsgJ0lmIHRoaXMgaXMgZHVlIHRvIGEgc3Vic2NyaXB0aW9uIHBsZWFzZSByZS13cml0ZSBpdCB0byB1c2UgUmVhY3QgcHJvdmlkZWQgaG9va3MuICcgKyAnT3RoZXJ3aXNlIGNvbmN1cnJlbnQgbW9kZSBndWFyYW50ZWVzIGFyZSBvZmYgdGhlIHRhYmxlLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgY3VycmVudFRyYW5zaXRpb24uX3VwZGF0ZWRGaWJlcnMuY2xlYXIoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbW91bnRUcmFuc2l0aW9uKCkge1xuICB2YXIgX21vdW50U3RhdGUgPSBtb3VudFN0YXRlKGZhbHNlKSxcbiAgICAgIGlzUGVuZGluZyA9IF9tb3VudFN0YXRlWzBdLFxuICAgICAgc2V0UGVuZGluZyA9IF9tb3VudFN0YXRlWzFdOyAvLyBUaGUgYHN0YXJ0YCBtZXRob2QgbmV2ZXIgY2hhbmdlcy5cblxuXG4gIHZhciBzdGFydCA9IHN0YXJ0VHJhbnNpdGlvbi5iaW5kKG51bGwsIHNldFBlbmRpbmcpO1xuICB2YXIgaG9vayA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gIGhvb2subWVtb2l6ZWRTdGF0ZSA9IHN0YXJ0O1xuICByZXR1cm4gW2lzUGVuZGluZywgc3RhcnRdO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVUcmFuc2l0aW9uKCkge1xuICB2YXIgX3VwZGF0ZVN0YXRlID0gdXBkYXRlU3RhdGUoKSxcbiAgICAgIGlzUGVuZGluZyA9IF91cGRhdGVTdGF0ZVswXTtcblxuICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICB2YXIgc3RhcnQgPSBob29rLm1lbW9pemVkU3RhdGU7XG4gIHJldHVybiBbaXNQZW5kaW5nLCBzdGFydF07XG59XG5cbmZ1bmN0aW9uIHJlcmVuZGVyVHJhbnNpdGlvbigpIHtcbiAgdmFyIF9yZXJlbmRlclN0YXRlID0gcmVyZW5kZXJTdGF0ZSgpLFxuICAgICAgaXNQZW5kaW5nID0gX3JlcmVuZGVyU3RhdGVbMF07XG5cbiAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgdmFyIHN0YXJ0ID0gaG9vay5tZW1vaXplZFN0YXRlO1xuICByZXR1cm4gW2lzUGVuZGluZywgc3RhcnRdO1xufVxuXG52YXIgaXNVcGRhdGluZ09wYXF1ZVZhbHVlSW5SZW5kZXJQaGFzZSA9IGZhbHNlO1xuZnVuY3Rpb24gZ2V0SXNVcGRhdGluZ09wYXF1ZVZhbHVlSW5SZW5kZXJQaGFzZUluREVWKCkge1xuICB7XG4gICAgcmV0dXJuIGlzVXBkYXRpbmdPcGFxdWVWYWx1ZUluUmVuZGVyUGhhc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gbW91bnRJZCgpIHtcbiAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpO1xuICB2YXIgcm9vdCA9IGdldFdvcmtJblByb2dyZXNzUm9vdCgpOyAvLyBUT0RPOiBJbiBGaXp6LCBpZCBnZW5lcmF0aW9uIGlzIHNwZWNpZmljIHRvIGVhY2ggc2VydmVyIGNvbmZpZy4gTWF5YmUgd2VcbiAgLy8gc2hvdWxkIGRvIHRoaXMgaW4gRmliZXIsIHRvbz8gRGVmZXJyaW5nIHRoaXMgZGVjaXNpb24gZm9yIG5vdyBiZWNhdXNlXG4gIC8vIHRoZXJlJ3Mgbm8gb3RoZXIgcGxhY2UgdG8gc3RvcmUgdGhlIHByZWZpeCBleGNlcHQgZm9yIGFuIGludGVybmFsIGZpZWxkIG9uXG4gIC8vIHRoZSBwdWJsaWMgY3JlYXRlUm9vdCBvYmplY3QsIHdoaWNoIHRoZSBmaWJlciB0cmVlIGRvZXMgbm90IGN1cnJlbnRseSBoYXZlXG4gIC8vIGEgcmVmZXJlbmNlIHRvLlxuXG4gIHZhciBpZGVudGlmaWVyUHJlZml4ID0gcm9vdC5pZGVudGlmaWVyUHJlZml4O1xuICB2YXIgaWQ7XG5cbiAgaWYgKGdldElzSHlkcmF0aW5nKCkpIHtcbiAgICB2YXIgdHJlZUlkID0gZ2V0VHJlZUlkKCk7IC8vIFVzZSBhIGNhcHRpYWwgUiBwcmVmaXggZm9yIHNlcnZlci1nZW5lcmF0ZWQgaWRzLlxuXG4gICAgaWQgPSAnOicgKyBpZGVudGlmaWVyUHJlZml4ICsgJ1InICsgdHJlZUlkOyAvLyBVbmxlc3MgdGhpcyBpcyB0aGUgZmlyc3QgaWQgYXQgdGhpcyBsZXZlbCwgYXBwZW5kIGEgbnVtYmVyIGF0IHRoZSBlbmRcbiAgICAvLyB0aGF0IHJlcHJlc2VudHMgdGhlIHBvc2l0aW9uIG9mIHRoaXMgdXNlSWQgaG9vayBhbW9uZyBhbGwgdGhlIHVzZUlkXG4gICAgLy8gaG9va3MgZm9yIHRoaXMgZmliZXIuXG5cbiAgICB2YXIgbG9jYWxJZCA9IGxvY2FsSWRDb3VudGVyKys7XG5cbiAgICBpZiAobG9jYWxJZCA+IDApIHtcbiAgICAgIGlkICs9ICdIJyArIGxvY2FsSWQudG9TdHJpbmcoMzIpO1xuICAgIH1cblxuICAgIGlkICs9ICc6JztcbiAgfSBlbHNlIHtcbiAgICAvLyBVc2UgYSBsb3dlcmNhc2UgciBwcmVmaXggZm9yIGNsaWVudC1nZW5lcmF0ZWQgaWRzLlxuICAgIHZhciBnbG9iYWxDbGllbnRJZCA9IGdsb2JhbENsaWVudElkQ291bnRlcisrO1xuICAgIGlkID0gJzonICsgaWRlbnRpZmllclByZWZpeCArICdyJyArIGdsb2JhbENsaWVudElkLnRvU3RyaW5nKDMyKSArICc6JztcbiAgfVxuXG4gIGhvb2subWVtb2l6ZWRTdGF0ZSA9IGlkO1xuICByZXR1cm4gaWQ7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUlkKCkge1xuICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICB2YXIgaWQgPSBob29rLm1lbW9pemVkU3RhdGU7XG4gIHJldHVybiBpZDtcbn1cblxuZnVuY3Rpb24gZGlzcGF0Y2hSZWR1Y2VyQWN0aW9uKGZpYmVyLCBxdWV1ZSwgYWN0aW9uKSB7XG4gIHtcbiAgICBpZiAodHlwZW9mIGFyZ3VtZW50c1szXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoXCJTdGF0ZSB1cGRhdGVzIGZyb20gdGhlIHVzZVN0YXRlKCkgYW5kIHVzZVJlZHVjZXIoKSBIb29rcyBkb24ndCBzdXBwb3J0IHRoZSBcIiArICdzZWNvbmQgY2FsbGJhY2sgYXJndW1lbnQuIFRvIGV4ZWN1dGUgYSBzaWRlIGVmZmVjdCBhZnRlciAnICsgJ3JlbmRlcmluZywgZGVjbGFyZSBpdCBpbiB0aGUgY29tcG9uZW50IGJvZHkgd2l0aCB1c2VFZmZlY3QoKS4nKTtcbiAgICB9XG4gIH1cblxuICB2YXIgbGFuZSA9IHJlcXVlc3RVcGRhdGVMYW5lKGZpYmVyKTtcbiAgdmFyIHVwZGF0ZSA9IHtcbiAgICBsYW5lOiBsYW5lLFxuICAgIGFjdGlvbjogYWN0aW9uLFxuICAgIGhhc0VhZ2VyU3RhdGU6IGZhbHNlLFxuICAgIGVhZ2VyU3RhdGU6IG51bGwsXG4gICAgbmV4dDogbnVsbFxuICB9O1xuXG4gIGlmIChpc1JlbmRlclBoYXNlVXBkYXRlKGZpYmVyKSkge1xuICAgIGVucXVldWVSZW5kZXJQaGFzZVVwZGF0ZShxdWV1ZSwgdXBkYXRlKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgcm9vdCA9IGVucXVldWVDb25jdXJyZW50SG9va1VwZGF0ZShmaWJlciwgcXVldWUsIHVwZGF0ZSwgbGFuZSk7XG5cbiAgICBpZiAocm9vdCAhPT0gbnVsbCkge1xuICAgICAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihyb290LCBmaWJlciwgbGFuZSwgZXZlbnRUaW1lKTtcbiAgICAgIGVudGFuZ2xlVHJhbnNpdGlvblVwZGF0ZShyb290LCBxdWV1ZSwgbGFuZSk7XG4gICAgfVxuICB9XG5cbiAgbWFya1VwZGF0ZUluRGV2VG9vbHMoZmliZXIsIGxhbmUpO1xufVxuXG5mdW5jdGlvbiBkaXNwYXRjaFNldFN0YXRlKGZpYmVyLCBxdWV1ZSwgYWN0aW9uKSB7XG4gIHtcbiAgICBpZiAodHlwZW9mIGFyZ3VtZW50c1szXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoXCJTdGF0ZSB1cGRhdGVzIGZyb20gdGhlIHVzZVN0YXRlKCkgYW5kIHVzZVJlZHVjZXIoKSBIb29rcyBkb24ndCBzdXBwb3J0IHRoZSBcIiArICdzZWNvbmQgY2FsbGJhY2sgYXJndW1lbnQuIFRvIGV4ZWN1dGUgYSBzaWRlIGVmZmVjdCBhZnRlciAnICsgJ3JlbmRlcmluZywgZGVjbGFyZSBpdCBpbiB0aGUgY29tcG9uZW50IGJvZHkgd2l0aCB1c2VFZmZlY3QoKS4nKTtcbiAgICB9XG4gIH1cblxuICB2YXIgbGFuZSA9IHJlcXVlc3RVcGRhdGVMYW5lKGZpYmVyKTtcbiAgdmFyIHVwZGF0ZSA9IHtcbiAgICBsYW5lOiBsYW5lLFxuICAgIGFjdGlvbjogYWN0aW9uLFxuICAgIGhhc0VhZ2VyU3RhdGU6IGZhbHNlLFxuICAgIGVhZ2VyU3RhdGU6IG51bGwsXG4gICAgbmV4dDogbnVsbFxuICB9O1xuXG4gIGlmIChpc1JlbmRlclBoYXNlVXBkYXRlKGZpYmVyKSkge1xuICAgIGVucXVldWVSZW5kZXJQaGFzZVVwZGF0ZShxdWV1ZSwgdXBkYXRlKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlO1xuXG4gICAgaWYgKGZpYmVyLmxhbmVzID09PSBOb0xhbmVzICYmIChhbHRlcm5hdGUgPT09IG51bGwgfHwgYWx0ZXJuYXRlLmxhbmVzID09PSBOb0xhbmVzKSkge1xuICAgICAgLy8gVGhlIHF1ZXVlIGlzIGN1cnJlbnRseSBlbXB0eSwgd2hpY2ggbWVhbnMgd2UgY2FuIGVhZ2VybHkgY29tcHV0ZSB0aGVcbiAgICAgIC8vIG5leHQgc3RhdGUgYmVmb3JlIGVudGVyaW5nIHRoZSByZW5kZXIgcGhhc2UuIElmIHRoZSBuZXcgc3RhdGUgaXMgdGhlXG4gICAgICAvLyBzYW1lIGFzIHRoZSBjdXJyZW50IHN0YXRlLCB3ZSBtYXkgYmUgYWJsZSB0byBiYWlsIG91dCBlbnRpcmVseS5cbiAgICAgIHZhciBsYXN0UmVuZGVyZWRSZWR1Y2VyID0gcXVldWUubGFzdFJlbmRlcmVkUmVkdWNlcjtcblxuICAgICAgaWYgKGxhc3RSZW5kZXJlZFJlZHVjZXIgIT09IG51bGwpIHtcbiAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyO1xuXG4gICAgICAgIHtcbiAgICAgICAgICBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIHZhciBjdXJyZW50U3RhdGUgPSBxdWV1ZS5sYXN0UmVuZGVyZWRTdGF0ZTtcbiAgICAgICAgICB2YXIgZWFnZXJTdGF0ZSA9IGxhc3RSZW5kZXJlZFJlZHVjZXIoY3VycmVudFN0YXRlLCBhY3Rpb24pOyAvLyBTdGFzaCB0aGUgZWFnZXJseSBjb21wdXRlZCBzdGF0ZSwgYW5kIHRoZSByZWR1Y2VyIHVzZWQgdG8gY29tcHV0ZVxuICAgICAgICAgIC8vIGl0LCBvbiB0aGUgdXBkYXRlIG9iamVjdC4gSWYgdGhlIHJlZHVjZXIgaGFzbid0IGNoYW5nZWQgYnkgdGhlXG4gICAgICAgICAgLy8gdGltZSB3ZSBlbnRlciB0aGUgcmVuZGVyIHBoYXNlLCB0aGVuIHRoZSBlYWdlciBzdGF0ZSBjYW4gYmUgdXNlZFxuICAgICAgICAgIC8vIHdpdGhvdXQgY2FsbGluZyB0aGUgcmVkdWNlciBhZ2Fpbi5cblxuICAgICAgICAgIHVwZGF0ZS5oYXNFYWdlclN0YXRlID0gdHJ1ZTtcbiAgICAgICAgICB1cGRhdGUuZWFnZXJTdGF0ZSA9IGVhZ2VyU3RhdGU7XG5cbiAgICAgICAgICBpZiAob2JqZWN0SXMoZWFnZXJTdGF0ZSwgY3VycmVudFN0YXRlKSkge1xuICAgICAgICAgICAgLy8gRmFzdCBwYXRoLiBXZSBjYW4gYmFpbCBvdXQgd2l0aG91dCBzY2hlZHVsaW5nIFJlYWN0IHRvIHJlLXJlbmRlci5cbiAgICAgICAgICAgIC8vIEl0J3Mgc3RpbGwgcG9zc2libGUgdGhhdCB3ZSdsbCBuZWVkIHRvIHJlYmFzZSB0aGlzIHVwZGF0ZSBsYXRlcixcbiAgICAgICAgICAgIC8vIGlmIHRoZSBjb21wb25lbnQgcmUtcmVuZGVycyBmb3IgYSBkaWZmZXJlbnQgcmVhc29uIGFuZCBieSB0aGF0XG4gICAgICAgICAgICAvLyB0aW1lIHRoZSByZWR1Y2VyIGhhcyBjaGFuZ2VkLlxuICAgICAgICAgICAgLy8gVE9ETzogRG8gd2Ugc3RpbGwgbmVlZCB0byBlbnRhbmdsZSB0cmFuc2l0aW9ucyBpbiB0aGlzIGNhc2U/XG4gICAgICAgICAgICBlbnF1ZXVlQ29uY3VycmVudEhvb2tVcGRhdGVBbmRFYWdlcmx5QmFpbG91dChmaWJlciwgcXVldWUsIHVwZGF0ZSwgbGFuZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikgey8vIFN1cHByZXNzIHRoZSBlcnJvci4gSXQgd2lsbCB0aHJvdyBhZ2FpbiBpbiB0aGUgcmVuZGVyIHBoYXNlLlxuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHJvb3QgPSBlbnF1ZXVlQ29uY3VycmVudEhvb2tVcGRhdGUoZmliZXIsIHF1ZXVlLCB1cGRhdGUsIGxhbmUpO1xuXG4gICAgaWYgKHJvb3QgIT09IG51bGwpIHtcbiAgICAgIHZhciBldmVudFRpbWUgPSByZXF1ZXN0RXZlbnRUaW1lKCk7XG4gICAgICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIocm9vdCwgZmliZXIsIGxhbmUsIGV2ZW50VGltZSk7XG4gICAgICBlbnRhbmdsZVRyYW5zaXRpb25VcGRhdGUocm9vdCwgcXVldWUsIGxhbmUpO1xuICAgIH1cbiAgfVxuXG4gIG1hcmtVcGRhdGVJbkRldlRvb2xzKGZpYmVyLCBsYW5lKTtcbn1cblxuZnVuY3Rpb24gaXNSZW5kZXJQaGFzZVVwZGF0ZShmaWJlcikge1xuICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlO1xuICByZXR1cm4gZmliZXIgPT09IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEgfHwgYWx0ZXJuYXRlICE9PSBudWxsICYmIGFsdGVybmF0ZSA9PT0gY3VycmVudGx5UmVuZGVyaW5nRmliZXIkMTtcbn1cblxuZnVuY3Rpb24gZW5xdWV1ZVJlbmRlclBoYXNlVXBkYXRlKHF1ZXVlLCB1cGRhdGUpIHtcbiAgLy8gVGhpcyBpcyBhIHJlbmRlciBwaGFzZSB1cGRhdGUuIFN0YXNoIGl0IGluIGEgbGF6aWx5LWNyZWF0ZWQgbWFwIG9mXG4gIC8vIHF1ZXVlIC0+IGxpbmtlZCBsaXN0IG9mIHVwZGF0ZXMuIEFmdGVyIHRoaXMgcmVuZGVyIHBhc3MsIHdlJ2xsIHJlc3RhcnRcbiAgLy8gYW5kIGFwcGx5IHRoZSBzdGFzaGVkIHVwZGF0ZXMgb24gdG9wIG9mIHRoZSB3b3JrLWluLXByb2dyZXNzIGhvb2suXG4gIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGVEdXJpbmdUaGlzUGFzcyA9IGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGUgPSB0cnVlO1xuICB2YXIgcGVuZGluZyA9IHF1ZXVlLnBlbmRpbmc7XG5cbiAgaWYgKHBlbmRpbmcgPT09IG51bGwpIHtcbiAgICAvLyBUaGlzIGlzIHRoZSBmaXJzdCB1cGRhdGUuIENyZWF0ZSBhIGNpcmN1bGFyIGxpc3QuXG4gICAgdXBkYXRlLm5leHQgPSB1cGRhdGU7XG4gIH0gZWxzZSB7XG4gICAgdXBkYXRlLm5leHQgPSBwZW5kaW5nLm5leHQ7XG4gICAgcGVuZGluZy5uZXh0ID0gdXBkYXRlO1xuICB9XG5cbiAgcXVldWUucGVuZGluZyA9IHVwZGF0ZTtcbn0gLy8gVE9ETzogTW92ZSB0byBSZWFjdEZpYmVyQ29uY3VycmVudFVwZGF0ZXM/XG5cblxuZnVuY3Rpb24gZW50YW5nbGVUcmFuc2l0aW9uVXBkYXRlKHJvb3QsIHF1ZXVlLCBsYW5lKSB7XG4gIGlmIChpc1RyYW5zaXRpb25MYW5lKGxhbmUpKSB7XG4gICAgdmFyIHF1ZXVlTGFuZXMgPSBxdWV1ZS5sYW5lczsgLy8gSWYgYW55IGVudGFuZ2xlZCBsYW5lcyBhcmUgbm8gbG9uZ2VyIHBlbmRpbmcgb24gdGhlIHJvb3QsIHRoZW4gdGhleVxuICAgIC8vIG11c3QgaGF2ZSBmaW5pc2hlZC4gV2UgY2FuIHJlbW92ZSB0aGVtIGZyb20gdGhlIHNoYXJlZCBxdWV1ZSwgd2hpY2hcbiAgICAvLyByZXByZXNlbnRzIGEgc3VwZXJzZXQgb2YgdGhlIGFjdHVhbGx5IHBlbmRpbmcgbGFuZXMuIEluIHNvbWUgY2FzZXMgd2VcbiAgICAvLyBtYXkgZW50YW5nbGUgbW9yZSB0aGFuIHdlIG5lZWQgdG8sIGJ1dCB0aGF0J3MgT0suIEluIGZhY3QgaXQncyB3b3JzZSBpZlxuICAgIC8vIHdlICpkb24ndCogZW50YW5nbGUgd2hlbiB3ZSBzaG91bGQuXG5cbiAgICBxdWV1ZUxhbmVzID0gaW50ZXJzZWN0TGFuZXMocXVldWVMYW5lcywgcm9vdC5wZW5kaW5nTGFuZXMpOyAvLyBFbnRhbmdsZSB0aGUgbmV3IHRyYW5zaXRpb24gbGFuZSB3aXRoIHRoZSBvdGhlciB0cmFuc2l0aW9uIGxhbmVzLlxuXG4gICAgdmFyIG5ld1F1ZXVlTGFuZXMgPSBtZXJnZUxhbmVzKHF1ZXVlTGFuZXMsIGxhbmUpO1xuICAgIHF1ZXVlLmxhbmVzID0gbmV3UXVldWVMYW5lczsgLy8gRXZlbiBpZiBxdWV1ZS5sYW5lcyBhbHJlYWR5IGluY2x1ZGUgbGFuZSwgd2UgZG9uJ3Qga25vdyBmb3IgY2VydGFpbiBpZlxuICAgIC8vIHRoZSBsYW5lIGZpbmlzaGVkIHNpbmNlIHRoZSBsYXN0IHRpbWUgd2UgZW50YW5nbGVkIGl0LiBTbyB3ZSBuZWVkIHRvXG4gICAgLy8gZW50YW5nbGUgaXQgYWdhaW4sIGp1c3QgdG8gYmUgc3VyZS5cblxuICAgIG1hcmtSb290RW50YW5nbGVkKHJvb3QsIG5ld1F1ZXVlTGFuZXMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1hcmtVcGRhdGVJbkRldlRvb2xzKGZpYmVyLCBsYW5lLCBhY3Rpb24pIHtcblxuICB7XG4gICAgbWFya1N0YXRlVXBkYXRlU2NoZWR1bGVkKGZpYmVyLCBsYW5lKTtcbiAgfVxufVxuXG52YXIgQ29udGV4dE9ubHlEaXNwYXRjaGVyID0ge1xuICByZWFkQ29udGV4dDogcmVhZENvbnRleHQsXG4gIHVzZUNhbGxiYWNrOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZUNvbnRleHQ6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdXNlRWZmZWN0OiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGU6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdXNlSW5zZXJ0aW9uRWZmZWN0OiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZUxheW91dEVmZmVjdDogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICB1c2VNZW1vOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZVJlZHVjZXI6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdXNlUmVmOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZVN0YXRlOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZURlYnVnVmFsdWU6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdXNlRGVmZXJyZWRWYWx1ZTogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICB1c2VUcmFuc2l0aW9uOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gIHVzZU11dGFibGVTb3VyY2U6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdXNlU3luY0V4dGVybmFsU3RvcmU6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdXNlSWQ6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiBlbmFibGVOZXdSZWNvbmNpbGVyXG59O1xuXG52YXIgSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWID0gbnVsbDtcbnZhciBIb29rc0Rpc3BhdGNoZXJPbk1vdW50V2l0aEhvb2tUeXBlc0luREVWID0gbnVsbDtcbnZhciBIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWID0gbnVsbDtcbnZhciBIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVYgPSBudWxsO1xudmFyIEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVYgPSBudWxsO1xudmFyIEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWID0gbnVsbDtcbnZhciBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25SZXJlbmRlckluREVWID0gbnVsbDtcblxue1xuICB2YXIgd2FybkludmFsaWRDb250ZXh0QWNjZXNzID0gZnVuY3Rpb24gKCkge1xuICAgIGVycm9yKCdDb250ZXh0IGNhbiBvbmx5IGJlIHJlYWQgd2hpbGUgUmVhY3QgaXMgcmVuZGVyaW5nLiAnICsgJ0luIGNsYXNzZXMsIHlvdSBjYW4gcmVhZCBpdCBpbiB0aGUgcmVuZGVyIG1ldGhvZCBvciBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMuICcgKyAnSW4gZnVuY3Rpb24gY29tcG9uZW50cywgeW91IGNhbiByZWFkIGl0IGRpcmVjdGx5IGluIHRoZSBmdW5jdGlvbiBib2R5LCBidXQgbm90ICcgKyAnaW5zaWRlIEhvb2tzIGxpa2UgdXNlUmVkdWNlcigpIG9yIHVzZU1lbW8oKS4nKTtcbiAgfTtcblxuICB2YXIgd2FybkludmFsaWRIb29rQWNjZXNzID0gZnVuY3Rpb24gKCkge1xuICAgIGVycm9yKCdEbyBub3QgY2FsbCBIb29rcyBpbnNpZGUgdXNlRWZmZWN0KC4uLiksIHVzZU1lbW8oLi4uKSwgb3Igb3RoZXIgYnVpbHQtaW4gSG9va3MuICcgKyAnWW91IGNhbiBvbmx5IGNhbGwgSG9va3MgYXQgdGhlIHRvcCBsZXZlbCBvZiB5b3VyIFJlYWN0IGZ1bmN0aW9uLiAnICsgJ0ZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvcnVsZXMtb2YtaG9va3MnKTtcbiAgfTtcblxuICBIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVYgPSB7XG4gICAgcmVhZENvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgfSxcbiAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VDYWxsYmFjayc7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgY2hlY2tEZXBzQXJlQXJyYXlEZXYoZGVwcyk7XG4gICAgICByZXR1cm4gbW91bnRDYWxsYmFjayhjYWxsYmFjaywgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlQ29udGV4dCc7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpO1xuICAgIH0sXG4gICAgdXNlRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VFZmZlY3QnO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIGNoZWNrRGVwc0FyZUFycmF5RGV2KGRlcHMpO1xuICAgICAgcmV0dXJuIG1vdW50RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlOiBmdW5jdGlvbiAocmVmLCBjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUltcGVyYXRpdmVIYW5kbGUnO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIGNoZWNrRGVwc0FyZUFycmF5RGV2KGRlcHMpO1xuICAgICAgcmV0dXJuIG1vdW50SW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VJbnNlcnRpb25FZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUluc2VydGlvbkVmZmVjdCc7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgY2hlY2tEZXBzQXJlQXJyYXlEZXYoZGVwcyk7XG4gICAgICByZXR1cm4gbW91bnRJbnNlcnRpb25FZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUxheW91dEVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTGF5b3V0RWZmZWN0JztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICBjaGVja0RlcHNBcmVBcnJheURldihkZXBzKTtcbiAgICAgIHJldHVybiBtb3VudExheW91dEVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlTWVtbzogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTWVtbyc7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgY2hlY2tEZXBzQXJlQXJyYXlEZXYoZGVwcyk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIG1vdW50TWVtbyhjcmVhdGUsIGRlcHMpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZHVjZXI6IGZ1bmN0aW9uIChyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VSZWR1Y2VyJztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIG1vdW50UmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VSZWY6IGZ1bmN0aW9uIChpbml0aWFsVmFsdWUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVJlZic7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50UmVmKGluaXRpYWxWYWx1ZSk7XG4gICAgfSxcbiAgICB1c2VTdGF0ZTogZnVuY3Rpb24gKGluaXRpYWxTdGF0ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlU3RhdGUnO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gbW91bnRTdGF0ZShpbml0aWFsU3RhdGUpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZURlYnVnVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSwgZm9ybWF0dGVyRm4pIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZURlYnVnVmFsdWUnO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudERlYnVnVmFsdWUoKTtcbiAgICB9LFxuICAgIHVzZURlZmVycmVkVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRGVmZXJyZWRWYWx1ZSc7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50RGVmZXJyZWRWYWx1ZSh2YWx1ZSk7XG4gICAgfSxcbiAgICB1c2VUcmFuc2l0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VUcmFuc2l0aW9uJztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRUcmFuc2l0aW9uKCk7XG4gICAgfSxcbiAgICB1c2VNdXRhYmxlU291cmNlOiBmdW5jdGlvbiAoc291cmNlLCBnZXRTbmFwc2hvdCwgc3Vic2NyaWJlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VNdXRhYmxlU291cmNlJztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRNdXRhYmxlU291cmNlKCk7XG4gICAgfSxcbiAgICB1c2VTeW5jRXh0ZXJuYWxTdG9yZTogZnVuY3Rpb24gKHN1YnNjcmliZSwgZ2V0U25hcHNob3QsIGdldFNlcnZlclNuYXBzaG90KSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VTeW5jRXh0ZXJuYWxTdG9yZSc7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50U3luY0V4dGVybmFsU3RvcmUoc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QpO1xuICAgIH0sXG4gICAgdXNlSWQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUlkJztcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRJZCgpO1xuICAgIH0sXG4gICAgdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiBlbmFibGVOZXdSZWNvbmNpbGVyXG4gIH07XG5cbiAgSG9va3NEaXNwYXRjaGVyT25Nb3VudFdpdGhIb29rVHlwZXNJbkRFViA9IHtcbiAgICByZWFkQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTtcbiAgICB9LFxuICAgIHVzZUNhbGxiYWNrOiBmdW5jdGlvbiAoY2FsbGJhY2ssIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNhbGxiYWNrJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50Q2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNvbnRleHQnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgfSxcbiAgICB1c2VFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUVmZmVjdCc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudEVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24gKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJbXBlcmF0aXZlSGFuZGxlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50SW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VJbnNlcnRpb25FZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUluc2VydGlvbkVmZmVjdCc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudEluc2VydGlvbkVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VMYXlvdXRFZmZlY3QnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZU1lbW86IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU1lbW8nO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIG1vdW50TWVtbyhjcmVhdGUsIGRlcHMpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZHVjZXI6IGZ1bmN0aW9uIChyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VSZWR1Y2VyJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBtb3VudFJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlUmVmOiBmdW5jdGlvbiAoaW5pdGlhbFZhbHVlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VSZWYnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRSZWYoaW5pdGlhbFZhbHVlKTtcbiAgICB9LFxuICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoaW5pdGlhbFN0YXRlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VTdGF0ZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gbW91bnRTdGF0ZShpbml0aWFsU3RhdGUpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZURlYnVnVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSwgZm9ybWF0dGVyRm4pIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZURlYnVnVmFsdWUnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnREZWJ1Z1ZhbHVlKCk7XG4gICAgfSxcbiAgICB1c2VEZWZlcnJlZFZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZURlZmVycmVkVmFsdWUnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnREZWZlcnJlZFZhbHVlKHZhbHVlKTtcbiAgICB9LFxuICAgIHVzZVRyYW5zaXRpb246IGZ1bmN0aW9uICgpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVRyYW5zaXRpb24nO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRUcmFuc2l0aW9uKCk7XG4gICAgfSxcbiAgICB1c2VNdXRhYmxlU291cmNlOiBmdW5jdGlvbiAoc291cmNlLCBnZXRTbmFwc2hvdCwgc3Vic2NyaWJlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VNdXRhYmxlU291cmNlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50TXV0YWJsZVNvdXJjZSgpO1xuICAgIH0sXG4gICAgdXNlU3luY0V4dGVybmFsU3RvcmU6IGZ1bmN0aW9uIChzdWJzY3JpYmUsIGdldFNuYXBzaG90LCBnZXRTZXJ2ZXJTbmFwc2hvdCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlU3luY0V4dGVybmFsU3RvcmUnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRTeW5jRXh0ZXJuYWxTdG9yZShzdWJzY3JpYmUsIGdldFNuYXBzaG90LCBnZXRTZXJ2ZXJTbmFwc2hvdCk7XG4gICAgfSxcbiAgICB1c2VJZDogZnVuY3Rpb24gKCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlSWQnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRJZCgpO1xuICAgIH0sXG4gICAgdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiBlbmFibGVOZXdSZWNvbmNpbGVyXG4gIH07XG5cbiAgSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFViA9IHtcbiAgICByZWFkQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTtcbiAgICB9LFxuICAgIHVzZUNhbGxiYWNrOiBmdW5jdGlvbiAoY2FsbGJhY2ssIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUNhbGxiYWNrJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUNhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUNvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VDb250ZXh0JztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpO1xuICAgIH0sXG4gICAgdXNlRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VFZmZlY3QnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlRWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlOiBmdW5jdGlvbiAocmVmLCBjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUltcGVyYXRpdmVIYW5kbGUnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VJbnNlcnRpb25FZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUluc2VydGlvbkVmZmVjdCc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVJbnNlcnRpb25FZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUxheW91dEVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTGF5b3V0RWZmZWN0JztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUxheW91dEVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlTWVtbzogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTWVtbyc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZU1lbW8oY3JlYXRlLCBkZXBzKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VSZWR1Y2VyOiBmdW5jdGlvbiAocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlUmVkdWNlcic7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlUmVmOiBmdW5jdGlvbiAoaW5pdGlhbFZhbHVlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VSZWYnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlUmVmKCk7XG4gICAgfSxcbiAgICB1c2VTdGF0ZTogZnVuY3Rpb24gKGluaXRpYWxTdGF0ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlU3RhdGUnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB1cGRhdGVTdGF0ZShpbml0aWFsU3RhdGUpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZURlYnVnVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSwgZm9ybWF0dGVyRm4pIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZURlYnVnVmFsdWUnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlRGVidWdWYWx1ZSgpO1xuICAgIH0sXG4gICAgdXNlRGVmZXJyZWRWYWx1ZTogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VEZWZlcnJlZFZhbHVlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZURlZmVycmVkVmFsdWUodmFsdWUpO1xuICAgIH0sXG4gICAgdXNlVHJhbnNpdGlvbjogZnVuY3Rpb24gKCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlVHJhbnNpdGlvbic7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVUcmFuc2l0aW9uKCk7XG4gICAgfSxcbiAgICB1c2VNdXRhYmxlU291cmNlOiBmdW5jdGlvbiAoc291cmNlLCBnZXRTbmFwc2hvdCwgc3Vic2NyaWJlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VNdXRhYmxlU291cmNlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZU11dGFibGVTb3VyY2UoKTtcbiAgICB9LFxuICAgIHVzZVN5bmNFeHRlcm5hbFN0b3JlOiBmdW5jdGlvbiAoc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVN5bmNFeHRlcm5hbFN0b3JlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZVN5bmNFeHRlcm5hbFN0b3JlKHN1YnNjcmliZSwgZ2V0U25hcHNob3QpO1xuICAgIH0sXG4gICAgdXNlSWQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUlkJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUlkKCk7XG4gICAgfSxcbiAgICB1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6IGVuYWJsZU5ld1JlY29uY2lsZXJcbiAgfTtcblxuICBIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVYgPSB7XG4gICAgcmVhZENvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgfSxcbiAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VDYWxsYmFjayc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVDYWxsYmFjayhjYWxsYmFjaywgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlQ29udGV4dCc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTtcbiAgICB9LFxuICAgIHVzZUVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRWZmZWN0JztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24gKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJbXBlcmF0aXZlSGFuZGxlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlSW5zZXJ0aW9uRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJbnNlcnRpb25FZmZlY3QnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlSW5zZXJ0aW9uRWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VMYXlvdXRFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUxheW91dEVmZmVjdCc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZU1lbW86IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU1lbW8nO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uUmVyZW5kZXJJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZU1lbW8oY3JlYXRlLCBkZXBzKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VSZWR1Y2VyOiBmdW5jdGlvbiAocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlUmVkdWNlcic7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25SZXJlbmRlckluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gcmVyZW5kZXJSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIH1cbiAgICB9LFxuICAgIHVzZVJlZjogZnVuY3Rpb24gKGluaXRpYWxWYWx1ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlUmVmJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZVJlZigpO1xuICAgIH0sXG4gICAgdXNlU3RhdGU6IGZ1bmN0aW9uIChpbml0aWFsU3RhdGUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVN0YXRlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiByZXJlbmRlclN0YXRlKGluaXRpYWxTdGF0ZSk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24gKHZhbHVlLCBmb3JtYXR0ZXJGbikge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRGVidWdWYWx1ZSc7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVEZWJ1Z1ZhbHVlKCk7XG4gICAgfSxcbiAgICB1c2VEZWZlcnJlZFZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZURlZmVycmVkVmFsdWUnO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gcmVyZW5kZXJEZWZlcnJlZFZhbHVlKHZhbHVlKTtcbiAgICB9LFxuICAgIHVzZVRyYW5zaXRpb246IGZ1bmN0aW9uICgpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVRyYW5zaXRpb24nO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gcmVyZW5kZXJUcmFuc2l0aW9uKCk7XG4gICAgfSxcbiAgICB1c2VNdXRhYmxlU291cmNlOiBmdW5jdGlvbiAoc291cmNlLCBnZXRTbmFwc2hvdCwgc3Vic2NyaWJlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VNdXRhYmxlU291cmNlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZU11dGFibGVTb3VyY2UoKTtcbiAgICB9LFxuICAgIHVzZVN5bmNFeHRlcm5hbFN0b3JlOiBmdW5jdGlvbiAoc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVN5bmNFeHRlcm5hbFN0b3JlJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZVN5bmNFeHRlcm5hbFN0b3JlKHN1YnNjcmliZSwgZ2V0U25hcHNob3QpO1xuICAgIH0sXG4gICAgdXNlSWQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUlkJztcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUlkKCk7XG4gICAgfSxcbiAgICB1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6IGVuYWJsZU5ld1JlY29uY2lsZXJcbiAgfTtcblxuICBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWID0ge1xuICAgIHJlYWRDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgd2FybkludmFsaWRDb250ZXh0QWNjZXNzKCk7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgfSxcbiAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VDYWxsYmFjayc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRDYWxsYmFjayhjYWxsYmFjaywgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlQ29udGV4dCc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgfSxcbiAgICB1c2VFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUVmZmVjdCc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGU6IGZ1bmN0aW9uIChyZWYsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlSW1wZXJhdGl2ZUhhbmRsZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnRJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUluc2VydGlvbkVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlSW5zZXJ0aW9uRWZmZWN0JztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudEluc2VydGlvbkVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VMYXlvdXRFZmZlY3QnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50TGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VNZW1vOiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VNZW1vJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gbW91bnRNZW1vKGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlUmVkdWNlcjogZnVuY3Rpb24gKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVJlZHVjZXInO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBtb3VudFJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlUmVmOiBmdW5jdGlvbiAoaW5pdGlhbFZhbHVlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VSZWYnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50UmVmKGluaXRpYWxWYWx1ZSk7XG4gICAgfSxcbiAgICB1c2VTdGF0ZTogZnVuY3Rpb24gKGluaXRpYWxTdGF0ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlU3RhdGUnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBtb3VudFN0YXRlKGluaXRpYWxTdGF0ZSk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24gKHZhbHVlLCBmb3JtYXR0ZXJGbikge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRGVidWdWYWx1ZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gbW91bnREZWJ1Z1ZhbHVlKCk7XG4gICAgfSxcbiAgICB1c2VEZWZlcnJlZFZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZURlZmVycmVkVmFsdWUnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50RGVmZXJyZWRWYWx1ZSh2YWx1ZSk7XG4gICAgfSxcbiAgICB1c2VUcmFuc2l0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VUcmFuc2l0aW9uJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudFRyYW5zaXRpb24oKTtcbiAgICB9LFxuICAgIHVzZU11dGFibGVTb3VyY2U6IGZ1bmN0aW9uIChzb3VyY2UsIGdldFNuYXBzaG90LCBzdWJzY3JpYmUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZU11dGFibGVTb3VyY2UnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50TXV0YWJsZVNvdXJjZSgpO1xuICAgIH0sXG4gICAgdXNlU3luY0V4dGVybmFsU3RvcmU6IGZ1bmN0aW9uIChzdWJzY3JpYmUsIGdldFNuYXBzaG90LCBnZXRTZXJ2ZXJTbmFwc2hvdCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlU3luY0V4dGVybmFsU3RvcmUnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIG1vdW50U3luY0V4dGVybmFsU3RvcmUoc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QpO1xuICAgIH0sXG4gICAgdXNlSWQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZUlkJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiBtb3VudElkKCk7XG4gICAgfSxcbiAgICB1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6IGVuYWJsZU5ld1JlY29uY2lsZXJcbiAgfTtcblxuICBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFViA9IHtcbiAgICByZWFkQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgIHdhcm5JbnZhbGlkQ29udGV4dEFjY2VzcygpO1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpO1xuICAgIH0sXG4gICAgdXNlQ2FsbGJhY2s6IGZ1bmN0aW9uIChjYWxsYmFjaywgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlQ2FsbGJhY2snO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVDYWxsYmFjayhjYWxsYmFjaywgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlQ29udGV4dCc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpO1xuICAgIH0sXG4gICAgdXNlRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VFZmZlY3QnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGU6IGZ1bmN0aW9uIChyZWYsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlSW1wZXJhdGl2ZUhhbmRsZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlSW5zZXJ0aW9uRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJbnNlcnRpb25FZmZlY3QnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVJbnNlcnRpb25FZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUxheW91dEVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTGF5b3V0RWZmZWN0JztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlTGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VNZW1vOiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VNZW1vJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB1cGRhdGVNZW1vKGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlUmVkdWNlcjogZnVuY3Rpb24gKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVJlZHVjZXInO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlUmVmOiBmdW5jdGlvbiAoaW5pdGlhbFZhbHVlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VSZWYnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVSZWYoKTtcbiAgICB9LFxuICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoaW5pdGlhbFN0YXRlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VTdGF0ZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQ7XG4gICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWO1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdXBkYXRlU3RhdGUoaW5pdGlhbFN0YXRlKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VEZWJ1Z1ZhbHVlOiBmdW5jdGlvbiAodmFsdWUsIGZvcm1hdHRlckZuKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VEZWJ1Z1ZhbHVlJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlRGVidWdWYWx1ZSgpO1xuICAgIH0sXG4gICAgdXNlRGVmZXJyZWRWYWx1ZTogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VEZWZlcnJlZFZhbHVlJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlRGVmZXJyZWRWYWx1ZSh2YWx1ZSk7XG4gICAgfSxcbiAgICB1c2VUcmFuc2l0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VUcmFuc2l0aW9uJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlVHJhbnNpdGlvbigpO1xuICAgIH0sXG4gICAgdXNlTXV0YWJsZVNvdXJjZTogZnVuY3Rpb24gKHNvdXJjZSwgZ2V0U25hcHNob3QsIHN1YnNjcmliZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTXV0YWJsZVNvdXJjZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZU11dGFibGVTb3VyY2UoKTtcbiAgICB9LFxuICAgIHVzZVN5bmNFeHRlcm5hbFN0b3JlOiBmdW5jdGlvbiAoc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVN5bmNFeHRlcm5hbFN0b3JlJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlU3luY0V4dGVybmFsU3RvcmUoc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCk7XG4gICAgfSxcbiAgICB1c2VJZDogZnVuY3Rpb24gKCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlSWQnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVJZCgpO1xuICAgIH0sXG4gICAgdW5zdGFibGVfaXNOZXdSZWNvbmNpbGVyOiBlbmFibGVOZXdSZWNvbmNpbGVyXG4gIH07XG5cbiAgSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uUmVyZW5kZXJJbkRFViA9IHtcbiAgICByZWFkQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgIHdhcm5JbnZhbGlkQ29udGV4dEFjY2VzcygpO1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpO1xuICAgIH0sXG4gICAgdXNlQ2FsbGJhY2s6IGZ1bmN0aW9uIChjYWxsYmFjaywgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlQ2FsbGJhY2snO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVDYWxsYmFjayhjYWxsYmFjaywgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlQ29udGV4dCc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpO1xuICAgIH0sXG4gICAgdXNlRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VFZmZlY3QnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUltcGVyYXRpdmVIYW5kbGU6IGZ1bmN0aW9uIChyZWYsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlSW1wZXJhdGl2ZUhhbmRsZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgIH0sXG4gICAgdXNlSW5zZXJ0aW9uRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJbnNlcnRpb25FZmZlY3QnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVJbnNlcnRpb25FZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9LFxuICAgIHVzZUxheW91dEVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlTGF5b3V0RWZmZWN0JztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlTGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfSxcbiAgICB1c2VNZW1vOiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VNZW1vJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB1cGRhdGVNZW1vKGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlUmVkdWNlcjogZnVuY3Rpb24gKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVJlZHVjZXInO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50O1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHJlcmVuZGVyUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICB9XG4gICAgfSxcbiAgICB1c2VSZWY6IGZ1bmN0aW9uIChpbml0aWFsVmFsdWUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVJlZic7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZVJlZigpO1xuICAgIH0sXG4gICAgdXNlU3RhdGU6IGZ1bmN0aW9uIChpbml0aWFsU3RhdGUpIHtcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gJ3VzZVN0YXRlJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiByZXJlbmRlclN0YXRlKGluaXRpYWxTdGF0ZSk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgfVxuICAgIH0sXG4gICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24gKHZhbHVlLCBmb3JtYXR0ZXJGbikge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRGVidWdWYWx1ZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZURlYnVnVmFsdWUoKTtcbiAgICB9LFxuICAgIHVzZURlZmVycmVkVmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlRGVmZXJyZWRWYWx1ZSc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHJlcmVuZGVyRGVmZXJyZWRWYWx1ZSh2YWx1ZSk7XG4gICAgfSxcbiAgICB1c2VUcmFuc2l0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VUcmFuc2l0aW9uJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gcmVyZW5kZXJUcmFuc2l0aW9uKCk7XG4gICAgfSxcbiAgICB1c2VNdXRhYmxlU291cmNlOiBmdW5jdGlvbiAoc291cmNlLCBnZXRTbmFwc2hvdCwgc3Vic2NyaWJlKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VNdXRhYmxlU291cmNlJztcbiAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICByZXR1cm4gdXBkYXRlTXV0YWJsZVNvdXJjZSgpO1xuICAgIH0sXG4gICAgdXNlU3luY0V4dGVybmFsU3RvcmU6IGZ1bmN0aW9uIChzdWJzY3JpYmUsIGdldFNuYXBzaG90LCBnZXRTZXJ2ZXJTbmFwc2hvdCkge1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSAndXNlU3luY0V4dGVybmFsU3RvcmUnO1xuICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIHJldHVybiB1cGRhdGVTeW5jRXh0ZXJuYWxTdG9yZShzdWJzY3JpYmUsIGdldFNuYXBzaG90KTtcbiAgICB9LFxuICAgIHVzZUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9ICd1c2VJZCc7XG4gICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUlkKCk7XG4gICAgfSxcbiAgICB1bnN0YWJsZV9pc05ld1JlY29uY2lsZXI6IGVuYWJsZU5ld1JlY29uY2lsZXJcbiAgfTtcbn1cblxudmFyIG5vdyQxID0gU2NoZWR1bGVyLnVuc3RhYmxlX25vdztcbnZhciBjb21taXRUaW1lID0gMDtcbnZhciBsYXlvdXRFZmZlY3RTdGFydFRpbWUgPSAtMTtcbnZhciBwcm9maWxlclN0YXJ0VGltZSA9IC0xO1xudmFyIHBhc3NpdmVFZmZlY3RTdGFydFRpbWUgPSAtMTtcbi8qKlxuICogVHJhY2tzIHdoZXRoZXIgdGhlIGN1cnJlbnQgdXBkYXRlIHdhcyBhIG5lc3RlZC9jYXNjYWRpbmcgdXBkYXRlIChzY2hlZHVsZWQgZnJvbSBhIGxheW91dCBlZmZlY3QpLlxuICpcbiAqIFRoZSBvdmVyYWxsIHNlcXVlbmNlIGlzOlxuICogICAxLiByZW5kZXJcbiAqICAgMi4gY29tbWl0IChhbmQgY2FsbCBgb25SZW5kZXJgLCBgb25Db21taXRgKVxuICogICAzLiBjaGVjayBmb3IgbmVzdGVkIHVwZGF0ZXNcbiAqICAgNC4gZmx1c2ggcGFzc2l2ZSBlZmZlY3RzIChhbmQgY2FsbCBgb25Qb3N0Q29tbWl0YClcbiAqXG4gKiBOZXN0ZWQgdXBkYXRlcyBhcmUgaWRlbnRpZmllZCBpbiBzdGVwIDMgYWJvdmUsXG4gKiBidXQgc3RlcCA0IHN0aWxsIGFwcGxpZXMgdG8gdGhlIHdvcmsgdGhhdCB3YXMganVzdCBjb21taXR0ZWQuXG4gKiBXZSB1c2UgdHdvIGZsYWdzIHRvIHRyYWNrIG5lc3RlZCB1cGRhdGVzIHRoZW46XG4gKiBvbmUgdHJhY2tzIHdoZXRoZXIgdGhlIHVwY29taW5nIHVwZGF0ZSBpcyBhIG5lc3RlZCB1cGRhdGUsXG4gKiBhbmQgdGhlIG90aGVyIHRyYWNrcyB3aGV0aGVyIHRoZSBjdXJyZW50IHVwZGF0ZSB3YXMgYSBuZXN0ZWQgdXBkYXRlLlxuICogVGhlIGZpcnN0IHZhbHVlIGdldHMgc3luY2VkIHRvIHRoZSBzZWNvbmQgYXQgdGhlIHN0YXJ0IG9mIHRoZSByZW5kZXIgcGhhc2UuXG4gKi9cblxudmFyIGN1cnJlbnRVcGRhdGVJc05lc3RlZCA9IGZhbHNlO1xudmFyIG5lc3RlZFVwZGF0ZVNjaGVkdWxlZCA9IGZhbHNlO1xuXG5mdW5jdGlvbiBpc0N1cnJlbnRVcGRhdGVOZXN0ZWQoKSB7XG4gIHJldHVybiBjdXJyZW50VXBkYXRlSXNOZXN0ZWQ7XG59XG5cbmZ1bmN0aW9uIG1hcmtOZXN0ZWRVcGRhdGVTY2hlZHVsZWQoKSB7XG4gIHtcbiAgICBuZXN0ZWRVcGRhdGVTY2hlZHVsZWQgPSB0cnVlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlc2V0TmVzdGVkVXBkYXRlRmxhZygpIHtcbiAge1xuICAgIGN1cnJlbnRVcGRhdGVJc05lc3RlZCA9IGZhbHNlO1xuICAgIG5lc3RlZFVwZGF0ZVNjaGVkdWxlZCA9IGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHN5bmNOZXN0ZWRVcGRhdGVGbGFnKCkge1xuICB7XG4gICAgY3VycmVudFVwZGF0ZUlzTmVzdGVkID0gbmVzdGVkVXBkYXRlU2NoZWR1bGVkO1xuICAgIG5lc3RlZFVwZGF0ZVNjaGVkdWxlZCA9IGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldENvbW1pdFRpbWUoKSB7XG4gIHJldHVybiBjb21taXRUaW1lO1xufVxuXG5mdW5jdGlvbiByZWNvcmRDb21taXRUaW1lKCkge1xuXG4gIGNvbW1pdFRpbWUgPSBub3ckMSgpO1xufVxuXG5mdW5jdGlvbiBzdGFydFByb2ZpbGVyVGltZXIoZmliZXIpIHtcblxuICBwcm9maWxlclN0YXJ0VGltZSA9IG5vdyQxKCk7XG5cbiAgaWYgKGZpYmVyLmFjdHVhbFN0YXJ0VGltZSA8IDApIHtcbiAgICBmaWJlci5hY3R1YWxTdGFydFRpbWUgPSBub3ckMSgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHN0b3BQcm9maWxlclRpbWVySWZSdW5uaW5nKGZpYmVyKSB7XG5cbiAgcHJvZmlsZXJTdGFydFRpbWUgPSAtMTtcbn1cblxuZnVuY3Rpb24gc3RvcFByb2ZpbGVyVGltZXJJZlJ1bm5pbmdBbmRSZWNvcmREZWx0YShmaWJlciwgb3ZlcnJpZGVCYXNlVGltZSkge1xuXG4gIGlmIChwcm9maWxlclN0YXJ0VGltZSA+PSAwKSB7XG4gICAgdmFyIGVsYXBzZWRUaW1lID0gbm93JDEoKSAtIHByb2ZpbGVyU3RhcnRUaW1lO1xuICAgIGZpYmVyLmFjdHVhbER1cmF0aW9uICs9IGVsYXBzZWRUaW1lO1xuXG4gICAgaWYgKG92ZXJyaWRlQmFzZVRpbWUpIHtcbiAgICAgIGZpYmVyLnNlbGZCYXNlRHVyYXRpb24gPSBlbGFwc2VkVGltZTtcbiAgICB9XG5cbiAgICBwcm9maWxlclN0YXJ0VGltZSA9IC0xO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlY29yZExheW91dEVmZmVjdER1cmF0aW9uKGZpYmVyKSB7XG5cbiAgaWYgKGxheW91dEVmZmVjdFN0YXJ0VGltZSA+PSAwKSB7XG4gICAgdmFyIGVsYXBzZWRUaW1lID0gbm93JDEoKSAtIGxheW91dEVmZmVjdFN0YXJ0VGltZTtcbiAgICBsYXlvdXRFZmZlY3RTdGFydFRpbWUgPSAtMTsgLy8gU3RvcmUgZHVyYXRpb24gb24gdGhlIG5leHQgbmVhcmVzdCBQcm9maWxlciBhbmNlc3RvclxuICAgIC8vIE9yIHRoZSByb290IChmb3IgdGhlIERldlRvb2xzIFByb2ZpbGVyIHRvIHJlYWQpXG5cbiAgICB2YXIgcGFyZW50RmliZXIgPSBmaWJlci5yZXR1cm47XG5cbiAgICB3aGlsZSAocGFyZW50RmliZXIgIT09IG51bGwpIHtcbiAgICAgIHN3aXRjaCAocGFyZW50RmliZXIudGFnKSB7XG4gICAgICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICAgICAgdmFyIHJvb3QgPSBwYXJlbnRGaWJlci5zdGF0ZU5vZGU7XG4gICAgICAgICAgcm9vdC5lZmZlY3REdXJhdGlvbiArPSBlbGFwc2VkVGltZTtcbiAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgY2FzZSBQcm9maWxlcjpcbiAgICAgICAgICB2YXIgcGFyZW50U3RhdGVOb2RlID0gcGFyZW50RmliZXIuc3RhdGVOb2RlO1xuICAgICAgICAgIHBhcmVudFN0YXRlTm9kZS5lZmZlY3REdXJhdGlvbiArPSBlbGFwc2VkVGltZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIucmV0dXJuO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZWNvcmRQYXNzaXZlRWZmZWN0RHVyYXRpb24oZmliZXIpIHtcblxuICBpZiAocGFzc2l2ZUVmZmVjdFN0YXJ0VGltZSA+PSAwKSB7XG4gICAgdmFyIGVsYXBzZWRUaW1lID0gbm93JDEoKSAtIHBhc3NpdmVFZmZlY3RTdGFydFRpbWU7XG4gICAgcGFzc2l2ZUVmZmVjdFN0YXJ0VGltZSA9IC0xOyAvLyBTdG9yZSBkdXJhdGlvbiBvbiB0aGUgbmV4dCBuZWFyZXN0IFByb2ZpbGVyIGFuY2VzdG9yXG4gICAgLy8gT3IgdGhlIHJvb3QgKGZvciB0aGUgRGV2VG9vbHMgUHJvZmlsZXIgdG8gcmVhZClcblxuICAgIHZhciBwYXJlbnRGaWJlciA9IGZpYmVyLnJldHVybjtcblxuICAgIHdoaWxlIChwYXJlbnRGaWJlciAhPT0gbnVsbCkge1xuICAgICAgc3dpdGNoIChwYXJlbnRGaWJlci50YWcpIHtcbiAgICAgICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgICAgICB2YXIgcm9vdCA9IHBhcmVudEZpYmVyLnN0YXRlTm9kZTtcblxuICAgICAgICAgIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgICAgICAgICByb290LnBhc3NpdmVFZmZlY3REdXJhdGlvbiArPSBlbGFwc2VkVGltZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgY2FzZSBQcm9maWxlcjpcbiAgICAgICAgICB2YXIgcGFyZW50U3RhdGVOb2RlID0gcGFyZW50RmliZXIuc3RhdGVOb2RlO1xuXG4gICAgICAgICAgaWYgKHBhcmVudFN0YXRlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gRGV0YWNoZWQgZmliZXJzIGhhdmUgdGhlaXIgc3RhdGUgbm9kZSBjbGVhcmVkIG91dC5cbiAgICAgICAgICAgIC8vIEluIHRoaXMgY2FzZSwgdGhlIHJldHVybiBwb2ludGVyIGlzIGFsc28gY2xlYXJlZCBvdXQsXG4gICAgICAgICAgICAvLyBzbyB3ZSB3b24ndCBiZSBhYmxlIHRvIHJlcG9ydCB0aGUgdGltZSBzcGVudCBpbiB0aGlzIFByb2ZpbGVyJ3Mgc3VidHJlZS5cbiAgICAgICAgICAgIHBhcmVudFN0YXRlTm9kZS5wYXNzaXZlRWZmZWN0RHVyYXRpb24gKz0gZWxhcHNlZFRpbWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLnJldHVybjtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc3RhcnRMYXlvdXRFZmZlY3RUaW1lcigpIHtcblxuICBsYXlvdXRFZmZlY3RTdGFydFRpbWUgPSBub3ckMSgpO1xufVxuXG5mdW5jdGlvbiBzdGFydFBhc3NpdmVFZmZlY3RUaW1lcigpIHtcblxuICBwYXNzaXZlRWZmZWN0U3RhcnRUaW1lID0gbm93JDEoKTtcbn1cblxuZnVuY3Rpb24gdHJhbnNmZXJBY3R1YWxEdXJhdGlvbihmaWJlcikge1xuICAvLyBUcmFuc2ZlciB0aW1lIHNwZW50IHJlbmRlcmluZyB0aGVzZSBjaGlsZHJlbiBzbyB3ZSBkb24ndCBsb3NlIGl0XG4gIC8vIGFmdGVyIHdlIHJlcmVuZGVyLiBUaGlzIGlzIHVzZWQgYXMgYSBoZWxwZXIgaW4gc3BlY2lhbCBjYXNlc1xuICAvLyB3aGVyZSB3ZSBzaG91bGQgY291bnQgdGhlIHdvcmsgb2YgbXVsdGlwbGUgcGFzc2VzLlxuICB2YXIgY2hpbGQgPSBmaWJlci5jaGlsZDtcblxuICB3aGlsZSAoY2hpbGQpIHtcbiAgICBmaWJlci5hY3R1YWxEdXJhdGlvbiArPSBjaGlsZC5hY3R1YWxEdXJhdGlvbjtcbiAgICBjaGlsZCA9IGNoaWxkLnNpYmxpbmc7XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlQ2FwdHVyZWRWYWx1ZUF0RmliZXIodmFsdWUsIHNvdXJjZSkge1xuICAvLyBJZiB0aGUgdmFsdWUgaXMgYW4gZXJyb3IsIGNhbGwgdGhpcyBmdW5jdGlvbiBpbW1lZGlhdGVseSBhZnRlciBpdCBpcyB0aHJvd25cbiAgLy8gc28gdGhlIHN0YWNrIGlzIGFjY3VyYXRlLlxuICByZXR1cm4ge1xuICAgIHZhbHVlOiB2YWx1ZSxcbiAgICBzb3VyY2U6IHNvdXJjZSxcbiAgICBzdGFjazogZ2V0U3RhY2tCeUZpYmVySW5EZXZBbmRQcm9kKHNvdXJjZSksXG4gICAgZGlnZXN0OiBudWxsXG4gIH07XG59XG5mdW5jdGlvbiBjcmVhdGVDYXB0dXJlZFZhbHVlKHZhbHVlLCBkaWdlc3QsIHN0YWNrKSB7XG4gIHJldHVybiB7XG4gICAgdmFsdWU6IHZhbHVlLFxuICAgIHNvdXJjZTogbnVsbCxcbiAgICBzdGFjazogc3RhY2sgIT0gbnVsbCA/IHN0YWNrIDogbnVsbCxcbiAgICBkaWdlc3Q6IGRpZ2VzdCAhPSBudWxsID8gZGlnZXN0IDogbnVsbFxuICB9O1xufVxuXG4vLyBUaGlzIG1vZHVsZSBpcyBmb3JrZWQgaW4gZGlmZmVyZW50IGVudmlyb25tZW50cy5cbi8vIEJ5IGRlZmF1bHQsIHJldHVybiBgdHJ1ZWAgdG8gbG9nIGVycm9ycyB0byB0aGUgY29uc29sZS5cbi8vIEZvcmtzIGNhbiByZXR1cm4gYGZhbHNlYCBpZiB0aGlzIGlzbid0IGRlc2lyYWJsZS5cbmZ1bmN0aW9uIHNob3dFcnJvckRpYWxvZyhib3VuZGFyeSwgZXJyb3JJbmZvKSB7XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBsb2dDYXB0dXJlZEVycm9yKGJvdW5kYXJ5LCBlcnJvckluZm8pIHtcbiAgdHJ5IHtcbiAgICB2YXIgbG9nRXJyb3IgPSBzaG93RXJyb3JEaWFsb2coYm91bmRhcnksIGVycm9ySW5mbyk7IC8vIEFsbG93IGluamVjdGVkIHNob3dFcnJvckRpYWxvZygpIHRvIHByZXZlbnQgZGVmYXVsdCBjb25zb2xlLmVycm9yIGxvZ2dpbmcuXG4gICAgLy8gVGhpcyBlbmFibGVzIHJlbmRlcmVycyBsaWtlIFJlYWN0TmF0aXZlIHRvIGJldHRlciBtYW5hZ2UgcmVkYm94IGJlaGF2aW9yLlxuXG4gICAgaWYgKGxvZ0Vycm9yID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBlcnJvciA9IGVycm9ySW5mby52YWx1ZTtcblxuICAgIGlmICh0cnVlKSB7XG4gICAgICB2YXIgc291cmNlID0gZXJyb3JJbmZvLnNvdXJjZTtcbiAgICAgIHZhciBzdGFjayA9IGVycm9ySW5mby5zdGFjaztcbiAgICAgIHZhciBjb21wb25lbnRTdGFjayA9IHN0YWNrICE9PSBudWxsID8gc3RhY2sgOiAnJzsgLy8gQnJvd3NlcnMgc3VwcG9ydCBzaWxlbmNpbmcgdW5jYXVnaHQgZXJyb3JzIGJ5IGNhbGxpbmdcbiAgICAgIC8vIGBwcmV2ZW50RGVmYXVsdCgpYCBpbiB3aW5kb3cgYGVycm9yYCBoYW5kbGVyLlxuICAgICAgLy8gV2UgcmVjb3JkIHRoaXMgaW5mb3JtYXRpb24gYXMgYW4gZXhwYW5kbyBvbiB0aGUgZXJyb3IuXG5cbiAgICAgIGlmIChlcnJvciAhPSBudWxsICYmIGVycm9yLl9zdXBwcmVzc0xvZ2dpbmcpIHtcbiAgICAgICAgaWYgKGJvdW5kYXJ5LnRhZyA9PT0gQ2xhc3NDb21wb25lbnQpIHtcbiAgICAgICAgICAvLyBUaGUgZXJyb3IgaXMgcmVjb3ZlcmFibGUgYW5kIHdhcyBzaWxlbmNlZC5cbiAgICAgICAgICAvLyBJZ25vcmUgaXQgYW5kIGRvbid0IHByaW50IHRoZSBzdGFjayBhZGRlbmR1bS5cbiAgICAgICAgICAvLyBUaGlzIGlzIGhhbmR5IGZvciB0ZXN0aW5nIGVycm9yIGJvdW5kYXJpZXMgd2l0aG91dCBub2lzZS5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gLy8gVGhlIGVycm9yIGlzIGZhdGFsLiBTaW5jZSB0aGUgc2lsZW5jaW5nIG1pZ2h0IGhhdmVcbiAgICAgICAgLy8gYmVlbiBhY2NpZGVudGFsLCB3ZSdsbCBzdXJmYWNlIGl0IGFueXdheS5cbiAgICAgICAgLy8gSG93ZXZlciwgdGhlIGJyb3dzZXIgd291bGQgaGF2ZSBzaWxlbmNlZCB0aGUgb3JpZ2luYWwgZXJyb3JcbiAgICAgICAgLy8gc28gd2UnbGwgcHJpbnQgaXQgZmlyc3QsIGFuZCB0aGVuIHByaW50IHRoZSBzdGFjayBhZGRlbmR1bS5cblxuXG4gICAgICAgIGNvbnNvbGVbJ2Vycm9yJ10oZXJyb3IpOyAvLyBEb24ndCB0cmFuc2Zvcm0gdG8gb3VyIHdyYXBwZXJcbiAgICAgICAgLy8gRm9yIGEgbW9yZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiB0aGlzIGJsb2NrLCBzZWU6XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9wdWxsLzEzMzg0XG4gICAgICB9XG5cbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gc291cmNlID8gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihzb3VyY2UpIDogbnVsbDtcbiAgICAgIHZhciBjb21wb25lbnROYW1lTWVzc2FnZSA9IGNvbXBvbmVudE5hbWUgPyBcIlRoZSBhYm92ZSBlcnJvciBvY2N1cnJlZCBpbiB0aGUgPFwiICsgY29tcG9uZW50TmFtZSArIFwiPiBjb21wb25lbnQ6XCIgOiAnVGhlIGFib3ZlIGVycm9yIG9jY3VycmVkIGluIG9uZSBvZiB5b3VyIFJlYWN0IGNvbXBvbmVudHM6JztcbiAgICAgIHZhciBlcnJvckJvdW5kYXJ5TWVzc2FnZTtcblxuICAgICAgaWYgKGJvdW5kYXJ5LnRhZyA9PT0gSG9zdFJvb3QpIHtcbiAgICAgICAgZXJyb3JCb3VuZGFyeU1lc3NhZ2UgPSAnQ29uc2lkZXIgYWRkaW5nIGFuIGVycm9yIGJvdW5kYXJ5IHRvIHlvdXIgdHJlZSB0byBjdXN0b21pemUgZXJyb3IgaGFuZGxpbmcgYmVoYXZpb3IuXFxuJyArICdWaXNpdCBodHRwczovL3JlYWN0anMub3JnL2xpbmsvZXJyb3ItYm91bmRhcmllcyB0byBsZWFybiBtb3JlIGFib3V0IGVycm9yIGJvdW5kYXJpZXMuJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBlcnJvckJvdW5kYXJ5TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoYm91bmRhcnkpIHx8ICdBbm9ueW1vdXMnO1xuICAgICAgICBlcnJvckJvdW5kYXJ5TWVzc2FnZSA9IFwiUmVhY3Qgd2lsbCB0cnkgdG8gcmVjcmVhdGUgdGhpcyBjb21wb25lbnQgdHJlZSBmcm9tIHNjcmF0Y2ggXCIgKyAoXCJ1c2luZyB0aGUgZXJyb3IgYm91bmRhcnkgeW91IHByb3ZpZGVkLCBcIiArIGVycm9yQm91bmRhcnlOYW1lICsgXCIuXCIpO1xuICAgICAgfVxuXG4gICAgICB2YXIgY29tYmluZWRNZXNzYWdlID0gY29tcG9uZW50TmFtZU1lc3NhZ2UgKyBcIlxcblwiICsgY29tcG9uZW50U3RhY2sgKyBcIlxcblxcblwiICsgKFwiXCIgKyBlcnJvckJvdW5kYXJ5TWVzc2FnZSk7IC8vIEluIGRldmVsb3BtZW50LCB3ZSBwcm92aWRlIG91ciBvd24gbWVzc2FnZSB3aXRoIGp1c3QgdGhlIGNvbXBvbmVudCBzdGFjay5cbiAgICAgIC8vIFdlIGRvbid0IGluY2x1ZGUgdGhlIG9yaWdpbmFsIGVycm9yIG1lc3NhZ2UgYW5kIEpTIHN0YWNrIGJlY2F1c2UgdGhlIGJyb3dzZXJcbiAgICAgIC8vIGhhcyBhbHJlYWR5IHByaW50ZWQgaXQuIEV2ZW4gaWYgdGhlIGFwcGxpY2F0aW9uIHN3YWxsb3dzIHRoZSBlcnJvciwgaXQgaXMgc3RpbGxcbiAgICAgIC8vIGRpc3BsYXllZCBieSB0aGUgYnJvd3NlciB0aGFua3MgdG8gdGhlIERFVi1vbmx5IGZha2UgZXZlbnQgdHJpY2sgaW4gUmVhY3RFcnJvclV0aWxzLlxuXG4gICAgICBjb25zb2xlWydlcnJvciddKGNvbWJpbmVkTWVzc2FnZSk7IC8vIERvbid0IHRyYW5zZm9ybSB0byBvdXIgd3JhcHBlclxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJbiBwcm9kdWN0aW9uLCB3ZSBwcmludCB0aGUgZXJyb3IgZGlyZWN0bHkuXG4gICAgICAvLyBUaGlzIHdpbGwgaW5jbHVkZSB0aGUgbWVzc2FnZSwgdGhlIEpTIHN0YWNrLCBhbmQgYW55dGhpbmcgdGhlIGJyb3dzZXIgd2FudHMgdG8gc2hvdy5cbiAgICAgIC8vIFdlIHBhc3MgdGhlIGVycm9yIG9iamVjdCBpbnN0ZWFkIG9mIGN1c3RvbSBtZXNzYWdlIHNvIHRoYXQgdGhlIGJyb3dzZXIgZGlzcGxheXMgdGhlIGVycm9yIG5hdGl2ZWx5LlxuICAgICAgY29uc29sZVsnZXJyb3InXShlcnJvcik7IC8vIERvbid0IHRyYW5zZm9ybSB0byBvdXIgd3JhcHBlclxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIFRoaXMgbWV0aG9kIG11c3Qgbm90IHRocm93LCBvciBSZWFjdCBpbnRlcm5hbCBzdGF0ZSB3aWxsIGdldCBtZXNzZWQgdXAuXG4gICAgLy8gSWYgY29uc29sZS5lcnJvciBpcyBvdmVycmlkZGVuLCBvciBsb2dDYXB0dXJlZEVycm9yKCkgc2hvd3MgYSBkaWFsb2cgdGhhdCB0aHJvd3MsXG4gICAgLy8gd2Ugd2FudCB0byByZXBvcnQgdGhpcyBlcnJvciBvdXRzaWRlIG9mIHRoZSBub3JtYWwgc3RhY2sgYXMgYSBsYXN0IHJlc29ydC5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzEzMTg4XG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH0pO1xuICB9XG59XG5cbnZhciBQb3NzaWJseVdlYWtNYXAkMSA9IHR5cGVvZiBXZWFrTWFwID09PSAnZnVuY3Rpb24nID8gV2Vha01hcCA6IE1hcDtcblxuZnVuY3Rpb24gY3JlYXRlUm9vdEVycm9yVXBkYXRlKGZpYmVyLCBlcnJvckluZm8sIGxhbmUpIHtcbiAgdmFyIHVwZGF0ZSA9IGNyZWF0ZVVwZGF0ZShOb1RpbWVzdGFtcCwgbGFuZSk7IC8vIFVubW91bnQgdGhlIHJvb3QgYnkgcmVuZGVyaW5nIG51bGwuXG5cbiAgdXBkYXRlLnRhZyA9IENhcHR1cmVVcGRhdGU7IC8vIENhdXRpb246IFJlYWN0IERldlRvb2xzIGN1cnJlbnRseSBkZXBlbmRzIG9uIHRoaXMgcHJvcGVydHlcbiAgLy8gYmVpbmcgY2FsbGVkIFwiZWxlbWVudFwiLlxuXG4gIHVwZGF0ZS5wYXlsb2FkID0ge1xuICAgIGVsZW1lbnQ6IG51bGxcbiAgfTtcbiAgdmFyIGVycm9yID0gZXJyb3JJbmZvLnZhbHVlO1xuXG4gIHVwZGF0ZS5jYWxsYmFjayA9IGZ1bmN0aW9uICgpIHtcbiAgICBvblVuY2F1Z2h0RXJyb3IoZXJyb3IpO1xuICAgIGxvZ0NhcHR1cmVkRXJyb3IoZmliZXIsIGVycm9ySW5mbyk7XG4gIH07XG5cbiAgcmV0dXJuIHVwZGF0ZTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ2xhc3NFcnJvclVwZGF0ZShmaWJlciwgZXJyb3JJbmZvLCBsYW5lKSB7XG4gIHZhciB1cGRhdGUgPSBjcmVhdGVVcGRhdGUoTm9UaW1lc3RhbXAsIGxhbmUpO1xuICB1cGRhdGUudGFnID0gQ2FwdHVyZVVwZGF0ZTtcbiAgdmFyIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvciA9IGZpYmVyLnR5cGUuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yO1xuXG4gIGlmICh0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgdmFyIGVycm9yJDEgPSBlcnJvckluZm8udmFsdWU7XG5cbiAgICB1cGRhdGUucGF5bG9hZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoZXJyb3IkMSk7XG4gICAgfTtcblxuICAgIHVwZGF0ZS5jYWxsYmFjayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHtcbiAgICAgICAgbWFya0ZhaWxlZEVycm9yQm91bmRhcnlGb3JIb3RSZWxvYWRpbmcoZmliZXIpO1xuICAgICAgfVxuXG4gICAgICBsb2dDYXB0dXJlZEVycm9yKGZpYmVyLCBlcnJvckluZm8pO1xuICAgIH07XG4gIH1cblxuICB2YXIgaW5zdCA9IGZpYmVyLnN0YXRlTm9kZTtcblxuICBpZiAoaW5zdCAhPT0gbnVsbCAmJiB0eXBlb2YgaW5zdC5jb21wb25lbnREaWRDYXRjaCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHVwZGF0ZS5jYWxsYmFjayA9IGZ1bmN0aW9uIGNhbGxiYWNrKCkge1xuICAgICAge1xuICAgICAgICBtYXJrRmFpbGVkRXJyb3JCb3VuZGFyeUZvckhvdFJlbG9hZGluZyhmaWJlcik7XG4gICAgICB9XG5cbiAgICAgIGxvZ0NhcHR1cmVkRXJyb3IoZmliZXIsIGVycm9ySW5mbyk7XG5cbiAgICAgIGlmICh0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIC8vIFRvIHByZXNlcnZlIHRoZSBwcmVleGlzdGluZyByZXRyeSBiZWhhdmlvciBvZiBlcnJvciBib3VuZGFyaWVzLFxuICAgICAgICAvLyB3ZSBrZWVwIHRyYWNrIG9mIHdoaWNoIG9uZXMgYWxyZWFkeSBmYWlsZWQgZHVyaW5nIHRoaXMgYmF0Y2guXG4gICAgICAgIC8vIFRoaXMgZ2V0cyByZXNldCBiZWZvcmUgd2UgeWllbGQgYmFjayB0byB0aGUgYnJvd3Nlci5cbiAgICAgICAgLy8gVE9ETzogV2FybiBpbiBzdHJpY3QgbW9kZSBpZiBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgaXNcbiAgICAgICAgLy8gbm90IGRlZmluZWQuXG4gICAgICAgIG1hcmtMZWdhY3lFcnJvckJvdW5kYXJ5QXNGYWlsZWQodGhpcyk7XG4gICAgICB9XG5cbiAgICAgIHZhciBlcnJvciQxID0gZXJyb3JJbmZvLnZhbHVlO1xuICAgICAgdmFyIHN0YWNrID0gZXJyb3JJbmZvLnN0YWNrO1xuICAgICAgdGhpcy5jb21wb25lbnREaWRDYXRjaChlcnJvciQxLCB7XG4gICAgICAgIGNvbXBvbmVudFN0YWNrOiBzdGFjayAhPT0gbnVsbCA/IHN0YWNrIDogJydcbiAgICAgIH0pO1xuXG4gICAgICB7XG4gICAgICAgIGlmICh0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgLy8gSWYgY29tcG9uZW50RGlkQ2F0Y2ggaXMgdGhlIG9ubHkgZXJyb3IgYm91bmRhcnkgbWV0aG9kIGRlZmluZWQsXG4gICAgICAgICAgLy8gdGhlbiBpdCBuZWVkcyB0byBjYWxsIHNldFN0YXRlIHRvIHJlY292ZXIgZnJvbSBlcnJvcnMuXG4gICAgICAgICAgLy8gSWYgbm8gc3RhdGUgdXBkYXRlIGlzIHNjaGVkdWxlZCB0aGVuIHRoZSBib3VuZGFyeSB3aWxsIHN3YWxsb3cgdGhlIGVycm9yLlxuICAgICAgICAgIGlmICghaW5jbHVkZXNTb21lTGFuZShmaWJlci5sYW5lcywgU3luY0xhbmUpKSB7XG4gICAgICAgICAgICBlcnJvcignJXM6IEVycm9yIGJvdW5kYXJpZXMgc2hvdWxkIGltcGxlbWVudCBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoKS4gJyArICdJbiB0aGF0IG1ldGhvZCwgcmV0dXJuIGEgc3RhdGUgdXBkYXRlIHRvIGRpc3BsYXkgYW4gZXJyb3IgbWVzc2FnZSBvciBmYWxsYmFjayBVSS4nLCBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKSB8fCAnVW5rbm93bicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICByZXR1cm4gdXBkYXRlO1xufVxuXG5mdW5jdGlvbiBhdHRhY2hQaW5nTGlzdGVuZXIocm9vdCwgd2FrZWFibGUsIGxhbmVzKSB7XG4gIC8vIEF0dGFjaCBhIHBpbmcgbGlzdGVuZXJcbiAgLy9cbiAgLy8gVGhlIGRhdGEgbWlnaHQgcmVzb2x2ZSBiZWZvcmUgd2UgaGF2ZSBhIGNoYW5jZSB0byBjb21taXQgdGhlIGZhbGxiYWNrLiBPcixcbiAgLy8gaW4gdGhlIGNhc2Ugb2YgYSByZWZyZXNoLCB3ZSdsbCBuZXZlciBjb21taXQgYSBmYWxsYmFjay4gU28gd2UgbmVlZCB0b1xuICAvLyBhdHRhY2ggYSBsaXN0ZW5lciBub3cuIFdoZW4gaXQgcmVzb2x2ZXMgKFwicGluZ3NcIiksIHdlIGNhbiBkZWNpZGUgd2hldGhlciB0b1xuICAvLyB0cnkgcmVuZGVyaW5nIHRoZSB0cmVlIGFnYWluLlxuICAvL1xuICAvLyBPbmx5IGF0dGFjaCBhIGxpc3RlbmVyIGlmIG9uZSBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0IGZvciB0aGUgbGFuZXNcbiAgLy8gd2UncmUgY3VycmVudGx5IHJlbmRlcmluZyAod2hpY2ggYWN0cyBsaWtlIGEgXCJ0aHJlYWQgSURcIiBoZXJlKS5cbiAgLy9cbiAgLy8gV2Ugb25seSBuZWVkIHRvIGRvIHRoaXMgaW4gY29uY3VycmVudCBtb2RlLiBMZWdhY3kgU3VzcGVuc2UgYWx3YXlzXG4gIC8vIGNvbW1pdHMgZmFsbGJhY2tzIHN5bmNocm9ub3VzbHksIHNvIHRoZXJlIGFyZSBubyBwaW5ncy5cbiAgdmFyIHBpbmdDYWNoZSA9IHJvb3QucGluZ0NhY2hlO1xuICB2YXIgdGhyZWFkSURzO1xuXG4gIGlmIChwaW5nQ2FjaGUgPT09IG51bGwpIHtcbiAgICBwaW5nQ2FjaGUgPSByb290LnBpbmdDYWNoZSA9IG5ldyBQb3NzaWJseVdlYWtNYXAkMSgpO1xuICAgIHRocmVhZElEcyA9IG5ldyBTZXQoKTtcbiAgICBwaW5nQ2FjaGUuc2V0KHdha2VhYmxlLCB0aHJlYWRJRHMpO1xuICB9IGVsc2Uge1xuICAgIHRocmVhZElEcyA9IHBpbmdDYWNoZS5nZXQod2FrZWFibGUpO1xuXG4gICAgaWYgKHRocmVhZElEcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJlYWRJRHMgPSBuZXcgU2V0KCk7XG4gICAgICBwaW5nQ2FjaGUuc2V0KHdha2VhYmxlLCB0aHJlYWRJRHMpO1xuICAgIH1cbiAgfVxuXG4gIGlmICghdGhyZWFkSURzLmhhcyhsYW5lcykpIHtcbiAgICAvLyBNZW1vaXplIHVzaW5nIHRoZSB0aHJlYWQgSUQgdG8gcHJldmVudCByZWR1bmRhbnQgbGlzdGVuZXJzLlxuICAgIHRocmVhZElEcy5hZGQobGFuZXMpO1xuICAgIHZhciBwaW5nID0gcGluZ1N1c3BlbmRlZFJvb3QuYmluZChudWxsLCByb290LCB3YWtlYWJsZSwgbGFuZXMpO1xuXG4gICAge1xuICAgICAgaWYgKGlzRGV2VG9vbHNQcmVzZW50KSB7XG4gICAgICAgIC8vIElmIHdlIGhhdmUgcGVuZGluZyB3b3JrIHN0aWxsLCByZXN0b3JlIHRoZSBvcmlnaW5hbCB1cGRhdGVyc1xuICAgICAgICByZXN0b3JlUGVuZGluZ1VwZGF0ZXJzKHJvb3QsIGxhbmVzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB3YWtlYWJsZS50aGVuKHBpbmcsIHBpbmcpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGF0dGFjaFJldHJ5TGlzdGVuZXIoc3VzcGVuc2VCb3VuZGFyeSwgcm9vdCwgd2FrZWFibGUsIGxhbmVzKSB7XG4gIC8vIFJldHJ5IGxpc3RlbmVyXG4gIC8vXG4gIC8vIElmIHRoZSBmYWxsYmFjayBkb2VzIGNvbW1pdCwgd2UgbmVlZCB0byBhdHRhY2ggYSBkaWZmZXJlbnQgdHlwZSBvZlxuICAvLyBsaXN0ZW5lci4gVGhpcyBvbmUgc2NoZWR1bGVzIGFuIHVwZGF0ZSBvbiB0aGUgU3VzcGVuc2UgYm91bmRhcnkgdG8gdHVyblxuICAvLyB0aGUgZmFsbGJhY2sgc3RhdGUgb2ZmLlxuICAvL1xuICAvLyBTdGFzaCB0aGUgd2FrZWFibGUgb24gdGhlIGJvdW5kYXJ5IGZpYmVyIHNvIHdlIGNhbiBhY2Nlc3MgaXQgaW4gdGhlXG4gIC8vIGNvbW1pdCBwaGFzZS5cbiAgLy9cbiAgLy8gV2hlbiB0aGUgd2FrZWFibGUgcmVzb2x2ZXMsIHdlJ2xsIGF0dGVtcHQgdG8gcmVuZGVyIHRoZSBib3VuZGFyeVxuICAvLyBhZ2FpbiAoXCJyZXRyeVwiKS5cbiAgdmFyIHdha2VhYmxlcyA9IHN1c3BlbnNlQm91bmRhcnkudXBkYXRlUXVldWU7XG5cbiAgaWYgKHdha2VhYmxlcyA9PT0gbnVsbCkge1xuICAgIHZhciB1cGRhdGVRdWV1ZSA9IG5ldyBTZXQoKTtcbiAgICB1cGRhdGVRdWV1ZS5hZGQod2FrZWFibGUpO1xuICAgIHN1c3BlbnNlQm91bmRhcnkudXBkYXRlUXVldWUgPSB1cGRhdGVRdWV1ZTtcbiAgfSBlbHNlIHtcbiAgICB3YWtlYWJsZXMuYWRkKHdha2VhYmxlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXNldFN1c3BlbmRlZENvbXBvbmVudChzb3VyY2VGaWJlciwgcm9vdFJlbmRlckxhbmVzKSB7XG4gIC8vIEEgbGVnYWN5IG1vZGUgU3VzcGVuc2UgcXVpcmssIG9ubHkgcmVsZXZhbnQgdG8gaG9vayBjb21wb25lbnRzLlxuXG5cbiAgdmFyIHRhZyA9IHNvdXJjZUZpYmVyLnRhZztcblxuICBpZiAoKHNvdXJjZUZpYmVyLm1vZGUgJiBDb25jdXJyZW50TW9kZSkgPT09IE5vTW9kZSAmJiAodGFnID09PSBGdW5jdGlvbkNvbXBvbmVudCB8fCB0YWcgPT09IEZvcndhcmRSZWYgfHwgdGFnID09PSBTaW1wbGVNZW1vQ29tcG9uZW50KSkge1xuICAgIHZhciBjdXJyZW50U291cmNlID0gc291cmNlRmliZXIuYWx0ZXJuYXRlO1xuXG4gICAgaWYgKGN1cnJlbnRTb3VyY2UpIHtcbiAgICAgIHNvdXJjZUZpYmVyLnVwZGF0ZVF1ZXVlID0gY3VycmVudFNvdXJjZS51cGRhdGVRdWV1ZTtcbiAgICAgIHNvdXJjZUZpYmVyLm1lbW9pemVkU3RhdGUgPSBjdXJyZW50U291cmNlLm1lbW9pemVkU3RhdGU7XG4gICAgICBzb3VyY2VGaWJlci5sYW5lcyA9IGN1cnJlbnRTb3VyY2UubGFuZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNvdXJjZUZpYmVyLnVwZGF0ZVF1ZXVlID0gbnVsbDtcbiAgICAgIHNvdXJjZUZpYmVyLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXROZWFyZXN0U3VzcGVuc2VCb3VuZGFyeVRvQ2FwdHVyZShyZXR1cm5GaWJlcikge1xuICB2YXIgbm9kZSA9IHJldHVybkZpYmVyO1xuXG4gIGRvIHtcbiAgICBpZiAobm9kZS50YWcgPT09IFN1c3BlbnNlQ29tcG9uZW50ICYmIHNob3VsZENhcHR1cmVTdXNwZW5zZShub2RlKSkge1xuICAgICAgcmV0dXJuIG5vZGU7XG4gICAgfSAvLyBUaGlzIGJvdW5kYXJ5IGFscmVhZHkgY2FwdHVyZWQgZHVyaW5nIHRoaXMgcmVuZGVyLiBDb250aW51ZSB0byB0aGUgbmV4dFxuICAgIC8vIGJvdW5kYXJ5LlxuXG5cbiAgICBub2RlID0gbm9kZS5yZXR1cm47XG4gIH0gd2hpbGUgKG5vZGUgIT09IG51bGwpO1xuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBtYXJrU3VzcGVuc2VCb3VuZGFyeVNob3VsZENhcHR1cmUoc3VzcGVuc2VCb3VuZGFyeSwgcmV0dXJuRmliZXIsIHNvdXJjZUZpYmVyLCByb290LCByb290UmVuZGVyTGFuZXMpIHtcbiAgLy8gVGhpcyBtYXJrcyBhIFN1c3BlbnNlIGJvdW5kYXJ5IHNvIHRoYXQgd2hlbiB3ZSdyZSB1bndpbmRpbmcgdGhlIHN0YWNrLFxuICAvLyBpdCBjYXB0dXJlcyB0aGUgc3VzcGVuZGVkIFwiZXhjZXB0aW9uXCIgYW5kIGRvZXMgYSBzZWNvbmQgKGZhbGxiYWNrKSBwYXNzLlxuICBpZiAoKHN1c3BlbnNlQm91bmRhcnkubW9kZSAmIENvbmN1cnJlbnRNb2RlKSA9PT0gTm9Nb2RlKSB7XG4gICAgLy8gTGVnYWN5IE1vZGUgU3VzcGVuc2VcbiAgICAvL1xuICAgIC8vIElmIHRoZSBib3VuZGFyeSBpcyBpbiBsZWdhY3kgbW9kZSwgd2Ugc2hvdWxkICpub3QqXG4gICAgLy8gc3VzcGVuZCB0aGUgY29tbWl0LiBQcmV0ZW5kIGFzIGlmIHRoZSBzdXNwZW5kZWQgY29tcG9uZW50IHJlbmRlcmVkXG4gICAgLy8gbnVsbCBhbmQga2VlcCByZW5kZXJpbmcuIFdoZW4gdGhlIFN1c3BlbnNlIGJvdW5kYXJ5IGNvbXBsZXRlcyxcbiAgICAvLyB3ZSdsbCBkbyBhIHNlY29uZCBwYXNzIHRvIHJlbmRlciB0aGUgZmFsbGJhY2suXG4gICAgaWYgKHN1c3BlbnNlQm91bmRhcnkgPT09IHJldHVybkZpYmVyKSB7XG4gICAgICAvLyBTcGVjaWFsIGNhc2Ugd2hlcmUgd2Ugc3VzcGVuZGVkIHdoaWxlIHJlY29uY2lsaW5nIHRoZSBjaGlsZHJlbiBvZlxuICAgICAgLy8gYSBTdXNwZW5zZSBib3VuZGFyeSdzIGlubmVyIE9mZnNjcmVlbiB3cmFwcGVyIGZpYmVyLiBUaGlzIGhhcHBlbnNcbiAgICAgIC8vIHdoZW4gYSBSZWFjdC5sYXp5IGNvbXBvbmVudCBpcyBhIGRpcmVjdCBjaGlsZCBvZiBhXG4gICAgICAvLyBTdXNwZW5zZSBib3VuZGFyeS5cbiAgICAgIC8vXG4gICAgICAvLyBTdXNwZW5zZSBib3VuZGFyaWVzIGFyZSBpbXBsZW1lbnRlZCBhcyBtdWx0aXBsZSBmaWJlcnMsIGJ1dCB0aGV5XG4gICAgICAvLyBhcmUgYSBzaW5nbGUgY29uY2VwdHVhbCB1bml0LiBUaGUgbGVnYWN5IG1vZGUgYmVoYXZpb3Igd2hlcmUgd2VcbiAgICAgIC8vIHByZXRlbmQgdGhlIHN1c3BlbmRlZCBmaWJlciBjb21taXR0ZWQgYXMgYG51bGxgIHdvbid0IHdvcmssXG4gICAgICAvLyBiZWNhdXNlIGluIHRoaXMgY2FzZSB0aGUgXCJzdXNwZW5kZWRcIiBmaWJlciBpcyB0aGUgaW5uZXJcbiAgICAgIC8vIE9mZnNjcmVlbiB3cmFwcGVyLlxuICAgICAgLy9cbiAgICAgIC8vIEJlY2F1c2UgdGhlIGNvbnRlbnRzIG9mIHRoZSBib3VuZGFyeSBoYXZlbid0IHN0YXJ0ZWQgcmVuZGVyaW5nXG4gICAgICAvLyB5ZXQgKGkuZS4gbm90aGluZyBpbiB0aGUgdHJlZSBoYXMgcGFydGlhbGx5IHJlbmRlcmVkKSB3ZSBjYW5cbiAgICAgIC8vIHN3aXRjaCB0byB0aGUgcmVndWxhciwgY29uY3VycmVudCBtb2RlIGJlaGF2aW9yOiBtYXJrIHRoZVxuICAgICAgLy8gYm91bmRhcnkgd2l0aCBTaG91bGRDYXB0dXJlIGFuZCBlbnRlciB0aGUgdW53aW5kIHBoYXNlLlxuICAgICAgc3VzcGVuc2VCb3VuZGFyeS5mbGFncyB8PSBTaG91bGRDYXB0dXJlO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdXNwZW5zZUJvdW5kYXJ5LmZsYWdzIHw9IERpZENhcHR1cmU7XG4gICAgICBzb3VyY2VGaWJlci5mbGFncyB8PSBGb3JjZVVwZGF0ZUZvckxlZ2FjeVN1c3BlbnNlOyAvLyBXZSdyZSBnb2luZyB0byBjb21taXQgdGhpcyBmaWJlciBldmVuIHRob3VnaCBpdCBkaWRuJ3QgY29tcGxldGUuXG4gICAgICAvLyBCdXQgd2Ugc2hvdWxkbid0IGNhbGwgYW55IGxpZmVjeWNsZSBtZXRob2RzIG9yIGNhbGxiYWNrcy4gUmVtb3ZlXG4gICAgICAvLyBhbGwgbGlmZWN5Y2xlIGVmZmVjdCB0YWdzLlxuXG4gICAgICBzb3VyY2VGaWJlci5mbGFncyAmPSB+KExpZmVjeWNsZUVmZmVjdE1hc2sgfCBJbmNvbXBsZXRlKTtcblxuICAgICAgaWYgKHNvdXJjZUZpYmVyLnRhZyA9PT0gQ2xhc3NDb21wb25lbnQpIHtcbiAgICAgICAgdmFyIGN1cnJlbnRTb3VyY2VGaWJlciA9IHNvdXJjZUZpYmVyLmFsdGVybmF0ZTtcblxuICAgICAgICBpZiAoY3VycmVudFNvdXJjZUZpYmVyID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBhIG5ldyBtb3VudC4gQ2hhbmdlIHRoZSB0YWcgc28gaXQncyBub3QgbWlzdGFrZW4gZm9yIGFcbiAgICAgICAgICAvLyBjb21wbGV0ZWQgY2xhc3MgY29tcG9uZW50LiBGb3IgZXhhbXBsZSwgd2Ugc2hvdWxkIG5vdCBjYWxsXG4gICAgICAgICAgLy8gY29tcG9uZW50V2lsbFVubW91bnQgaWYgaXQgaXMgZGVsZXRlZC5cbiAgICAgICAgICBzb3VyY2VGaWJlci50YWcgPSBJbmNvbXBsZXRlQ2xhc3NDb21wb25lbnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gV2hlbiB3ZSB0cnkgcmVuZGVyaW5nIGFnYWluLCB3ZSBzaG91bGQgbm90IHJldXNlIHRoZSBjdXJyZW50IGZpYmVyLFxuICAgICAgICAgIC8vIHNpbmNlIGl0J3Mga25vd24gdG8gYmUgaW4gYW4gaW5jb25zaXN0ZW50IHN0YXRlLiBVc2UgYSBmb3JjZSB1cGRhdGUgdG9cbiAgICAgICAgICAvLyBwcmV2ZW50IGEgYmFpbCBvdXQuXG4gICAgICAgICAgdmFyIHVwZGF0ZSA9IGNyZWF0ZVVwZGF0ZShOb1RpbWVzdGFtcCwgU3luY0xhbmUpO1xuICAgICAgICAgIHVwZGF0ZS50YWcgPSBGb3JjZVVwZGF0ZTtcbiAgICAgICAgICBlbnF1ZXVlVXBkYXRlKHNvdXJjZUZpYmVyLCB1cGRhdGUsIFN5bmNMYW5lKTtcbiAgICAgICAgfVxuICAgICAgfSAvLyBUaGUgc291cmNlIGZpYmVyIGRpZCBub3QgY29tcGxldGUuIE1hcmsgaXQgd2l0aCBTeW5jIHByaW9yaXR5IHRvXG4gICAgICAvLyBpbmRpY2F0ZSB0aGF0IGl0IHN0aWxsIGhhcyBwZW5kaW5nIHdvcmsuXG5cblxuICAgICAgc291cmNlRmliZXIubGFuZXMgPSBtZXJnZUxhbmVzKHNvdXJjZUZpYmVyLmxhbmVzLCBTeW5jTGFuZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1c3BlbnNlQm91bmRhcnk7XG4gIH0gLy8gQ29uZmlybWVkIHRoYXQgdGhlIGJvdW5kYXJ5IGlzIGluIGEgY29uY3VycmVudCBtb2RlIHRyZWUuIENvbnRpbnVlXG4gIC8vIHdpdGggdGhlIG5vcm1hbCBzdXNwZW5kIHBhdGguXG4gIC8vXG4gIC8vIEFmdGVyIHRoaXMgd2UnbGwgdXNlIGEgc2V0IG9mIGhldXJpc3RpY3MgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhpc1xuICAvLyByZW5kZXIgcGFzcyB3aWxsIHJ1biB0byBjb21wbGV0aW9uIG9yIHJlc3RhcnQgb3IgXCJzdXNwZW5kXCIgdGhlIGNvbW1pdC5cbiAgLy8gVGhlIGFjdHVhbCBsb2dpYyBmb3IgdGhpcyBpcyBzcHJlYWQgb3V0IGluIGRpZmZlcmVudCBwbGFjZXMuXG4gIC8vXG4gIC8vIFRoaXMgZmlyc3QgcHJpbmNpcGxlIGlzIHRoYXQgaWYgd2UncmUgZ29pbmcgdG8gc3VzcGVuZCB3aGVuIHdlIGNvbXBsZXRlXG4gIC8vIGEgcm9vdCwgdGhlbiB3ZSBzaG91bGQgYWxzbyByZXN0YXJ0IGlmIHdlIGdldCBhbiB1cGRhdGUgb3IgcGluZyB0aGF0XG4gIC8vIG1pZ2h0IHVuc3VzcGVuZCBpdCwgYW5kIHZpY2UgdmVyc2EuIFRoZSBvbmx5IHJlYXNvbiB0byBzdXNwZW5kIGlzXG4gIC8vIGJlY2F1c2UgeW91IHRoaW5rIHlvdSBtaWdodCB3YW50IHRvIHJlc3RhcnQgYmVmb3JlIGNvbW1pdHRpbmcuIEhvd2V2ZXIsXG4gIC8vIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byByZXN0YXJ0IG9ubHkgd2hpbGUgaW4gdGhlIHBlcmlvZCB3ZSdyZSBzdXNwZW5kZWQuXG4gIC8vXG4gIC8vIFJlc3RhcnRpbmcgdG9vIGFnZ3Jlc3NpdmVseSBpcyBhbHNvIG5vdCBnb29kIGJlY2F1c2UgaXQgc3RhcnZlcyBvdXQgYW55XG4gIC8vIGludGVybWVkaWF0ZSBsb2FkaW5nIHN0YXRlLiBTbyB3ZSB1c2UgaGV1cmlzdGljcyB0byBkZXRlcm1pbmUgd2hlbi5cbiAgLy8gU3VzcGVuc2UgSGV1cmlzdGljc1xuICAvL1xuICAvLyBJZiBub3RoaW5nIHRocmV3IGEgUHJvbWlzZSBvciBhbGwgdGhlIHNhbWUgZmFsbGJhY2tzIGFyZSBhbHJlYWR5IHNob3dpbmcsXG4gIC8vIHRoZW4gZG9uJ3Qgc3VzcGVuZC9yZXN0YXJ0LlxuICAvL1xuICAvLyBJZiB0aGlzIGlzIGFuIGluaXRpYWwgcmVuZGVyIG9mIGEgbmV3IHRyZWUgb2YgU3VzcGVuc2UgYm91bmRhcmllcyBhbmRcbiAgLy8gdGhvc2UgdHJpZ2dlciBhIGZhbGxiYWNrLCB0aGVuIGRvbid0IHN1c3BlbmQvcmVzdGFydC4gV2Ugd2FudCB0byBlbnN1cmVcbiAgLy8gdGhhdCB3ZSBjYW4gc2hvdyB0aGUgaW5pdGlhbCBsb2FkaW5nIHN0YXRlIGFzIHF1aWNrbHkgYXMgcG9zc2libGUuXG4gIC8vXG4gIC8vIElmIHdlIGhpdCBhIFwiRGVsYXllZFwiIGNhc2UsIHN1Y2ggYXMgd2hlbiB3ZSdkIHN3aXRjaCBmcm9tIGNvbnRlbnQgYmFjayBpbnRvXG4gIC8vIGEgZmFsbGJhY2ssIHRoZW4gd2Ugc2hvdWxkIGFsd2F5cyBzdXNwZW5kL3Jlc3RhcnQuIFRyYW5zaXRpb25zIGFwcGx5XG4gIC8vIHRvIHRoaXMgY2FzZS4gSWYgbm9uZSBpcyBkZWZpbmVkLCBKTkQgaXMgdXNlZCBpbnN0ZWFkLlxuICAvL1xuICAvLyBJZiB3ZSdyZSBhbHJlYWR5IHNob3dpbmcgYSBmYWxsYmFjayBhbmQgaXQgZ2V0cyBcInJldHJpZWRcIiwgYWxsb3dpbmcgdXMgdG8gc2hvd1xuICAvLyBhbm90aGVyIGxldmVsLCBidXQgdGhlcmUncyBzdGlsbCBhbiBpbm5lciBib3VuZGFyeSB0aGF0IHdvdWxkIHNob3cgYSBmYWxsYmFjayxcbiAgLy8gdGhlbiB3ZSBzdXNwZW5kL3Jlc3RhcnQgZm9yIDUwMG1zIHNpbmNlIHRoZSBsYXN0IHRpbWUgd2Ugc2hvd2VkIGEgZmFsbGJhY2tcbiAgLy8gYW55d2hlcmUgaW4gdGhlIHRyZWUuIFRoaXMgZWZmZWN0aXZlbHkgdGhyb3R0bGVzIHByb2dyZXNzaXZlIGxvYWRpbmcgaW50byBhXG4gIC8vIGNvbnNpc3RlbnQgdHJhaW4gb2YgY29tbWl0cy4gVGhpcyBhbHNvIGdpdmVzIHVzIGFuIG9wcG9ydHVuaXR5IHRvIHJlc3RhcnQgdG9cbiAgLy8gZ2V0IHRvIHRoZSBjb21wbGV0ZWQgc3RhdGUgc2xpZ2h0bHkgZWFybGllci5cbiAgLy9cbiAgLy8gSWYgdGhlcmUncyBhbWJpZ3VpdHkgZHVlIHRvIGJhdGNoaW5nIGl0J3MgcmVzb2x2ZWQgaW4gcHJlZmVyZW5jZSBvZjpcbiAgLy8gMSkgXCJkZWxheWVkXCIsIDIpIFwiaW5pdGlhbCByZW5kZXJcIiwgMykgXCJyZXRyeVwiLlxuICAvL1xuICAvLyBXZSB3YW50IHRvIGVuc3VyZSB0aGF0IGEgXCJidXN5XCIgc3RhdGUgZG9lc24ndCBnZXQgZm9yY2UgY29tbWl0dGVkLiBXZSB3YW50IHRvXG4gIC8vIGVuc3VyZSB0aGF0IG5ldyBpbml0aWFsIGxvYWRpbmcgc3RhdGVzIGNhbiBjb21taXQgYXMgc29vbiBhcyBwb3NzaWJsZS5cblxuXG4gIHN1c3BlbnNlQm91bmRhcnkuZmxhZ3MgfD0gU2hvdWxkQ2FwdHVyZTsgLy8gVE9ETzogSSB0aGluayB3ZSBjYW4gcmVtb3ZlIHRoaXMsIHNpbmNlIHdlIG5vdyB1c2UgYERpZENhcHR1cmVgIGluXG4gIC8vIHRoZSBiZWdpbiBwaGFzZSB0byBwcmV2ZW50IGFuIGVhcmx5IGJhaWxvdXQuXG5cbiAgc3VzcGVuc2VCb3VuZGFyeS5sYW5lcyA9IHJvb3RSZW5kZXJMYW5lcztcbiAgcmV0dXJuIHN1c3BlbnNlQm91bmRhcnk7XG59XG5cbmZ1bmN0aW9uIHRocm93RXhjZXB0aW9uKHJvb3QsIHJldHVybkZpYmVyLCBzb3VyY2VGaWJlciwgdmFsdWUsIHJvb3RSZW5kZXJMYW5lcykge1xuICAvLyBUaGUgc291cmNlIGZpYmVyIGRpZCBub3QgY29tcGxldGUuXG4gIHNvdXJjZUZpYmVyLmZsYWdzIHw9IEluY29tcGxldGU7XG5cbiAge1xuICAgIGlmIChpc0RldlRvb2xzUHJlc2VudCkge1xuICAgICAgLy8gSWYgd2UgaGF2ZSBwZW5kaW5nIHdvcmsgc3RpbGwsIHJlc3RvcmUgdGhlIG9yaWdpbmFsIHVwZGF0ZXJzXG4gICAgICByZXN0b3JlUGVuZGluZ1VwZGF0ZXJzKHJvb3QsIHJvb3RSZW5kZXJMYW5lcyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIHZhbHVlLnRoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBUaGlzIGlzIGEgd2FrZWFibGUuIFRoZSBjb21wb25lbnQgc3VzcGVuZGVkLlxuICAgIHZhciB3YWtlYWJsZSA9IHZhbHVlO1xuICAgIHJlc2V0U3VzcGVuZGVkQ29tcG9uZW50KHNvdXJjZUZpYmVyKTtcblxuICAgIHtcbiAgICAgIGlmIChnZXRJc0h5ZHJhdGluZygpICYmIHNvdXJjZUZpYmVyLm1vZGUgJiBDb25jdXJyZW50TW9kZSkge1xuICAgICAgICBtYXJrRGlkVGhyb3dXaGlsZUh5ZHJhdGluZ0RFVigpO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgdmFyIHN1c3BlbnNlQm91bmRhcnkgPSBnZXROZWFyZXN0U3VzcGVuc2VCb3VuZGFyeVRvQ2FwdHVyZShyZXR1cm5GaWJlcik7XG5cbiAgICBpZiAoc3VzcGVuc2VCb3VuZGFyeSAhPT0gbnVsbCkge1xuICAgICAgc3VzcGVuc2VCb3VuZGFyeS5mbGFncyAmPSB+Rm9yY2VDbGllbnRSZW5kZXI7XG4gICAgICBtYXJrU3VzcGVuc2VCb3VuZGFyeVNob3VsZENhcHR1cmUoc3VzcGVuc2VCb3VuZGFyeSwgcmV0dXJuRmliZXIsIHNvdXJjZUZpYmVyLCByb290LCByb290UmVuZGVyTGFuZXMpOyAvLyBXZSBvbmx5IGF0dGFjaCBwaW5nIGxpc3RlbmVycyBpbiBjb25jdXJyZW50IG1vZGUuIExlZ2FjeSBTdXNwZW5zZSBhbHdheXNcbiAgICAgIC8vIGNvbW1pdHMgZmFsbGJhY2tzIHN5bmNocm9ub3VzbHksIHNvIHRoZXJlIGFyZSBubyBwaW5ncy5cblxuICAgICAgaWYgKHN1c3BlbnNlQm91bmRhcnkubW9kZSAmIENvbmN1cnJlbnRNb2RlKSB7XG4gICAgICAgIGF0dGFjaFBpbmdMaXN0ZW5lcihyb290LCB3YWtlYWJsZSwgcm9vdFJlbmRlckxhbmVzKTtcbiAgICAgIH1cblxuICAgICAgYXR0YWNoUmV0cnlMaXN0ZW5lcihzdXNwZW5zZUJvdW5kYXJ5LCByb290LCB3YWtlYWJsZSk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5vIGJvdW5kYXJ5IHdhcyBmb3VuZC4gVW5sZXNzIHRoaXMgaXMgYSBzeW5jIHVwZGF0ZSwgdGhpcyBpcyBPSy5cbiAgICAgIC8vIFdlIGNhbiBzdXNwZW5kIGFuZCB3YWl0IGZvciBtb3JlIGRhdGEgdG8gYXJyaXZlLlxuICAgICAgaWYgKCFpbmNsdWRlc1N5bmNMYW5lKHJvb3RSZW5kZXJMYW5lcykpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBub3QgYSBzeW5jIHVwZGF0ZS4gU3VzcGVuZC4gU2luY2Ugd2UncmUgbm90IGFjdGl2YXRpbmcgYVxuICAgICAgICAvLyBTdXNwZW5zZSBib3VuZGFyeSwgdGhpcyB3aWxsIHVud2luZCBhbGwgdGhlIHdheSB0byB0aGUgcm9vdCB3aXRob3V0XG4gICAgICAgIC8vIHBlcmZvcm1pbmcgYSBzZWNvbmQgcGFzcyB0byByZW5kZXIgYSBmYWxsYmFjay4gKFRoaXMgaXMgYXJndWFibHkgaG93XG4gICAgICAgIC8vIHJlZnJlc2ggdHJhbnNpdGlvbnMgc2hvdWxkIHdvcmssIHRvbywgc2luY2Ugd2UncmUgbm90IGdvaW5nIHRvIGNvbW1pdFxuICAgICAgICAvLyB0aGUgZmFsbGJhY2tzIGFueXdheS4pXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFRoaXMgY2FzZSBhbHNvIGFwcGxpZXMgdG8gaW5pdGlhbCBoeWRyYXRpb24uXG4gICAgICAgIGF0dGFjaFBpbmdMaXN0ZW5lcihyb290LCB3YWtlYWJsZSwgcm9vdFJlbmRlckxhbmVzKTtcbiAgICAgICAgcmVuZGVyRGlkU3VzcGVuZERlbGF5SWZQb3NzaWJsZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IC8vIFRoaXMgaXMgYSBzeW5jL2Rpc2NyZXRlIHVwZGF0ZS4gV2UgdHJlYXQgdGhpcyBjYXNlIGxpa2UgYW4gZXJyb3JcbiAgICAgIC8vIGJlY2F1c2UgZGlzY3JldGUgcmVuZGVycyBhcmUgZXhwZWN0ZWQgdG8gcHJvZHVjZSBhIGNvbXBsZXRlIHRyZWVcbiAgICAgIC8vIHN5bmNocm9ub3VzbHkgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgd2l0aCBleHRlcm5hbCBzdGF0ZS5cblxuXG4gICAgICB2YXIgdW5jYXVnaHRTdXNwZW5zZUVycm9yID0gbmV3IEVycm9yKCdBIGNvbXBvbmVudCBzdXNwZW5kZWQgd2hpbGUgcmVzcG9uZGluZyB0byBzeW5jaHJvbm91cyBpbnB1dC4gVGhpcyAnICsgJ3dpbGwgY2F1c2UgdGhlIFVJIHRvIGJlIHJlcGxhY2VkIHdpdGggYSBsb2FkaW5nIGluZGljYXRvci4gVG8gJyArICdmaXgsIHVwZGF0ZXMgdGhhdCBzdXNwZW5kIHNob3VsZCBiZSB3cmFwcGVkICcgKyAnd2l0aCBzdGFydFRyYW5zaXRpb24uJyk7IC8vIElmIHdlJ3JlIG91dHNpZGUgYSB0cmFuc2l0aW9uLCBmYWxsIHRocm91Z2ggdG8gdGhlIHJlZ3VsYXIgZXJyb3IgcGF0aC5cbiAgICAgIC8vIFRoZSBlcnJvciB3aWxsIGJlIGNhdWdodCBieSB0aGUgbmVhcmVzdCBzdXNwZW5zZSBib3VuZGFyeS5cblxuICAgICAgdmFsdWUgPSB1bmNhdWdodFN1c3BlbnNlRXJyb3I7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIFRoaXMgaXMgYSByZWd1bGFyIGVycm9yLCBub3QgYSBTdXNwZW5zZSB3YWtlYWJsZS5cbiAgICBpZiAoZ2V0SXNIeWRyYXRpbmcoKSAmJiBzb3VyY2VGaWJlci5tb2RlICYgQ29uY3VycmVudE1vZGUpIHtcbiAgICAgIG1hcmtEaWRUaHJvd1doaWxlSHlkcmF0aW5nREVWKCk7XG5cbiAgICAgIHZhciBfc3VzcGVuc2VCb3VuZGFyeSA9IGdldE5lYXJlc3RTdXNwZW5zZUJvdW5kYXJ5VG9DYXB0dXJlKHJldHVybkZpYmVyKTsgLy8gSWYgdGhlIGVycm9yIHdhcyB0aHJvd24gZHVyaW5nIGh5ZHJhdGlvbiwgd2UgbWF5IGJlIGFibGUgdG8gcmVjb3ZlciBieVxuICAgICAgLy8gZGlzY2FyZGluZyB0aGUgZGVoeWRyYXRlZCBjb250ZW50IGFuZCBzd2l0Y2hpbmcgdG8gYSBjbGllbnQgcmVuZGVyLlxuICAgICAgLy8gSW5zdGVhZCBvZiBzdXJmYWNpbmcgdGhlIGVycm9yLCBmaW5kIHRoZSBuZWFyZXN0IFN1c3BlbnNlIGJvdW5kYXJ5XG4gICAgICAvLyBhbmQgcmVuZGVyIGl0IGFnYWluIHdpdGhvdXQgaHlkcmF0aW9uLlxuXG5cbiAgICAgIGlmIChfc3VzcGVuc2VCb3VuZGFyeSAhPT0gbnVsbCkge1xuICAgICAgICBpZiAoKF9zdXNwZW5zZUJvdW5kYXJ5LmZsYWdzICYgU2hvdWxkQ2FwdHVyZSkgPT09IE5vRmxhZ3MpIHtcbiAgICAgICAgICAvLyBTZXQgYSBmbGFnIHRvIGluZGljYXRlIHRoYXQgd2Ugc2hvdWxkIHRyeSByZW5kZXJpbmcgdGhlIG5vcm1hbFxuICAgICAgICAgIC8vIGNoaWxkcmVuIGFnYWluLCBub3QgdGhlIGZhbGxiYWNrLlxuICAgICAgICAgIF9zdXNwZW5zZUJvdW5kYXJ5LmZsYWdzIHw9IEZvcmNlQ2xpZW50UmVuZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgbWFya1N1c3BlbnNlQm91bmRhcnlTaG91bGRDYXB0dXJlKF9zdXNwZW5zZUJvdW5kYXJ5LCByZXR1cm5GaWJlciwgc291cmNlRmliZXIsIHJvb3QsIHJvb3RSZW5kZXJMYW5lcyk7IC8vIEV2ZW4gdGhvdWdoIHRoZSB1c2VyIG1heSBub3QgYmUgYWZmZWN0ZWQgYnkgdGhpcyBlcnJvciwgd2Ugc2hvdWxkXG4gICAgICAgIC8vIHN0aWxsIGxvZyBpdCBzbyBpdCBjYW4gYmUgZml4ZWQuXG5cbiAgICAgICAgcXVldWVIeWRyYXRpb25FcnJvcihjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcih2YWx1ZSwgc291cmNlRmliZXIpKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhbHVlID0gY3JlYXRlQ2FwdHVyZWRWYWx1ZUF0RmliZXIodmFsdWUsIHNvdXJjZUZpYmVyKTtcbiAgcmVuZGVyRGlkRXJyb3IodmFsdWUpOyAvLyBXZSBkaWRuJ3QgZmluZCBhIGJvdW5kYXJ5IHRoYXQgY291bGQgaGFuZGxlIHRoaXMgdHlwZSBvZiBleGNlcHRpb24uIFN0YXJ0XG4gIC8vIG92ZXIgYW5kIHRyYXZlcnNlIHBhcmVudCBwYXRoIGFnYWluLCB0aGlzIHRpbWUgdHJlYXRpbmcgdGhlIGV4Y2VwdGlvblxuICAvLyBhcyBhbiBlcnJvci5cblxuICB2YXIgd29ya0luUHJvZ3Jlc3MgPSByZXR1cm5GaWJlcjtcblxuICBkbyB7XG4gICAgc3dpdGNoICh3b3JrSW5Qcm9ncmVzcy50YWcpIHtcbiAgICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgX2Vycm9ySW5mbyA9IHZhbHVlO1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFNob3VsZENhcHR1cmU7XG4gICAgICAgICAgdmFyIGxhbmUgPSBwaWNrQXJiaXRyYXJ5TGFuZShyb290UmVuZGVyTGFuZXMpO1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmxhbmVzID0gbWVyZ2VMYW5lcyh3b3JrSW5Qcm9ncmVzcy5sYW5lcywgbGFuZSk7XG4gICAgICAgICAgdmFyIHVwZGF0ZSA9IGNyZWF0ZVJvb3RFcnJvclVwZGF0ZSh3b3JrSW5Qcm9ncmVzcywgX2Vycm9ySW5mbywgbGFuZSk7XG4gICAgICAgICAgZW5xdWV1ZUNhcHR1cmVkVXBkYXRlKHdvcmtJblByb2dyZXNzLCB1cGRhdGUpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAgICAvLyBDYXB0dXJlIGFuZCByZXRyeVxuICAgICAgICB2YXIgZXJyb3JJbmZvID0gdmFsdWU7XG4gICAgICAgIHZhciBjdG9yID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcbiAgICAgICAgdmFyIGluc3RhbmNlID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuXG4gICAgICAgIGlmICgod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiBEaWRDYXB0dXJlKSA9PT0gTm9GbGFncyAmJiAodHlwZW9mIGN0b3IuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yID09PSAnZnVuY3Rpb24nIHx8IGluc3RhbmNlICE9PSBudWxsICYmIHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnREaWRDYXRjaCA9PT0gJ2Z1bmN0aW9uJyAmJiAhaXNBbHJlYWR5RmFpbGVkTGVnYWN5RXJyb3JCb3VuZGFyeShpbnN0YW5jZSkpKSB7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gU2hvdWxkQ2FwdHVyZTtcblxuICAgICAgICAgIHZhciBfbGFuZSA9IHBpY2tBcmJpdHJhcnlMYW5lKHJvb3RSZW5kZXJMYW5lcyk7XG5cbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IG1lcmdlTGFuZXMod29ya0luUHJvZ3Jlc3MubGFuZXMsIF9sYW5lKTsgLy8gU2NoZWR1bGUgdGhlIGVycm9yIGJvdW5kYXJ5IHRvIHJlLXJlbmRlciB1c2luZyB1cGRhdGVkIHN0YXRlXG5cbiAgICAgICAgICB2YXIgX3VwZGF0ZSA9IGNyZWF0ZUNsYXNzRXJyb3JVcGRhdGUod29ya0luUHJvZ3Jlc3MsIGVycm9ySW5mbywgX2xhbmUpO1xuXG4gICAgICAgICAgZW5xdWV1ZUNhcHR1cmVkVXBkYXRlKHdvcmtJblByb2dyZXNzLCBfdXBkYXRlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICB3b3JrSW5Qcm9ncmVzcyA9IHdvcmtJblByb2dyZXNzLnJldHVybjtcbiAgfSB3aGlsZSAod29ya0luUHJvZ3Jlc3MgIT09IG51bGwpO1xufVxuXG5mdW5jdGlvbiBnZXRTdXNwZW5kZWRDYWNoZSgpIHtcbiAge1xuICAgIHJldHVybiBudWxsO1xuICB9IC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gYSBTdXNwZW5zZSBib3VuZGFyeSBzdXNwZW5kcy4gSXQgcmV0dXJucyB0aGVcbn1cblxudmFyIFJlYWN0Q3VycmVudE93bmVyJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRPd25lcjtcbnZhciBkaWRSZWNlaXZlVXBkYXRlID0gZmFsc2U7XG52YXIgZGlkV2FybkFib3V0QmFkQ2xhc3M7XG52YXIgZGlkV2FybkFib3V0TW9kdWxlUGF0dGVybkNvbXBvbmVudDtcbnZhciBkaWRXYXJuQWJvdXRDb250ZXh0VHlwZU9uRnVuY3Rpb25Db21wb25lbnQ7XG52YXIgZGlkV2FybkFib3V0R2V0RGVyaXZlZFN0YXRlT25GdW5jdGlvbkNvbXBvbmVudDtcbnZhciBkaWRXYXJuQWJvdXRGdW5jdGlvblJlZnM7XG52YXIgZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcztcbnZhciBkaWRXYXJuQWJvdXRSZXZlYWxPcmRlcjtcbnZhciBkaWRXYXJuQWJvdXRUYWlsT3B0aW9ucztcblxue1xuICBkaWRXYXJuQWJvdXRCYWRDbGFzcyA9IHt9O1xuICBkaWRXYXJuQWJvdXRNb2R1bGVQYXR0ZXJuQ29tcG9uZW50ID0ge307XG4gIGRpZFdhcm5BYm91dENvbnRleHRUeXBlT25GdW5jdGlvbkNvbXBvbmVudCA9IHt9O1xuICBkaWRXYXJuQWJvdXRHZXREZXJpdmVkU3RhdGVPbkZ1bmN0aW9uQ29tcG9uZW50ID0ge307XG4gIGRpZFdhcm5BYm91dEZ1bmN0aW9uUmVmcyA9IHt9O1xuICBkaWRXYXJuQWJvdXRSZWFzc2lnbmluZ1Byb3BzID0gZmFsc2U7XG4gIGRpZFdhcm5BYm91dFJldmVhbE9yZGVyID0ge307XG4gIGRpZFdhcm5BYm91dFRhaWxPcHRpb25zID0ge307XG59XG5cbmZ1bmN0aW9uIHJlY29uY2lsZUNoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKSB7XG4gIGlmIChjdXJyZW50ID09PSBudWxsKSB7XG4gICAgLy8gSWYgdGhpcyBpcyBhIGZyZXNoIG5ldyBjb21wb25lbnQgdGhhdCBoYXNuJ3QgYmVlbiByZW5kZXJlZCB5ZXQsIHdlXG4gICAgLy8gd29uJ3QgdXBkYXRlIGl0cyBjaGlsZCBzZXQgYnkgYXBwbHlpbmcgbWluaW1hbCBzaWRlLWVmZmVjdHMuIEluc3RlYWQsXG4gICAgLy8gd2Ugd2lsbCBhZGQgdGhlbSBhbGwgdG8gdGhlIGNoaWxkIGJlZm9yZSBpdCBnZXRzIHJlbmRlcmVkLiBUaGF0IG1lYW5zXG4gICAgLy8gd2UgY2FuIG9wdGltaXplIHRoaXMgcmVjb25jaWxpYXRpb24gcGFzcyBieSBub3QgdHJhY2tpbmcgc2lkZS1lZmZlY3RzLlxuICAgIHdvcmtJblByb2dyZXNzLmNoaWxkID0gbW91bnRDaGlsZEZpYmVycyh3b3JrSW5Qcm9ncmVzcywgbnVsbCwgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gIH0gZWxzZSB7XG4gICAgLy8gSWYgdGhlIGN1cnJlbnQgY2hpbGQgaXMgdGhlIHNhbWUgYXMgdGhlIHdvcmsgaW4gcHJvZ3Jlc3MsIGl0IG1lYW5zIHRoYXRcbiAgICAvLyB3ZSBoYXZlbid0IHlldCBzdGFydGVkIGFueSB3b3JrIG9uIHRoZXNlIGNoaWxkcmVuLiBUaGVyZWZvcmUsIHdlIHVzZVxuICAgIC8vIHRoZSBjbG9uZSBhbGdvcml0aG0gdG8gY3JlYXRlIGEgY29weSBvZiBhbGwgdGhlIGN1cnJlbnQgY2hpbGRyZW4uXG4gICAgLy8gSWYgd2UgaGFkIGFueSBwcm9ncmVzc2VkIHdvcmsgYWxyZWFkeSwgdGhhdCBpcyBpbnZhbGlkIGF0IHRoaXMgcG9pbnQgc29cbiAgICAvLyBsZXQncyB0aHJvdyBpdCBvdXQuXG4gICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSByZWNvbmNpbGVDaGlsZEZpYmVycyh3b3JrSW5Qcm9ncmVzcywgY3VycmVudC5jaGlsZCwgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZm9yY2VVbm1vdW50Q3VycmVudEFuZFJlY29uY2lsZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcykge1xuICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGZvcmsgb2YgcmVjb25jaWxlQ2hpbGRyZW4uIEl0J3MgdXNlZCBpbiBjYXNlcyB3aGVyZSB3ZVxuICAvLyB3YW50IHRvIHJlY29uY2lsZSB3aXRob3V0IG1hdGNoaW5nIGFnYWluc3QgdGhlIGV4aXN0aW5nIHNldC4gVGhpcyBoYXMgdGhlXG4gIC8vIGVmZmVjdCBvZiBhbGwgY3VycmVudCBjaGlsZHJlbiBiZWluZyB1bm1vdW50ZWQ7IGV2ZW4gaWYgdGhlIHR5cGUgYW5kIGtleVxuICAvLyBhcmUgdGhlIHNhbWUsIHRoZSBvbGQgY2hpbGQgaXMgdW5tb3VudGVkIGFuZCBhIG5ldyBjaGlsZCBpcyBjcmVhdGVkLlxuICAvL1xuICAvLyBUbyBkbyB0aGlzLCB3ZSdyZSBnb2luZyB0byBnbyB0aHJvdWdoIHRoZSByZWNvbmNpbGUgYWxnb3JpdGhtIHR3aWNlLiBJblxuICAvLyB0aGUgZmlyc3QgcGFzcywgd2Ugc2NoZWR1bGUgYSBkZWxldGlvbiBmb3IgYWxsIHRoZSBjdXJyZW50IGNoaWxkcmVuIGJ5XG4gIC8vIHBhc3NpbmcgbnVsbC5cbiAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSByZWNvbmNpbGVDaGlsZEZpYmVycyh3b3JrSW5Qcm9ncmVzcywgY3VycmVudC5jaGlsZCwgbnVsbCwgcmVuZGVyTGFuZXMpOyAvLyBJbiB0aGUgc2Vjb25kIHBhc3MsIHdlIG1vdW50IHRoZSBuZXcgY2hpbGRyZW4uIFRoZSB0cmljayBoZXJlIGlzIHRoYXQgd2VcbiAgLy8gcGFzcyBudWxsIGluIHBsYWNlIG9mIHdoZXJlIHdlIHVzdWFsbHkgcGFzcyB0aGUgY3VycmVudCBjaGlsZCBzZXQuIFRoaXMgaGFzXG4gIC8vIHRoZSBlZmZlY3Qgb2YgcmVtb3VudGluZyBhbGwgY2hpbGRyZW4gcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZWlyXG4gIC8vIGlkZW50aXRpZXMgbWF0Y2guXG5cbiAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSByZWNvbmNpbGVDaGlsZEZpYmVycyh3b3JrSW5Qcm9ncmVzcywgbnVsbCwgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUZvcndhcmRSZWYoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzLCByZW5kZXJMYW5lcykge1xuICAvLyBUT0RPOiBjdXJyZW50IGNhbiBiZSBub24tbnVsbCBoZXJlIGV2ZW4gaWYgdGhlIGNvbXBvbmVudFxuICAvLyBoYXNuJ3QgeWV0IG1vdW50ZWQuIFRoaXMgaGFwcGVucyBhZnRlciB0aGUgZmlyc3QgcmVuZGVyIHN1c3BlbmRzLlxuICAvLyBXZSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhpcyBpcyBmaW5lIG9yIGNhbiBjYXVzZSBpc3N1ZXMuXG4gIHtcbiAgICBpZiAod29ya0luUHJvZ3Jlc3MudHlwZSAhPT0gd29ya0luUHJvZ3Jlc3MuZWxlbWVudFR5cGUpIHtcbiAgICAgIC8vIExhenkgY29tcG9uZW50IHByb3BzIGNhbid0IGJlIHZhbGlkYXRlZCBpbiBjcmVhdGVFbGVtZW50XG4gICAgICAvLyBiZWNhdXNlIHRoZXkncmUgb25seSBndWFyYW50ZWVkIHRvIGJlIHJlc29sdmVkIGhlcmUuXG4gICAgICB2YXIgaW5uZXJQcm9wVHlwZXMgPSBDb21wb25lbnQucHJvcFR5cGVzO1xuXG4gICAgICBpZiAoaW5uZXJQcm9wVHlwZXMpIHtcbiAgICAgICAgY2hlY2tQcm9wVHlwZXMoaW5uZXJQcm9wVHlwZXMsIG5leHRQcm9wcywgLy8gUmVzb2x2ZWQgcHJvcHNcbiAgICAgICAgJ3Byb3AnLCBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoQ29tcG9uZW50KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIHJlbmRlciA9IENvbXBvbmVudC5yZW5kZXI7XG4gIHZhciByZWYgPSB3b3JrSW5Qcm9ncmVzcy5yZWY7IC8vIFRoZSByZXN0IGlzIGEgZm9yayBvZiB1cGRhdGVGdW5jdGlvbkNvbXBvbmVudFxuXG4gIHZhciBuZXh0Q2hpbGRyZW47XG4gIHZhciBoYXNJZDtcbiAgcHJlcGFyZVRvUmVhZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcblxuICB7XG4gICAgbWFya0NvbXBvbmVudFJlbmRlclN0YXJ0ZWQod29ya0luUHJvZ3Jlc3MpO1xuICB9XG5cbiAge1xuICAgIFJlYWN0Q3VycmVudE93bmVyJDEuY3VycmVudCA9IHdvcmtJblByb2dyZXNzO1xuICAgIHNldElzUmVuZGVyaW5nKHRydWUpO1xuICAgIG5leHRDaGlsZHJlbiA9IHJlbmRlcldpdGhIb29rcyhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyLCBuZXh0UHJvcHMsIHJlZiwgcmVuZGVyTGFuZXMpO1xuICAgIGhhc0lkID0gY2hlY2tEaWRSZW5kZXJJZEhvb2soKTtcblxuICAgIGlmICggd29ya0luUHJvZ3Jlc3MubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUpIHtcbiAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKHRydWUpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBuZXh0Q2hpbGRyZW4gPSByZW5kZXJXaXRoSG9va3MoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlciwgbmV4dFByb3BzLCByZWYsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgaGFzSWQgPSBjaGVja0RpZFJlbmRlcklkSG9vaygpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoZmFsc2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNldElzUmVuZGVyaW5nKGZhbHNlKTtcbiAgfVxuXG4gIHtcbiAgICBtYXJrQ29tcG9uZW50UmVuZGVyU3RvcHBlZCgpO1xuICB9XG5cbiAgaWYgKGN1cnJlbnQgIT09IG51bGwgJiYgIWRpZFJlY2VpdmVVcGRhdGUpIHtcbiAgICBiYWlsb3V0SG9va3MoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgICByZXR1cm4gYmFpbG91dE9uQWxyZWFkeUZpbmlzaGVkV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICB9XG5cbiAgaWYgKGdldElzSHlkcmF0aW5nKCkgJiYgaGFzSWQpIHtcbiAgICBwdXNoTWF0ZXJpYWxpemVkVHJlZUlkKHdvcmtJblByb2dyZXNzKTtcbiAgfSAvLyBSZWFjdCBEZXZUb29scyByZWFkcyB0aGlzIGZsYWcuXG5cblxuICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBQZXJmb3JtZWRXb3JrO1xuICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbn1cblxuZnVuY3Rpb24gdXBkYXRlTWVtb0NvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCBuZXh0UHJvcHMsIHJlbmRlckxhbmVzKSB7XG4gIGlmIChjdXJyZW50ID09PSBudWxsKSB7XG4gICAgdmFyIHR5cGUgPSBDb21wb25lbnQudHlwZTtcblxuICAgIGlmIChpc1NpbXBsZUZ1bmN0aW9uQ29tcG9uZW50KHR5cGUpICYmIENvbXBvbmVudC5jb21wYXJlID09PSBudWxsICYmIC8vIFNpbXBsZU1lbW9Db21wb25lbnQgY29kZXBhdGggZG9lc24ndCByZXNvbHZlIG91dGVyIHByb3BzIGVpdGhlci5cbiAgICBDb21wb25lbnQuZGVmYXVsdFByb3BzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHZhciByZXNvbHZlZFR5cGUgPSB0eXBlO1xuXG4gICAgICB7XG4gICAgICAgIHJlc29sdmVkVHlwZSA9IHJlc29sdmVGdW5jdGlvbkZvckhvdFJlbG9hZGluZyh0eXBlKTtcbiAgICAgIH0gLy8gSWYgdGhpcyBpcyBhIHBsYWluIGZ1bmN0aW9uIGNvbXBvbmVudCB3aXRob3V0IGRlZmF1bHQgcHJvcHMsXG4gICAgICAvLyBhbmQgd2l0aCBvbmx5IHRoZSBkZWZhdWx0IHNoYWxsb3cgY29tcGFyaXNvbiwgd2UgdXBncmFkZSBpdFxuICAgICAgLy8gdG8gYSBTaW1wbGVNZW1vQ29tcG9uZW50IHRvIGFsbG93IGZhc3QgcGF0aCB1cGRhdGVzLlxuXG5cbiAgICAgIHdvcmtJblByb2dyZXNzLnRhZyA9IFNpbXBsZU1lbW9Db21wb25lbnQ7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy50eXBlID0gcmVzb2x2ZWRUeXBlO1xuXG4gICAgICB7XG4gICAgICAgIHZhbGlkYXRlRnVuY3Rpb25Db21wb25lbnRJbkRldih3b3JrSW5Qcm9ncmVzcywgdHlwZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB1cGRhdGVTaW1wbGVNZW1vQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZXNvbHZlZFR5cGUsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpO1xuICAgIH1cblxuICAgIHtcbiAgICAgIHZhciBpbm5lclByb3BUeXBlcyA9IHR5cGUucHJvcFR5cGVzO1xuXG4gICAgICBpZiAoaW5uZXJQcm9wVHlwZXMpIHtcbiAgICAgICAgLy8gSW5uZXIgbWVtbyBjb21wb25lbnQgcHJvcHMgYXJlbid0IGN1cnJlbnRseSB2YWxpZGF0ZWQgaW4gY3JlYXRlRWxlbWVudC5cbiAgICAgICAgLy8gV2UgY291bGQgbW92ZSBpdCB0aGVyZSwgYnV0IHdlJ2Qgc3RpbGwgbmVlZCB0aGlzIGZvciBsYXp5IGNvZGUgcGF0aC5cbiAgICAgICAgY2hlY2tQcm9wVHlwZXMoaW5uZXJQcm9wVHlwZXMsIG5leHRQcm9wcywgLy8gUmVzb2x2ZWQgcHJvcHNcbiAgICAgICAgJ3Byb3AnLCBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBjaGlsZCA9IGNyZWF0ZUZpYmVyRnJvbVR5cGVBbmRQcm9wcyhDb21wb25lbnQudHlwZSwgbnVsbCwgbmV4dFByb3BzLCB3b3JrSW5Qcm9ncmVzcywgd29ya0luUHJvZ3Jlc3MubW9kZSwgcmVuZGVyTGFuZXMpO1xuICAgIGNoaWxkLnJlZiA9IHdvcmtJblByb2dyZXNzLnJlZjtcbiAgICBjaGlsZC5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IGNoaWxkO1xuICAgIHJldHVybiBjaGlsZDtcbiAgfVxuXG4gIHtcbiAgICB2YXIgX3R5cGUgPSBDb21wb25lbnQudHlwZTtcbiAgICB2YXIgX2lubmVyUHJvcFR5cGVzID0gX3R5cGUucHJvcFR5cGVzO1xuXG4gICAgaWYgKF9pbm5lclByb3BUeXBlcykge1xuICAgICAgLy8gSW5uZXIgbWVtbyBjb21wb25lbnQgcHJvcHMgYXJlbid0IGN1cnJlbnRseSB2YWxpZGF0ZWQgaW4gY3JlYXRlRWxlbWVudC5cbiAgICAgIC8vIFdlIGNvdWxkIG1vdmUgaXQgdGhlcmUsIGJ1dCB3ZSdkIHN0aWxsIG5lZWQgdGhpcyBmb3IgbGF6eSBjb2RlIHBhdGguXG4gICAgICBjaGVja1Byb3BUeXBlcyhfaW5uZXJQcm9wVHlwZXMsIG5leHRQcm9wcywgLy8gUmVzb2x2ZWQgcHJvcHNcbiAgICAgICdwcm9wJywgZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKF90eXBlKSk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGN1cnJlbnRDaGlsZCA9IGN1cnJlbnQuY2hpbGQ7IC8vIFRoaXMgaXMgYWx3YXlzIGV4YWN0bHkgb25lIGNoaWxkXG5cbiAgdmFyIGhhc1NjaGVkdWxlZFVwZGF0ZU9yQ29udGV4dCA9IGNoZWNrU2NoZWR1bGVkVXBkYXRlT3JDb250ZXh0KGN1cnJlbnQsIHJlbmRlckxhbmVzKTtcblxuICBpZiAoIWhhc1NjaGVkdWxlZFVwZGF0ZU9yQ29udGV4dCkge1xuICAgIC8vIFRoaXMgd2lsbCBiZSB0aGUgcHJvcHMgd2l0aCByZXNvbHZlZCBkZWZhdWx0UHJvcHMsXG4gICAgLy8gdW5saWtlIGN1cnJlbnQubWVtb2l6ZWRQcm9wcyB3aGljaCB3aWxsIGJlIHRoZSB1bnJlc29sdmVkIG9uZXMuXG4gICAgdmFyIHByZXZQcm9wcyA9IGN1cnJlbnRDaGlsZC5tZW1vaXplZFByb3BzOyAvLyBEZWZhdWx0IHRvIHNoYWxsb3cgY29tcGFyaXNvblxuXG4gICAgdmFyIGNvbXBhcmUgPSBDb21wb25lbnQuY29tcGFyZTtcbiAgICBjb21wYXJlID0gY29tcGFyZSAhPT0gbnVsbCA/IGNvbXBhcmUgOiBzaGFsbG93RXF1YWw7XG5cbiAgICBpZiAoY29tcGFyZShwcmV2UHJvcHMsIG5leHRQcm9wcykgJiYgY3VycmVudC5yZWYgPT09IHdvcmtJblByb2dyZXNzLnJlZikge1xuICAgICAgcmV0dXJuIGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgICB9XG4gIH0gLy8gUmVhY3QgRGV2VG9vbHMgcmVhZHMgdGhpcyBmbGFnLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUGVyZm9ybWVkV29yaztcbiAgdmFyIG5ld0NoaWxkID0gY3JlYXRlV29ya0luUHJvZ3Jlc3MoY3VycmVudENoaWxkLCBuZXh0UHJvcHMpO1xuICBuZXdDaGlsZC5yZWYgPSB3b3JrSW5Qcm9ncmVzcy5yZWY7XG4gIG5ld0NoaWxkLnJldHVybiA9IHdvcmtJblByb2dyZXNzO1xuICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IG5ld0NoaWxkO1xuICByZXR1cm4gbmV3Q2hpbGQ7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVNpbXBsZU1lbW9Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzLCByZW5kZXJMYW5lcykge1xuICAvLyBUT0RPOiBjdXJyZW50IGNhbiBiZSBub24tbnVsbCBoZXJlIGV2ZW4gaWYgdGhlIGNvbXBvbmVudFxuICAvLyBoYXNuJ3QgeWV0IG1vdW50ZWQuIFRoaXMgaGFwcGVucyB3aGVuIHRoZSBpbm5lciByZW5kZXIgc3VzcGVuZHMuXG4gIC8vIFdlJ2xsIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGlzIGlzIGZpbmUgb3IgY2FuIGNhdXNlIGlzc3Vlcy5cbiAge1xuICAgIGlmICh3b3JrSW5Qcm9ncmVzcy50eXBlICE9PSB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSkge1xuICAgICAgLy8gTGF6eSBjb21wb25lbnQgcHJvcHMgY2FuJ3QgYmUgdmFsaWRhdGVkIGluIGNyZWF0ZUVsZW1lbnRcbiAgICAgIC8vIGJlY2F1c2UgdGhleSdyZSBvbmx5IGd1YXJhbnRlZWQgdG8gYmUgcmVzb2x2ZWQgaGVyZS5cbiAgICAgIHZhciBvdXRlck1lbW9UeXBlID0gd29ya0luUHJvZ3Jlc3MuZWxlbWVudFR5cGU7XG5cbiAgICAgIGlmIChvdXRlck1lbW9UeXBlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEUpIHtcbiAgICAgICAgLy8gV2Ugd2FybiB3aGVuIHlvdSBkZWZpbmUgcHJvcFR5cGVzIG9uIGxhenkoKVxuICAgICAgICAvLyBzbyBsZXQncyBqdXN0IHNraXAgb3ZlciBpdCB0byBmaW5kIG1lbW8oKSBvdXRlciB3cmFwcGVyLlxuICAgICAgICAvLyBJbm5lciBwcm9wcyBmb3IgbWVtbyBhcmUgdmFsaWRhdGVkIGxhdGVyLlxuICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IG91dGVyTWVtb1R5cGU7XG4gICAgICAgIHZhciBwYXlsb2FkID0gbGF6eUNvbXBvbmVudC5fcGF5bG9hZDtcbiAgICAgICAgdmFyIGluaXQgPSBsYXp5Q29tcG9uZW50Ll9pbml0O1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgb3V0ZXJNZW1vVHlwZSA9IGluaXQocGF5bG9hZCk7XG4gICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICBvdXRlck1lbW9UeXBlID0gbnVsbDtcbiAgICAgICAgfSAvLyBJbm5lciBwcm9wVHlwZXMgd2lsbCBiZSB2YWxpZGF0ZWQgaW4gdGhlIGZ1bmN0aW9uIGNvbXBvbmVudCBwYXRoLlxuXG5cbiAgICAgICAgdmFyIG91dGVyUHJvcFR5cGVzID0gb3V0ZXJNZW1vVHlwZSAmJiBvdXRlck1lbW9UeXBlLnByb3BUeXBlcztcblxuICAgICAgICBpZiAob3V0ZXJQcm9wVHlwZXMpIHtcbiAgICAgICAgICBjaGVja1Byb3BUeXBlcyhvdXRlclByb3BUeXBlcywgbmV4dFByb3BzLCAvLyBSZXNvbHZlZCAoU2ltcGxlTWVtb0NvbXBvbmVudCBoYXMgbm8gZGVmYXVsdFByb3BzKVxuICAgICAgICAgICdwcm9wJywgZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKG91dGVyTWVtb1R5cGUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgdmFyIHByZXZQcm9wcyA9IGN1cnJlbnQubWVtb2l6ZWRQcm9wcztcblxuICAgIGlmIChzaGFsbG93RXF1YWwocHJldlByb3BzLCBuZXh0UHJvcHMpICYmIGN1cnJlbnQucmVmID09PSB3b3JrSW5Qcm9ncmVzcy5yZWYgJiYgKCAvLyBQcmV2ZW50IGJhaWxvdXQgaWYgdGhlIGltcGxlbWVudGF0aW9uIGNoYW5nZWQgZHVlIHRvIGhvdCByZWxvYWQuXG4gICAgIHdvcmtJblByb2dyZXNzLnR5cGUgPT09IGN1cnJlbnQudHlwZSApKSB7XG4gICAgICBkaWRSZWNlaXZlVXBkYXRlID0gZmFsc2U7IC8vIFRoZSBwcm9wcyBhcmUgc2hhbGxvd2x5IGVxdWFsLiBSZXVzZSB0aGUgcHJldmlvdXMgcHJvcHMgb2JqZWN0LCBsaWtlIHdlXG4gICAgICAvLyB3b3VsZCBkdXJpbmcgYSBub3JtYWwgZmliZXIgYmFpbG91dC5cbiAgICAgIC8vXG4gICAgICAvLyBXZSBkb24ndCBoYXZlIHN0cm9uZyBndWFyYW50ZWVzIHRoYXQgdGhlIHByb3BzIG9iamVjdCBpcyByZWZlcmVudGlhbGx5XG4gICAgICAvLyBlcXVhbCBkdXJpbmcgdXBkYXRlcyB3aGVyZSB3ZSBjYW4ndCBiYWlsIG91dCBhbnl3YXkg4oCUIGxpa2UgaWYgdGhlIHByb3BzXG4gICAgICAvLyBhcmUgc2hhbGxvd2x5IGVxdWFsLCBidXQgdGhlcmUncyBhIGxvY2FsIHN0YXRlIG9yIGNvbnRleHQgdXBkYXRlIGluIHRoZVxuICAgICAgLy8gc2FtZSBiYXRjaC5cbiAgICAgIC8vXG4gICAgICAvLyBIb3dldmVyLCBhcyBhIHByaW5jaXBsZSwgd2Ugc2hvdWxkIGFpbSB0byBtYWtlIHRoZSBiZWhhdmlvciBjb25zaXN0ZW50XG4gICAgICAvLyBhY3Jvc3MgZGlmZmVyZW50IHdheXMgb2YgbWVtb2l6aW5nIGEgY29tcG9uZW50LiBGb3IgZXhhbXBsZSwgUmVhY3QubWVtb1xuICAgICAgLy8gaGFzIGEgZGlmZmVyZW50IGludGVybmFsIEZpYmVyIGxheW91dCBpZiB5b3UgcGFzcyBhIG5vcm1hbCBmdW5jdGlvblxuICAgICAgLy8gY29tcG9uZW50IChTaW1wbGVNZW1vQ29tcG9uZW50KSB2ZXJzdXMgaWYgeW91IHBhc3MgYSBkaWZmZXJlbnQgdHlwZVxuICAgICAgLy8gbGlrZSBmb3J3YXJkUmVmIChNZW1vQ29tcG9uZW50KS4gQnV0IHRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLlxuICAgICAgLy8gV3JhcHBpbmcgYSBjb21wb25lbnQgaW4gZm9yd2FyZFJlZiAob3IgUmVhY3QubGF6eSwgZXRjKSBzaG91bGRuJ3RcbiAgICAgIC8vIGFmZmVjdCB3aGV0aGVyIHRoZSBwcm9wcyBvYmplY3QgaXMgcmV1c2VkIGR1cmluZyBhIGJhaWxvdXQuXG5cbiAgICAgIHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyA9IG5leHRQcm9wcyA9IHByZXZQcm9wcztcblxuICAgICAgaWYgKCFjaGVja1NjaGVkdWxlZFVwZGF0ZU9yQ29udGV4dChjdXJyZW50LCByZW5kZXJMYW5lcykpIHtcbiAgICAgICAgLy8gVGhlIHBlbmRpbmcgbGFuZXMgd2VyZSBjbGVhcmVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgYmVnaW5Xb3JrLiBXZSdyZVxuICAgICAgICAvLyBhYm91dCB0byBiYWlsIG91dCwgYnV0IHRoZXJlIG1pZ2h0IGJlIG90aGVyIGxhbmVzIHRoYXQgd2VyZW4ndFxuICAgICAgICAvLyBpbmNsdWRlZCBpbiB0aGUgY3VycmVudCByZW5kZXIuIFVzdWFsbHksIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGVcbiAgICAgICAgLy8gcmVtYWluaW5nIHVwZGF0ZXMgaXMgYWNjdW11bGF0ZWQgZHVyaW5nIHRoZSBldmFsdWF0aW9uIG9mIHRoZVxuICAgICAgICAvLyBjb21wb25lbnQgKGkuZS4gd2hlbiBwcm9jZXNzaW5nIHRoZSB1cGRhdGUgcXVldWUpLiBCdXQgc2luY2Ugc2luY2VcbiAgICAgICAgLy8gd2UncmUgYmFpbGluZyBvdXQgZWFybHkgKndpdGhvdXQqIGV2YWx1YXRpbmcgdGhlIGNvbXBvbmVudCwgd2UgbmVlZFxuICAgICAgICAvLyB0byBhY2NvdW50IGZvciBpdCBoZXJlLCB0b28uIFJlc2V0IHRvIHRoZSB2YWx1ZSBvZiB0aGUgY3VycmVudCBmaWJlci5cbiAgICAgICAgLy8gTk9URTogVGhpcyBvbmx5IGFwcGxpZXMgdG8gU2ltcGxlTWVtb0NvbXBvbmVudCwgbm90IE1lbW9Db21wb25lbnQsXG4gICAgICAgIC8vIGJlY2F1c2UgYSBNZW1vQ29tcG9uZW50IGZpYmVyIGRvZXMgbm90IGhhdmUgaG9va3Mgb3IgYW4gdXBkYXRlIHF1ZXVlO1xuICAgICAgICAvLyByYXRoZXIsIGl0IHdyYXBzIGFyb3VuZCBhbiBpbm5lciBjb21wb25lbnQsIHdoaWNoIG1heSBvciBtYXkgbm90XG4gICAgICAgIC8vIGNvbnRhaW5zIGhvb2tzLlxuICAgICAgICAvLyBUT0RPOiBNb3ZlIHRoZSByZXNldCBhdCBpbiBiZWdpbldvcmsgb3V0IG9mIHRoZSBjb21tb24gcGF0aCBzbyB0aGF0XG4gICAgICAgIC8vIHRoaXMgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeS5cbiAgICAgICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBjdXJyZW50LmxhbmVzO1xuICAgICAgICByZXR1cm4gYmFpbG91dE9uQWxyZWFkeUZpbmlzaGVkV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICAgICAgfSBlbHNlIGlmICgoY3VycmVudC5mbGFncyAmIEZvcmNlVXBkYXRlRm9yTGVnYWN5U3VzcGVuc2UpICE9PSBOb0ZsYWdzKSB7XG4gICAgICAgIC8vIFRoaXMgaXMgYSBzcGVjaWFsIGNhc2UgdGhhdCBvbmx5IGV4aXN0cyBmb3IgbGVnYWN5IG1vZGUuXG4gICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC8xOTIxNi5cbiAgICAgICAgZGlkUmVjZWl2ZVVwZGF0ZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVwZGF0ZUZ1bmN0aW9uQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVPZmZzY3JlZW5Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHZhciBuZXh0UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gIHZhciBuZXh0Q2hpbGRyZW4gPSBuZXh0UHJvcHMuY2hpbGRyZW47XG4gIHZhciBwcmV2U3RhdGUgPSBjdXJyZW50ICE9PSBudWxsID8gY3VycmVudC5tZW1vaXplZFN0YXRlIDogbnVsbDtcblxuICBpZiAobmV4dFByb3BzLm1vZGUgPT09ICdoaWRkZW4nIHx8IGVuYWJsZUxlZ2FjeUhpZGRlbiApIHtcbiAgICAvLyBSZW5kZXJpbmcgYSBoaWRkZW4gdHJlZS5cbiAgICBpZiAoKHdvcmtJblByb2dyZXNzLm1vZGUgJiBDb25jdXJyZW50TW9kZSkgPT09IE5vTW9kZSkge1xuICAgICAgLy8gSW4gbGVnYWN5IHN5bmMgbW9kZSwgZG9uJ3QgZGVmZXIgdGhlIHN1YnRyZWUuIFJlbmRlciBpdCBub3cuXG4gICAgICAvLyBUT0RPOiBDb25zaWRlciBob3cgT2Zmc2NyZWVuIHNob3VsZCB3b3JrIHdpdGggdHJhbnNpdGlvbnMgaW4gdGhlIGZ1dHVyZVxuICAgICAgdmFyIG5leHRTdGF0ZSA9IHtcbiAgICAgICAgYmFzZUxhbmVzOiBOb0xhbmVzLFxuICAgICAgICBjYWNoZVBvb2w6IG51bGwsXG4gICAgICAgIHRyYW5zaXRpb25zOiBudWxsXG4gICAgICB9O1xuICAgICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG5leHRTdGF0ZTtcblxuICAgICAgcHVzaFJlbmRlckxhbmVzKHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgfSBlbHNlIGlmICghaW5jbHVkZXNTb21lTGFuZShyZW5kZXJMYW5lcywgT2Zmc2NyZWVuTGFuZSkpIHtcbiAgICAgIHZhciBzcGF3bmVkQ2FjaGVQb29sID0gbnVsbDsgLy8gV2UncmUgaGlkZGVuLCBhbmQgd2UncmUgbm90IHJlbmRlcmluZyBhdCBPZmZzY3JlZW4uIFdlIHdpbGwgYmFpbCBvdXRcbiAgICAgIC8vIGFuZCByZXN1bWUgdGhpcyB0cmVlIGxhdGVyLlxuXG4gICAgICB2YXIgbmV4dEJhc2VMYW5lcztcblxuICAgICAgaWYgKHByZXZTdGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgcHJldkJhc2VMYW5lcyA9IHByZXZTdGF0ZS5iYXNlTGFuZXM7XG4gICAgICAgIG5leHRCYXNlTGFuZXMgPSBtZXJnZUxhbmVzKHByZXZCYXNlTGFuZXMsIHJlbmRlckxhbmVzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHRCYXNlTGFuZXMgPSByZW5kZXJMYW5lcztcbiAgICAgIH0gLy8gU2NoZWR1bGUgdGhpcyBmaWJlciB0byByZS1yZW5kZXIgYXQgb2Zmc2NyZWVuIHByaW9yaXR5LiBUaGVuIGJhaWxvdXQuXG5cblxuICAgICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZExhbmVzID0gbGFuZVRvTGFuZXMoT2Zmc2NyZWVuTGFuZSk7XG4gICAgICB2YXIgX25leHRTdGF0ZSA9IHtcbiAgICAgICAgYmFzZUxhbmVzOiBuZXh0QmFzZUxhbmVzLFxuICAgICAgICBjYWNoZVBvb2w6IHNwYXduZWRDYWNoZVBvb2wsXG4gICAgICAgIHRyYW5zaXRpb25zOiBudWxsXG4gICAgICB9O1xuICAgICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IF9uZXh0U3RhdGU7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IG51bGw7XG4gICAgICAvLyB0byBhdm9pZCBhIHB1c2gvcG9wIG1pc2FsaWdubWVudC5cblxuXG4gICAgICBwdXNoUmVuZGVyTGFuZXMod29ya0luUHJvZ3Jlc3MsIG5leHRCYXNlTGFuZXMpO1xuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhpcyBpcyB0aGUgc2Vjb25kIHJlbmRlci4gVGhlIHN1cnJvdW5kaW5nIHZpc2libGUgY29udGVudCBoYXMgYWxyZWFkeVxuICAgICAgLy8gY29tbWl0dGVkLiBOb3cgd2UgcmVzdW1lIHJlbmRlcmluZyB0aGUgaGlkZGVuIHRyZWUuXG4gICAgICAvLyBSZW5kZXJpbmcgYXQgb2Zmc2NyZWVuLCBzbyB3ZSBjYW4gY2xlYXIgdGhlIGJhc2UgbGFuZXMuXG4gICAgICB2YXIgX25leHRTdGF0ZTIgPSB7XG4gICAgICAgIGJhc2VMYW5lczogTm9MYW5lcyxcbiAgICAgICAgY2FjaGVQb29sOiBudWxsLFxuICAgICAgICB0cmFuc2l0aW9uczogbnVsbFxuICAgICAgfTtcbiAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBfbmV4dFN0YXRlMjsgLy8gUHVzaCB0aGUgbGFuZXMgdGhhdCB3ZXJlIHNraXBwZWQgd2hlbiB3ZSBiYWlsZWQgb3V0LlxuXG4gICAgICB2YXIgc3VidHJlZVJlbmRlckxhbmVzID0gcHJldlN0YXRlICE9PSBudWxsID8gcHJldlN0YXRlLmJhc2VMYW5lcyA6IHJlbmRlckxhbmVzO1xuXG4gICAgICBwdXNoUmVuZGVyTGFuZXMod29ya0luUHJvZ3Jlc3MsIHN1YnRyZWVSZW5kZXJMYW5lcyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIFJlbmRlcmluZyBhIHZpc2libGUgdHJlZS5cbiAgICB2YXIgX3N1YnRyZWVSZW5kZXJMYW5lcztcblxuICAgIGlmIChwcmV2U3RhdGUgIT09IG51bGwpIHtcbiAgICAgIC8vIFdlJ3JlIGdvaW5nIGZyb20gaGlkZGVuIC0+IHZpc2libGUuXG4gICAgICBfc3VidHJlZVJlbmRlckxhbmVzID0gbWVyZ2VMYW5lcyhwcmV2U3RhdGUuYmFzZUxhbmVzLCByZW5kZXJMYW5lcyk7XG5cbiAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBXZSB3ZXJlbid0IHByZXZpb3VzbHkgaGlkZGVuLCBhbmQgd2Ugc3RpbGwgYXJlbid0LCBzbyB0aGVyZSdzIG5vdGhpbmdcbiAgICAgIC8vIHNwZWNpYWwgdG8gZG8uIE5lZWQgdG8gcHVzaCB0byB0aGUgc3RhY2sgcmVnYXJkbGVzcywgdGhvdWdoLCB0byBhdm9pZFxuICAgICAgLy8gYSBwdXNoL3BvcCBtaXNhbGlnbm1lbnQuXG4gICAgICBfc3VidHJlZVJlbmRlckxhbmVzID0gcmVuZGVyTGFuZXM7XG4gICAgfVxuXG4gICAgcHVzaFJlbmRlckxhbmVzKHdvcmtJblByb2dyZXNzLCBfc3VidHJlZVJlbmRlckxhbmVzKTtcbiAgfVxuXG4gIHJlY29uY2lsZUNoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufSAvLyBOb3RlOiBUaGVzZSBoYXBwZW4gdG8gaGF2ZSBpZGVudGljYWwgYmVnaW4gcGhhc2VzLCBmb3Igbm93LiBXZSBzaG91bGRuJ3QgaG9sZFxuXG5mdW5jdGlvbiB1cGRhdGVGcmFnbWVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIG5leHRDaGlsZHJlbiA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZU1vZGUoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHZhciBuZXh0Q2hpbGRyZW4gPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMuY2hpbGRyZW47XG4gIHJlY29uY2lsZUNoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVQcm9maWxlcihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAge1xuICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFVwZGF0ZTtcblxuICAgIHtcbiAgICAgIC8vIFJlc2V0IGVmZmVjdCBkdXJhdGlvbnMgZm9yIHRoZSBuZXh0IGV2ZW50dWFsIGVmZmVjdCBwaGFzZS5cbiAgICAgIC8vIFRoZXNlIGFyZSByZXNldCBkdXJpbmcgcmVuZGVyIHRvIGFsbG93IHRoZSBEZXZUb29scyBjb21taXQgaG9vayBhIGNoYW5jZSB0byByZWFkIHRoZW0sXG4gICAgICB2YXIgc3RhdGVOb2RlID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuICAgICAgc3RhdGVOb2RlLmVmZmVjdER1cmF0aW9uID0gMDtcbiAgICAgIHN0YXRlTm9kZS5wYXNzaXZlRWZmZWN0RHVyYXRpb24gPSAwO1xuICAgIH1cbiAgfVxuXG4gIHZhciBuZXh0UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gIHZhciBuZXh0Q2hpbGRyZW4gPSBuZXh0UHJvcHMuY2hpbGRyZW47XG4gIHJlY29uY2lsZUNoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufVxuXG5mdW5jdGlvbiBtYXJrUmVmKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKSB7XG4gIHZhciByZWYgPSB3b3JrSW5Qcm9ncmVzcy5yZWY7XG5cbiAgaWYgKGN1cnJlbnQgPT09IG51bGwgJiYgcmVmICE9PSBudWxsIHx8IGN1cnJlbnQgIT09IG51bGwgJiYgY3VycmVudC5yZWYgIT09IHJlZikge1xuICAgIC8vIFNjaGVkdWxlIGEgUmVmIGVmZmVjdFxuICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFJlZjtcblxuICAgIHtcbiAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFJlZlN0YXRpYztcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlRnVuY3Rpb25Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzLCByZW5kZXJMYW5lcykge1xuICB7XG4gICAgaWYgKHdvcmtJblByb2dyZXNzLnR5cGUgIT09IHdvcmtJblByb2dyZXNzLmVsZW1lbnRUeXBlKSB7XG4gICAgICAvLyBMYXp5IGNvbXBvbmVudCBwcm9wcyBjYW4ndCBiZSB2YWxpZGF0ZWQgaW4gY3JlYXRlRWxlbWVudFxuICAgICAgLy8gYmVjYXVzZSB0aGV5J3JlIG9ubHkgZ3VhcmFudGVlZCB0byBiZSByZXNvbHZlZCBoZXJlLlxuICAgICAgdmFyIGlubmVyUHJvcFR5cGVzID0gQ29tcG9uZW50LnByb3BUeXBlcztcblxuICAgICAgaWYgKGlubmVyUHJvcFR5cGVzKSB7XG4gICAgICAgIGNoZWNrUHJvcFR5cGVzKGlubmVyUHJvcFR5cGVzLCBuZXh0UHJvcHMsIC8vIFJlc29sdmVkIHByb3BzXG4gICAgICAgICdwcm9wJywgZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKENvbXBvbmVudCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBjb250ZXh0O1xuXG4gIHtcbiAgICB2YXIgdW5tYXNrZWRDb250ZXh0ID0gZ2V0VW5tYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHRydWUpO1xuICAgIGNvbnRleHQgPSBnZXRNYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCB1bm1hc2tlZENvbnRleHQpO1xuICB9XG5cbiAgdmFyIG5leHRDaGlsZHJlbjtcbiAgdmFyIGhhc0lkO1xuICBwcmVwYXJlVG9SZWFkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuXG4gIHtcbiAgICBtYXJrQ29tcG9uZW50UmVuZGVyU3RhcnRlZCh3b3JrSW5Qcm9ncmVzcyk7XG4gIH1cblxuICB7XG4gICAgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50ID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgc2V0SXNSZW5kZXJpbmcodHJ1ZSk7XG4gICAgbmV4dENoaWxkcmVuID0gcmVuZGVyV2l0aEhvb2tzKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgY29udGV4dCwgcmVuZGVyTGFuZXMpO1xuICAgIGhhc0lkID0gY2hlY2tEaWRSZW5kZXJJZEhvb2soKTtcblxuICAgIGlmICggd29ya0luUHJvZ3Jlc3MubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUpIHtcbiAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKHRydWUpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBuZXh0Q2hpbGRyZW4gPSByZW5kZXJXaXRoSG9va3MoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzLCBjb250ZXh0LCByZW5kZXJMYW5lcyk7XG4gICAgICAgIGhhc0lkID0gY2hlY2tEaWRSZW5kZXJJZEhvb2soKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRJc1JlbmRlcmluZyhmYWxzZSk7XG4gIH1cblxuICB7XG4gICAgbWFya0NvbXBvbmVudFJlbmRlclN0b3BwZWQoKTtcbiAgfVxuXG4gIGlmIChjdXJyZW50ICE9PSBudWxsICYmICFkaWRSZWNlaXZlVXBkYXRlKSB7XG4gICAgYmFpbG91dEhvb2tzKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgcmV0dXJuIGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgfVxuXG4gIGlmIChnZXRJc0h5ZHJhdGluZygpICYmIGhhc0lkKSB7XG4gICAgcHVzaE1hdGVyaWFsaXplZFRyZWVJZCh3b3JrSW5Qcm9ncmVzcyk7XG4gIH0gLy8gUmVhY3QgRGV2VG9vbHMgcmVhZHMgdGhpcyBmbGFnLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUGVyZm9ybWVkV29yaztcbiAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUNsYXNzQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpIHtcbiAge1xuICAgIC8vIFRoaXMgaXMgdXNlZCBieSBEZXZUb29scyB0byBmb3JjZSBhIGJvdW5kYXJ5IHRvIGVycm9yLlxuICAgIHN3aXRjaCAoc2hvdWxkRXJyb3Iod29ya0luUHJvZ3Jlc3MpKSB7XG4gICAgICBjYXNlIGZhbHNlOlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIF9pbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcbiAgICAgICAgICB2YXIgY3RvciA9IHdvcmtJblByb2dyZXNzLnR5cGU7IC8vIFRPRE8gVGhpcyB3YXkgb2YgcmVzZXR0aW5nIHRoZSBlcnJvciBib3VuZGFyeSBzdGF0ZSBpcyBhIGhhY2suXG4gICAgICAgICAgLy8gSXMgdGhlcmUgYSBiZXR0ZXIgd2F5IHRvIGRvIHRoaXM/XG5cbiAgICAgICAgICB2YXIgdGVtcEluc3RhbmNlID0gbmV3IGN0b3Iod29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRQcm9wcywgX2luc3RhbmNlLmNvbnRleHQpO1xuICAgICAgICAgIHZhciBzdGF0ZSA9IHRlbXBJbnN0YW5jZS5zdGF0ZTtcblxuICAgICAgICAgIF9pbnN0YW5jZS51cGRhdGVyLmVucXVldWVTZXRTdGF0ZShfaW5zdGFuY2UsIHN0YXRlLCBudWxsKTtcblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgdHJ1ZTpcbiAgICAgICAge1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IERpZENhcHR1cmU7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gU2hvdWxkQ2FwdHVyZTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3Byb2QtZXJyb3ItY29kZXNcblxuICAgICAgICAgIHZhciBlcnJvciQxID0gbmV3IEVycm9yKCdTaW11bGF0ZWQgZXJyb3IgY29taW5nIGZyb20gRGV2VG9vbHMnKTtcbiAgICAgICAgICB2YXIgbGFuZSA9IHBpY2tBcmJpdHJhcnlMYW5lKHJlbmRlckxhbmVzKTtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IG1lcmdlTGFuZXMod29ya0luUHJvZ3Jlc3MubGFuZXMsIGxhbmUpOyAvLyBTY2hlZHVsZSB0aGUgZXJyb3IgYm91bmRhcnkgdG8gcmUtcmVuZGVyIHVzaW5nIHVwZGF0ZWQgc3RhdGVcblxuICAgICAgICAgIHZhciB1cGRhdGUgPSBjcmVhdGVDbGFzc0Vycm9yVXBkYXRlKHdvcmtJblByb2dyZXNzLCBjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcihlcnJvciQxLCB3b3JrSW5Qcm9ncmVzcyksIGxhbmUpO1xuICAgICAgICAgIGVucXVldWVDYXB0dXJlZFVwZGF0ZSh3b3JrSW5Qcm9ncmVzcywgdXBkYXRlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmICh3b3JrSW5Qcm9ncmVzcy50eXBlICE9PSB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSkge1xuICAgICAgLy8gTGF6eSBjb21wb25lbnQgcHJvcHMgY2FuJ3QgYmUgdmFsaWRhdGVkIGluIGNyZWF0ZUVsZW1lbnRcbiAgICAgIC8vIGJlY2F1c2UgdGhleSdyZSBvbmx5IGd1YXJhbnRlZWQgdG8gYmUgcmVzb2x2ZWQgaGVyZS5cbiAgICAgIHZhciBpbm5lclByb3BUeXBlcyA9IENvbXBvbmVudC5wcm9wVHlwZXM7XG5cbiAgICAgIGlmIChpbm5lclByb3BUeXBlcykge1xuICAgICAgICBjaGVja1Byb3BUeXBlcyhpbm5lclByb3BUeXBlcywgbmV4dFByb3BzLCAvLyBSZXNvbHZlZCBwcm9wc1xuICAgICAgICAncHJvcCcsIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gLy8gUHVzaCBjb250ZXh0IHByb3ZpZGVycyBlYXJseSB0byBwcmV2ZW50IGNvbnRleHQgc3RhY2sgbWlzbWF0Y2hlcy5cbiAgLy8gRHVyaW5nIG1vdW50aW5nIHdlIGRvbid0IGtub3cgdGhlIGNoaWxkIGNvbnRleHQgeWV0IGFzIHRoZSBpbnN0YW5jZSBkb2Vzbid0IGV4aXN0LlxuICAvLyBXZSB3aWxsIGludmFsaWRhdGUgdGhlIGNoaWxkIGNvbnRleHQgaW4gZmluaXNoQ2xhc3NDb21wb25lbnQoKSByaWdodCBhZnRlciByZW5kZXJpbmcuXG5cblxuICB2YXIgaGFzQ29udGV4dDtcblxuICBpZiAoaXNDb250ZXh0UHJvdmlkZXIoQ29tcG9uZW50KSkge1xuICAgIGhhc0NvbnRleHQgPSB0cnVlO1xuICAgIHB1c2hDb250ZXh0UHJvdmlkZXIod29ya0luUHJvZ3Jlc3MpO1xuICB9IGVsc2Uge1xuICAgIGhhc0NvbnRleHQgPSBmYWxzZTtcbiAgfVxuXG4gIHByZXBhcmVUb1JlYWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gIHZhciBpbnN0YW5jZSA9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZTtcbiAgdmFyIHNob3VsZFVwZGF0ZTtcblxuICBpZiAoaW5zdGFuY2UgPT09IG51bGwpIHtcbiAgICByZXNldFN1c3BlbmRlZEN1cnJlbnRPbk1vdW50SW5MZWdhY3lNb2RlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTsgLy8gSW4gdGhlIGluaXRpYWwgcGFzcyB3ZSBtaWdodCBuZWVkIHRvIGNvbnN0cnVjdCB0aGUgaW5zdGFuY2UuXG5cbiAgICBjb25zdHJ1Y3RDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcyk7XG4gICAgbW91bnRDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpO1xuICAgIHNob3VsZFVwZGF0ZSA9IHRydWU7XG4gIH0gZWxzZSBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgIC8vIEluIGEgcmVzdW1lLCB3ZSdsbCBhbHJlYWR5IGhhdmUgYW4gaW5zdGFuY2Ugd2UgY2FuIHJldXNlLlxuICAgIHNob3VsZFVwZGF0ZSA9IHJlc3VtZU1vdW50Q2xhc3NJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCBuZXh0UHJvcHMsIHJlbmRlckxhbmVzKTtcbiAgfSBlbHNlIHtcbiAgICBzaG91bGRVcGRhdGUgPSB1cGRhdGVDbGFzc0luc3RhbmNlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpO1xuICB9XG5cbiAgdmFyIG5leHRVbml0T2ZXb3JrID0gZmluaXNoQ2xhc3NDb21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgc2hvdWxkVXBkYXRlLCBoYXNDb250ZXh0LCByZW5kZXJMYW5lcyk7XG5cbiAge1xuICAgIHZhciBpbnN0ID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuXG4gICAgaWYgKHNob3VsZFVwZGF0ZSAmJiBpbnN0LnByb3BzICE9PSBuZXh0UHJvcHMpIHtcbiAgICAgIGlmICghZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcykge1xuICAgICAgICBlcnJvcignSXQgbG9va3MgbGlrZSAlcyBpcyByZWFzc2lnbmluZyBpdHMgb3duIGB0aGlzLnByb3BzYCB3aGlsZSByZW5kZXJpbmcuICcgKyAnVGhpcyBpcyBub3Qgc3VwcG9ydGVkIGFuZCBjYW4gbGVhZCB0byBjb25mdXNpbmcgYnVncy4nLCBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKHdvcmtJblByb2dyZXNzKSB8fCAnYSBjb21wb25lbnQnKTtcbiAgICAgIH1cblxuICAgICAgZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5leHRVbml0T2ZXb3JrO1xufVxuXG5mdW5jdGlvbiBmaW5pc2hDbGFzc0NvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCBzaG91bGRVcGRhdGUsIGhhc0NvbnRleHQsIHJlbmRlckxhbmVzKSB7XG4gIC8vIFJlZnMgc2hvdWxkIHVwZGF0ZSBldmVuIGlmIHNob3VsZENvbXBvbmVudFVwZGF0ZSByZXR1cm5zIGZhbHNlXG4gIG1hcmtSZWYoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpO1xuICB2YXIgZGlkQ2FwdHVyZUVycm9yID0gKHdvcmtJblByb2dyZXNzLmZsYWdzICYgRGlkQ2FwdHVyZSkgIT09IE5vRmxhZ3M7XG5cbiAgaWYgKCFzaG91bGRVcGRhdGUgJiYgIWRpZENhcHR1cmVFcnJvcikge1xuICAgIC8vIENvbnRleHQgcHJvdmlkZXJzIHNob3VsZCBkZWZlciB0byBzQ1UgZm9yIHJlbmRlcmluZ1xuICAgIGlmIChoYXNDb250ZXh0KSB7XG4gICAgICBpbnZhbGlkYXRlQ29udGV4dFByb3ZpZGVyKHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIGZhbHNlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYmFpbG91dE9uQWxyZWFkeUZpbmlzaGVkV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICB9XG5cbiAgdmFyIGluc3RhbmNlID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlOyAvLyBSZXJlbmRlclxuXG4gIFJlYWN0Q3VycmVudE93bmVyJDEuY3VycmVudCA9IHdvcmtJblByb2dyZXNzO1xuICB2YXIgbmV4dENoaWxkcmVuO1xuXG4gIGlmIChkaWRDYXB0dXJlRXJyb3IgJiYgdHlwZW9mIENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgIT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBJZiB3ZSBjYXB0dXJlZCBhbiBlcnJvciwgYnV0IGdldERlcml2ZWRTdGF0ZUZyb21FcnJvciBpcyBub3QgZGVmaW5lZCxcbiAgICAvLyB1bm1vdW50IGFsbCB0aGUgY2hpbGRyZW4uIGNvbXBvbmVudERpZENhdGNoIHdpbGwgc2NoZWR1bGUgYW4gdXBkYXRlIHRvXG4gICAgLy8gcmUtcmVuZGVyIGEgZmFsbGJhY2suIFRoaXMgaXMgdGVtcG9yYXJ5IHVudGlsIHdlIG1pZ3JhdGUgZXZlcnlvbmUgdG9cbiAgICAvLyB0aGUgbmV3IEFQSS5cbiAgICAvLyBUT0RPOiBXYXJuIGluIGEgZnV0dXJlIHJlbGVhc2UuXG4gICAgbmV4dENoaWxkcmVuID0gbnVsbDtcblxuICAgIHtcbiAgICAgIHN0b3BQcm9maWxlclRpbWVySWZSdW5uaW5nKCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHtcbiAgICAgIG1hcmtDb21wb25lbnRSZW5kZXJTdGFydGVkKHdvcmtJblByb2dyZXNzKTtcbiAgICB9XG5cbiAgICB7XG4gICAgICBzZXRJc1JlbmRlcmluZyh0cnVlKTtcbiAgICAgIG5leHRDaGlsZHJlbiA9IGluc3RhbmNlLnJlbmRlcigpO1xuXG4gICAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlKSB7XG4gICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKHRydWUpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaW5zdGFuY2UucmVuZGVyKCk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHNldElzUmVuZGVyaW5nKGZhbHNlKTtcbiAgICB9XG5cbiAgICB7XG4gICAgICBtYXJrQ29tcG9uZW50UmVuZGVyU3RvcHBlZCgpO1xuICAgIH1cbiAgfSAvLyBSZWFjdCBEZXZUb29scyByZWFkcyB0aGlzIGZsYWcuXG5cblxuICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBQZXJmb3JtZWRXb3JrO1xuXG4gIGlmIChjdXJyZW50ICE9PSBudWxsICYmIGRpZENhcHR1cmVFcnJvcikge1xuICAgIC8vIElmIHdlJ3JlIHJlY292ZXJpbmcgZnJvbSBhbiBlcnJvciwgcmVjb25jaWxlIHdpdGhvdXQgcmV1c2luZyBhbnkgb2ZcbiAgICAvLyB0aGUgZXhpc3RpbmcgY2hpbGRyZW4uIENvbmNlcHR1YWxseSwgdGhlIG5vcm1hbCBjaGlsZHJlbiBhbmQgdGhlIGNoaWxkcmVuXG4gICAgLy8gdGhhdCBhcmUgc2hvd24gb24gZXJyb3IgYXJlIHR3byBkaWZmZXJlbnQgc2V0cywgc28gd2Ugc2hvdWxkbid0IHJldXNlXG4gICAgLy8gbm9ybWFsIGNoaWxkcmVuIGV2ZW4gaWYgdGhlaXIgaWRlbnRpdGllcyBtYXRjaC5cbiAgICBmb3JjZVVubW91bnRDdXJyZW50QW5kUmVjb25jaWxlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgfSBlbHNlIHtcbiAgICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gIH0gLy8gTWVtb2l6ZSBzdGF0ZSB1c2luZyB0aGUgdmFsdWVzIHdlIGp1c3QgdXNlZCB0byByZW5kZXIuXG4gIC8vIFRPRE86IFJlc3RydWN0dXJlIHNvIHdlIG5ldmVyIHJlYWQgdmFsdWVzIGZyb20gdGhlIGluc3RhbmNlLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IGluc3RhbmNlLnN0YXRlOyAvLyBUaGUgY29udGV4dCBtaWdodCBoYXZlIGNoYW5nZWQgc28gd2UgbmVlZCB0byByZWNhbGN1bGF0ZSBpdC5cblxuICBpZiAoaGFzQ29udGV4dCkge1xuICAgIGludmFsaWRhdGVDb250ZXh0UHJvdmlkZXIod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgdHJ1ZSk7XG4gIH1cblxuICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG59XG5cbmZ1bmN0aW9uIHB1c2hIb3N0Um9vdENvbnRleHQod29ya0luUHJvZ3Jlc3MpIHtcbiAgdmFyIHJvb3QgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG5cbiAgaWYgKHJvb3QucGVuZGluZ0NvbnRleHQpIHtcbiAgICBwdXNoVG9wTGV2ZWxDb250ZXh0T2JqZWN0KHdvcmtJblByb2dyZXNzLCByb290LnBlbmRpbmdDb250ZXh0LCByb290LnBlbmRpbmdDb250ZXh0ICE9PSByb290LmNvbnRleHQpO1xuICB9IGVsc2UgaWYgKHJvb3QuY29udGV4dCkge1xuICAgIC8vIFNob3VsZCBhbHdheXMgYmUgc2V0XG4gICAgcHVzaFRvcExldmVsQ29udGV4dE9iamVjdCh3b3JrSW5Qcm9ncmVzcywgcm9vdC5jb250ZXh0LCBmYWxzZSk7XG4gIH1cblxuICBwdXNoSG9zdENvbnRhaW5lcih3b3JrSW5Qcm9ncmVzcywgcm9vdC5jb250YWluZXJJbmZvKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlSG9zdFJvb3QoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHB1c2hIb3N0Um9vdENvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuXG4gIGlmIChjdXJyZW50ID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgaGF2ZSBhIGN1cnJlbnQgZmliZXIuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuJyk7XG4gIH1cblxuICB2YXIgbmV4dFByb3BzID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzO1xuICB2YXIgcHJldlN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgdmFyIHByZXZDaGlsZHJlbiA9IHByZXZTdGF0ZS5lbGVtZW50O1xuICBjbG9uZVVwZGF0ZVF1ZXVlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcbiAgcHJvY2Vzc1VwZGF0ZVF1ZXVlKHdvcmtJblByb2dyZXNzLCBuZXh0UHJvcHMsIG51bGwsIHJlbmRlckxhbmVzKTtcbiAgdmFyIG5leHRTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gIHZhciByb290ID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuICAvLyBiZWluZyBjYWxsZWQgXCJlbGVtZW50XCIuXG5cblxuICB2YXIgbmV4dENoaWxkcmVuID0gbmV4dFN0YXRlLmVsZW1lbnQ7XG5cbiAgaWYgKCBwcmV2U3RhdGUuaXNEZWh5ZHJhdGVkKSB7XG4gICAgLy8gVGhpcyBpcyBhIGh5ZHJhdGlvbiByb290IHdob3NlIHNoZWxsIGhhcyBub3QgeWV0IGh5ZHJhdGVkLiBXZSBzaG91bGRcbiAgICAvLyBhdHRlbXB0IHRvIGh5ZHJhdGUuXG4gICAgLy8gRmxpcCBpc0RlaHlkcmF0ZWQgdG8gZmFsc2UgdG8gaW5kaWNhdGUgdGhhdCB3aGVuIHRoaXMgcmVuZGVyXG4gICAgLy8gZmluaXNoZXMsIHRoZSByb290IHdpbGwgbm8gbG9uZ2VyIGJlIGRlaHlkcmF0ZWQuXG4gICAgdmFyIG92ZXJyaWRlU3RhdGUgPSB7XG4gICAgICBlbGVtZW50OiBuZXh0Q2hpbGRyZW4sXG4gICAgICBpc0RlaHlkcmF0ZWQ6IGZhbHNlLFxuICAgICAgY2FjaGU6IG5leHRTdGF0ZS5jYWNoZSxcbiAgICAgIHBlbmRpbmdTdXNwZW5zZUJvdW5kYXJpZXM6IG5leHRTdGF0ZS5wZW5kaW5nU3VzcGVuc2VCb3VuZGFyaWVzLFxuICAgICAgdHJhbnNpdGlvbnM6IG5leHRTdGF0ZS50cmFuc2l0aW9uc1xuICAgIH07XG4gICAgdmFyIHVwZGF0ZVF1ZXVlID0gd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWU7IC8vIGBiYXNlU3RhdGVgIGNhbiBhbHdheXMgYmUgdGhlIGxhc3Qgc3RhdGUgYmVjYXVzZSB0aGUgcm9vdCBkb2Vzbid0XG4gICAgLy8gaGF2ZSByZWR1Y2VyIGZ1bmN0aW9ucyBzbyBpdCBkb2Vzbid0IG5lZWQgcmViYXNpbmcuXG5cbiAgICB1cGRhdGVRdWV1ZS5iYXNlU3RhdGUgPSBvdmVycmlkZVN0YXRlO1xuICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBvdmVycmlkZVN0YXRlO1xuXG4gICAgaWYgKHdvcmtJblByb2dyZXNzLmZsYWdzICYgRm9yY2VDbGllbnRSZW5kZXIpIHtcbiAgICAgIC8vIFNvbWV0aGluZyBlcnJvcmVkIGR1cmluZyBhIHByZXZpb3VzIGF0dGVtcHQgdG8gaHlkcmF0ZSB0aGUgc2hlbGwsIHNvIHdlXG4gICAgICAvLyBmb3JjZWQgYSBjbGllbnQgcmVuZGVyLlxuICAgICAgdmFyIHJlY292ZXJhYmxlRXJyb3IgPSBjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcihuZXcgRXJyb3IoJ1RoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSBoeWRyYXRpbmcuIEJlY2F1c2UgdGhlIGVycm9yIGhhcHBlbmVkIG91dHNpZGUgJyArICdvZiBhIFN1c3BlbnNlIGJvdW5kYXJ5LCB0aGUgZW50aXJlIHJvb3Qgd2lsbCBzd2l0Y2ggdG8gJyArICdjbGllbnQgcmVuZGVyaW5nLicpLCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICByZXR1cm4gbW91bnRIb3N0Um9vdFdpdGhvdXRIeWRyYXRpbmcoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMsIHJlY292ZXJhYmxlRXJyb3IpO1xuICAgIH0gZWxzZSBpZiAobmV4dENoaWxkcmVuICE9PSBwcmV2Q2hpbGRyZW4pIHtcbiAgICAgIHZhciBfcmVjb3ZlcmFibGVFcnJvciA9IGNyZWF0ZUNhcHR1cmVkVmFsdWVBdEZpYmVyKG5ldyBFcnJvcignVGhpcyByb290IHJlY2VpdmVkIGFuIGVhcmx5IHVwZGF0ZSwgYmVmb3JlIGFueXRoaW5nIHdhcyBhYmxlICcgKyAnaHlkcmF0ZS4gU3dpdGNoZWQgdGhlIGVudGlyZSByb290IHRvIGNsaWVudCByZW5kZXJpbmcuJyksIHdvcmtJblByb2dyZXNzKTtcblxuICAgICAgcmV0dXJuIG1vdW50SG9zdFJvb3RXaXRob3V0SHlkcmF0aW5nKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzLCBfcmVjb3ZlcmFibGVFcnJvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZSBvdXRlcm1vc3Qgc2hlbGwgaGFzIG5vdCBoeWRyYXRlZCB5ZXQuIFN0YXJ0IGh5ZHJhdGluZy5cbiAgICAgIGVudGVySHlkcmF0aW9uU3RhdGUod29ya0luUHJvZ3Jlc3MpO1xuXG4gICAgICB2YXIgY2hpbGQgPSBtb3VudENoaWxkRmliZXJzKHdvcmtJblByb2dyZXNzLCBudWxsLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgICAgIHdvcmtJblByb2dyZXNzLmNoaWxkID0gY2hpbGQ7XG4gICAgICB2YXIgbm9kZSA9IGNoaWxkO1xuXG4gICAgICB3aGlsZSAobm9kZSkge1xuICAgICAgICAvLyBNYXJrIGVhY2ggY2hpbGQgYXMgaHlkcmF0aW5nLiBUaGlzIGlzIGEgZmFzdCBwYXRoIHRvIGtub3cgd2hldGhlciB0aGlzXG4gICAgICAgIC8vIHRyZWUgaXMgcGFydCBvZiBhIGh5ZHJhdGluZyB0cmVlLiBUaGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIGEgY2hpbGRcbiAgICAgICAgLy8gbm9kZSBoYXMgZnVsbHkgbW91bnRlZCB5ZXQsIGFuZCBmb3Igc2NoZWR1bGluZyBldmVudCByZXBsYXlpbmcuXG4gICAgICAgIC8vIENvbmNlcHR1YWxseSB0aGlzIGlzIHNpbWlsYXIgdG8gUGxhY2VtZW50IGluIHRoYXQgYSBuZXcgc3VidHJlZSBpc1xuICAgICAgICAvLyBpbnNlcnRlZCBpbnRvIHRoZSBSZWFjdCB0cmVlIGhlcmUuIEl0IGp1c3QgaGFwcGVucyB0byBub3QgbmVlZCBET01cbiAgICAgICAgLy8gbXV0YXRpb25zIGJlY2F1c2UgaXQgYWxyZWFkeSBleGlzdHMuXG4gICAgICAgIG5vZGUuZmxhZ3MgPSBub2RlLmZsYWdzICYgflBsYWNlbWVudCB8IEh5ZHJhdGluZztcbiAgICAgICAgbm9kZSA9IG5vZGUuc2libGluZztcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gUm9vdCBpcyBub3QgZGVoeWRyYXRlZC4gRWl0aGVyIHRoaXMgaXMgYSBjbGllbnQtb25seSByb290LCBvciBpdFxuICAgIC8vIGFscmVhZHkgaHlkcmF0ZWQuXG4gICAgcmVzZXRIeWRyYXRpb25TdGF0ZSgpO1xuXG4gICAgaWYgKG5leHRDaGlsZHJlbiA9PT0gcHJldkNoaWxkcmVuKSB7XG4gICAgICByZXR1cm4gYmFpbG91dE9uQWxyZWFkeUZpbmlzaGVkV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICAgIH1cblxuICAgIHJlY29uY2lsZUNoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgfVxuXG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbn1cblxuZnVuY3Rpb24gbW91bnRIb3N0Um9vdFdpdGhvdXRIeWRyYXRpbmcoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMsIHJlY292ZXJhYmxlRXJyb3IpIHtcbiAgLy8gUmV2ZXJ0IHRvIGNsaWVudCByZW5kZXJpbmcuXG4gIHJlc2V0SHlkcmF0aW9uU3RhdGUoKTtcbiAgcXVldWVIeWRyYXRpb25FcnJvcihyZWNvdmVyYWJsZUVycm9yKTtcbiAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRm9yY2VDbGllbnRSZW5kZXI7XG4gIHJlY29uY2lsZUNoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVIb3N0Q29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICBwdXNoSG9zdENvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuXG4gIGlmIChjdXJyZW50ID09PSBudWxsKSB7XG4gICAgdHJ5VG9DbGFpbU5leHRIeWRyYXRhYmxlSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MpO1xuICB9XG5cbiAgdmFyIHR5cGUgPSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuICB2YXIgbmV4dFByb3BzID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzO1xuICB2YXIgcHJldlByb3BzID0gY3VycmVudCAhPT0gbnVsbCA/IGN1cnJlbnQubWVtb2l6ZWRQcm9wcyA6IG51bGw7XG4gIHZhciBuZXh0Q2hpbGRyZW4gPSBuZXh0UHJvcHMuY2hpbGRyZW47XG4gIHZhciBpc0RpcmVjdFRleHRDaGlsZCA9IHNob3VsZFNldFRleHRDb250ZW50KHR5cGUsIG5leHRQcm9wcyk7XG5cbiAgaWYgKGlzRGlyZWN0VGV4dENoaWxkKSB7XG4gICAgLy8gV2Ugc3BlY2lhbCBjYXNlIGEgZGlyZWN0IHRleHQgY2hpbGQgb2YgYSBob3N0IG5vZGUuIFRoaXMgaXMgYSBjb21tb25cbiAgICAvLyBjYXNlLiBXZSB3b24ndCBoYW5kbGUgaXQgYXMgYSByZWlmaWVkIGNoaWxkLiBXZSB3aWxsIGluc3RlYWQgaGFuZGxlXG4gICAgLy8gdGhpcyBpbiB0aGUgaG9zdCBlbnZpcm9ubWVudCB0aGF0IGFsc28gaGFzIGFjY2VzcyB0byB0aGlzIHByb3AuIFRoYXRcbiAgICAvLyBhdm9pZHMgYWxsb2NhdGluZyBhbm90aGVyIEhvc3RUZXh0IGZpYmVyIGFuZCB0cmF2ZXJzaW5nIGl0LlxuICAgIG5leHRDaGlsZHJlbiA9IG51bGw7XG4gIH0gZWxzZSBpZiAocHJldlByb3BzICE9PSBudWxsICYmIHNob3VsZFNldFRleHRDb250ZW50KHR5cGUsIHByZXZQcm9wcykpIHtcbiAgICAvLyBJZiB3ZSdyZSBzd2l0Y2hpbmcgZnJvbSBhIGRpcmVjdCB0ZXh0IGNoaWxkIHRvIGEgbm9ybWFsIGNoaWxkLCBvciB0b1xuICAgIC8vIGVtcHR5LCB3ZSBuZWVkIHRvIHNjaGVkdWxlIHRoZSB0ZXh0IGNvbnRlbnQgdG8gYmUgcmVzZXQuXG4gICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gQ29udGVudFJlc2V0O1xuICB9XG5cbiAgbWFya1JlZihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcyk7XG4gIHJlY29uY2lsZUNoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVIb3N0VGV4dChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcykge1xuICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgIHRyeVRvQ2xhaW1OZXh0SHlkcmF0YWJsZUluc3RhbmNlKHdvcmtJblByb2dyZXNzKTtcbiAgfSAvLyBOb3RoaW5nIHRvIGRvIGhlcmUuIFRoaXMgaXMgdGVybWluYWwuIFdlJ2xsIGRvIHRoZSBjb21wbGV0aW9uIHN0ZXBcbiAgLy8gaW1tZWRpYXRlbHkgYWZ0ZXIuXG5cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gbW91bnRMYXp5Q29tcG9uZW50KF9jdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgZWxlbWVudFR5cGUsIHJlbmRlckxhbmVzKSB7XG4gIHJlc2V0U3VzcGVuZGVkQ3VycmVudE9uTW91bnRJbkxlZ2FjeU1vZGUoX2N1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcbiAgdmFyIHByb3BzID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzO1xuICB2YXIgbGF6eUNvbXBvbmVudCA9IGVsZW1lbnRUeXBlO1xuICB2YXIgcGF5bG9hZCA9IGxhenlDb21wb25lbnQuX3BheWxvYWQ7XG4gIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcbiAgdmFyIENvbXBvbmVudCA9IGluaXQocGF5bG9hZCk7IC8vIFN0b3JlIHRoZSB1bndyYXBwZWQgY29tcG9uZW50IGluIHRoZSB0eXBlLlxuXG4gIHdvcmtJblByb2dyZXNzLnR5cGUgPSBDb21wb25lbnQ7XG4gIHZhciByZXNvbHZlZFRhZyA9IHdvcmtJblByb2dyZXNzLnRhZyA9IHJlc29sdmVMYXp5Q29tcG9uZW50VGFnKENvbXBvbmVudCk7XG4gIHZhciByZXNvbHZlZFByb3BzID0gcmVzb2x2ZURlZmF1bHRQcm9wcyhDb21wb25lbnQsIHByb3BzKTtcbiAgdmFyIGNoaWxkO1xuXG4gIHN3aXRjaCAocmVzb2x2ZWRUYWcpIHtcbiAgICBjYXNlIEZ1bmN0aW9uQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICB7XG4gICAgICAgICAgdmFsaWRhdGVGdW5jdGlvbkNvbXBvbmVudEluRGV2KHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQpO1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUgPSBDb21wb25lbnQgPSByZXNvbHZlRnVuY3Rpb25Gb3JIb3RSZWxvYWRpbmcoQ29tcG9uZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNoaWxkID0gdXBkYXRlRnVuY3Rpb25Db21wb25lbnQobnVsbCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgcmVzb2x2ZWRQcm9wcywgcmVuZGVyTGFuZXMpO1xuICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICB9XG5cbiAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICB7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IENvbXBvbmVudCA9IHJlc29sdmVDbGFzc0ZvckhvdFJlbG9hZGluZyhDb21wb25lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY2hpbGQgPSB1cGRhdGVDbGFzc0NvbXBvbmVudChudWxsLCB3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCByZXNvbHZlZFByb3BzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgIH1cblxuICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgIHtcbiAgICAgICAge1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUgPSBDb21wb25lbnQgPSByZXNvbHZlRm9yd2FyZFJlZkZvckhvdFJlbG9hZGluZyhDb21wb25lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY2hpbGQgPSB1cGRhdGVGb3J3YXJkUmVmKG51bGwsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHJlc29sdmVkUHJvcHMsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgfVxuXG4gICAgY2FzZSBNZW1vQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICB7XG4gICAgICAgICAgaWYgKHdvcmtJblByb2dyZXNzLnR5cGUgIT09IHdvcmtJblByb2dyZXNzLmVsZW1lbnRUeXBlKSB7XG4gICAgICAgICAgICB2YXIgb3V0ZXJQcm9wVHlwZXMgPSBDb21wb25lbnQucHJvcFR5cGVzO1xuXG4gICAgICAgICAgICBpZiAob3V0ZXJQcm9wVHlwZXMpIHtcbiAgICAgICAgICAgICAgY2hlY2tQcm9wVHlwZXMob3V0ZXJQcm9wVHlwZXMsIHJlc29sdmVkUHJvcHMsIC8vIFJlc29sdmVkIGZvciBvdXRlciBvbmx5XG4gICAgICAgICAgICAgICdwcm9wJywgZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKENvbXBvbmVudCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNoaWxkID0gdXBkYXRlTWVtb0NvbXBvbmVudChudWxsLCB3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCByZXNvbHZlRGVmYXVsdFByb3BzKENvbXBvbmVudC50eXBlLCByZXNvbHZlZFByb3BzKSwgLy8gVGhlIGlubmVyIHR5cGUgY2FuIGhhdmUgZGVmYXVsdHMgdG9vXG4gICAgICAgIHJlbmRlckxhbmVzKTtcbiAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgfVxuICB9XG5cbiAgdmFyIGhpbnQgPSAnJztcblxuICB7XG4gICAgaWYgKENvbXBvbmVudCAhPT0gbnVsbCAmJiB0eXBlb2YgQ29tcG9uZW50ID09PSAnb2JqZWN0JyAmJiBDb21wb25lbnQuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSkge1xuICAgICAgaGludCA9ICcgRGlkIHlvdSB3cmFwIGEgY29tcG9uZW50IGluIFJlYWN0LmxhenkoKSBtb3JlIHRoYW4gb25jZT8nO1xuICAgIH1cbiAgfSAvLyBUaGlzIG1lc3NhZ2UgaW50ZW50aW9uYWxseSBkb2Vzbid0IG1lbnRpb24gRm9yd2FyZFJlZiBvciBNZW1vQ29tcG9uZW50XG4gIC8vIGJlY2F1c2UgdGhlIGZhY3QgdGhhdCBpdCdzIGEgc2VwYXJhdGUgdHlwZSBvZiB3b3JrIGlzIGFuXG4gIC8vIGltcGxlbWVudGF0aW9uIGRldGFpbC5cblxuXG4gIHRocm93IG5ldyBFcnJvcihcIkVsZW1lbnQgdHlwZSBpcyBpbnZhbGlkLiBSZWNlaXZlZCBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB0bzogXCIgKyBDb21wb25lbnQgKyBcIi4gXCIgKyAoXCJMYXp5IGVsZW1lbnQgdHlwZSBtdXN0IHJlc29sdmUgdG8gYSBjbGFzcyBvciBmdW5jdGlvbi5cIiArIGhpbnQpKTtcbn1cblxuZnVuY3Rpb24gbW91bnRJbmNvbXBsZXRlQ2xhc3NDb21wb25lbnQoX2N1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIG5leHRQcm9wcywgcmVuZGVyTGFuZXMpIHtcbiAgcmVzZXRTdXNwZW5kZWRDdXJyZW50T25Nb3VudEluTGVnYWN5TW9kZShfY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpOyAvLyBQcm9tb3RlIHRoZSBmaWJlciB0byBhIGNsYXNzIGFuZCB0cnkgcmVuZGVyaW5nIGFnYWluLlxuXG4gIHdvcmtJblByb2dyZXNzLnRhZyA9IENsYXNzQ29tcG9uZW50OyAvLyBUaGUgcmVzdCBvZiB0aGlzIGZ1bmN0aW9uIGlzIGEgZm9yayBvZiBgdXBkYXRlQ2xhc3NDb21wb25lbnRgXG4gIC8vIFB1c2ggY29udGV4dCBwcm92aWRlcnMgZWFybHkgdG8gcHJldmVudCBjb250ZXh0IHN0YWNrIG1pc21hdGNoZXMuXG4gIC8vIER1cmluZyBtb3VudGluZyB3ZSBkb24ndCBrbm93IHRoZSBjaGlsZCBjb250ZXh0IHlldCBhcyB0aGUgaW5zdGFuY2UgZG9lc24ndCBleGlzdC5cbiAgLy8gV2Ugd2lsbCBpbnZhbGlkYXRlIHRoZSBjaGlsZCBjb250ZXh0IGluIGZpbmlzaENsYXNzQ29tcG9uZW50KCkgcmlnaHQgYWZ0ZXIgcmVuZGVyaW5nLlxuXG4gIHZhciBoYXNDb250ZXh0O1xuXG4gIGlmIChpc0NvbnRleHRQcm92aWRlcihDb21wb25lbnQpKSB7XG4gICAgaGFzQ29udGV4dCA9IHRydWU7XG4gICAgcHVzaENvbnRleHRQcm92aWRlcih3b3JrSW5Qcm9ncmVzcyk7XG4gIH0gZWxzZSB7XG4gICAgaGFzQ29udGV4dCA9IGZhbHNlO1xuICB9XG5cbiAgcHJlcGFyZVRvUmVhZENvbnRleHQod29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgY29uc3RydWN0Q2xhc3NJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCBuZXh0UHJvcHMpO1xuICBtb3VudENsYXNzSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgbmV4dFByb3BzLCByZW5kZXJMYW5lcyk7XG4gIHJldHVybiBmaW5pc2hDbGFzc0NvbXBvbmVudChudWxsLCB3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCB0cnVlLCBoYXNDb250ZXh0LCByZW5kZXJMYW5lcyk7XG59XG5cbmZ1bmN0aW9uIG1vdW50SW5kZXRlcm1pbmF0ZUNvbXBvbmVudChfY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgcmVuZGVyTGFuZXMpIHtcbiAgcmVzZXRTdXNwZW5kZWRDdXJyZW50T25Nb3VudEluTGVnYWN5TW9kZShfY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpO1xuICB2YXIgcHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gIHZhciBjb250ZXh0O1xuXG4gIHtcbiAgICB2YXIgdW5tYXNrZWRDb250ZXh0ID0gZ2V0VW5tYXNrZWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIGZhbHNlKTtcbiAgICBjb250ZXh0ID0gZ2V0TWFza2VkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgdW5tYXNrZWRDb250ZXh0KTtcbiAgfVxuXG4gIHByZXBhcmVUb1JlYWRDb250ZXh0KHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gIHZhciB2YWx1ZTtcbiAgdmFyIGhhc0lkO1xuXG4gIHtcbiAgICBtYXJrQ29tcG9uZW50UmVuZGVyU3RhcnRlZCh3b3JrSW5Qcm9ncmVzcyk7XG4gIH1cblxuICB7XG4gICAgaWYgKENvbXBvbmVudC5wcm90b3R5cGUgJiYgdHlwZW9mIENvbXBvbmVudC5wcm90b3R5cGUucmVuZGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8ICdVbmtub3duJztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRCYWRDbGFzc1tjb21wb25lbnROYW1lXSkge1xuICAgICAgICBlcnJvcihcIlRoZSA8JXMgLz4gY29tcG9uZW50IGFwcGVhcnMgdG8gaGF2ZSBhIHJlbmRlciBtZXRob2QsIGJ1dCBkb2Vzbid0IGV4dGVuZCBSZWFjdC5Db21wb25lbnQuIFwiICsgJ1RoaXMgaXMgbGlrZWx5IHRvIGNhdXNlIGVycm9ycy4gQ2hhbmdlICVzIHRvIGV4dGVuZCBSZWFjdC5Db21wb25lbnQgaW5zdGVhZC4nLCBjb21wb25lbnROYW1lLCBjb21wb25lbnROYW1lKTtcblxuICAgICAgICBkaWRXYXJuQWJvdXRCYWRDbGFzc1tjb21wb25lbnROYW1lXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlKSB7XG4gICAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5yZWNvcmRMZWdhY3lDb250ZXh0V2FybmluZyh3b3JrSW5Qcm9ncmVzcywgbnVsbCk7XG4gICAgfVxuXG4gICAgc2V0SXNSZW5kZXJpbmcodHJ1ZSk7XG4gICAgUmVhY3RDdXJyZW50T3duZXIkMS5jdXJyZW50ID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgdmFsdWUgPSByZW5kZXJXaXRoSG9va3MobnVsbCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgcHJvcHMsIGNvbnRleHQsIHJlbmRlckxhbmVzKTtcbiAgICBoYXNJZCA9IGNoZWNrRGlkUmVuZGVySWRIb29rKCk7XG4gICAgc2V0SXNSZW5kZXJpbmcoZmFsc2UpO1xuICB9XG5cbiAge1xuICAgIG1hcmtDb21wb25lbnRSZW5kZXJTdG9wcGVkKCk7XG4gIH0gLy8gUmVhY3QgRGV2VG9vbHMgcmVhZHMgdGhpcyBmbGFnLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUGVyZm9ybWVkV29yaztcblxuICB7XG4gICAgLy8gU3VwcG9ydCBmb3IgbW9kdWxlIGNvbXBvbmVudHMgaXMgZGVwcmVjYXRlZCBhbmQgaXMgcmVtb3ZlZCBiZWhpbmQgYSBmbGFnLlxuICAgIC8vIFdoZXRoZXIgb3Igbm90IGl0IHdvdWxkIGNyYXNoIGxhdGVyLCB3ZSB3YW50IHRvIHNob3cgYSBnb29kIG1lc3NhZ2UgaW4gREVWIGZpcnN0LlxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZS5yZW5kZXIgPT09ICdmdW5jdGlvbicgJiYgdmFsdWUuJCR0eXBlb2YgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdmFyIF9jb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKENvbXBvbmVudCkgfHwgJ1Vua25vd24nO1xuXG4gICAgICBpZiAoIWRpZFdhcm5BYm91dE1vZHVsZVBhdHRlcm5Db21wb25lbnRbX2NvbXBvbmVudE5hbWVdKSB7XG4gICAgICAgIGVycm9yKCdUaGUgPCVzIC8+IGNvbXBvbmVudCBhcHBlYXJzIHRvIGJlIGEgZnVuY3Rpb24gY29tcG9uZW50IHRoYXQgcmV0dXJucyBhIGNsYXNzIGluc3RhbmNlLiAnICsgJ0NoYW5nZSAlcyB0byBhIGNsYXNzIHRoYXQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgaW5zdGVhZC4gJyArIFwiSWYgeW91IGNhbid0IHVzZSBhIGNsYXNzIHRyeSBhc3NpZ25pbmcgdGhlIHByb3RvdHlwZSBvbiB0aGUgZnVuY3Rpb24gYXMgYSB3b3JrYXJvdW5kLiBcIiArIFwiYCVzLnByb3RvdHlwZSA9IFJlYWN0LkNvbXBvbmVudC5wcm90b3R5cGVgLiBEb24ndCB1c2UgYW4gYXJyb3cgZnVuY3Rpb24gc2luY2UgaXQgXCIgKyAnY2Fubm90IGJlIGNhbGxlZCB3aXRoIGBuZXdgIGJ5IFJlYWN0LicsIF9jb21wb25lbnROYW1lLCBfY29tcG9uZW50TmFtZSwgX2NvbXBvbmVudE5hbWUpO1xuXG4gICAgICAgIGRpZFdhcm5BYm91dE1vZHVsZVBhdHRlcm5Db21wb25lbnRbX2NvbXBvbmVudE5hbWVdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoIC8vIFJ1biB0aGVzZSBjaGVja3MgaW4gcHJvZHVjdGlvbiBvbmx5IGlmIHRoZSBmbGFnIGlzIG9mZi5cbiAgLy8gRXZlbnR1YWxseSB3ZSdsbCBkZWxldGUgdGhpcyBicmFuY2ggYWx0b2dldGhlci5cbiAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlLnJlbmRlciA9PT0gJ2Z1bmN0aW9uJyAmJiB2YWx1ZS4kJHR5cGVvZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAge1xuICAgICAgdmFyIF9jb21wb25lbnROYW1lMiA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8ICdVbmtub3duJztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRNb2R1bGVQYXR0ZXJuQ29tcG9uZW50W19jb21wb25lbnROYW1lMl0pIHtcbiAgICAgICAgZXJyb3IoJ1RoZSA8JXMgLz4gY29tcG9uZW50IGFwcGVhcnMgdG8gYmUgYSBmdW5jdGlvbiBjb21wb25lbnQgdGhhdCByZXR1cm5zIGEgY2xhc3MgaW5zdGFuY2UuICcgKyAnQ2hhbmdlICVzIHRvIGEgY2xhc3MgdGhhdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCBpbnN0ZWFkLiAnICsgXCJJZiB5b3UgY2FuJ3QgdXNlIGEgY2xhc3MgdHJ5IGFzc2lnbmluZyB0aGUgcHJvdG90eXBlIG9uIHRoZSBmdW5jdGlvbiBhcyBhIHdvcmthcm91bmQuIFwiICsgXCJgJXMucHJvdG90eXBlID0gUmVhY3QuQ29tcG9uZW50LnByb3RvdHlwZWAuIERvbid0IHVzZSBhbiBhcnJvdyBmdW5jdGlvbiBzaW5jZSBpdCBcIiArICdjYW5ub3QgYmUgY2FsbGVkIHdpdGggYG5ld2AgYnkgUmVhY3QuJywgX2NvbXBvbmVudE5hbWUyLCBfY29tcG9uZW50TmFtZTIsIF9jb21wb25lbnROYW1lMik7XG5cbiAgICAgICAgZGlkV2FybkFib3V0TW9kdWxlUGF0dGVybkNvbXBvbmVudFtfY29tcG9uZW50TmFtZTJdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IC8vIFByb2NlZWQgdW5kZXIgdGhlIGFzc3VtcHRpb24gdGhhdCB0aGlzIGlzIGEgY2xhc3MgaW5zdGFuY2VcblxuXG4gICAgd29ya0luUHJvZ3Jlc3MudGFnID0gQ2xhc3NDb21wb25lbnQ7IC8vIFRocm93IG91dCBhbnkgaG9va3MgdGhhdCB3ZXJlIHVzZWQuXG5cbiAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IG51bGw7IC8vIFB1c2ggY29udGV4dCBwcm92aWRlcnMgZWFybHkgdG8gcHJldmVudCBjb250ZXh0IHN0YWNrIG1pc21hdGNoZXMuXG4gICAgLy8gRHVyaW5nIG1vdW50aW5nIHdlIGRvbid0IGtub3cgdGhlIGNoaWxkIGNvbnRleHQgeWV0IGFzIHRoZSBpbnN0YW5jZSBkb2Vzbid0IGV4aXN0LlxuICAgIC8vIFdlIHdpbGwgaW52YWxpZGF0ZSB0aGUgY2hpbGQgY29udGV4dCBpbiBmaW5pc2hDbGFzc0NvbXBvbmVudCgpIHJpZ2h0IGFmdGVyIHJlbmRlcmluZy5cblxuICAgIHZhciBoYXNDb250ZXh0ID0gZmFsc2U7XG5cbiAgICBpZiAoaXNDb250ZXh0UHJvdmlkZXIoQ29tcG9uZW50KSkge1xuICAgICAgaGFzQ29udGV4dCA9IHRydWU7XG4gICAgICBwdXNoQ29udGV4dFByb3ZpZGVyKHdvcmtJblByb2dyZXNzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGFzQ29udGV4dCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSB2YWx1ZS5zdGF0ZSAhPT0gbnVsbCAmJiB2YWx1ZS5zdGF0ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUuc3RhdGUgOiBudWxsO1xuICAgIGluaXRpYWxpemVVcGRhdGVRdWV1ZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgYWRvcHRDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCB2YWx1ZSk7XG4gICAgbW91bnRDbGFzc0luc3RhbmNlKHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHByb3BzLCByZW5kZXJMYW5lcyk7XG4gICAgcmV0dXJuIGZpbmlzaENsYXNzQ29tcG9uZW50KG51bGwsIHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHRydWUsIGhhc0NvbnRleHQsIHJlbmRlckxhbmVzKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBQcm9jZWVkIHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhpcyBpcyBhIGZ1bmN0aW9uIGNvbXBvbmVudFxuICAgIHdvcmtJblByb2dyZXNzLnRhZyA9IEZ1bmN0aW9uQ29tcG9uZW50O1xuXG4gICAge1xuXG4gICAgICBpZiAoIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlKSB7XG4gICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKHRydWUpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFsdWUgPSByZW5kZXJXaXRoSG9va3MobnVsbCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgcHJvcHMsIGNvbnRleHQsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgICBoYXNJZCA9IGNoZWNrRGlkUmVuZGVySWRIb29rKCk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGdldElzSHlkcmF0aW5nKCkgJiYgaGFzSWQpIHtcbiAgICAgIHB1c2hNYXRlcmlhbGl6ZWRUcmVlSWQod29ya0luUHJvZ3Jlc3MpO1xuICAgIH1cblxuICAgIHJlY29uY2lsZUNoaWxkcmVuKG51bGwsIHdvcmtJblByb2dyZXNzLCB2YWx1ZSwgcmVuZGVyTGFuZXMpO1xuXG4gICAge1xuICAgICAgdmFsaWRhdGVGdW5jdGlvbkNvbXBvbmVudEluRGV2KHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQpO1xuICAgIH1cblxuICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUZ1bmN0aW9uQ29tcG9uZW50SW5EZXYod29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCkge1xuICB7XG4gICAgaWYgKENvbXBvbmVudCkge1xuICAgICAgaWYgKENvbXBvbmVudC5jaGlsZENvbnRleHRUeXBlcykge1xuICAgICAgICBlcnJvcignJXMoLi4uKTogY2hpbGRDb250ZXh0VHlwZXMgY2Fubm90IGJlIGRlZmluZWQgb24gYSBmdW5jdGlvbiBjb21wb25lbnQuJywgQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvbmVudC5uYW1lIHx8ICdDb21wb25lbnQnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAod29ya0luUHJvZ3Jlc3MucmVmICE9PSBudWxsKSB7XG4gICAgICB2YXIgaW5mbyA9ICcnO1xuICAgICAgdmFyIG93bmVyTmFtZSA9IGdldEN1cnJlbnRGaWJlck93bmVyTmFtZUluRGV2T3JOdWxsKCk7XG5cbiAgICAgIGlmIChvd25lck5hbWUpIHtcbiAgICAgICAgaW5mbyArPSAnXFxuXFxuQ2hlY2sgdGhlIHJlbmRlciBtZXRob2Qgb2YgYCcgKyBvd25lck5hbWUgKyAnYC4nO1xuICAgICAgfVxuXG4gICAgICB2YXIgd2FybmluZ0tleSA9IG93bmVyTmFtZSB8fCAnJztcbiAgICAgIHZhciBkZWJ1Z1NvdXJjZSA9IHdvcmtJblByb2dyZXNzLl9kZWJ1Z1NvdXJjZTtcblxuICAgICAgaWYgKGRlYnVnU291cmNlKSB7XG4gICAgICAgIHdhcm5pbmdLZXkgPSBkZWJ1Z1NvdXJjZS5maWxlTmFtZSArICc6JyArIGRlYnVnU291cmNlLmxpbmVOdW1iZXI7XG4gICAgICB9XG5cbiAgICAgIGlmICghZGlkV2FybkFib3V0RnVuY3Rpb25SZWZzW3dhcm5pbmdLZXldKSB7XG4gICAgICAgIGRpZFdhcm5BYm91dEZ1bmN0aW9uUmVmc1t3YXJuaW5nS2V5XSA9IHRydWU7XG5cbiAgICAgICAgZXJyb3IoJ0Z1bmN0aW9uIGNvbXBvbmVudHMgY2Fubm90IGJlIGdpdmVuIHJlZnMuICcgKyAnQXR0ZW1wdHMgdG8gYWNjZXNzIHRoaXMgcmVmIHdpbGwgZmFpbC4gJyArICdEaWQgeW91IG1lYW4gdG8gdXNlIFJlYWN0LmZvcndhcmRSZWYoKT8lcycsIGluZm8pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgQ29tcG9uZW50LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdmFyIF9jb21wb25lbnROYW1lMyA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8ICdVbmtub3duJztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRHZXREZXJpdmVkU3RhdGVPbkZ1bmN0aW9uQ29tcG9uZW50W19jb21wb25lbnROYW1lM10pIHtcbiAgICAgICAgZXJyb3IoJyVzOiBGdW5jdGlvbiBjb21wb25lbnRzIGRvIG5vdCBzdXBwb3J0IGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcy4nLCBfY29tcG9uZW50TmFtZTMpO1xuXG4gICAgICAgIGRpZFdhcm5BYm91dEdldERlcml2ZWRTdGF0ZU9uRnVuY3Rpb25Db21wb25lbnRbX2NvbXBvbmVudE5hbWUzXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBDb21wb25lbnQuY29udGV4dFR5cGUgPT09ICdvYmplY3QnICYmIENvbXBvbmVudC5jb250ZXh0VHlwZSAhPT0gbnVsbCkge1xuICAgICAgdmFyIF9jb21wb25lbnROYW1lNCA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8ICdVbmtub3duJztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRDb250ZXh0VHlwZU9uRnVuY3Rpb25Db21wb25lbnRbX2NvbXBvbmVudE5hbWU0XSkge1xuICAgICAgICBlcnJvcignJXM6IEZ1bmN0aW9uIGNvbXBvbmVudHMgZG8gbm90IHN1cHBvcnQgY29udGV4dFR5cGUuJywgX2NvbXBvbmVudE5hbWU0KTtcblxuICAgICAgICBkaWRXYXJuQWJvdXRDb250ZXh0VHlwZU9uRnVuY3Rpb25Db21wb25lbnRbX2NvbXBvbmVudE5hbWU0XSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBTVVNQRU5ERURfTUFSS0VSID0ge1xuICBkZWh5ZHJhdGVkOiBudWxsLFxuICB0cmVlQ29udGV4dDogbnVsbCxcbiAgcmV0cnlMYW5lOiBOb0xhbmVcbn07XG5cbmZ1bmN0aW9uIG1vdW50U3VzcGVuc2VPZmZzY3JlZW5TdGF0ZShyZW5kZXJMYW5lcykge1xuICByZXR1cm4ge1xuICAgIGJhc2VMYW5lczogcmVuZGVyTGFuZXMsXG4gICAgY2FjaGVQb29sOiBnZXRTdXNwZW5kZWRDYWNoZSgpLFxuICAgIHRyYW5zaXRpb25zOiBudWxsXG4gIH07XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVN1c3BlbnNlT2Zmc2NyZWVuU3RhdGUocHJldk9mZnNjcmVlblN0YXRlLCByZW5kZXJMYW5lcykge1xuICB2YXIgY2FjaGVQb29sID0gbnVsbDtcblxuICByZXR1cm4ge1xuICAgIGJhc2VMYW5lczogbWVyZ2VMYW5lcyhwcmV2T2Zmc2NyZWVuU3RhdGUuYmFzZUxhbmVzLCByZW5kZXJMYW5lcyksXG4gICAgY2FjaGVQb29sOiBjYWNoZVBvb2wsXG4gICAgdHJhbnNpdGlvbnM6IHByZXZPZmZzY3JlZW5TdGF0ZS50cmFuc2l0aW9uc1xuICB9O1xufSAvLyBUT0RPOiBQcm9iYWJseSBzaG91bGQgaW5saW5lIHRoaXMgYmFja1xuXG5cbmZ1bmN0aW9uIHNob3VsZFJlbWFpbk9uRmFsbGJhY2soc3VzcGVuc2VDb250ZXh0LCBjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgLy8gSWYgd2UncmUgYWxyZWFkeSBzaG93aW5nIGEgZmFsbGJhY2ssIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSB3ZSBuZWVkIHRvXG4gIC8vIHJlbWFpbiBvbiB0aGF0IGZhbGxiYWNrIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgY29udGVudCBoYXMgcmVzb2x2ZWQuXG4gIC8vIEZvciBleGFtcGxlLCBTdXNwZW5zZUxpc3QgY29vcmRpbmF0ZXMgd2hlbiBuZXN0ZWQgY29udGVudCBhcHBlYXJzLlxuICBpZiAoY3VycmVudCAhPT0gbnVsbCkge1xuICAgIHZhciBzdXNwZW5zZVN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlO1xuXG4gICAgaWYgKHN1c3BlbnNlU3RhdGUgPT09IG51bGwpIHtcbiAgICAgIC8vIEN1cnJlbnRseSBzaG93aW5nIGNvbnRlbnQuIERvbid0IGhpZGUgaXQsIGV2ZW4gaWYgRm9yY2VTdXNwZW5zZUZhbGxiYWNrXG4gICAgICAvLyBpcyB0cnVlLiBNb3JlIHByZWNpc2UgbmFtZSBtaWdodCBiZSBcIkZvcmNlUmVtYWluU3VzcGVuc2VGYWxsYmFja1wiLlxuICAgICAgLy8gTm90ZTogVGhpcyBpcyBhIGZhY3RvcmluZyBzbWVsbC4gQ2FuJ3QgcmVtYWluIG9uIGEgZmFsbGJhY2sgaWYgdGhlcmUnc1xuICAgICAgLy8gbm8gZmFsbGJhY2sgdG8gcmVtYWluIG9uLlxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSAvLyBOb3QgY3VycmVudGx5IHNob3dpbmcgY29udGVudC4gQ29uc3VsdCB0aGUgU3VzcGVuc2UgY29udGV4dC5cblxuXG4gIHJldHVybiBoYXNTdXNwZW5zZUNvbnRleHQoc3VzcGVuc2VDb250ZXh0LCBGb3JjZVN1c3BlbnNlRmFsbGJhY2spO1xufVxuXG5mdW5jdGlvbiBnZXRSZW1haW5pbmdXb3JrSW5QcmltYXJ5VHJlZShjdXJyZW50LCByZW5kZXJMYW5lcykge1xuICAvLyBUT0RPOiBTaG91bGQgbm90IHJlbW92ZSByZW5kZXIgbGFuZXMgdGhhdCB3ZXJlIHBpbmdlZCBkdXJpbmcgdGhpcyByZW5kZXJcbiAgcmV0dXJuIHJlbW92ZUxhbmVzKGN1cnJlbnQuY2hpbGRMYW5lcywgcmVuZGVyTGFuZXMpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVTdXNwZW5zZUNvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIG5leHRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wczsgLy8gVGhpcyBpcyB1c2VkIGJ5IERldlRvb2xzIHRvIGZvcmNlIGEgYm91bmRhcnkgdG8gc3VzcGVuZC5cblxuICB7XG4gICAgaWYgKHNob3VsZFN1c3BlbmQod29ya0luUHJvZ3Jlc3MpKSB7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBEaWRDYXB0dXJlO1xuICAgIH1cbiAgfVxuXG4gIHZhciBzdXNwZW5zZUNvbnRleHQgPSBzdXNwZW5zZVN0YWNrQ3Vyc29yLmN1cnJlbnQ7XG4gIHZhciBzaG93RmFsbGJhY2sgPSBmYWxzZTtcbiAgdmFyIGRpZFN1c3BlbmQgPSAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiBEaWRDYXB0dXJlKSAhPT0gTm9GbGFncztcblxuICBpZiAoZGlkU3VzcGVuZCB8fCBzaG91bGRSZW1haW5PbkZhbGxiYWNrKHN1c3BlbnNlQ29udGV4dCwgY3VycmVudCkpIHtcbiAgICAvLyBTb21ldGhpbmcgaW4gdGhpcyBib3VuZGFyeSdzIHN1YnRyZWUgYWxyZWFkeSBzdXNwZW5kZWQuIFN3aXRjaCB0b1xuICAgIC8vIHJlbmRlcmluZyB0aGUgZmFsbGJhY2sgY2hpbGRyZW4uXG4gICAgc2hvd0ZhbGxiYWNrID0gdHJ1ZTtcbiAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyAmPSB+RGlkQ2FwdHVyZTtcbiAgfSBlbHNlIHtcbiAgICAvLyBBdHRlbXB0aW5nIHRoZSBtYWluIGNvbnRlbnRcbiAgICBpZiAoY3VycmVudCA9PT0gbnVsbCB8fCBjdXJyZW50Lm1lbW9pemVkU3RhdGUgIT09IG51bGwpIHtcbiAgICAgIC8vIFRoaXMgaXMgYSBuZXcgbW91bnQgb3IgdGhpcyBib3VuZGFyeSBpcyBhbHJlYWR5IHNob3dpbmcgYSBmYWxsYmFjayBzdGF0ZS5cbiAgICAgIC8vIE1hcmsgdGhpcyBzdWJ0cmVlIGNvbnRleHQgYXMgaGF2aW5nIGF0IGxlYXN0IG9uZSBpbnZpc2libGUgcGFyZW50IHRoYXQgY291bGRcbiAgICAgIC8vIGhhbmRsZSB0aGUgZmFsbGJhY2sgc3RhdGUuXG4gICAgICAvLyBBdm9pZGVkIGJvdW5kYXJpZXMgYXJlIG5vdCBjb25zaWRlcmVkIHNpbmNlIHRoZXkgY2Fubm90IGhhbmRsZSBwcmVmZXJyZWQgZmFsbGJhY2sgc3RhdGVzLlxuICAgICAge1xuICAgICAgICBzdXNwZW5zZUNvbnRleHQgPSBhZGRTdWJ0cmVlU3VzcGVuc2VDb250ZXh0KHN1c3BlbnNlQ29udGV4dCwgSW52aXNpYmxlUGFyZW50U3VzcGVuc2VDb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzdXNwZW5zZUNvbnRleHQgPSBzZXREZWZhdWx0U2hhbGxvd1N1c3BlbnNlQ29udGV4dChzdXNwZW5zZUNvbnRleHQpO1xuICBwdXNoU3VzcGVuc2VDb250ZXh0KHdvcmtJblByb2dyZXNzLCBzdXNwZW5zZUNvbnRleHQpOyAvLyBPSywgdGhlIG5leHQgcGFydCBpcyBjb25mdXNpbmcuIFdlJ3JlIGFib3V0IHRvIHJlY29uY2lsZSB0aGUgU3VzcGVuc2VcbiAgLy8gYm91bmRhcnkncyBjaGlsZHJlbi4gVGhpcyBpbnZvbHZlcyBzb21lIGN1c3RvbSByZWNvbmNpbGlhdGlvbiBsb2dpYy4gVHdvXG4gIC8vIG1haW4gcmVhc29ucyB0aGlzIGlzIHNvIGNvbXBsaWNhdGVkLlxuICAvL1xuICAvLyBGaXJzdCwgTGVnYWN5IE1vZGUgaGFzIGRpZmZlcmVudCBzZW1hbnRpY3MgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LiBUaGVcbiAgLy8gcHJpbWFyeSB0cmVlIHdpbGwgY29tbWl0IGluIGFuIGluY29uc2lzdGVudCBzdGF0ZSwgc28gd2hlbiB3ZSBkbyB0aGVcbiAgLy8gc2Vjb25kIHBhc3MgdG8gcmVuZGVyIHRoZSBmYWxsYmFjaywgd2UgZG8gc29tZSBleGNlZWRpbmdseSwgdWgsIGNsZXZlclxuICAvLyBoYWNrcyB0byBtYWtlIHRoYXQgbm90IHRvdGFsbHkgYnJlYWsuIExpa2UgdHJhbnNmZXJyaW5nIGVmZmVjdHMgYW5kXG4gIC8vIGRlbGV0aW9ucyBmcm9tIGhpZGRlbiB0cmVlLiBJbiBDb25jdXJyZW50IE1vZGUsIGl0J3MgbXVjaCBzaW1wbGVyLFxuICAvLyBiZWNhdXNlIHdlIGJhaWxvdXQgb24gdGhlIHByaW1hcnkgdHJlZSBjb21wbGV0ZWx5IGFuZCBsZWF2ZSBpdCBpbiBpdHMgb2xkXG4gIC8vIHN0YXRlLCBubyBlZmZlY3RzLiBTYW1lIGFzIHdoYXQgd2UgZG8gZm9yIE9mZnNjcmVlbiAoZXhjZXB0IHRoYXRcbiAgLy8gT2Zmc2NyZWVuIGRvZXNuJ3QgaGF2ZSB0aGUgZmlyc3QgcmVuZGVyIHBhc3MpLlxuICAvL1xuICAvLyBTZWNvbmQgaXMgaHlkcmF0aW9uLiBEdXJpbmcgaHlkcmF0aW9uLCB0aGUgU3VzcGVuc2UgZmliZXIgaGFzIGEgc2xpZ2h0bHlcbiAgLy8gZGlmZmVyZW50IGxheW91dCwgd2hlcmUgdGhlIGNoaWxkIHBvaW50cyB0byBhIGRlaHlkcmF0ZWQgZnJhZ21lbnQsIHdoaWNoXG4gIC8vIGNvbnRhaW5zIHRoZSBET00gcmVuZGVyZWQgYnkgdGhlIHNlcnZlci5cbiAgLy9cbiAgLy8gVGhpcmQsIGV2ZW4gaWYgeW91IHNldCBhbGwgdGhhdCBhc2lkZSwgU3VzcGVuc2UgaXMgbGlrZSBlcnJvciBib3VuZGFyaWVzIGluXG4gIC8vIHRoYXQgd2UgZmlyc3Qgd2UgdHJ5IHRvIHJlbmRlciBvbmUgdHJlZSwgYW5kIGlmIHRoYXQgZmFpbHMsIHdlIHJlbmRlciBhZ2FpblxuICAvLyBhbmQgc3dpdGNoIHRvIGEgZGlmZmVyZW50IHRyZWUuIExpa2UgYSB0cnkvY2F0Y2ggYmxvY2suIFNvIHdlIGhhdmUgdG8gdHJhY2tcbiAgLy8gd2hpY2ggYnJhbmNoIHdlJ3JlIGN1cnJlbnRseSByZW5kZXJpbmcuIElkZWFsbHkgd2Ugd291bGQgbW9kZWwgdGhpcyB1c2luZ1xuICAvLyBhIHN0YWNrLlxuXG4gIGlmIChjdXJyZW50ID09PSBudWxsKSB7XG4gICAgLy8gSW5pdGlhbCBtb3VudFxuICAgIC8vIFNwZWNpYWwgcGF0aCBmb3IgaHlkcmF0aW9uXG4gICAgLy8gSWYgd2UncmUgY3VycmVudGx5IGh5ZHJhdGluZywgdHJ5IHRvIGh5ZHJhdGUgdGhpcyBib3VuZGFyeS5cbiAgICB0cnlUb0NsYWltTmV4dEh5ZHJhdGFibGVJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcyk7IC8vIFRoaXMgY291bGQndmUgYmVlbiBhIGRlaHlkcmF0ZWQgc3VzcGVuc2UgY29tcG9uZW50LlxuXG4gICAgdmFyIHN1c3BlbnNlU3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuXG4gICAgaWYgKHN1c3BlbnNlU3RhdGUgIT09IG51bGwpIHtcbiAgICAgIHZhciBkZWh5ZHJhdGVkID0gc3VzcGVuc2VTdGF0ZS5kZWh5ZHJhdGVkO1xuXG4gICAgICBpZiAoZGVoeWRyYXRlZCAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbW91bnREZWh5ZHJhdGVkU3VzcGVuc2VDb21wb25lbnQod29ya0luUHJvZ3Jlc3MsIGRlaHlkcmF0ZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciBuZXh0UHJpbWFyeUNoaWxkcmVuID0gbmV4dFByb3BzLmNoaWxkcmVuO1xuICAgIHZhciBuZXh0RmFsbGJhY2tDaGlsZHJlbiA9IG5leHRQcm9wcy5mYWxsYmFjaztcblxuICAgIGlmIChzaG93RmFsbGJhY2spIHtcbiAgICAgIHZhciBmYWxsYmFja0ZyYWdtZW50ID0gbW91bnRTdXNwZW5zZUZhbGxiYWNrQ2hpbGRyZW4od29ya0luUHJvZ3Jlc3MsIG5leHRQcmltYXJ5Q2hpbGRyZW4sIG5leHRGYWxsYmFja0NoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gICAgICB2YXIgcHJpbWFyeUNoaWxkRnJhZ21lbnQgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICAgIHByaW1hcnlDaGlsZEZyYWdtZW50Lm1lbW9pemVkU3RhdGUgPSBtb3VudFN1c3BlbnNlT2Zmc2NyZWVuU3RhdGUocmVuZGVyTGFuZXMpO1xuICAgICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IFNVU1BFTkRFRF9NQVJLRVI7XG5cbiAgICAgIHJldHVybiBmYWxsYmFja0ZyYWdtZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbW91bnRTdXNwZW5zZVByaW1hcnlDaGlsZHJlbih3b3JrSW5Qcm9ncmVzcywgbmV4dFByaW1hcnlDaGlsZHJlbik7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIFRoaXMgaXMgYW4gdXBkYXRlLlxuICAgIC8vIFNwZWNpYWwgcGF0aCBmb3IgaHlkcmF0aW9uXG4gICAgdmFyIHByZXZTdGF0ZSA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcblxuICAgIGlmIChwcmV2U3RhdGUgIT09IG51bGwpIHtcbiAgICAgIHZhciBfZGVoeWRyYXRlZCA9IHByZXZTdGF0ZS5kZWh5ZHJhdGVkO1xuXG4gICAgICBpZiAoX2RlaHlkcmF0ZWQgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZURlaHlkcmF0ZWRTdXNwZW5zZUNvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgZGlkU3VzcGVuZCwgbmV4dFByb3BzLCBfZGVoeWRyYXRlZCwgcHJldlN0YXRlLCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHNob3dGYWxsYmFjaykge1xuICAgICAgdmFyIF9uZXh0RmFsbGJhY2tDaGlsZHJlbiA9IG5leHRQcm9wcy5mYWxsYmFjaztcbiAgICAgIHZhciBfbmV4dFByaW1hcnlDaGlsZHJlbiA9IG5leHRQcm9wcy5jaGlsZHJlbjtcbiAgICAgIHZhciBmYWxsYmFja0NoaWxkRnJhZ21lbnQgPSB1cGRhdGVTdXNwZW5zZUZhbGxiYWNrQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIF9uZXh0UHJpbWFyeUNoaWxkcmVuLCBfbmV4dEZhbGxiYWNrQ2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgICAgIHZhciBfcHJpbWFyeUNoaWxkRnJhZ21lbnQyID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgICB2YXIgcHJldk9mZnNjcmVlblN0YXRlID0gY3VycmVudC5jaGlsZC5tZW1vaXplZFN0YXRlO1xuICAgICAgX3ByaW1hcnlDaGlsZEZyYWdtZW50Mi5tZW1vaXplZFN0YXRlID0gcHJldk9mZnNjcmVlblN0YXRlID09PSBudWxsID8gbW91bnRTdXNwZW5zZU9mZnNjcmVlblN0YXRlKHJlbmRlckxhbmVzKSA6IHVwZGF0ZVN1c3BlbnNlT2Zmc2NyZWVuU3RhdGUocHJldk9mZnNjcmVlblN0YXRlLCByZW5kZXJMYW5lcyk7XG5cbiAgICAgIF9wcmltYXJ5Q2hpbGRGcmFnbWVudDIuY2hpbGRMYW5lcyA9IGdldFJlbWFpbmluZ1dvcmtJblByaW1hcnlUcmVlKGN1cnJlbnQsIHJlbmRlckxhbmVzKTtcbiAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBTVVNQRU5ERURfTUFSS0VSO1xuICAgICAgcmV0dXJuIGZhbGxiYWNrQ2hpbGRGcmFnbWVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIF9uZXh0UHJpbWFyeUNoaWxkcmVuMiA9IG5leHRQcm9wcy5jaGlsZHJlbjtcblxuICAgICAgdmFyIF9wcmltYXJ5Q2hpbGRGcmFnbWVudDMgPSB1cGRhdGVTdXNwZW5zZVByaW1hcnlDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgX25leHRQcmltYXJ5Q2hpbGRyZW4yLCByZW5kZXJMYW5lcyk7XG5cbiAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgICAgcmV0dXJuIF9wcmltYXJ5Q2hpbGRGcmFnbWVudDM7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIG1vdW50U3VzcGVuc2VQcmltYXJ5Q2hpbGRyZW4od29ya0luUHJvZ3Jlc3MsIHByaW1hcnlDaGlsZHJlbiwgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIG1vZGUgPSB3b3JrSW5Qcm9ncmVzcy5tb2RlO1xuICB2YXIgcHJpbWFyeUNoaWxkUHJvcHMgPSB7XG4gICAgbW9kZTogJ3Zpc2libGUnLFxuICAgIGNoaWxkcmVuOiBwcmltYXJ5Q2hpbGRyZW5cbiAgfTtcbiAgdmFyIHByaW1hcnlDaGlsZEZyYWdtZW50ID0gbW91bnRXb3JrSW5Qcm9ncmVzc09mZnNjcmVlbkZpYmVyKHByaW1hcnlDaGlsZFByb3BzLCBtb2RlKTtcbiAgcHJpbWFyeUNoaWxkRnJhZ21lbnQucmV0dXJuID0gd29ya0luUHJvZ3Jlc3M7XG4gIHdvcmtJblByb2dyZXNzLmNoaWxkID0gcHJpbWFyeUNoaWxkRnJhZ21lbnQ7XG4gIHJldHVybiBwcmltYXJ5Q2hpbGRGcmFnbWVudDtcbn1cblxuZnVuY3Rpb24gbW91bnRTdXNwZW5zZUZhbGxiYWNrQ2hpbGRyZW4od29ya0luUHJvZ3Jlc3MsIHByaW1hcnlDaGlsZHJlbiwgZmFsbGJhY2tDaGlsZHJlbiwgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIG1vZGUgPSB3b3JrSW5Qcm9ncmVzcy5tb2RlO1xuICB2YXIgcHJvZ3Jlc3NlZFByaW1hcnlGcmFnbWVudCA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICB2YXIgcHJpbWFyeUNoaWxkUHJvcHMgPSB7XG4gICAgbW9kZTogJ2hpZGRlbicsXG4gICAgY2hpbGRyZW46IHByaW1hcnlDaGlsZHJlblxuICB9O1xuICB2YXIgcHJpbWFyeUNoaWxkRnJhZ21lbnQ7XG4gIHZhciBmYWxsYmFja0NoaWxkRnJhZ21lbnQ7XG5cbiAgaWYgKChtb2RlICYgQ29uY3VycmVudE1vZGUpID09PSBOb01vZGUgJiYgcHJvZ3Jlc3NlZFByaW1hcnlGcmFnbWVudCAhPT0gbnVsbCkge1xuICAgIC8vIEluIGxlZ2FjeSBtb2RlLCB3ZSBjb21taXQgdGhlIHByaW1hcnkgdHJlZSBhcyBpZiBpdCBzdWNjZXNzZnVsbHlcbiAgICAvLyBjb21wbGV0ZWQsIGV2ZW4gdGhvdWdoIGl0J3MgaW4gYW4gaW5jb25zaXN0ZW50IHN0YXRlLlxuICAgIHByaW1hcnlDaGlsZEZyYWdtZW50ID0gcHJvZ3Jlc3NlZFByaW1hcnlGcmFnbWVudDtcbiAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5jaGlsZExhbmVzID0gTm9MYW5lcztcbiAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5wZW5kaW5nUHJvcHMgPSBwcmltYXJ5Q2hpbGRQcm9wcztcblxuICAgIGlmICggd29ya0luUHJvZ3Jlc3MubW9kZSAmIFByb2ZpbGVNb2RlKSB7XG4gICAgICAvLyBSZXNldCB0aGUgZHVyYXRpb25zIGZyb20gdGhlIGZpcnN0IHBhc3Mgc28gdGhleSBhcmVuJ3QgaW5jbHVkZWQgaW4gdGhlXG4gICAgICAvLyBmaW5hbCBhbW91bnRzLiBUaGlzIHNlZW1zIGNvdW50ZXJpbnR1aXRpdmUsIHNpbmNlIHdlJ3JlIGludGVudGlvbmFsbHlcbiAgICAgIC8vIG5vdCBtZWFzdXJpbmcgcGFydCBvZiB0aGUgcmVuZGVyIHBoYXNlLCBidXQgdGhpcyBtYWtlcyBpdCBtYXRjaCB3aGF0IHdlXG4gICAgICAvLyBkbyBpbiBDb25jdXJyZW50IE1vZGUuXG4gICAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5hY3R1YWxEdXJhdGlvbiA9IDA7XG4gICAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5hY3R1YWxTdGFydFRpbWUgPSAtMTtcbiAgICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LnNlbGZCYXNlRHVyYXRpb24gPSAwO1xuICAgICAgcHJpbWFyeUNoaWxkRnJhZ21lbnQudHJlZUJhc2VEdXJhdGlvbiA9IDA7XG4gICAgfVxuXG4gICAgZmFsbGJhY2tDaGlsZEZyYWdtZW50ID0gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQoZmFsbGJhY2tDaGlsZHJlbiwgbW9kZSwgcmVuZGVyTGFuZXMsIG51bGwpO1xuICB9IGVsc2Uge1xuICAgIHByaW1hcnlDaGlsZEZyYWdtZW50ID0gbW91bnRXb3JrSW5Qcm9ncmVzc09mZnNjcmVlbkZpYmVyKHByaW1hcnlDaGlsZFByb3BzLCBtb2RlKTtcbiAgICBmYWxsYmFja0NoaWxkRnJhZ21lbnQgPSBjcmVhdGVGaWJlckZyb21GcmFnbWVudChmYWxsYmFja0NoaWxkcmVuLCBtb2RlLCByZW5kZXJMYW5lcywgbnVsbCk7XG4gIH1cblxuICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgZmFsbGJhY2tDaGlsZEZyYWdtZW50LnJldHVybiA9IHdvcmtJblByb2dyZXNzO1xuICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5zaWJsaW5nID0gZmFsbGJhY2tDaGlsZEZyYWdtZW50O1xuICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IHByaW1hcnlDaGlsZEZyYWdtZW50O1xuICByZXR1cm4gZmFsbGJhY2tDaGlsZEZyYWdtZW50O1xufVxuXG5mdW5jdGlvbiBtb3VudFdvcmtJblByb2dyZXNzT2Zmc2NyZWVuRmliZXIob2Zmc2NyZWVuUHJvcHMsIG1vZGUsIHJlbmRlckxhbmVzKSB7XG4gIC8vIFRoZSBwcm9wcyBhcmd1bWVudCB0byBgY3JlYXRlRmliZXJGcm9tT2Zmc2NyZWVuYCBpcyBgYW55YCB0eXBlZCwgc28gd2UgdXNlXG4gIC8vIHRoaXMgd3JhcHBlciBmdW5jdGlvbiB0byBjb25zdHJhaW4gaXQuXG4gIHJldHVybiBjcmVhdGVGaWJlckZyb21PZmZzY3JlZW4ob2Zmc2NyZWVuUHJvcHMsIG1vZGUsIE5vTGFuZXMsIG51bGwpO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVXb3JrSW5Qcm9ncmVzc09mZnNjcmVlbkZpYmVyKGN1cnJlbnQsIG9mZnNjcmVlblByb3BzKSB7XG4gIC8vIFRoZSBwcm9wcyBhcmd1bWVudCB0byBgY3JlYXRlV29ya0luUHJvZ3Jlc3NgIGlzIGBhbnlgIHR5cGVkLCBzbyB3ZSB1c2UgdGhpc1xuICAvLyB3cmFwcGVyIGZ1bmN0aW9uIHRvIGNvbnN0cmFpbiBpdC5cbiAgcmV0dXJuIGNyZWF0ZVdvcmtJblByb2dyZXNzKGN1cnJlbnQsIG9mZnNjcmVlblByb3BzKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlU3VzcGVuc2VQcmltYXJ5Q2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHByaW1hcnlDaGlsZHJlbiwgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIGN1cnJlbnRQcmltYXJ5Q2hpbGRGcmFnbWVudCA9IGN1cnJlbnQuY2hpbGQ7XG4gIHZhciBjdXJyZW50RmFsbGJhY2tDaGlsZEZyYWdtZW50ID0gY3VycmVudFByaW1hcnlDaGlsZEZyYWdtZW50LnNpYmxpbmc7XG4gIHZhciBwcmltYXJ5Q2hpbGRGcmFnbWVudCA9IHVwZGF0ZVdvcmtJblByb2dyZXNzT2Zmc2NyZWVuRmliZXIoY3VycmVudFByaW1hcnlDaGlsZEZyYWdtZW50LCB7XG4gICAgbW9kZTogJ3Zpc2libGUnLFxuICAgIGNoaWxkcmVuOiBwcmltYXJ5Q2hpbGRyZW5cbiAgfSk7XG5cbiAgaWYgKCh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgQ29uY3VycmVudE1vZGUpID09PSBOb01vZGUpIHtcbiAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5sYW5lcyA9IHJlbmRlckxhbmVzO1xuICB9XG5cbiAgcHJpbWFyeUNoaWxkRnJhZ21lbnQucmV0dXJuID0gd29ya0luUHJvZ3Jlc3M7XG4gIHByaW1hcnlDaGlsZEZyYWdtZW50LnNpYmxpbmcgPSBudWxsO1xuXG4gIGlmIChjdXJyZW50RmFsbGJhY2tDaGlsZEZyYWdtZW50ICE9PSBudWxsKSB7XG4gICAgLy8gRGVsZXRlIHRoZSBmYWxsYmFjayBjaGlsZCBmcmFnbWVudFxuICAgIHZhciBkZWxldGlvbnMgPSB3b3JrSW5Qcm9ncmVzcy5kZWxldGlvbnM7XG5cbiAgICBpZiAoZGVsZXRpb25zID09PSBudWxsKSB7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5kZWxldGlvbnMgPSBbY3VycmVudEZhbGxiYWNrQ2hpbGRGcmFnbWVudF07XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBDaGlsZERlbGV0aW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGlvbnMucHVzaChjdXJyZW50RmFsbGJhY2tDaGlsZEZyYWdtZW50KTtcbiAgICB9XG4gIH1cblxuICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IHByaW1hcnlDaGlsZEZyYWdtZW50O1xuICByZXR1cm4gcHJpbWFyeUNoaWxkRnJhZ21lbnQ7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVN1c3BlbnNlRmFsbGJhY2tDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcHJpbWFyeUNoaWxkcmVuLCBmYWxsYmFja0NoaWxkcmVuLCByZW5kZXJMYW5lcykge1xuICB2YXIgbW9kZSA9IHdvcmtJblByb2dyZXNzLm1vZGU7XG4gIHZhciBjdXJyZW50UHJpbWFyeUNoaWxkRnJhZ21lbnQgPSBjdXJyZW50LmNoaWxkO1xuICB2YXIgY3VycmVudEZhbGxiYWNrQ2hpbGRGcmFnbWVudCA9IGN1cnJlbnRQcmltYXJ5Q2hpbGRGcmFnbWVudC5zaWJsaW5nO1xuICB2YXIgcHJpbWFyeUNoaWxkUHJvcHMgPSB7XG4gICAgbW9kZTogJ2hpZGRlbicsXG4gICAgY2hpbGRyZW46IHByaW1hcnlDaGlsZHJlblxuICB9O1xuICB2YXIgcHJpbWFyeUNoaWxkRnJhZ21lbnQ7XG5cbiAgaWYgKCAvLyBJbiBsZWdhY3kgbW9kZSwgd2UgY29tbWl0IHRoZSBwcmltYXJ5IHRyZWUgYXMgaWYgaXQgc3VjY2Vzc2Z1bGx5XG4gIC8vIGNvbXBsZXRlZCwgZXZlbiB0aG91Z2ggaXQncyBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUuXG4gIChtb2RlICYgQ29uY3VycmVudE1vZGUpID09PSBOb01vZGUgJiYgLy8gTWFrZSBzdXJlIHdlJ3JlIG9uIHRoZSBzZWNvbmQgcGFzcywgaS5lLiB0aGUgcHJpbWFyeSBjaGlsZCBmcmFnbWVudCB3YXNcbiAgLy8gYWxyZWFkeSBjbG9uZWQuIEluIGxlZ2FjeSBtb2RlLCB0aGUgb25seSBjYXNlIHdoZXJlIHRoaXMgaXNuJ3QgdHJ1ZSBpc1xuICAvLyB3aGVuIERldlRvb2xzIGZvcmNlcyB1cyB0byBkaXNwbGF5IGEgZmFsbGJhY2s7IHdlIHNraXAgdGhlIGZpcnN0IHJlbmRlclxuICAvLyBwYXNzIGVudGlyZWx5IGFuZCBnbyBzdHJhaWdodCB0byByZW5kZXJpbmcgdGhlIGZhbGxiYWNrLiAoSW4gQ29uY3VycmVudFxuICAvLyBNb2RlLCBTdXNwZW5zZUxpc3QgY2FuIGFsc28gdHJpZ2dlciB0aGlzIHNjZW5hcmlvLCBidXQgdGhpcyBpcyBhIGxlZ2FjeS1cbiAgLy8gb25seSBjb2RlcGF0aC4pXG4gIHdvcmtJblByb2dyZXNzLmNoaWxkICE9PSBjdXJyZW50UHJpbWFyeUNoaWxkRnJhZ21lbnQpIHtcbiAgICB2YXIgcHJvZ3Jlc3NlZFByaW1hcnlGcmFnbWVudCA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgIHByaW1hcnlDaGlsZEZyYWdtZW50ID0gcHJvZ3Jlc3NlZFByaW1hcnlGcmFnbWVudDtcbiAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5jaGlsZExhbmVzID0gTm9MYW5lcztcbiAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5wZW5kaW5nUHJvcHMgPSBwcmltYXJ5Q2hpbGRQcm9wcztcblxuICAgIGlmICggd29ya0luUHJvZ3Jlc3MubW9kZSAmIFByb2ZpbGVNb2RlKSB7XG4gICAgICAvLyBSZXNldCB0aGUgZHVyYXRpb25zIGZyb20gdGhlIGZpcnN0IHBhc3Mgc28gdGhleSBhcmVuJ3QgaW5jbHVkZWQgaW4gdGhlXG4gICAgICAvLyBmaW5hbCBhbW91bnRzLiBUaGlzIHNlZW1zIGNvdW50ZXJpbnR1aXRpdmUsIHNpbmNlIHdlJ3JlIGludGVudGlvbmFsbHlcbiAgICAgIC8vIG5vdCBtZWFzdXJpbmcgcGFydCBvZiB0aGUgcmVuZGVyIHBoYXNlLCBidXQgdGhpcyBtYWtlcyBpdCBtYXRjaCB3aGF0IHdlXG4gICAgICAvLyBkbyBpbiBDb25jdXJyZW50IE1vZGUuXG4gICAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5hY3R1YWxEdXJhdGlvbiA9IDA7XG4gICAgICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5hY3R1YWxTdGFydFRpbWUgPSAtMTtcbiAgICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LnNlbGZCYXNlRHVyYXRpb24gPSBjdXJyZW50UHJpbWFyeUNoaWxkRnJhZ21lbnQuc2VsZkJhc2VEdXJhdGlvbjtcbiAgICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LnRyZWVCYXNlRHVyYXRpb24gPSBjdXJyZW50UHJpbWFyeUNoaWxkRnJhZ21lbnQudHJlZUJhc2VEdXJhdGlvbjtcbiAgICB9IC8vIFRoZSBmYWxsYmFjayBmaWJlciB3YXMgYWRkZWQgYXMgYSBkZWxldGlvbiBkdXJpbmcgdGhlIGZpcnN0IHBhc3MuXG4gICAgLy8gSG93ZXZlciwgc2luY2Ugd2UncmUgZ29pbmcgdG8gcmVtYWluIG9uIHRoZSBmYWxsYmFjaywgd2Ugbm8gbG9uZ2VyIHdhbnRcbiAgICAvLyB0byBkZWxldGUgaXQuXG5cblxuICAgIHdvcmtJblByb2dyZXNzLmRlbGV0aW9ucyA9IG51bGw7XG4gIH0gZWxzZSB7XG4gICAgcHJpbWFyeUNoaWxkRnJhZ21lbnQgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc09mZnNjcmVlbkZpYmVyKGN1cnJlbnRQcmltYXJ5Q2hpbGRGcmFnbWVudCwgcHJpbWFyeUNoaWxkUHJvcHMpOyAvLyBTaW5jZSB3ZSdyZSByZXVzaW5nIGEgY3VycmVudCB0cmVlLCB3ZSBuZWVkIHRvIHJldXNlIHRoZSBmbGFncywgdG9vLlxuICAgIC8vIChXZSBkb24ndCBkbyB0aGlzIGluIGxlZ2FjeSBtb2RlLCBiZWNhdXNlIGluIGxlZ2FjeSBtb2RlIHdlIGRvbid0IHJlLXVzZVxuICAgIC8vIHRoZSBjdXJyZW50IHRyZWU7IHNlZSBwcmV2aW91cyBicmFuY2guKVxuXG4gICAgcHJpbWFyeUNoaWxkRnJhZ21lbnQuc3VidHJlZUZsYWdzID0gY3VycmVudFByaW1hcnlDaGlsZEZyYWdtZW50LnN1YnRyZWVGbGFncyAmIFN0YXRpY01hc2s7XG4gIH1cblxuICB2YXIgZmFsbGJhY2tDaGlsZEZyYWdtZW50O1xuXG4gIGlmIChjdXJyZW50RmFsbGJhY2tDaGlsZEZyYWdtZW50ICE9PSBudWxsKSB7XG4gICAgZmFsbGJhY2tDaGlsZEZyYWdtZW50ID0gY3JlYXRlV29ya0luUHJvZ3Jlc3MoY3VycmVudEZhbGxiYWNrQ2hpbGRGcmFnbWVudCwgZmFsbGJhY2tDaGlsZHJlbik7XG4gIH0gZWxzZSB7XG4gICAgZmFsbGJhY2tDaGlsZEZyYWdtZW50ID0gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQoZmFsbGJhY2tDaGlsZHJlbiwgbW9kZSwgcmVuZGVyTGFuZXMsIG51bGwpOyAvLyBOZWVkcyBhIHBsYWNlbWVudCBlZmZlY3QgYmVjYXVzZSB0aGUgcGFyZW50ICh0aGUgU3VzcGVuc2UgYm91bmRhcnkpIGFscmVhZHlcbiAgICAvLyBtb3VudGVkIGJ1dCB0aGlzIGlzIGEgbmV3IGZpYmVyLlxuXG4gICAgZmFsbGJhY2tDaGlsZEZyYWdtZW50LmZsYWdzIHw9IFBsYWNlbWVudDtcbiAgfVxuXG4gIGZhbGxiYWNrQ2hpbGRGcmFnbWVudC5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgcHJpbWFyeUNoaWxkRnJhZ21lbnQucmV0dXJuID0gd29ya0luUHJvZ3Jlc3M7XG4gIHByaW1hcnlDaGlsZEZyYWdtZW50LnNpYmxpbmcgPSBmYWxsYmFja0NoaWxkRnJhZ21lbnQ7XG4gIHdvcmtJblByb2dyZXNzLmNoaWxkID0gcHJpbWFyeUNoaWxkRnJhZ21lbnQ7XG4gIHJldHVybiBmYWxsYmFja0NoaWxkRnJhZ21lbnQ7XG59XG5cbmZ1bmN0aW9uIHJldHJ5U3VzcGVuc2VDb21wb25lbnRXaXRob3V0SHlkcmF0aW5nKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcywgcmVjb3ZlcmFibGVFcnJvcikge1xuICAvLyBGYWxsaW5nIGJhY2sgdG8gY2xpZW50IHJlbmRlcmluZy4gQmVjYXVzZSB0aGlzIGhhcyBwZXJmb3JtYW5jZVxuICAvLyBpbXBsaWNhdGlvbnMsIGl0J3MgY29uc2lkZXJlZCBhIHJlY292ZXJhYmxlIGVycm9yLCBldmVuIHRob3VnaCB0aGUgdXNlclxuICAvLyBsaWtlbHkgd29uJ3Qgb2JzZXJ2ZSBhbnl0aGluZyB3cm9uZyB3aXRoIHRoZSBVSS5cbiAgLy9cbiAgLy8gVGhlIGVycm9yIGlzIHBhc3NlZCBpbiBhcyBhbiBhcmd1bWVudCB0byBlbmZvcmNlIHRoYXQgZXZlcnkgY2FsbGVyIHByb3ZpZGVcbiAgLy8gYSBjdXN0b20gbWVzc2FnZSwgb3IgZXhwbGljaXRseSBvcHQgb3V0IChjdXJyZW50bHkgdGhlIG9ubHkgcGF0aCB0aGF0IG9wdHNcbiAgLy8gb3V0IGlzIGxlZ2FjeSBtb2RlOyBldmVyeSBjb25jdXJyZW50IHBhdGggcHJvdmlkZXMgYW4gZXJyb3IpLlxuICBpZiAocmVjb3ZlcmFibGVFcnJvciAhPT0gbnVsbCkge1xuICAgIHF1ZXVlSHlkcmF0aW9uRXJyb3IocmVjb3ZlcmFibGVFcnJvcik7XG4gIH0gLy8gVGhpcyB3aWxsIGFkZCB0aGUgb2xkIGZpYmVyIHRvIHRoZSBkZWxldGlvbiBsaXN0XG5cblxuICByZWNvbmNpbGVDaGlsZEZpYmVycyh3b3JrSW5Qcm9ncmVzcywgY3VycmVudC5jaGlsZCwgbnVsbCwgcmVuZGVyTGFuZXMpOyAvLyBXZSdyZSBub3cgbm90IHN1c3BlbmRlZCBub3IgZGVoeWRyYXRlZC5cblxuICB2YXIgbmV4dFByb3BzID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzO1xuICB2YXIgcHJpbWFyeUNoaWxkcmVuID0gbmV4dFByb3BzLmNoaWxkcmVuO1xuICB2YXIgcHJpbWFyeUNoaWxkRnJhZ21lbnQgPSBtb3VudFN1c3BlbnNlUHJpbWFyeUNoaWxkcmVuKHdvcmtJblByb2dyZXNzLCBwcmltYXJ5Q2hpbGRyZW4pOyAvLyBOZWVkcyBhIHBsYWNlbWVudCBlZmZlY3QgYmVjYXVzZSB0aGUgcGFyZW50ICh0aGUgU3VzcGVuc2UgYm91bmRhcnkpIGFscmVhZHlcbiAgLy8gbW91bnRlZCBidXQgdGhpcyBpcyBhIG5ldyBmaWJlci5cblxuICBwcmltYXJ5Q2hpbGRGcmFnbWVudC5mbGFncyB8PSBQbGFjZW1lbnQ7XG4gIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICByZXR1cm4gcHJpbWFyeUNoaWxkRnJhZ21lbnQ7XG59XG5cbmZ1bmN0aW9uIG1vdW50U3VzcGVuc2VGYWxsYmFja0FmdGVyUmV0cnlXaXRob3V0SHlkcmF0aW5nKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBwcmltYXJ5Q2hpbGRyZW4sIGZhbGxiYWNrQ2hpbGRyZW4sIHJlbmRlckxhbmVzKSB7XG4gIHZhciBmaWJlck1vZGUgPSB3b3JrSW5Qcm9ncmVzcy5tb2RlO1xuICB2YXIgcHJpbWFyeUNoaWxkUHJvcHMgPSB7XG4gICAgbW9kZTogJ3Zpc2libGUnLFxuICAgIGNoaWxkcmVuOiBwcmltYXJ5Q2hpbGRyZW5cbiAgfTtcbiAgdmFyIHByaW1hcnlDaGlsZEZyYWdtZW50ID0gbW91bnRXb3JrSW5Qcm9ncmVzc09mZnNjcmVlbkZpYmVyKHByaW1hcnlDaGlsZFByb3BzLCBmaWJlck1vZGUpO1xuICB2YXIgZmFsbGJhY2tDaGlsZEZyYWdtZW50ID0gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQoZmFsbGJhY2tDaGlsZHJlbiwgZmliZXJNb2RlLCByZW5kZXJMYW5lcywgbnVsbCk7IC8vIE5lZWRzIGEgcGxhY2VtZW50IGVmZmVjdCBiZWNhdXNlIHRoZSBwYXJlbnQgKHRoZSBTdXNwZW5zZVxuICAvLyBib3VuZGFyeSkgYWxyZWFkeSBtb3VudGVkIGJ1dCB0aGlzIGlzIGEgbmV3IGZpYmVyLlxuXG4gIGZhbGxiYWNrQ2hpbGRGcmFnbWVudC5mbGFncyB8PSBQbGFjZW1lbnQ7XG4gIHByaW1hcnlDaGlsZEZyYWdtZW50LnJldHVybiA9IHdvcmtJblByb2dyZXNzO1xuICBmYWxsYmFja0NoaWxkRnJhZ21lbnQucmV0dXJuID0gd29ya0luUHJvZ3Jlc3M7XG4gIHByaW1hcnlDaGlsZEZyYWdtZW50LnNpYmxpbmcgPSBmYWxsYmFja0NoaWxkRnJhZ21lbnQ7XG4gIHdvcmtJblByb2dyZXNzLmNoaWxkID0gcHJpbWFyeUNoaWxkRnJhZ21lbnQ7XG5cbiAgaWYgKCh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgQ29uY3VycmVudE1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAvLyBXZSB3aWxsIGhhdmUgZHJvcHBlZCB0aGUgZWZmZWN0IGxpc3Qgd2hpY2ggY29udGFpbnMgdGhlXG4gICAgLy8gZGVsZXRpb24uIFdlIG5lZWQgdG8gcmVjb25jaWxlIHRvIGRlbGV0ZSB0aGUgY3VycmVudCBjaGlsZC5cbiAgICByZWNvbmNpbGVDaGlsZEZpYmVycyh3b3JrSW5Qcm9ncmVzcywgY3VycmVudC5jaGlsZCwgbnVsbCwgcmVuZGVyTGFuZXMpO1xuICB9XG5cbiAgcmV0dXJuIGZhbGxiYWNrQ2hpbGRGcmFnbWVudDtcbn1cblxuZnVuY3Rpb24gbW91bnREZWh5ZHJhdGVkU3VzcGVuc2VDb21wb25lbnQod29ya0luUHJvZ3Jlc3MsIHN1c3BlbnNlSW5zdGFuY2UsIHJlbmRlckxhbmVzKSB7XG4gIC8vIER1cmluZyB0aGUgZmlyc3QgcGFzcywgd2UnbGwgYmFpbCBvdXQgYW5kIG5vdCBkcmlsbCBpbnRvIHRoZSBjaGlsZHJlbi5cbiAgLy8gSW5zdGVhZCwgd2UnbGwgbGVhdmUgdGhlIGNvbnRlbnQgaW4gcGxhY2UgYW5kIHRyeSB0byBoeWRyYXRlIGl0IGxhdGVyLlxuICBpZiAoKHdvcmtJblByb2dyZXNzLm1vZGUgJiBDb25jdXJyZW50TW9kZSkgPT09IE5vTW9kZSkge1xuICAgIHtcbiAgICAgIGVycm9yKCdDYW5ub3QgaHlkcmF0ZSBTdXNwZW5zZSBpbiBsZWdhY3kgbW9kZS4gU3dpdGNoIGZyb20gJyArICdSZWFjdERPTS5oeWRyYXRlKGVsZW1lbnQsIGNvbnRhaW5lcikgdG8gJyArICdSZWFjdERPTUNsaWVudC5oeWRyYXRlUm9vdChjb250YWluZXIsIDxBcHAgLz4pJyArICcucmVuZGVyKGVsZW1lbnQpIG9yIHJlbW92ZSB0aGUgU3VzcGVuc2UgY29tcG9uZW50cyBmcm9tICcgKyAndGhlIHNlcnZlciByZW5kZXJlZCBjb21wb25lbnRzLicpO1xuICAgIH1cblxuICAgIHdvcmtJblByb2dyZXNzLmxhbmVzID0gbGFuZVRvTGFuZXMoU3luY0xhbmUpO1xuICB9IGVsc2UgaWYgKGlzU3VzcGVuc2VJbnN0YW5jZUZhbGxiYWNrKHN1c3BlbnNlSW5zdGFuY2UpKSB7XG4gICAgLy8gVGhpcyBpcyBhIGNsaWVudC1vbmx5IGJvdW5kYXJ5LiBTaW5jZSB3ZSB3b24ndCBnZXQgYW55IGNvbnRlbnQgZnJvbSB0aGUgc2VydmVyXG4gICAgLy8gZm9yIHRoaXMsIHdlIG5lZWQgdG8gc2NoZWR1bGUgdGhhdCBhdCBhIGhpZ2hlciBwcmlvcml0eSBiYXNlZCBvbiB3aGVuIGl0IHdvdWxkXG4gICAgLy8gaGF2ZSB0aW1lZCBvdXQuIEluIHRoZW9yeSB3ZSBjb3VsZCByZW5kZXIgaXQgaW4gdGhpcyBwYXNzIGJ1dCBpdCB3b3VsZCBoYXZlIHRoZVxuICAgIC8vIHdyb25nIHByaW9yaXR5IGFzc29jaWF0ZWQgd2l0aCBpdCBhbmQgd2lsbCBwcmV2ZW50IGh5ZHJhdGlvbiBvZiBwYXJlbnQgcGF0aC5cbiAgICAvLyBJbnN0ZWFkLCB3ZSdsbCBsZWF2ZSB3b3JrIGxlZnQgb24gaXQgdG8gcmVuZGVyIGl0IGluIGEgc2VwYXJhdGUgY29tbWl0LlxuICAgIC8vIFRPRE8gVGhpcyB0aW1lIHNob3VsZCBiZSB0aGUgdGltZSBhdCB3aGljaCB0aGUgc2VydmVyIHJlbmRlcmVkIHJlc3BvbnNlIHRoYXQgaXNcbiAgICAvLyBhIHBhcmVudCB0byB0aGlzIGJvdW5kYXJ5IHdhcyBkaXNwbGF5ZWQuIEhvd2V2ZXIsIHNpbmNlIHdlIGN1cnJlbnRseSBkb24ndCBoYXZlXG4gICAgLy8gYSBwcm90b2NvbCB0byB0cmFuc2ZlciB0aGF0IHRpbWUsIHdlJ2xsIGp1c3QgZXN0aW1hdGUgaXQgYnkgdXNpbmcgdGhlIGN1cnJlbnRcbiAgICAvLyB0aW1lLiBUaGlzIHdpbGwgbWVhbiB0aGF0IFN1c3BlbnNlIHRpbWVvdXRzIGFyZSBzbGlnaHRseSBzaGlmdGVkIHRvIGxhdGVyIHRoYW5cbiAgICAvLyB0aGV5IHNob3VsZCBiZS5cbiAgICAvLyBTY2hlZHVsZSBhIG5vcm1hbCBwcmkgdXBkYXRlIHRvIHJlbmRlciB0aGlzIGNvbnRlbnQuXG4gICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBsYW5lVG9MYW5lcyhEZWZhdWx0SHlkcmF0aW9uTGFuZSk7XG4gIH0gZWxzZSB7XG4gICAgLy8gV2UnbGwgY29udGludWUgaHlkcmF0aW5nIHRoZSByZXN0IGF0IG9mZnNjcmVlbiBwcmlvcml0eSBzaW5jZSB3ZSdsbCBhbHJlYWR5XG4gICAgLy8gYmUgc2hvd2luZyB0aGUgcmlnaHQgY29udGVudCBjb21pbmcgZnJvbSB0aGUgc2VydmVyLCBpdCBpcyBubyBydXNoLlxuICAgIHdvcmtJblByb2dyZXNzLmxhbmVzID0gbGFuZVRvTGFuZXMoT2Zmc2NyZWVuTGFuZSk7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gdXBkYXRlRGVoeWRyYXRlZFN1c3BlbnNlQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBkaWRTdXNwZW5kLCBuZXh0UHJvcHMsIHN1c3BlbnNlSW5zdGFuY2UsIHN1c3BlbnNlU3RhdGUsIHJlbmRlckxhbmVzKSB7XG4gIGlmICghZGlkU3VzcGVuZCkge1xuICAgIC8vIFRoaXMgaXMgdGhlIGZpcnN0IHJlbmRlciBwYXNzLiBBdHRlbXB0IHRvIGh5ZHJhdGUuXG4gICAgLy8gV2Ugc2hvdWxkIG5ldmVyIGJlIGh5ZHJhdGluZyBhdCB0aGlzIHBvaW50IGJlY2F1c2UgaXQgaXMgdGhlIGZpcnN0IHBhc3MsXG4gICAgLy8gYnV0IGFmdGVyIHdlJ3ZlIGFscmVhZHkgY29tbWl0dGVkIG9uY2UuXG4gICAgd2FybklmSHlkcmF0aW5nKCk7XG5cbiAgICBpZiAoKHdvcmtJblByb2dyZXNzLm1vZGUgJiBDb25jdXJyZW50TW9kZSkgPT09IE5vTW9kZSkge1xuICAgICAgcmV0dXJuIHJldHJ5U3VzcGVuc2VDb21wb25lbnRXaXRob3V0SHlkcmF0aW5nKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcywgLy8gVE9ETzogV2hlbiB3ZSBkZWxldGUgbGVnYWN5IG1vZGUsIHdlIHNob3VsZCBtYWtlIHRoaXMgZXJyb3IgYXJndW1lbnRcbiAgICAgIC8vIHJlcXVpcmVkIOKAlCBldmVyeSBjb25jdXJyZW50IG1vZGUgcGF0aCB0aGF0IGNhdXNlcyBoeWRyYXRpb24gdG9cbiAgICAgIC8vIGRlLW9wdCB0byBjbGllbnQgcmVuZGVyaW5nIHNob3VsZCBoYXZlIGFuIGVycm9yIG1lc3NhZ2UuXG4gICAgICBudWxsKTtcbiAgICB9XG5cbiAgICBpZiAoaXNTdXNwZW5zZUluc3RhbmNlRmFsbGJhY2soc3VzcGVuc2VJbnN0YW5jZSkpIHtcbiAgICAgIC8vIFRoaXMgYm91bmRhcnkgaXMgaW4gYSBwZXJtYW5lbnQgZmFsbGJhY2sgc3RhdGUuIEluIHRoaXMgY2FzZSwgd2UnbGwgbmV2ZXJcbiAgICAgIC8vIGdldCBhbiB1cGRhdGUgYW5kIHdlJ2xsIG5ldmVyIGJlIGFibGUgdG8gaHlkcmF0ZSB0aGUgZmluYWwgY29udGVudC4gTGV0J3MganVzdCB0cnkgdGhlXG4gICAgICAvLyBjbGllbnQgc2lkZSByZW5kZXIgaW5zdGVhZC5cbiAgICAgIHZhciBkaWdlc3QsIG1lc3NhZ2UsIHN0YWNrO1xuXG4gICAgICB7XG4gICAgICAgIHZhciBfZ2V0U3VzcGVuc2VJbnN0YW5jZUYgPSBnZXRTdXNwZW5zZUluc3RhbmNlRmFsbGJhY2tFcnJvckRldGFpbHMoc3VzcGVuc2VJbnN0YW5jZSk7XG5cbiAgICAgICAgZGlnZXN0ID0gX2dldFN1c3BlbnNlSW5zdGFuY2VGLmRpZ2VzdDtcbiAgICAgICAgbWVzc2FnZSA9IF9nZXRTdXNwZW5zZUluc3RhbmNlRi5tZXNzYWdlO1xuICAgICAgICBzdGFjayA9IF9nZXRTdXNwZW5zZUluc3RhbmNlRi5zdGFjaztcbiAgICAgIH1cblxuICAgICAgdmFyIGVycm9yO1xuXG4gICAgICBpZiAobWVzc2FnZSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvcHJvZC1lcnJvci1jb2Rlc1xuICAgICAgICBlcnJvciA9IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yID0gbmV3IEVycm9yKCdUaGUgc2VydmVyIGNvdWxkIG5vdCBmaW5pc2ggdGhpcyBTdXNwZW5zZSBib3VuZGFyeSwgbGlrZWx5ICcgKyAnZHVlIHRvIGFuIGVycm9yIGR1cmluZyBzZXJ2ZXIgcmVuZGVyaW5nLiBTd2l0Y2hlZCB0byAnICsgJ2NsaWVudCByZW5kZXJpbmcuJyk7XG4gICAgICB9XG5cbiAgICAgIHZhciBjYXB0dXJlZFZhbHVlID0gY3JlYXRlQ2FwdHVyZWRWYWx1ZShlcnJvciwgZGlnZXN0LCBzdGFjayk7XG4gICAgICByZXR1cm4gcmV0cnlTdXNwZW5zZUNvbXBvbmVudFdpdGhvdXRIeWRyYXRpbmcoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzLCBjYXB0dXJlZFZhbHVlKTtcbiAgICB9XG4gICAgLy8gYW55IGNvbnRleHQgaGFzIGNoYW5nZWQsIHdlIG5lZWQgdG8gdHJlYXQgaXMgYXMgaWYgdGhlIGlucHV0IG1pZ2h0IGhhdmUgY2hhbmdlZC5cblxuXG4gICAgdmFyIGhhc0NvbnRleHRDaGFuZ2VkID0gaW5jbHVkZXNTb21lTGFuZShyZW5kZXJMYW5lcywgY3VycmVudC5jaGlsZExhbmVzKTtcblxuICAgIGlmIChkaWRSZWNlaXZlVXBkYXRlIHx8IGhhc0NvbnRleHRDaGFuZ2VkKSB7XG4gICAgICAvLyBUaGlzIGJvdW5kYXJ5IGhhcyBjaGFuZ2VkIHNpbmNlIHRoZSBmaXJzdCByZW5kZXIuIFRoaXMgbWVhbnMgdGhhdCB3ZSBhcmUgbm93IHVuYWJsZSB0b1xuICAgICAgLy8gaHlkcmF0ZSBpdC4gV2UgbWlnaHQgc3RpbGwgYmUgYWJsZSB0byBoeWRyYXRlIGl0IHVzaW5nIGEgaGlnaGVyIHByaW9yaXR5IGxhbmUuXG4gICAgICB2YXIgcm9vdCA9IGdldFdvcmtJblByb2dyZXNzUm9vdCgpO1xuXG4gICAgICBpZiAocm9vdCAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgYXR0ZW1wdEh5ZHJhdGlvbkF0TGFuZSA9IGdldEJ1bXBlZExhbmVGb3JIeWRyYXRpb24ocm9vdCwgcmVuZGVyTGFuZXMpO1xuXG4gICAgICAgIGlmIChhdHRlbXB0SHlkcmF0aW9uQXRMYW5lICE9PSBOb0xhbmUgJiYgYXR0ZW1wdEh5ZHJhdGlvbkF0TGFuZSAhPT0gc3VzcGVuc2VTdGF0ZS5yZXRyeUxhbmUpIHtcbiAgICAgICAgICAvLyBJbnRlbnRpb25hbGx5IG11dGF0aW5nIHNpbmNlIHRoaXMgcmVuZGVyIHdpbGwgZ2V0IGludGVycnVwdGVkLiBUaGlzXG4gICAgICAgICAgLy8gaXMgb25lIG9mIHRoZSB2ZXJ5IHJhcmUgdGltZXMgd2hlcmUgd2UgbXV0YXRlIHRoZSBjdXJyZW50IHRyZWVcbiAgICAgICAgICAvLyBkdXJpbmcgdGhlIHJlbmRlciBwaGFzZS5cbiAgICAgICAgICBzdXNwZW5zZVN0YXRlLnJldHJ5TGFuZSA9IGF0dGVtcHRIeWRyYXRpb25BdExhbmU7IC8vIFRPRE86IElkZWFsbHkgdGhpcyB3b3VsZCBpbmhlcml0IHRoZSBldmVudCB0aW1lIG9mIHRoZSBjdXJyZW50IHJlbmRlclxuXG4gICAgICAgICAgdmFyIGV2ZW50VGltZSA9IE5vVGltZXN0YW1wO1xuICAgICAgICAgIGVucXVldWVDb25jdXJyZW50UmVuZGVyRm9yTGFuZShjdXJyZW50LCBhdHRlbXB0SHlkcmF0aW9uQXRMYW5lKTtcbiAgICAgICAgICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIocm9vdCwgY3VycmVudCwgYXR0ZW1wdEh5ZHJhdGlvbkF0TGFuZSwgZXZlbnRUaW1lKTtcbiAgICAgICAgfVxuICAgICAgfSAvLyBJZiB3ZSBoYXZlIHNjaGVkdWxlZCBoaWdoZXIgcHJpIHdvcmsgYWJvdmUsIHRoaXMgd2lsbCBwcm9iYWJseSBqdXN0IGFib3J0IHRoZSByZW5kZXJcbiAgICAgIC8vIHNpbmNlIHdlIG5vdyBoYXZlIGhpZ2hlciBwcmlvcml0eSB3b3JrLCBidXQgaW4gY2FzZSBpdCBkb2Vzbid0LCB3ZSBuZWVkIHRvIHByZXBhcmUgdG9cbiAgICAgIC8vIHJlbmRlciBzb21ldGhpbmcsIGlmIHdlIHRpbWUgb3V0LiBFdmVuIGlmIHRoYXQgcmVxdWlyZXMgdXMgdG8gZGVsZXRlIGV2ZXJ5dGhpbmcgYW5kXG4gICAgICAvLyBza2lwIGh5ZHJhdGlvbi5cbiAgICAgIC8vIERlbGF5IGhhdmluZyB0byBkbyB0aGlzIGFzIGxvbmcgYXMgdGhlIHN1c3BlbnNlIHRpbWVvdXQgYWxsb3dzIHVzLlxuXG5cbiAgICAgIHJlbmRlckRpZFN1c3BlbmREZWxheUlmUG9zc2libGUoKTtcblxuICAgICAgdmFyIF9jYXB0dXJlZFZhbHVlID0gY3JlYXRlQ2FwdHVyZWRWYWx1ZShuZXcgRXJyb3IoJ1RoaXMgU3VzcGVuc2UgYm91bmRhcnkgcmVjZWl2ZWQgYW4gdXBkYXRlIGJlZm9yZSBpdCBmaW5pc2hlZCAnICsgJ2h5ZHJhdGluZy4gVGhpcyBjYXVzZWQgdGhlIGJvdW5kYXJ5IHRvIHN3aXRjaCB0byBjbGllbnQgcmVuZGVyaW5nLiAnICsgJ1RoZSB1c3VhbCB3YXkgdG8gZml4IHRoaXMgaXMgdG8gd3JhcCB0aGUgb3JpZ2luYWwgdXBkYXRlICcgKyAnaW4gc3RhcnRUcmFuc2l0aW9uLicpKTtcblxuICAgICAgcmV0dXJuIHJldHJ5U3VzcGVuc2VDb21wb25lbnRXaXRob3V0SHlkcmF0aW5nKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcywgX2NhcHR1cmVkVmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoaXNTdXNwZW5zZUluc3RhbmNlUGVuZGluZyhzdXNwZW5zZUluc3RhbmNlKSkge1xuICAgICAgLy8gVGhpcyBjb21wb25lbnQgaXMgc3RpbGwgcGVuZGluZyBtb3JlIGRhdGEgZnJvbSB0aGUgc2VydmVyLCBzbyB3ZSBjYW4ndCBoeWRyYXRlIGl0c1xuICAgICAgLy8gY29udGVudC4gV2UgdHJlYXQgaXQgYXMgaWYgdGhpcyBjb21wb25lbnQgc3VzcGVuZGVkIGl0c2VsZi4gSXQgbWlnaHQgc2VlbSBhcyBpZlxuICAgICAgLy8gd2UgY291bGQganVzdCB0cnkgdG8gcmVuZGVyIGl0IGNsaWVudC1zaWRlIGluc3RlYWQuIEhvd2V2ZXIsIHRoaXMgd2lsbCBwZXJmb3JtIGFcbiAgICAgIC8vIGxvdCBvZiB1bm5lY2Vzc2FyeSB3b3JrIGFuZCBpcyB1bmxpa2VseSB0byBjb21wbGV0ZSBzaW5jZSBpdCBvZnRlbiB3aWxsIHN1c3BlbmRcbiAgICAgIC8vIG9uIG1pc3NpbmcgZGF0YSBhbnl3YXkuIEFkZGl0aW9uYWxseSwgdGhlIHNlcnZlciBtaWdodCBiZSBhYmxlIHRvIHJlbmRlciBtb3JlXG4gICAgICAvLyB0aGFuIHdlIGNhbiBvbiB0aGUgY2xpZW50IHlldC4gSW4gdGhhdCBjYXNlIHdlJ2QgZW5kIHVwIHdpdGggbW9yZSBmYWxsYmFjayBzdGF0ZXNcbiAgICAgIC8vIG9uIHRoZSBjbGllbnQgdGhhbiBpZiB3ZSBqdXN0IGxlYXZlIGl0IGFsb25lLiBJZiB0aGUgc2VydmVyIHRpbWVzIG91dCBvciBlcnJvcnNcbiAgICAgIC8vIHRoZXNlIHNob3VsZCB1cGRhdGUgdGhpcyBib3VuZGFyeSB0byB0aGUgcGVybWFuZW50IEZhbGxiYWNrIHN0YXRlIGluc3RlYWQuXG4gICAgICAvLyBNYXJrIGl0IGFzIGhhdmluZyBjYXB0dXJlZCAoaS5lLiBzdXNwZW5kZWQpLlxuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTsgLy8gTGVhdmUgdGhlIGNoaWxkIGluIHBsYWNlLiBJLmUuIHRoZSBkZWh5ZHJhdGVkIGZyYWdtZW50LlxuXG4gICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IGN1cnJlbnQuY2hpbGQ7IC8vIFJlZ2lzdGVyIGEgY2FsbGJhY2sgdG8gcmV0cnkgdGhpcyBib3VuZGFyeSBvbmNlIHRoZSBzZXJ2ZXIgaGFzIHNlbnQgdGhlIHJlc3VsdC5cblxuICAgICAgdmFyIHJldHJ5ID0gcmV0cnlEZWh5ZHJhdGVkU3VzcGVuc2VCb3VuZGFyeS5iaW5kKG51bGwsIGN1cnJlbnQpO1xuICAgICAgcmVnaXN0ZXJTdXNwZW5zZUluc3RhbmNlUmV0cnkoc3VzcGVuc2VJbnN0YW5jZSwgcmV0cnkpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoaXMgaXMgdGhlIGZpcnN0IGF0dGVtcHQuXG4gICAgICByZWVudGVySHlkcmF0aW9uU3RhdGVGcm9tRGVoeWRyYXRlZFN1c3BlbnNlSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIHN1c3BlbnNlSW5zdGFuY2UsIHN1c3BlbnNlU3RhdGUudHJlZUNvbnRleHQpO1xuICAgICAgdmFyIHByaW1hcnlDaGlsZHJlbiA9IG5leHRQcm9wcy5jaGlsZHJlbjtcbiAgICAgIHZhciBwcmltYXJ5Q2hpbGRGcmFnbWVudCA9IG1vdW50U3VzcGVuc2VQcmltYXJ5Q2hpbGRyZW4od29ya0luUHJvZ3Jlc3MsIHByaW1hcnlDaGlsZHJlbik7IC8vIE1hcmsgdGhlIGNoaWxkcmVuIGFzIGh5ZHJhdGluZy4gVGhpcyBpcyBhIGZhc3QgcGF0aCB0byBrbm93IHdoZXRoZXIgdGhpc1xuICAgICAgLy8gdHJlZSBpcyBwYXJ0IG9mIGEgaHlkcmF0aW5nIHRyZWUuIFRoaXMgaXMgdXNlZCB0byBkZXRlcm1pbmUgaWYgYSBjaGlsZFxuICAgICAgLy8gbm9kZSBoYXMgZnVsbHkgbW91bnRlZCB5ZXQsIGFuZCBmb3Igc2NoZWR1bGluZyBldmVudCByZXBsYXlpbmcuXG4gICAgICAvLyBDb25jZXB0dWFsbHkgdGhpcyBpcyBzaW1pbGFyIHRvIFBsYWNlbWVudCBpbiB0aGF0IGEgbmV3IHN1YnRyZWUgaXNcbiAgICAgIC8vIGluc2VydGVkIGludG8gdGhlIFJlYWN0IHRyZWUgaGVyZS4gSXQganVzdCBoYXBwZW5zIHRvIG5vdCBuZWVkIERPTVxuICAgICAgLy8gbXV0YXRpb25zIGJlY2F1c2UgaXQgYWxyZWFkeSBleGlzdHMuXG5cbiAgICAgIHByaW1hcnlDaGlsZEZyYWdtZW50LmZsYWdzIHw9IEh5ZHJhdGluZztcbiAgICAgIHJldHVybiBwcmltYXJ5Q2hpbGRGcmFnbWVudDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gVGhpcyBpcyB0aGUgc2Vjb25kIHJlbmRlciBwYXNzLiBXZSBhbHJlYWR5IGF0dGVtcHRlZCB0byBoeWRyYXRlZCwgYnV0XG4gICAgLy8gc29tZXRoaW5nIGVpdGhlciBzdXNwZW5kZWQgb3IgZXJyb3JlZC5cbiAgICBpZiAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiBGb3JjZUNsaWVudFJlbmRlcikge1xuICAgICAgLy8gU29tZXRoaW5nIGVycm9yZWQgZHVyaW5nIGh5ZHJhdGlvbi4gVHJ5IGFnYWluIHdpdGhvdXQgaHlkcmF0aW5nLlxuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgJj0gfkZvcmNlQ2xpZW50UmVuZGVyO1xuXG4gICAgICB2YXIgX2NhcHR1cmVkVmFsdWUyID0gY3JlYXRlQ2FwdHVyZWRWYWx1ZShuZXcgRXJyb3IoJ1RoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSBoeWRyYXRpbmcgdGhpcyBTdXNwZW5zZSBib3VuZGFyeS4gJyArICdTd2l0Y2hlZCB0byBjbGllbnQgcmVuZGVyaW5nLicpKTtcblxuICAgICAgcmV0dXJuIHJldHJ5U3VzcGVuc2VDb21wb25lbnRXaXRob3V0SHlkcmF0aW5nKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcywgX2NhcHR1cmVkVmFsdWUyKTtcbiAgICB9IGVsc2UgaWYgKHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgIT09IG51bGwpIHtcbiAgICAgIC8vIFNvbWV0aGluZyBzdXNwZW5kZWQgYW5kIHdlIHNob3VsZCBzdGlsbCBiZSBpbiBkZWh5ZHJhdGVkIG1vZGUuXG4gICAgICAvLyBMZWF2ZSB0aGUgZXhpc3RpbmcgY2hpbGQgaW4gcGxhY2UuXG4gICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IGN1cnJlbnQuY2hpbGQ7IC8vIFRoZSBkZWh5ZHJhdGVkIGNvbXBsZXRpb24gcGFzcyBleHBlY3RzIHRoaXMgZmxhZyB0byBiZSB0aGVyZVxuICAgICAgLy8gYnV0IHRoZSBub3JtYWwgc3VzcGVuc2UgcGFzcyBkb2Vzbid0LlxuXG4gICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBEaWRDYXB0dXJlO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFN1c3BlbmRlZCBidXQgd2Ugc2hvdWxkIG5vIGxvbmdlciBiZSBpbiBkZWh5ZHJhdGVkIG1vZGUuXG4gICAgICAvLyBUaGVyZWZvcmUgd2Ugbm93IGhhdmUgdG8gcmVuZGVyIHRoZSBmYWxsYmFjay5cbiAgICAgIHZhciBuZXh0UHJpbWFyeUNoaWxkcmVuID0gbmV4dFByb3BzLmNoaWxkcmVuO1xuICAgICAgdmFyIG5leHRGYWxsYmFja0NoaWxkcmVuID0gbmV4dFByb3BzLmZhbGxiYWNrO1xuICAgICAgdmFyIGZhbGxiYWNrQ2hpbGRGcmFnbWVudCA9IG1vdW50U3VzcGVuc2VGYWxsYmFja0FmdGVyUmV0cnlXaXRob3V0SHlkcmF0aW5nKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0UHJpbWFyeUNoaWxkcmVuLCBuZXh0RmFsbGJhY2tDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICAgICAgdmFyIF9wcmltYXJ5Q2hpbGRGcmFnbWVudDQgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICAgIF9wcmltYXJ5Q2hpbGRGcmFnbWVudDQubWVtb2l6ZWRTdGF0ZSA9IG1vdW50U3VzcGVuc2VPZmZzY3JlZW5TdGF0ZShyZW5kZXJMYW5lcyk7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gU1VTUEVOREVEX01BUktFUjtcbiAgICAgIHJldHVybiBmYWxsYmFja0NoaWxkRnJhZ21lbnQ7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHNjaGVkdWxlU3VzcGVuc2VXb3JrT25GaWJlcihmaWJlciwgcmVuZGVyTGFuZXMsIHByb3BhZ2F0aW9uUm9vdCkge1xuICBmaWJlci5sYW5lcyA9IG1lcmdlTGFuZXMoZmliZXIubGFuZXMsIHJlbmRlckxhbmVzKTtcbiAgdmFyIGFsdGVybmF0ZSA9IGZpYmVyLmFsdGVybmF0ZTtcblxuICBpZiAoYWx0ZXJuYXRlICE9PSBudWxsKSB7XG4gICAgYWx0ZXJuYXRlLmxhbmVzID0gbWVyZ2VMYW5lcyhhbHRlcm5hdGUubGFuZXMsIHJlbmRlckxhbmVzKTtcbiAgfVxuXG4gIHNjaGVkdWxlQ29udGV4dFdvcmtPblBhcmVudFBhdGgoZmliZXIucmV0dXJuLCByZW5kZXJMYW5lcywgcHJvcGFnYXRpb25Sb290KTtcbn1cblxuZnVuY3Rpb24gcHJvcGFnYXRlU3VzcGVuc2VDb250ZXh0Q2hhbmdlKHdvcmtJblByb2dyZXNzLCBmaXJzdENoaWxkLCByZW5kZXJMYW5lcykge1xuICAvLyBNYXJrIGFueSBTdXNwZW5zZSBib3VuZGFyaWVzIHdpdGggZmFsbGJhY2tzIGFzIGhhdmluZyB3b3JrIHRvIGRvLlxuICAvLyBJZiB0aGV5IHdlcmUgcHJldmlvdXNseSBmb3JjZWQgaW50byBmYWxsYmFja3MsIHRoZXkgbWF5IG5vdyBiZSBhYmxlXG4gIC8vIHRvIHVuYmxvY2suXG4gIHZhciBub2RlID0gZmlyc3RDaGlsZDtcblxuICB3aGlsZSAobm9kZSAhPT0gbnVsbCkge1xuICAgIGlmIChub2RlLnRhZyA9PT0gU3VzcGVuc2VDb21wb25lbnQpIHtcbiAgICAgIHZhciBzdGF0ZSA9IG5vZGUubWVtb2l6ZWRTdGF0ZTtcblxuICAgICAgaWYgKHN0YXRlICE9PSBudWxsKSB7XG4gICAgICAgIHNjaGVkdWxlU3VzcGVuc2VXb3JrT25GaWJlcihub2RlLCByZW5kZXJMYW5lcywgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobm9kZS50YWcgPT09IFN1c3BlbnNlTGlzdENvbXBvbmVudCkge1xuICAgICAgLy8gSWYgdGhlIHRhaWwgaXMgaGlkZGVuIHRoZXJlIG1pZ2h0IG5vdCBiZSBhbiBTdXNwZW5zZSBib3VuZGFyaWVzXG4gICAgICAvLyB0byBzY2hlZHVsZSB3b3JrIG9uLiBJbiB0aGlzIGNhc2Ugd2UgaGF2ZSB0byBzY2hlZHVsZSBpdCBvbiB0aGVcbiAgICAgIC8vIGxpc3QgaXRzZWxmLlxuICAgICAgLy8gV2UgZG9uJ3QgaGF2ZSB0byB0cmF2ZXJzZSB0byB0aGUgY2hpbGRyZW4gb2YgdGhlIGxpc3Qgc2luY2VcbiAgICAgIC8vIHRoZSBsaXN0IHdpbGwgcHJvcGFnYXRlIHRoZSBjaGFuZ2Ugd2hlbiBpdCByZXJlbmRlcnMuXG4gICAgICBzY2hlZHVsZVN1c3BlbnNlV29ya09uRmliZXIobm9kZSwgcmVuZGVyTGFuZXMsIHdvcmtJblByb2dyZXNzKTtcbiAgICB9IGVsc2UgaWYgKG5vZGUuY2hpbGQgIT09IG51bGwpIHtcbiAgICAgIG5vZGUuY2hpbGQucmV0dXJuID0gbm9kZTtcbiAgICAgIG5vZGUgPSBub2RlLmNoaWxkO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUgPT09IHdvcmtJblByb2dyZXNzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2hpbGUgKG5vZGUuc2libGluZyA9PT0gbnVsbCkge1xuICAgICAgaWYgKG5vZGUucmV0dXJuID09PSBudWxsIHx8IG5vZGUucmV0dXJuID09PSB3b3JrSW5Qcm9ncmVzcykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9XG5cbiAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47XG4gICAgbm9kZSA9IG5vZGUuc2libGluZztcbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5kTGFzdENvbnRlbnRSb3coZmlyc3RDaGlsZCkge1xuICAvLyBUaGlzIGlzIGdvaW5nIHRvIGZpbmQgdGhlIGxhc3Qgcm93IGFtb25nIHRoZXNlIGNoaWxkcmVuIHRoYXQgaXMgYWxyZWFkeVxuICAvLyBzaG93aW5nIGNvbnRlbnQgb24gdGhlIHNjcmVlbiwgYXMgb3Bwb3NlZCB0byBiZWluZyBpbiBmYWxsYmFjayBzdGF0ZSBvclxuICAvLyBuZXcuIElmIGEgcm93IGhhcyBtdWx0aXBsZSBTdXNwZW5zZSBib3VuZGFyaWVzLCBhbnkgb2YgdGhlbSBiZWluZyBpbiB0aGVcbiAgLy8gZmFsbGJhY2sgc3RhdGUsIGNvdW50cyBhcyB0aGUgd2hvbGUgcm93IGJlaW5nIGluIGEgZmFsbGJhY2sgc3RhdGUuXG4gIC8vIE5vdGUgdGhhdCB0aGUgXCJyb3dzXCIgd2lsbCBiZSB3b3JrSW5Qcm9ncmVzcywgYnV0IGFueSBuZXN0ZWQgY2hpbGRyZW5cbiAgLy8gd2lsbCBzdGlsbCBiZSBjdXJyZW50IHNpbmNlIHdlIGhhdmVuJ3QgcmVuZGVyZWQgdGhlbSB5ZXQuIFRoZSBtb3VudGVkXG4gIC8vIG9yZGVyIG1heSBub3QgYmUgdGhlIHNhbWUgYXMgdGhlIG5ldyBvcmRlci4gV2UgdXNlIHRoZSBuZXcgb3JkZXIuXG4gIHZhciByb3cgPSBmaXJzdENoaWxkO1xuICB2YXIgbGFzdENvbnRlbnRSb3cgPSBudWxsO1xuXG4gIHdoaWxlIChyb3cgIT09IG51bGwpIHtcbiAgICB2YXIgY3VycmVudFJvdyA9IHJvdy5hbHRlcm5hdGU7IC8vIE5ldyByb3dzIGNhbid0IGJlIGNvbnRlbnQgcm93cy5cblxuICAgIGlmIChjdXJyZW50Um93ICE9PSBudWxsICYmIGZpbmRGaXJzdFN1c3BlbmRlZChjdXJyZW50Um93KSA9PT0gbnVsbCkge1xuICAgICAgbGFzdENvbnRlbnRSb3cgPSByb3c7XG4gICAgfVxuXG4gICAgcm93ID0gcm93LnNpYmxpbmc7XG4gIH1cblxuICByZXR1cm4gbGFzdENvbnRlbnRSb3c7XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlUmV2ZWFsT3JkZXIocmV2ZWFsT3JkZXIpIHtcbiAge1xuICAgIGlmIChyZXZlYWxPcmRlciAhPT0gdW5kZWZpbmVkICYmIHJldmVhbE9yZGVyICE9PSAnZm9yd2FyZHMnICYmIHJldmVhbE9yZGVyICE9PSAnYmFja3dhcmRzJyAmJiByZXZlYWxPcmRlciAhPT0gJ3RvZ2V0aGVyJyAmJiAhZGlkV2FybkFib3V0UmV2ZWFsT3JkZXJbcmV2ZWFsT3JkZXJdKSB7XG4gICAgICBkaWRXYXJuQWJvdXRSZXZlYWxPcmRlcltyZXZlYWxPcmRlcl0gPSB0cnVlO1xuXG4gICAgICBpZiAodHlwZW9mIHJldmVhbE9yZGVyID09PSAnc3RyaW5nJykge1xuICAgICAgICBzd2l0Y2ggKHJldmVhbE9yZGVyLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICBjYXNlICd0b2dldGhlcic6XG4gICAgICAgICAgY2FzZSAnZm9yd2FyZHMnOlxuICAgICAgICAgIGNhc2UgJ2JhY2t3YXJkcyc6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGVycm9yKCdcIiVzXCIgaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIHJldmVhbE9yZGVyIG9uIDxTdXNwZW5zZUxpc3QgLz4uICcgKyAnVXNlIGxvd2VyY2FzZSBcIiVzXCIgaW5zdGVhZC4nLCByZXZlYWxPcmRlciwgcmV2ZWFsT3JkZXIudG9Mb3dlckNhc2UoKSk7XG5cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdmb3J3YXJkJzpcbiAgICAgICAgICBjYXNlICdiYWNrd2FyZCc6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGVycm9yKCdcIiVzXCIgaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIHJldmVhbE9yZGVyIG9uIDxTdXNwZW5zZUxpc3QgLz4uICcgKyAnUmVhY3QgdXNlcyB0aGUgLXMgc3VmZml4IGluIHRoZSBzcGVsbGluZy4gVXNlIFwiJXNzXCIgaW5zdGVhZC4nLCByZXZlYWxPcmRlciwgcmV2ZWFsT3JkZXIudG9Mb3dlckNhc2UoKSk7XG5cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgZXJyb3IoJ1wiJXNcIiBpcyBub3QgYSBzdXBwb3J0ZWQgcmV2ZWFsT3JkZXIgb24gPFN1c3BlbnNlTGlzdCAvPi4gJyArICdEaWQgeW91IG1lYW4gXCJ0b2dldGhlclwiLCBcImZvcndhcmRzXCIgb3IgXCJiYWNrd2FyZHNcIj8nLCByZXZlYWxPcmRlcik7XG5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlcnJvcignJXMgaXMgbm90IGEgc3VwcG9ydGVkIHZhbHVlIGZvciByZXZlYWxPcmRlciBvbiA8U3VzcGVuc2VMaXN0IC8+LiAnICsgJ0RpZCB5b3UgbWVhbiBcInRvZ2V0aGVyXCIsIFwiZm9yd2FyZHNcIiBvciBcImJhY2t3YXJkc1wiPycsIHJldmVhbE9yZGVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVUYWlsT3B0aW9ucyh0YWlsTW9kZSwgcmV2ZWFsT3JkZXIpIHtcbiAge1xuICAgIGlmICh0YWlsTW9kZSAhPT0gdW5kZWZpbmVkICYmICFkaWRXYXJuQWJvdXRUYWlsT3B0aW9uc1t0YWlsTW9kZV0pIHtcbiAgICAgIGlmICh0YWlsTW9kZSAhPT0gJ2NvbGxhcHNlZCcgJiYgdGFpbE1vZGUgIT09ICdoaWRkZW4nKSB7XG4gICAgICAgIGRpZFdhcm5BYm91dFRhaWxPcHRpb25zW3RhaWxNb2RlXSA9IHRydWU7XG5cbiAgICAgICAgZXJyb3IoJ1wiJXNcIiBpcyBub3QgYSBzdXBwb3J0ZWQgdmFsdWUgZm9yIHRhaWwgb24gPFN1c3BlbnNlTGlzdCAvPi4gJyArICdEaWQgeW91IG1lYW4gXCJjb2xsYXBzZWRcIiBvciBcImhpZGRlblwiPycsIHRhaWxNb2RlKTtcbiAgICAgIH0gZWxzZSBpZiAocmV2ZWFsT3JkZXIgIT09ICdmb3J3YXJkcycgJiYgcmV2ZWFsT3JkZXIgIT09ICdiYWNrd2FyZHMnKSB7XG4gICAgICAgIGRpZFdhcm5BYm91dFRhaWxPcHRpb25zW3RhaWxNb2RlXSA9IHRydWU7XG5cbiAgICAgICAgZXJyb3IoJzxTdXNwZW5zZUxpc3QgdGFpbD1cIiVzXCIgLz4gaXMgb25seSB2YWxpZCBpZiByZXZlYWxPcmRlciBpcyAnICsgJ1wiZm9yd2FyZHNcIiBvciBcImJhY2t3YXJkc1wiLiAnICsgJ0RpZCB5b3UgbWVhbiB0byBzcGVjaWZ5IHJldmVhbE9yZGVyPVwiZm9yd2FyZHNcIj8nLCB0YWlsTW9kZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlU3VzcGVuc2VMaXN0TmVzdGVkQ2hpbGQoY2hpbGRTbG90LCBpbmRleCkge1xuICB7XG4gICAgdmFyIGlzQW5BcnJheSA9IGlzQXJyYXkoY2hpbGRTbG90KTtcbiAgICB2YXIgaXNJdGVyYWJsZSA9ICFpc0FuQXJyYXkgJiYgdHlwZW9mIGdldEl0ZXJhdG9yRm4oY2hpbGRTbG90KSA9PT0gJ2Z1bmN0aW9uJztcblxuICAgIGlmIChpc0FuQXJyYXkgfHwgaXNJdGVyYWJsZSkge1xuICAgICAgdmFyIHR5cGUgPSBpc0FuQXJyYXkgPyAnYXJyYXknIDogJ2l0ZXJhYmxlJztcblxuICAgICAgZXJyb3IoJ0EgbmVzdGVkICVzIHdhcyBwYXNzZWQgdG8gcm93ICMlcyBpbiA8U3VzcGVuc2VMaXN0IC8+LiBXcmFwIGl0IGluICcgKyAnYW4gYWRkaXRpb25hbCBTdXNwZW5zZUxpc3QgdG8gY29uZmlndXJlIGl0cyByZXZlYWxPcmRlcjogJyArICc8U3VzcGVuc2VMaXN0IHJldmVhbE9yZGVyPS4uLj4gLi4uICcgKyAnPFN1c3BlbnNlTGlzdCByZXZlYWxPcmRlcj0uLi4+eyVzfTwvU3VzcGVuc2VMaXN0PiAuLi4gJyArICc8L1N1c3BlbnNlTGlzdD4nLCB0eXBlLCBpbmRleCwgdHlwZSk7XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTdXNwZW5zZUxpc3RDaGlsZHJlbihjaGlsZHJlbiwgcmV2ZWFsT3JkZXIpIHtcbiAge1xuICAgIGlmICgocmV2ZWFsT3JkZXIgPT09ICdmb3J3YXJkcycgfHwgcmV2ZWFsT3JkZXIgPT09ICdiYWNrd2FyZHMnKSAmJiBjaGlsZHJlbiAhPT0gdW5kZWZpbmVkICYmIGNoaWxkcmVuICE9PSBudWxsICYmIGNoaWxkcmVuICE9PSBmYWxzZSkge1xuICAgICAgaWYgKGlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZiAoIXZhbGlkYXRlU3VzcGVuc2VMaXN0TmVzdGVkQ2hpbGQoY2hpbGRyZW5baV0sIGkpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4oY2hpbGRyZW4pO1xuXG4gICAgICAgIGlmICh0eXBlb2YgaXRlcmF0b3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHZhciBjaGlsZHJlbkl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKGNoaWxkcmVuKTtcblxuICAgICAgICAgIGlmIChjaGlsZHJlbkl0ZXJhdG9yKSB7XG4gICAgICAgICAgICB2YXIgc3RlcCA9IGNoaWxkcmVuSXRlcmF0b3IubmV4dCgpO1xuICAgICAgICAgICAgdmFyIF9pID0gMDtcblxuICAgICAgICAgICAgZm9yICg7ICFzdGVwLmRvbmU7IHN0ZXAgPSBjaGlsZHJlbkl0ZXJhdG9yLm5leHQoKSkge1xuICAgICAgICAgICAgICBpZiAoIXZhbGlkYXRlU3VzcGVuc2VMaXN0TmVzdGVkQ2hpbGQoc3RlcC52YWx1ZSwgX2kpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgX2krKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXJyb3IoJ0Egc2luZ2xlIHJvdyB3YXMgcGFzc2VkIHRvIGEgPFN1c3BlbnNlTGlzdCByZXZlYWxPcmRlcj1cIiVzXCIgLz4uICcgKyAnVGhpcyBpcyBub3QgdXNlZnVsIHNpbmNlIGl0IG5lZWRzIG11bHRpcGxlIHJvd3MuICcgKyAnRGlkIHlvdSBtZWFuIHRvIHBhc3MgbXVsdGlwbGUgY2hpbGRyZW4gb3IgYW4gYXJyYXk/JywgcmV2ZWFsT3JkZXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGluaXRTdXNwZW5zZUxpc3RSZW5kZXJTdGF0ZSh3b3JrSW5Qcm9ncmVzcywgaXNCYWNrd2FyZHMsIHRhaWwsIGxhc3RDb250ZW50Um93LCB0YWlsTW9kZSkge1xuICB2YXIgcmVuZGVyU3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuXG4gIGlmIChyZW5kZXJTdGF0ZSA9PT0gbnVsbCkge1xuICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSB7XG4gICAgICBpc0JhY2t3YXJkczogaXNCYWNrd2FyZHMsXG4gICAgICByZW5kZXJpbmc6IG51bGwsXG4gICAgICByZW5kZXJpbmdTdGFydFRpbWU6IDAsXG4gICAgICBsYXN0OiBsYXN0Q29udGVudFJvdyxcbiAgICAgIHRhaWw6IHRhaWwsXG4gICAgICB0YWlsTW9kZTogdGFpbE1vZGVcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIC8vIFdlIGNhbiByZXVzZSB0aGUgZXhpc3Rpbmcgb2JqZWN0IGZyb20gcHJldmlvdXMgcmVuZGVycy5cbiAgICByZW5kZXJTdGF0ZS5pc0JhY2t3YXJkcyA9IGlzQmFja3dhcmRzO1xuICAgIHJlbmRlclN0YXRlLnJlbmRlcmluZyA9IG51bGw7XG4gICAgcmVuZGVyU3RhdGUucmVuZGVyaW5nU3RhcnRUaW1lID0gMDtcbiAgICByZW5kZXJTdGF0ZS5sYXN0ID0gbGFzdENvbnRlbnRSb3c7XG4gICAgcmVuZGVyU3RhdGUudGFpbCA9IHRhaWw7XG4gICAgcmVuZGVyU3RhdGUudGFpbE1vZGUgPSB0YWlsTW9kZTtcbiAgfVxufSAvLyBUaGlzIGNhbiBlbmQgdXAgcmVuZGVyaW5nIHRoaXMgY29tcG9uZW50IG11bHRpcGxlIHBhc3Nlcy5cbi8vIFRoZSBmaXJzdCBwYXNzIHNwbGl0cyB0aGUgY2hpbGRyZW4gZmliZXJzIGludG8gdHdvIHNldHMuIEEgaGVhZCBhbmQgdGFpbC5cbi8vIFdlIGZpcnN0IHJlbmRlciB0aGUgaGVhZC4gSWYgYW55dGhpbmcgaXMgaW4gZmFsbGJhY2sgc3RhdGUsIHdlIGRvIGFub3RoZXJcbi8vIHBhc3MgdGhyb3VnaCBiZWdpbldvcmsgdG8gcmVyZW5kZXIgYWxsIGNoaWxkcmVuIChpbmNsdWRpbmcgdGhlIHRhaWwpIHdpdGhcbi8vIHRoZSBmb3JjZSBzdXNwZW5kIGNvbnRleHQuIElmIHRoZSBmaXJzdCByZW5kZXIgZGlkbid0IGhhdmUgYW55dGhpbmcgaW5cbi8vIGluIGZhbGxiYWNrIHN0YXRlLiBUaGVuIHdlIHJlbmRlciBlYWNoIHJvdyBpbiB0aGUgdGFpbCBvbmUtYnktb25lLlxuLy8gVGhhdCBoYXBwZW5zIGluIHRoZSBjb21wbGV0ZVdvcmsgcGhhc2Ugd2l0aG91dCBnb2luZyBiYWNrIHRvIGJlZ2luV29yay5cblxuXG5mdW5jdGlvbiB1cGRhdGVTdXNwZW5zZUxpc3RDb21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHZhciBuZXh0UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gIHZhciByZXZlYWxPcmRlciA9IG5leHRQcm9wcy5yZXZlYWxPcmRlcjtcbiAgdmFyIHRhaWxNb2RlID0gbmV4dFByb3BzLnRhaWw7XG4gIHZhciBuZXdDaGlsZHJlbiA9IG5leHRQcm9wcy5jaGlsZHJlbjtcbiAgdmFsaWRhdGVSZXZlYWxPcmRlcihyZXZlYWxPcmRlcik7XG4gIHZhbGlkYXRlVGFpbE9wdGlvbnModGFpbE1vZGUsIHJldmVhbE9yZGVyKTtcbiAgdmFsaWRhdGVTdXNwZW5zZUxpc3RDaGlsZHJlbihuZXdDaGlsZHJlbiwgcmV2ZWFsT3JkZXIpO1xuICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV3Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgdmFyIHN1c3BlbnNlQ29udGV4dCA9IHN1c3BlbnNlU3RhY2tDdXJzb3IuY3VycmVudDtcbiAgdmFyIHNob3VsZEZvcmNlRmFsbGJhY2sgPSBoYXNTdXNwZW5zZUNvbnRleHQoc3VzcGVuc2VDb250ZXh0LCBGb3JjZVN1c3BlbnNlRmFsbGJhY2spO1xuXG4gIGlmIChzaG91bGRGb3JjZUZhbGxiYWNrKSB7XG4gICAgc3VzcGVuc2VDb250ZXh0ID0gc2V0U2hhbGxvd1N1c3BlbnNlQ29udGV4dChzdXNwZW5zZUNvbnRleHQsIEZvcmNlU3VzcGVuc2VGYWxsYmFjayk7XG4gICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgZGlkU3VzcGVuZEJlZm9yZSA9IGN1cnJlbnQgIT09IG51bGwgJiYgKGN1cnJlbnQuZmxhZ3MgJiBEaWRDYXB0dXJlKSAhPT0gTm9GbGFncztcblxuICAgIGlmIChkaWRTdXNwZW5kQmVmb3JlKSB7XG4gICAgICAvLyBJZiB3ZSBwcmV2aW91c2x5IGZvcmNlZCBhIGZhbGxiYWNrLCB3ZSBuZWVkIHRvIHNjaGVkdWxlIHdvcmtcbiAgICAgIC8vIG9uIGFueSBuZXN0ZWQgYm91bmRhcmllcyB0byBsZXQgdGhlbSBrbm93IHRvIHRyeSB0byByZW5kZXJcbiAgICAgIC8vIGFnYWluLiBUaGlzIGlzIHRoZSBzYW1lIGFzIGNvbnRleHQgdXBkYXRpbmcuXG4gICAgICBwcm9wYWdhdGVTdXNwZW5zZUNvbnRleHRDaGFuZ2Uod29ya0luUHJvZ3Jlc3MsIHdvcmtJblByb2dyZXNzLmNoaWxkLCByZW5kZXJMYW5lcyk7XG4gICAgfVxuXG4gICAgc3VzcGVuc2VDb250ZXh0ID0gc2V0RGVmYXVsdFNoYWxsb3dTdXNwZW5zZUNvbnRleHQoc3VzcGVuc2VDb250ZXh0KTtcbiAgfVxuXG4gIHB1c2hTdXNwZW5zZUNvbnRleHQod29ya0luUHJvZ3Jlc3MsIHN1c3BlbnNlQ29udGV4dCk7XG5cbiAgaWYgKCh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgQ29uY3VycmVudE1vZGUpID09PSBOb01vZGUpIHtcbiAgICAvLyBJbiBsZWdhY3kgbW9kZSwgU3VzcGVuc2VMaXN0IGRvZXNuJ3Qgd29yayBzbyB3ZSBqdXN0XG4gICAgLy8gdXNlIG1ha2UgaXQgYSBub29wIGJ5IHRyZWF0aW5nIGl0IGFzIHRoZSBkZWZhdWx0IHJldmVhbE9yZGVyLlxuICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICB9IGVsc2Uge1xuICAgIHN3aXRjaCAocmV2ZWFsT3JkZXIpIHtcbiAgICAgIGNhc2UgJ2ZvcndhcmRzJzpcbiAgICAgICAge1xuICAgICAgICAgIHZhciBsYXN0Q29udGVudFJvdyA9IGZpbmRMYXN0Q29udGVudFJvdyh3b3JrSW5Qcm9ncmVzcy5jaGlsZCk7XG4gICAgICAgICAgdmFyIHRhaWw7XG5cbiAgICAgICAgICBpZiAobGFzdENvbnRlbnRSb3cgPT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIFRoZSB3aG9sZSBsaXN0IGlzIHBhcnQgb2YgdGhlIHRhaWwuXG4gICAgICAgICAgICAvLyBUT0RPOiBXZSBjb3VsZCBmYXN0IHBhdGggYnkganVzdCByZW5kZXJpbmcgdGhlIHRhaWwgbm93LlxuICAgICAgICAgICAgdGFpbCA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBudWxsO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBEaXNjb25uZWN0IHRoZSB0YWlsIHJvd3MgYWZ0ZXIgdGhlIGNvbnRlbnQgcm93LlxuICAgICAgICAgICAgLy8gV2UncmUgZ29pbmcgdG8gcmVuZGVyIHRoZW0gc2VwYXJhdGVseSBsYXRlci5cbiAgICAgICAgICAgIHRhaWwgPSBsYXN0Q29udGVudFJvdy5zaWJsaW5nO1xuICAgICAgICAgICAgbGFzdENvbnRlbnRSb3cuc2libGluZyA9IG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaW5pdFN1c3BlbnNlTGlzdFJlbmRlclN0YXRlKHdvcmtJblByb2dyZXNzLCBmYWxzZSwgLy8gaXNCYWNrd2FyZHNcbiAgICAgICAgICB0YWlsLCBsYXN0Q29udGVudFJvdywgdGFpbE1vZGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgJ2JhY2t3YXJkcyc6XG4gICAgICAgIHtcbiAgICAgICAgICAvLyBXZSdyZSBnb2luZyB0byBmaW5kIHRoZSBmaXJzdCByb3cgdGhhdCBoYXMgZXhpc3RpbmcgY29udGVudC5cbiAgICAgICAgICAvLyBBdCB0aGUgc2FtZSB0aW1lIHdlJ3JlIGdvaW5nIHRvIHJldmVyc2UgdGhlIGxpc3Qgb2YgZXZlcnl0aGluZ1xuICAgICAgICAgIC8vIHdlIHBhc3MgaW4gdGhlIG1lYW50aW1lLiBUaGF0J3MgZ29pbmcgdG8gYmUgb3VyIHRhaWwgaW4gcmV2ZXJzZVxuICAgICAgICAgIC8vIG9yZGVyLlxuICAgICAgICAgIHZhciBfdGFpbCA9IG51bGw7XG4gICAgICAgICAgdmFyIHJvdyA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmNoaWxkID0gbnVsbDtcblxuICAgICAgICAgIHdoaWxlIChyb3cgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBjdXJyZW50Um93ID0gcm93LmFsdGVybmF0ZTsgLy8gTmV3IHJvd3MgY2FuJ3QgYmUgY29udGVudCByb3dzLlxuXG4gICAgICAgICAgICBpZiAoY3VycmVudFJvdyAhPT0gbnVsbCAmJiBmaW5kRmlyc3RTdXNwZW5kZWQoY3VycmVudFJvdykgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBtYWluIGNvbnRlbnQuXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmNoaWxkID0gcm93O1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIG5leHRSb3cgPSByb3cuc2libGluZztcbiAgICAgICAgICAgIHJvdy5zaWJsaW5nID0gX3RhaWw7XG4gICAgICAgICAgICBfdGFpbCA9IHJvdztcbiAgICAgICAgICAgIHJvdyA9IG5leHRSb3c7XG4gICAgICAgICAgfSAvLyBUT0RPOiBJZiB3b3JrSW5Qcm9ncmVzcy5jaGlsZCBpcyBudWxsLCB3ZSBjYW4gY29udGludWUgb24gdGhlIHRhaWwgaW1tZWRpYXRlbHkuXG5cblxuICAgICAgICAgIGluaXRTdXNwZW5zZUxpc3RSZW5kZXJTdGF0ZSh3b3JrSW5Qcm9ncmVzcywgdHJ1ZSwgLy8gaXNCYWNrd2FyZHNcbiAgICAgICAgICBfdGFpbCwgbnVsbCwgLy8gbGFzdFxuICAgICAgICAgIHRhaWxNb2RlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlICd0b2dldGhlcic6XG4gICAgICAgIHtcbiAgICAgICAgICBpbml0U3VzcGVuc2VMaXN0UmVuZGVyU3RhdGUod29ya0luUHJvZ3Jlc3MsIGZhbHNlLCAvLyBpc0JhY2t3YXJkc1xuICAgICAgICAgIG51bGwsIC8vIHRhaWxcbiAgICAgICAgICBudWxsLCAvLyBsYXN0XG4gICAgICAgICAgdW5kZWZpbmVkKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB7XG4gICAgICAgICAgLy8gVGhlIGRlZmF1bHQgcmV2ZWFsIG9yZGVyIGlzIHRoZSBzYW1lIGFzIG5vdCBoYXZpbmdcbiAgICAgICAgICAvLyBhIGJvdW5kYXJ5LlxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufVxuXG5mdW5jdGlvbiB1cGRhdGVQb3J0YWxDb21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHB1c2hIb3N0Q29udGFpbmVyKHdvcmtJblByb2dyZXNzLCB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyk7XG4gIHZhciBuZXh0Q2hpbGRyZW4gPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG5cbiAgaWYgKGN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAvLyBQb3J0YWxzIGFyZSBzcGVjaWFsIGJlY2F1c2Ugd2UgZG9uJ3QgYXBwZW5kIHRoZSBjaGlsZHJlbiBkdXJpbmcgbW91bnRcbiAgICAvLyBidXQgYXQgY29tbWl0LiBUaGVyZWZvcmUgd2UgbmVlZCB0byB0cmFjayBpbnNlcnRpb25zIHdoaWNoIHRoZSBub3JtYWxcbiAgICAvLyBmbG93IGRvZXNuJ3QgZG8gZHVyaW5nIG1vdW50LiBUaGlzIGRvZXNuJ3QgaGFwcGVuIGF0IHRoZSByb290IGJlY2F1c2VcbiAgICAvLyB0aGUgcm9vdCBhbHdheXMgc3RhcnRzIHdpdGggYSBcImN1cnJlbnRcIiB3aXRoIGEgbnVsbCBjaGlsZC5cbiAgICAvLyBUT0RPOiBDb25zaWRlciB1bmlmeWluZyB0aGlzIHdpdGggaG93IHRoZSByb290IHdvcmtzLlxuICAgIHdvcmtJblByb2dyZXNzLmNoaWxkID0gcmVjb25jaWxlQ2hpbGRGaWJlcnMod29ya0luUHJvZ3Jlc3MsIG51bGwsIG5leHRDaGlsZHJlbiwgcmVuZGVyTGFuZXMpO1xuICB9IGVsc2Uge1xuICAgIHJlY29uY2lsZUNoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgfVxuXG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbn1cblxudmFyIGhhc1dhcm5lZEFib3V0VXNpbmdOb1ZhbHVlUHJvcE9uQ29udGV4dFByb3ZpZGVyID0gZmFsc2U7XG5cbmZ1bmN0aW9uIHVwZGF0ZUNvbnRleHRQcm92aWRlcihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgdmFyIHByb3ZpZGVyVHlwZSA9IHdvcmtJblByb2dyZXNzLnR5cGU7XG4gIHZhciBjb250ZXh0ID0gcHJvdmlkZXJUeXBlLl9jb250ZXh0O1xuICB2YXIgbmV3UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gIHZhciBvbGRQcm9wcyA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkUHJvcHM7XG4gIHZhciBuZXdWYWx1ZSA9IG5ld1Byb3BzLnZhbHVlO1xuXG4gIHtcbiAgICBpZiAoISgndmFsdWUnIGluIG5ld1Byb3BzKSkge1xuICAgICAgaWYgKCFoYXNXYXJuZWRBYm91dFVzaW5nTm9WYWx1ZVByb3BPbkNvbnRleHRQcm92aWRlcikge1xuICAgICAgICBoYXNXYXJuZWRBYm91dFVzaW5nTm9WYWx1ZVByb3BPbkNvbnRleHRQcm92aWRlciA9IHRydWU7XG5cbiAgICAgICAgZXJyb3IoJ1RoZSBgdmFsdWVgIHByb3AgaXMgcmVxdWlyZWQgZm9yIHRoZSBgPENvbnRleHQuUHJvdmlkZXI+YC4gRGlkIHlvdSBtaXNzcGVsbCBpdCBvciBmb3JnZXQgdG8gcGFzcyBpdD8nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgcHJvdmlkZXJQcm9wVHlwZXMgPSB3b3JrSW5Qcm9ncmVzcy50eXBlLnByb3BUeXBlcztcblxuICAgIGlmIChwcm92aWRlclByb3BUeXBlcykge1xuICAgICAgY2hlY2tQcm9wVHlwZXMocHJvdmlkZXJQcm9wVHlwZXMsIG5ld1Byb3BzLCAncHJvcCcsICdDb250ZXh0LlByb3ZpZGVyJyk7XG4gICAgfVxuICB9XG5cbiAgcHVzaFByb3ZpZGVyKHdvcmtJblByb2dyZXNzLCBjb250ZXh0LCBuZXdWYWx1ZSk7XG5cbiAge1xuICAgIGlmIChvbGRQcm9wcyAhPT0gbnVsbCkge1xuICAgICAgdmFyIG9sZFZhbHVlID0gb2xkUHJvcHMudmFsdWU7XG5cbiAgICAgIGlmIChvYmplY3RJcyhvbGRWYWx1ZSwgbmV3VmFsdWUpKSB7XG4gICAgICAgIC8vIE5vIGNoYW5nZS4gQmFpbG91dCBlYXJseSBpZiBjaGlsZHJlbiBhcmUgdGhlIHNhbWUuXG4gICAgICAgIGlmIChvbGRQcm9wcy5jaGlsZHJlbiA9PT0gbmV3UHJvcHMuY2hpbGRyZW4gJiYgIWhhc0NvbnRleHRDaGFuZ2VkKCkpIHtcbiAgICAgICAgICByZXR1cm4gYmFpbG91dE9uQWxyZWFkeUZpbmlzaGVkV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBUaGUgY29udGV4dCB2YWx1ZSBjaGFuZ2VkLiBTZWFyY2ggZm9yIG1hdGNoaW5nIGNvbnN1bWVycyBhbmQgc2NoZWR1bGVcbiAgICAgICAgLy8gdGhlbSB0byB1cGRhdGUuXG4gICAgICAgIHByb3BhZ2F0ZUNvbnRleHRDaGFuZ2Uod29ya0luUHJvZ3Jlc3MsIGNvbnRleHQsIHJlbmRlckxhbmVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgbmV3Q2hpbGRyZW4gPSBuZXdQcm9wcy5jaGlsZHJlbjtcbiAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5ld0NoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbn1cblxudmFyIGhhc1dhcm5lZEFib3V0VXNpbmdDb250ZXh0QXNDb25zdW1lciA9IGZhbHNlO1xuXG5mdW5jdGlvbiB1cGRhdGVDb250ZXh0Q29uc3VtZXIoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIHZhciBjb250ZXh0ID0gd29ya0luUHJvZ3Jlc3MudHlwZTsgLy8gVGhlIGxvZ2ljIGJlbG93IGZvciBDb250ZXh0IGRpZmZlcnMgZGVwZW5kaW5nIG9uIFBST0Qgb3IgREVWIG1vZGUuIEluXG4gIC8vIERFViBtb2RlLCB3ZSBjcmVhdGUgYSBzZXBhcmF0ZSBvYmplY3QgZm9yIENvbnRleHQuQ29uc3VtZXIgdGhhdCBhY3RzXG4gIC8vIGxpa2UgYSBwcm94eSB0byBDb250ZXh0LiBUaGlzIHByb3h5IG9iamVjdCBhZGRzIHVubmVjZXNzYXJ5IGNvZGUgaW4gUFJPRFxuICAvLyBzbyB3ZSB1c2UgdGhlIG9sZCBiZWhhdmlvdXIgKENvbnRleHQuQ29uc3VtZXIgcmVmZXJlbmNlcyBDb250ZXh0KSB0b1xuICAvLyByZWR1Y2Ugc2l6ZSBhbmQgb3ZlcmhlYWQuIFRoZSBzZXBhcmF0ZSBvYmplY3QgcmVmZXJlbmNlcyBjb250ZXh0IHZpYVxuICAvLyBhIHByb3BlcnR5IGNhbGxlZCBcIl9jb250ZXh0XCIsIHdoaWNoIGFsc28gZ2l2ZXMgdXMgdGhlIGFiaWxpdHkgdG8gY2hlY2tcbiAgLy8gaW4gREVWIG1vZGUgaWYgdGhpcyBwcm9wZXJ0eSBleGlzdHMgb3Igbm90IGFuZCB3YXJuIGlmIGl0IGRvZXMgbm90LlxuXG4gIHtcbiAgICBpZiAoY29udGV4dC5fY29udGV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBUaGlzIG1heSBiZSBiZWNhdXNlIGl0J3MgYSBDb250ZXh0IChyYXRoZXIgdGhhbiBhIENvbnN1bWVyKS5cbiAgICAgIC8vIE9yIGl0IG1heSBiZSBiZWNhdXNlIGl0J3Mgb2xkZXIgUmVhY3Qgd2hlcmUgdGhleSdyZSB0aGUgc2FtZSB0aGluZy5cbiAgICAgIC8vIFdlIG9ubHkgd2FudCB0byB3YXJuIGlmIHdlJ3JlIHN1cmUgaXQncyBhIG5ldyBSZWFjdC5cbiAgICAgIGlmIChjb250ZXh0ICE9PSBjb250ZXh0LkNvbnN1bWVyKSB7XG4gICAgICAgIGlmICghaGFzV2FybmVkQWJvdXRVc2luZ0NvbnRleHRBc0NvbnN1bWVyKSB7XG4gICAgICAgICAgaGFzV2FybmVkQWJvdXRVc2luZ0NvbnRleHRBc0NvbnN1bWVyID0gdHJ1ZTtcblxuICAgICAgICAgIGVycm9yKCdSZW5kZXJpbmcgPENvbnRleHQ+IGRpcmVjdGx5IGlzIG5vdCBzdXBwb3J0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiAnICsgJ2EgZnV0dXJlIG1ham9yIHJlbGVhc2UuIERpZCB5b3UgbWVhbiB0byByZW5kZXIgPENvbnRleHQuQ29uc3VtZXI+IGluc3RlYWQ/Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29udGV4dCA9IGNvbnRleHQuX2NvbnRleHQ7XG4gICAgfVxuICB9XG5cbiAgdmFyIG5ld1Byb3BzID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzO1xuICB2YXIgcmVuZGVyID0gbmV3UHJvcHMuY2hpbGRyZW47XG5cbiAge1xuICAgIGlmICh0eXBlb2YgcmVuZGVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBlcnJvcignQSBjb250ZXh0IGNvbnN1bWVyIHdhcyByZW5kZXJlZCB3aXRoIG11bHRpcGxlIGNoaWxkcmVuLCBvciBhIGNoaWxkICcgKyBcInRoYXQgaXNuJ3QgYSBmdW5jdGlvbi4gQSBjb250ZXh0IGNvbnN1bWVyIGV4cGVjdHMgYSBzaW5nbGUgY2hpbGQgXCIgKyAndGhhdCBpcyBhIGZ1bmN0aW9uLiBJZiB5b3UgZGlkIHBhc3MgYSBmdW5jdGlvbiwgbWFrZSBzdXJlIHRoZXJlICcgKyAnaXMgbm8gdHJhaWxpbmcgb3IgbGVhZGluZyB3aGl0ZXNwYWNlIGFyb3VuZCBpdC4nKTtcbiAgICB9XG4gIH1cblxuICBwcmVwYXJlVG9SZWFkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICB2YXIgbmV3VmFsdWUgPSByZWFkQ29udGV4dChjb250ZXh0KTtcblxuICB7XG4gICAgbWFya0NvbXBvbmVudFJlbmRlclN0YXJ0ZWQod29ya0luUHJvZ3Jlc3MpO1xuICB9XG5cbiAgdmFyIG5ld0NoaWxkcmVuO1xuXG4gIHtcbiAgICBSZWFjdEN1cnJlbnRPd25lciQxLmN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzcztcbiAgICBzZXRJc1JlbmRlcmluZyh0cnVlKTtcbiAgICBuZXdDaGlsZHJlbiA9IHJlbmRlcihuZXdWYWx1ZSk7XG4gICAgc2V0SXNSZW5kZXJpbmcoZmFsc2UpO1xuICB9XG5cbiAge1xuICAgIG1hcmtDb21wb25lbnRSZW5kZXJTdG9wcGVkKCk7XG4gIH0gLy8gUmVhY3QgRGV2VG9vbHMgcmVhZHMgdGhpcyBmbGFnLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUGVyZm9ybWVkV29yaztcbiAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5ld0NoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbn1cblxuZnVuY3Rpb24gbWFya1dvcmtJblByb2dyZXNzUmVjZWl2ZWRVcGRhdGUoKSB7XG4gIGRpZFJlY2VpdmVVcGRhdGUgPSB0cnVlO1xufVxuXG5mdW5jdGlvbiByZXNldFN1c3BlbmRlZEN1cnJlbnRPbk1vdW50SW5MZWdhY3lNb2RlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKSB7XG4gIGlmICgod29ya0luUHJvZ3Jlc3MubW9kZSAmIENvbmN1cnJlbnRNb2RlKSA9PT0gTm9Nb2RlKSB7XG4gICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgIC8vIEEgbGF6eSBjb21wb25lbnQgb25seSBtb3VudHMgaWYgaXQgc3VzcGVuZGVkIGluc2lkZSBhIG5vbi1cbiAgICAgIC8vIGNvbmN1cnJlbnQgdHJlZSwgaW4gYW4gaW5jb25zaXN0ZW50IHN0YXRlLiBXZSB3YW50IHRvIHRyZWF0IGl0IGxpa2VcbiAgICAgIC8vIGEgbmV3IG1vdW50LCBldmVuIHRob3VnaCBhbiBlbXB0eSB2ZXJzaW9uIG9mIGl0IGFscmVhZHkgY29tbWl0dGVkLlxuICAgICAgLy8gRGlzY29ubmVjdCB0aGUgYWx0ZXJuYXRlIHBvaW50ZXJzLlxuICAgICAgY3VycmVudC5hbHRlcm5hdGUgPSBudWxsO1xuICAgICAgd29ya0luUHJvZ3Jlc3MuYWx0ZXJuYXRlID0gbnVsbDsgLy8gU2luY2UgdGhpcyBpcyBjb25jZXB0dWFsbHkgYSBuZXcgZmliZXIsIHNjaGVkdWxlIGEgUGxhY2VtZW50IGVmZmVjdFxuXG4gICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBQbGFjZW1lbnQ7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgLy8gUmV1c2UgcHJldmlvdXMgZGVwZW5kZW5jaWVzXG4gICAgd29ya0luUHJvZ3Jlc3MuZGVwZW5kZW5jaWVzID0gY3VycmVudC5kZXBlbmRlbmNpZXM7XG4gIH1cblxuICB7XG4gICAgLy8gRG9uJ3QgdXBkYXRlIFwiYmFzZVwiIHJlbmRlciB0aW1lcyBmb3IgYmFpbG91dHMuXG4gICAgc3RvcFByb2ZpbGVyVGltZXJJZlJ1bm5pbmcoKTtcbiAgfVxuXG4gIG1hcmtTa2lwcGVkVXBkYXRlTGFuZXMod29ya0luUHJvZ3Jlc3MubGFuZXMpOyAvLyBDaGVjayBpZiB0aGUgY2hpbGRyZW4gaGF2ZSBhbnkgcGVuZGluZyB3b3JrLlxuXG4gIGlmICghaW5jbHVkZXNTb21lTGFuZShyZW5kZXJMYW5lcywgd29ya0luUHJvZ3Jlc3MuY2hpbGRMYW5lcykpIHtcbiAgICAvLyBUaGUgY2hpbGRyZW4gZG9uJ3QgaGF2ZSBhbnkgd29yayBlaXRoZXIuIFdlIGNhbiBza2lwIHRoZW0uXG4gICAgLy8gVE9ETzogT25jZSB3ZSBhZGQgYmFjayByZXN1bWluZywgd2Ugc2hvdWxkIGNoZWNrIGlmIHRoZSBjaGlsZHJlbiBhcmVcbiAgICAvLyBhIHdvcmstaW4tcHJvZ3Jlc3Mgc2V0LiBJZiBzbywgd2UgbmVlZCB0byB0cmFuc2ZlciB0aGVpciBlZmZlY3RzLlxuICAgIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfSAvLyBUaGlzIGZpYmVyIGRvZXNuJ3QgaGF2ZSB3b3JrLCBidXQgaXRzIHN1YnRyZWUgZG9lcy4gQ2xvbmUgdGhlIGNoaWxkXG4gIC8vIGZpYmVycyBhbmQgY29udGludWUuXG5cblxuICBjbG9uZUNoaWxkRmliZXJzKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xufVxuXG5mdW5jdGlvbiByZW1vdW50RmliZXIoY3VycmVudCwgb2xkV29ya0luUHJvZ3Jlc3MsIG5ld1dvcmtJblByb2dyZXNzKSB7XG4gIHtcbiAgICB2YXIgcmV0dXJuRmliZXIgPSBvbGRXb3JrSW5Qcm9ncmVzcy5yZXR1cm47XG5cbiAgICBpZiAocmV0dXJuRmliZXIgPT09IG51bGwpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9wcm9kLWVycm9yLWNvZGVzXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBzd2FwIHRoZSByb290IGZpYmVyLicpO1xuICAgIH0gLy8gRGlzY29ubmVjdCBmcm9tIHRoZSBvbGQgY3VycmVudC5cbiAgICAvLyBJdCB3aWxsIGdldCBkZWxldGVkLlxuXG5cbiAgICBjdXJyZW50LmFsdGVybmF0ZSA9IG51bGw7XG4gICAgb2xkV29ya0luUHJvZ3Jlc3MuYWx0ZXJuYXRlID0gbnVsbDsgLy8gQ29ubmVjdCB0byB0aGUgbmV3IHRyZWUuXG5cbiAgICBuZXdXb3JrSW5Qcm9ncmVzcy5pbmRleCA9IG9sZFdvcmtJblByb2dyZXNzLmluZGV4O1xuICAgIG5ld1dvcmtJblByb2dyZXNzLnNpYmxpbmcgPSBvbGRXb3JrSW5Qcm9ncmVzcy5zaWJsaW5nO1xuICAgIG5ld1dvcmtJblByb2dyZXNzLnJldHVybiA9IG9sZFdvcmtJblByb2dyZXNzLnJldHVybjtcbiAgICBuZXdXb3JrSW5Qcm9ncmVzcy5yZWYgPSBvbGRXb3JrSW5Qcm9ncmVzcy5yZWY7IC8vIFJlcGxhY2UgdGhlIGNoaWxkL3NpYmxpbmcgcG9pbnRlcnMgYWJvdmUgaXQuXG5cbiAgICBpZiAob2xkV29ya0luUHJvZ3Jlc3MgPT09IHJldHVybkZpYmVyLmNoaWxkKSB7XG4gICAgICByZXR1cm5GaWJlci5jaGlsZCA9IG5ld1dvcmtJblByb2dyZXNzO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgcHJldlNpYmxpbmcgPSByZXR1cm5GaWJlci5jaGlsZDtcblxuICAgICAgaWYgKHByZXZTaWJsaW5nID09PSBudWxsKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9wcm9kLWVycm9yLWNvZGVzXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgcGFyZW50IHRvIGhhdmUgYSBjaGlsZC4nKTtcbiAgICAgIH1cblxuICAgICAgd2hpbGUgKHByZXZTaWJsaW5nLnNpYmxpbmcgIT09IG9sZFdvcmtJblByb2dyZXNzKSB7XG4gICAgICAgIHByZXZTaWJsaW5nID0gcHJldlNpYmxpbmcuc2libGluZztcblxuICAgICAgICBpZiAocHJldlNpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvcHJvZC1lcnJvci1jb2Rlc1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdG8gZmluZCB0aGUgcHJldmlvdXMgc2libGluZy4nKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBwcmV2U2libGluZy5zaWJsaW5nID0gbmV3V29ya0luUHJvZ3Jlc3M7XG4gICAgfSAvLyBEZWxldGUgdGhlIG9sZCBmaWJlciBhbmQgcGxhY2UgdGhlIG5ldyBvbmUuXG4gICAgLy8gU2luY2UgdGhlIG9sZCBmaWJlciBpcyBkaXNjb25uZWN0ZWQsIHdlIGhhdmUgdG8gc2NoZWR1bGUgaXQgbWFudWFsbHkuXG5cblxuICAgIHZhciBkZWxldGlvbnMgPSByZXR1cm5GaWJlci5kZWxldGlvbnM7XG5cbiAgICBpZiAoZGVsZXRpb25zID09PSBudWxsKSB7XG4gICAgICByZXR1cm5GaWJlci5kZWxldGlvbnMgPSBbY3VycmVudF07XG4gICAgICByZXR1cm5GaWJlci5mbGFncyB8PSBDaGlsZERlbGV0aW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGlvbnMucHVzaChjdXJyZW50KTtcbiAgICB9XG5cbiAgICBuZXdXb3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBQbGFjZW1lbnQ7IC8vIFJlc3RhcnQgd29yayBmcm9tIHRoZSBuZXcgZmliZXIuXG5cbiAgICByZXR1cm4gbmV3V29ya0luUHJvZ3Jlc3M7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2hlY2tTY2hlZHVsZWRVcGRhdGVPckNvbnRleHQoY3VycmVudCwgcmVuZGVyTGFuZXMpIHtcbiAgLy8gQmVmb3JlIHBlcmZvcm1pbmcgYW4gZWFybHkgYmFpbG91dCwgd2UgbXVzdCBjaGVjayBpZiB0aGVyZSBhcmUgcGVuZGluZ1xuICAvLyB1cGRhdGVzIG9yIGNvbnRleHQuXG4gIHZhciB1cGRhdGVMYW5lcyA9IGN1cnJlbnQubGFuZXM7XG5cbiAgaWYgKGluY2x1ZGVzU29tZUxhbmUodXBkYXRlTGFuZXMsIHJlbmRlckxhbmVzKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IC8vIE5vIHBlbmRpbmcgdXBkYXRlLCBidXQgYmVjYXVzZSBjb250ZXh0IGlzIHByb3BhZ2F0ZWQgbGF6aWx5LCB3ZSBuZWVkXG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBhdHRlbXB0RWFybHlCYWlsb3V0SWZOb1NjaGVkdWxlZFVwZGF0ZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgLy8gVGhpcyBmaWJlciBkb2VzIG5vdCBoYXZlIGFueSBwZW5kaW5nIHdvcmsuIEJhaWxvdXQgd2l0aG91dCBlbnRlcmluZ1xuICAvLyB0aGUgYmVnaW4gcGhhc2UuIFRoZXJlJ3Mgc3RpbGwgc29tZSBib29ra2VlcGluZyB3ZSB0aGF0IG5lZWRzIHRvIGJlIGRvbmVcbiAgLy8gaW4gdGhpcyBvcHRpbWl6ZWQgcGF0aCwgbW9zdGx5IHB1c2hpbmcgc3R1ZmYgb250byB0aGUgc3RhY2suXG4gIHN3aXRjaCAod29ya0luUHJvZ3Jlc3MudGFnKSB7XG4gICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgIHB1c2hIb3N0Um9vdENvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgdmFyIHJvb3QgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG5cbiAgICAgIHJlc2V0SHlkcmF0aW9uU3RhdGUoKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAgcHVzaEhvc3RDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIENvbXBvbmVudCA9IHdvcmtJblByb2dyZXNzLnR5cGU7XG5cbiAgICAgICAgaWYgKGlzQ29udGV4dFByb3ZpZGVyKENvbXBvbmVudCkpIHtcbiAgICAgICAgICBwdXNoQ29udGV4dFByb3ZpZGVyKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0UG9ydGFsOlxuICAgICAgcHVzaEhvc3RDb250YWluZXIod29ya0luUHJvZ3Jlc3MsIHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBDb250ZXh0UHJvdmlkZXI6XG4gICAgICB7XG4gICAgICAgIHZhciBuZXdWYWx1ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkUHJvcHMudmFsdWU7XG4gICAgICAgIHZhciBjb250ZXh0ID0gd29ya0luUHJvZ3Jlc3MudHlwZS5fY29udGV4dDtcbiAgICAgICAgcHVzaFByb3ZpZGVyKHdvcmtJblByb2dyZXNzLCBjb250ZXh0LCBuZXdWYWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgY2FzZSBQcm9maWxlcjpcbiAgICAgIHtcbiAgICAgICAgLy8gUHJvZmlsZXIgc2hvdWxkIG9ubHkgY2FsbCBvblJlbmRlciB3aGVuIG9uZSBvZiBpdHMgZGVzY2VuZGFudHMgYWN0dWFsbHkgcmVuZGVyZWQuXG4gICAgICAgIHZhciBoYXNDaGlsZFdvcmsgPSBpbmNsdWRlc1NvbWVMYW5lKHJlbmRlckxhbmVzLCB3b3JrSW5Qcm9ncmVzcy5jaGlsZExhbmVzKTtcblxuICAgICAgICBpZiAoaGFzQ2hpbGRXb3JrKSB7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gVXBkYXRlO1xuICAgICAgICB9XG5cbiAgICAgICAge1xuICAgICAgICAgIC8vIFJlc2V0IGVmZmVjdCBkdXJhdGlvbnMgZm9yIHRoZSBuZXh0IGV2ZW50dWFsIGVmZmVjdCBwaGFzZS5cbiAgICAgICAgICAvLyBUaGVzZSBhcmUgcmVzZXQgZHVyaW5nIHJlbmRlciB0byBhbGxvdyB0aGUgRGV2VG9vbHMgY29tbWl0IGhvb2sgYSBjaGFuY2UgdG8gcmVhZCB0aGVtLFxuICAgICAgICAgIHZhciBzdGF0ZU5vZGUgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgICAgICAgc3RhdGVOb2RlLmVmZmVjdER1cmF0aW9uID0gMDtcbiAgICAgICAgICBzdGF0ZU5vZGUucGFzc2l2ZUVmZmVjdER1cmF0aW9uID0gMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBicmVhaztcblxuICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciBzdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgICAgICAgaWYgKHN0YXRlICE9PSBudWxsKSB7XG4gICAgICAgICAgaWYgKHN0YXRlLmRlaHlkcmF0ZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHB1c2hTdXNwZW5zZUNvbnRleHQod29ya0luUHJvZ3Jlc3MsIHNldERlZmF1bHRTaGFsbG93U3VzcGVuc2VDb250ZXh0KHN1c3BlbnNlU3RhY2tDdXJzb3IuY3VycmVudCkpOyAvLyBXZSBrbm93IHRoYXQgdGhpcyBjb21wb25lbnQgd2lsbCBzdXNwZW5kIGFnYWluIGJlY2F1c2UgaWYgaXQgaGFzXG4gICAgICAgICAgICAvLyBiZWVuIHVuc3VzcGVuZGVkIGl0IGhhcyBjb21taXR0ZWQgYXMgYSByZXNvbHZlZCBTdXNwZW5zZSBjb21wb25lbnQuXG4gICAgICAgICAgICAvLyBJZiBpdCBuZWVkcyB0byBiZSByZXRyaWVkLCBpdCBzaG91bGQgaGF2ZSB3b3JrIHNjaGVkdWxlZCBvbiBpdC5cblxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTsgLy8gV2Ugc2hvdWxkIG5ldmVyIHJlbmRlciB0aGUgY2hpbGRyZW4gb2YgYSBkZWh5ZHJhdGVkIGJvdW5kYXJ5IHVudGlsIHdlXG4gICAgICAgICAgICAvLyB1cGdyYWRlIGl0LiBXZSByZXR1cm4gbnVsbCBpbnN0ZWFkIG9mIGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsuXG5cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH0gLy8gSWYgdGhpcyBib3VuZGFyeSBpcyBjdXJyZW50bHkgdGltZWQgb3V0LCB3ZSBuZWVkIHRvIGRlY2lkZVxuICAgICAgICAgIC8vIHdoZXRoZXIgdG8gcmV0cnkgdGhlIHByaW1hcnkgY2hpbGRyZW4sIG9yIHRvIHNraXAgb3ZlciBpdCBhbmRcbiAgICAgICAgICAvLyBnbyBzdHJhaWdodCB0byB0aGUgZmFsbGJhY2suIENoZWNrIHRoZSBwcmlvcml0eSBvZiB0aGUgcHJpbWFyeVxuICAgICAgICAgIC8vIGNoaWxkIGZyYWdtZW50LlxuXG5cbiAgICAgICAgICB2YXIgcHJpbWFyeUNoaWxkRnJhZ21lbnQgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICAgICAgICB2YXIgcHJpbWFyeUNoaWxkTGFuZXMgPSBwcmltYXJ5Q2hpbGRGcmFnbWVudC5jaGlsZExhbmVzO1xuXG4gICAgICAgICAgaWYgKGluY2x1ZGVzU29tZUxhbmUocmVuZGVyTGFuZXMsIHByaW1hcnlDaGlsZExhbmVzKSkge1xuICAgICAgICAgICAgLy8gVGhlIHByaW1hcnkgY2hpbGRyZW4gaGF2ZSBwZW5kaW5nIHdvcmsuIFVzZSB0aGUgbm9ybWFsIHBhdGhcbiAgICAgICAgICAgIC8vIHRvIGF0dGVtcHQgdG8gcmVuZGVyIHRoZSBwcmltYXJ5IGNoaWxkcmVuIGFnYWluLlxuICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZVN1c3BlbnNlQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFRoZSBwcmltYXJ5IGNoaWxkIGZyYWdtZW50IGRvZXMgbm90IGhhdmUgcGVuZGluZyB3b3JrIG1hcmtlZFxuICAgICAgICAgICAgLy8gb24gaXRcbiAgICAgICAgICAgIHB1c2hTdXNwZW5zZUNvbnRleHQod29ya0luUHJvZ3Jlc3MsIHNldERlZmF1bHRTaGFsbG93U3VzcGVuc2VDb250ZXh0KHN1c3BlbnNlU3RhY2tDdXJzb3IuY3VycmVudCkpOyAvLyBUaGUgcHJpbWFyeSBjaGlsZHJlbiBkbyBub3QgaGF2ZSBwZW5kaW5nIHdvcmsgd2l0aCBzdWZmaWNpZW50XG4gICAgICAgICAgICAvLyBwcmlvcml0eS4gQmFpbG91dC5cblxuICAgICAgICAgICAgdmFyIGNoaWxkID0gYmFpbG91dE9uQWxyZWFkeUZpbmlzaGVkV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuXG4gICAgICAgICAgICBpZiAoY2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgLy8gVGhlIGZhbGxiYWNrIGNoaWxkcmVuIGhhdmUgcGVuZGluZyB3b3JrLiBTa2lwIG92ZXIgdGhlXG4gICAgICAgICAgICAgIC8vIHByaW1hcnkgY2hpbGRyZW4gYW5kIHdvcmsgb24gdGhlIGZhbGxiYWNrLlxuICAgICAgICAgICAgICByZXR1cm4gY2hpbGQuc2libGluZztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIE5vdGU6IFdlIGNhbiByZXR1cm4gYG51bGxgIGhlcmUgYmVjYXVzZSB3ZSBhbHJlYWR5IGNoZWNrZWRcbiAgICAgICAgICAgICAgLy8gd2hldGhlciB0aGVyZSB3ZXJlIG5lc3RlZCBjb250ZXh0IGNvbnN1bWVycywgdmlhIHRoZSBjYWxsIHRvXG4gICAgICAgICAgICAgIC8vIGBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrYCBhYm92ZS5cbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHB1c2hTdXNwZW5zZUNvbnRleHQod29ya0luUHJvZ3Jlc3MsIHNldERlZmF1bHRTaGFsbG93U3VzcGVuc2VDb250ZXh0KHN1c3BlbnNlU3RhY2tDdXJzb3IuY3VycmVudCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIFN1c3BlbnNlTGlzdENvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIGRpZFN1c3BlbmRCZWZvcmUgPSAoY3VycmVudC5mbGFncyAmIERpZENhcHR1cmUpICE9PSBOb0ZsYWdzO1xuXG4gICAgICAgIHZhciBfaGFzQ2hpbGRXb3JrID0gaW5jbHVkZXNTb21lTGFuZShyZW5kZXJMYW5lcywgd29ya0luUHJvZ3Jlc3MuY2hpbGRMYW5lcyk7XG5cbiAgICAgICAgaWYgKGRpZFN1c3BlbmRCZWZvcmUpIHtcbiAgICAgICAgICBpZiAoX2hhc0NoaWxkV29yaykge1xuICAgICAgICAgICAgLy8gSWYgc29tZXRoaW5nIHdhcyBpbiBmYWxsYmFjayBzdGF0ZSBsYXN0IHRpbWUsIGFuZCB3ZSBoYXZlIGFsbCB0aGVcbiAgICAgICAgICAgIC8vIHNhbWUgY2hpbGRyZW4gdGhlbiB3ZSdyZSBzdGlsbCBpbiBwcm9ncmVzc2l2ZSBsb2FkaW5nIHN0YXRlLlxuICAgICAgICAgICAgLy8gU29tZXRoaW5nIG1pZ2h0IGdldCB1bmJsb2NrZWQgYnkgc3RhdGUgdXBkYXRlcyBvciByZXRyaWVzIGluIHRoZVxuICAgICAgICAgICAgLy8gdHJlZSB3aGljaCB3aWxsIGFmZmVjdCB0aGUgdGFpbC4gU28gd2UgbmVlZCB0byB1c2UgdGhlIG5vcm1hbFxuICAgICAgICAgICAgLy8gcGF0aCB0byBjb21wdXRlIHRoZSBjb3JyZWN0IHRhaWwuXG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlU3VzcGVuc2VMaXN0Q29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgICAgfSAvLyBJZiBub25lIG9mIHRoZSBjaGlsZHJlbiBoYWQgYW55IHdvcmssIHRoYXQgbWVhbnMgdGhhdCBub25lIG9mXG4gICAgICAgICAgLy8gdGhlbSBnb3QgcmV0cmllZCBzbyB0aGV5J2xsIHN0aWxsIGJlIGJsb2NrZWQgaW4gdGhlIHNhbWUgd2F5XG4gICAgICAgICAgLy8gYXMgYmVmb3JlLiBXZSBjYW4gZmFzdCBiYWlsIG91dC5cblxuXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTtcbiAgICAgICAgfSAvLyBJZiBub3RoaW5nIHN1c3BlbmRlZCBiZWZvcmUgYW5kIHdlJ3JlIHJlbmRlcmluZyB0aGUgc2FtZSBjaGlsZHJlbixcbiAgICAgICAgLy8gdGhlbiB0aGUgdGFpbCBkb2Vzbid0IG1hdHRlci4gQW55dGhpbmcgbmV3IHRoYXQgc3VzcGVuZHMgd2lsbCB3b3JrXG4gICAgICAgIC8vIGluIHRoZSBcInRvZ2V0aGVyXCIgbW9kZSwgc28gd2UgY2FuIGNvbnRpbnVlIGZyb20gdGhlIHN0YXRlIHdlIGhhZC5cblxuXG4gICAgICAgIHZhciByZW5kZXJTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgICAgICAgaWYgKHJlbmRlclN0YXRlICE9PSBudWxsKSB7XG4gICAgICAgICAgLy8gUmVzZXQgdG8gdGhlIFwidG9nZXRoZXJcIiBtb2RlIGluIGNhc2Ugd2UndmUgc3RhcnRlZCBhIGRpZmZlcmVudFxuICAgICAgICAgIC8vIHVwZGF0ZSBpbiB0aGUgcGFzdCBidXQgZGlkbid0IGNvbXBsZXRlIGl0LlxuICAgICAgICAgIHJlbmRlclN0YXRlLnJlbmRlcmluZyA9IG51bGw7XG4gICAgICAgICAgcmVuZGVyU3RhdGUudGFpbCA9IG51bGw7XG4gICAgICAgICAgcmVuZGVyU3RhdGUubGFzdEVmZmVjdCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBwdXNoU3VzcGVuc2VDb250ZXh0KHdvcmtJblByb2dyZXNzLCBzdXNwZW5zZVN0YWNrQ3Vyc29yLmN1cnJlbnQpO1xuXG4gICAgICAgIGlmIChfaGFzQ2hpbGRXb3JrKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gSWYgbm9uZSBvZiB0aGUgY2hpbGRyZW4gaGFkIGFueSB3b3JrLCB0aGF0IG1lYW5zIHRoYXQgbm9uZSBvZlxuICAgICAgICAgIC8vIHRoZW0gZ290IHJldHJpZWQgc28gdGhleSdsbCBzdGlsbCBiZSBibG9ja2VkIGluIHRoZSBzYW1lIHdheVxuICAgICAgICAgIC8vIGFzIGJlZm9yZS4gV2UgY2FuIGZhc3QgYmFpbCBvdXQuXG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIGNhc2UgT2Zmc2NyZWVuQ29tcG9uZW50OlxuICAgIGNhc2UgTGVnYWN5SGlkZGVuQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICAvLyBOZWVkIHRvIGNoZWNrIGlmIHRoZSB0cmVlIHN0aWxsIG5lZWRzIHRvIGJlIGRlZmVycmVkLiBUaGlzIGlzXG4gICAgICAgIC8vIGFsbW9zdCBpZGVudGljYWwgdG8gdGhlIGxvZ2ljIHVzZWQgaW4gdGhlIG5vcm1hbCB1cGRhdGUgcGF0aCxcbiAgICAgICAgLy8gc28gd2UnbGwganVzdCBlbnRlciB0aGF0LiBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHdlJ2xsIGJhaWwgb3V0XG4gICAgICAgIC8vIGF0IHRoZSBuZXh0IGxldmVsIGluc3RlYWQgb2YgdGhpcyBvbmUsIGJlY2F1c2UgdGhlIGNoaWxkIHByb3BzXG4gICAgICAgIC8vIGhhdmUgbm90IGNoYW5nZWQuIFdoaWNoIGlzIGZpbmUuXG4gICAgICAgIC8vIFRPRE86IFByb2JhYmx5IHNob3VsZCByZWZhY3RvciBgYmVnaW5Xb3JrYCB0byBzcGxpdCB0aGUgYmFpbG91dFxuICAgICAgICAvLyBwYXRoIGZyb20gdGhlIG5vcm1hbCBwYXRoLiBJJ20gdGVtcHRlZCB0byBkbyBhIGxhYmVsZWQgYnJlYWsgaGVyZVxuICAgICAgICAvLyBidXQgSSB3b24ndCA6KVxuICAgICAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IE5vTGFuZXM7XG4gICAgICAgIHJldHVybiB1cGRhdGVPZmZzY3JlZW5Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgICAgIH1cbiAgfVxuXG4gIHJldHVybiBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG59XG5cbmZ1bmN0aW9uIGJlZ2luV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAge1xuICAgIGlmICh3b3JrSW5Qcm9ncmVzcy5fZGVidWdOZWVkc1JlbW91bnQgJiYgY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgLy8gVGhpcyB3aWxsIHJlc3RhcnQgdGhlIGJlZ2luIHBoYXNlIHdpdGggYSBuZXcgZmliZXIuXG4gICAgICByZXR1cm4gcmVtb3VudEZpYmVyKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBjcmVhdGVGaWJlckZyb21UeXBlQW5kUHJvcHMod29ya0luUHJvZ3Jlc3MudHlwZSwgd29ya0luUHJvZ3Jlc3Mua2V5LCB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMsIHdvcmtJblByb2dyZXNzLl9kZWJ1Z093bmVyIHx8IG51bGwsIHdvcmtJblByb2dyZXNzLm1vZGUsIHdvcmtJblByb2dyZXNzLmxhbmVzKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICB2YXIgb2xkUHJvcHMgPSBjdXJyZW50Lm1lbW9pemVkUHJvcHM7XG4gICAgdmFyIG5ld1Byb3BzID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzO1xuXG4gICAgaWYgKG9sZFByb3BzICE9PSBuZXdQcm9wcyB8fCBoYXNDb250ZXh0Q2hhbmdlZCgpIHx8ICggLy8gRm9yY2UgYSByZS1yZW5kZXIgaWYgdGhlIGltcGxlbWVudGF0aW9uIGNoYW5nZWQgZHVlIHRvIGhvdCByZWxvYWQ6XG4gICAgIHdvcmtJblByb2dyZXNzLnR5cGUgIT09IGN1cnJlbnQudHlwZSApKSB7XG4gICAgICAvLyBJZiBwcm9wcyBvciBjb250ZXh0IGNoYW5nZWQsIG1hcmsgdGhlIGZpYmVyIGFzIGhhdmluZyBwZXJmb3JtZWQgd29yay5cbiAgICAgIC8vIFRoaXMgbWF5IGJlIHVuc2V0IGlmIHRoZSBwcm9wcyBhcmUgZGV0ZXJtaW5lZCB0byBiZSBlcXVhbCBsYXRlciAobWVtbykuXG4gICAgICBkaWRSZWNlaXZlVXBkYXRlID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTmVpdGhlciBwcm9wcyBub3IgbGVnYWN5IGNvbnRleHQgY2hhbmdlcy4gQ2hlY2sgaWYgdGhlcmUncyBhIHBlbmRpbmdcbiAgICAgIC8vIHVwZGF0ZSBvciBjb250ZXh0IGNoYW5nZS5cbiAgICAgIHZhciBoYXNTY2hlZHVsZWRVcGRhdGVPckNvbnRleHQgPSBjaGVja1NjaGVkdWxlZFVwZGF0ZU9yQ29udGV4dChjdXJyZW50LCByZW5kZXJMYW5lcyk7XG5cbiAgICAgIGlmICghaGFzU2NoZWR1bGVkVXBkYXRlT3JDb250ZXh0ICYmIC8vIElmIHRoaXMgaXMgdGhlIHNlY29uZCBwYXNzIG9mIGFuIGVycm9yIG9yIHN1c3BlbnNlIGJvdW5kYXJ5LCB0aGVyZVxuICAgICAgLy8gbWF5IG5vdCBiZSB3b3JrIHNjaGVkdWxlZCBvbiBgY3VycmVudGAsIHNvIHdlIGNoZWNrIGZvciB0aGlzIGZsYWcuXG4gICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiBEaWRDYXB0dXJlKSA9PT0gTm9GbGFncykge1xuICAgICAgICAvLyBObyBwZW5kaW5nIHVwZGF0ZXMgb3IgY29udGV4dC4gQmFpbCBvdXQgbm93LlxuICAgICAgICBkaWRSZWNlaXZlVXBkYXRlID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBhdHRlbXB0RWFybHlCYWlsb3V0SWZOb1NjaGVkdWxlZFVwZGF0ZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICAgICAgfVxuXG4gICAgICBpZiAoKGN1cnJlbnQuZmxhZ3MgJiBGb3JjZVVwZGF0ZUZvckxlZ2FjeVN1c3BlbnNlKSAhPT0gTm9GbGFncykge1xuICAgICAgICAvLyBUaGlzIGlzIGEgc3BlY2lhbCBjYXNlIHRoYXQgb25seSBleGlzdHMgZm9yIGxlZ2FjeSBtb2RlLlxuICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMTkyMTYuXG4gICAgICAgIGRpZFJlY2VpdmVVcGRhdGUgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQW4gdXBkYXRlIHdhcyBzY2hlZHVsZWQgb24gdGhpcyBmaWJlciwgYnV0IHRoZXJlIGFyZSBubyBuZXcgcHJvcHNcbiAgICAgICAgLy8gbm9yIGxlZ2FjeSBjb250ZXh0LiBTZXQgdGhpcyB0byBmYWxzZS4gSWYgYW4gdXBkYXRlIHF1ZXVlIG9yIGNvbnRleHRcbiAgICAgICAgLy8gY29uc3VtZXIgcHJvZHVjZXMgYSBjaGFuZ2VkIHZhbHVlLCBpdCB3aWxsIHNldCB0aGlzIHRvIHRydWUuIE90aGVyd2lzZSxcbiAgICAgICAgLy8gdGhlIGNvbXBvbmVudCB3aWxsIGFzc3VtZSB0aGUgY2hpbGRyZW4gaGF2ZSBub3QgY2hhbmdlZCBhbmQgYmFpbCBvdXQuXG4gICAgICAgIGRpZFJlY2VpdmVVcGRhdGUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZGlkUmVjZWl2ZVVwZGF0ZSA9IGZhbHNlO1xuXG4gICAgaWYgKGdldElzSHlkcmF0aW5nKCkgJiYgaXNGb3JrZWRDaGlsZCh3b3JrSW5Qcm9ncmVzcykpIHtcbiAgICAgIC8vIENoZWNrIGlmIHRoaXMgY2hpbGQgYmVsb25ncyB0byBhIGxpc3Qgb2YgbXVsaXBsZSBjaGlsZHJlbiBpblxuICAgICAgLy8gaXRzIHBhcmVudC5cbiAgICAgIC8vXG4gICAgICAvLyBJbiBhIHRydWUgbXVsdGktdGhyZWFkZWQgaW1wbGVtZW50YXRpb24sIHdlIHdvdWxkIHJlbmRlciBjaGlsZHJlbiBvblxuICAgICAgLy8gcGFyYWxsZWwgdGhyZWFkcy4gVGhpcyB3b3VsZCByZXByZXNlbnQgdGhlIGJlZ2lubmluZyBvZiBhIG5ldyByZW5kZXJcbiAgICAgIC8vIHRocmVhZCBmb3IgdGhpcyBzdWJ0cmVlLlxuICAgICAgLy9cbiAgICAgIC8vIFdlIG9ubHkgdXNlIHRoaXMgZm9yIGlkIGdlbmVyYXRpb24gZHVyaW5nIGh5ZHJhdGlvbiwgd2hpY2ggaXMgd2h5IHRoZVxuICAgICAgLy8gbG9naWMgaXMgbG9jYXRlZCBpbiB0aGlzIHNwZWNpYWwgYnJhbmNoLlxuICAgICAgdmFyIHNsb3RJbmRleCA9IHdvcmtJblByb2dyZXNzLmluZGV4O1xuICAgICAgdmFyIG51bWJlck9mRm9ya3MgPSBnZXRGb3Jrc0F0TGV2ZWwoKTtcbiAgICAgIHB1c2hUcmVlSWQod29ya0luUHJvZ3Jlc3MsIG51bWJlck9mRm9ya3MsIHNsb3RJbmRleCk7XG4gICAgfVxuICB9IC8vIEJlZm9yZSBlbnRlcmluZyB0aGUgYmVnaW4gcGhhc2UsIGNsZWFyIHBlbmRpbmcgdXBkYXRlIHByaW9yaXR5LlxuICAvLyBUT0RPOiBUaGlzIGFzc3VtZXMgdGhhdCB3ZSdyZSBhYm91dCB0byBldmFsdWF0ZSB0aGUgY29tcG9uZW50IGFuZCBwcm9jZXNzXG4gIC8vIHRoZSB1cGRhdGUgcXVldWUuIEhvd2V2ZXIsIHRoZXJlJ3MgYW4gZXhjZXB0aW9uOiBTaW1wbGVNZW1vQ29tcG9uZW50XG4gIC8vIHNvbWV0aW1lcyBiYWlscyBvdXQgbGF0ZXIgaW4gdGhlIGJlZ2luIHBoYXNlLiBUaGlzIGluZGljYXRlcyB0aGF0IHdlIHNob3VsZFxuICAvLyBtb3ZlIHRoaXMgYXNzaWdubWVudCBvdXQgb2YgdGhlIGNvbW1vbiBwYXRoIGFuZCBpbnRvIGVhY2ggYnJhbmNoLlxuXG5cbiAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBOb0xhbmVzO1xuXG4gIHN3aXRjaCAod29ya0luUHJvZ3Jlc3MudGFnKSB7XG4gICAgY2FzZSBJbmRldGVybWluYXRlQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICByZXR1cm4gbW91bnRJbmRldGVybWluYXRlQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCB3b3JrSW5Qcm9ncmVzcy50eXBlLCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG5cbiAgICBjYXNlIExhenlDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciBlbGVtZW50VHlwZSA9IHdvcmtJblByb2dyZXNzLmVsZW1lbnRUeXBlO1xuICAgICAgICByZXR1cm4gbW91bnRMYXp5Q29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBlbGVtZW50VHlwZSwgcmVuZGVyTGFuZXMpO1xuICAgICAgfVxuXG4gICAgY2FzZSBGdW5jdGlvbkNvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIENvbXBvbmVudCA9IHdvcmtJblByb2dyZXNzLnR5cGU7XG4gICAgICAgIHZhciB1bnJlc29sdmVkUHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gICAgICAgIHZhciByZXNvbHZlZFByb3BzID0gd29ya0luUHJvZ3Jlc3MuZWxlbWVudFR5cGUgPT09IENvbXBvbmVudCA/IHVucmVzb2x2ZWRQcm9wcyA6IHJlc29sdmVEZWZhdWx0UHJvcHMoQ29tcG9uZW50LCB1bnJlc29sdmVkUHJvcHMpO1xuICAgICAgICByZXR1cm4gdXBkYXRlRnVuY3Rpb25Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgcmVzb2x2ZWRQcm9wcywgcmVuZGVyTGFuZXMpO1xuICAgICAgfVxuXG4gICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIF9Db21wb25lbnQgPSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuICAgICAgICB2YXIgX3VucmVzb2x2ZWRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcblxuICAgICAgICB2YXIgX3Jlc29sdmVkUHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSA9PT0gX0NvbXBvbmVudCA/IF91bnJlc29sdmVkUHJvcHMgOiByZXNvbHZlRGVmYXVsdFByb3BzKF9Db21wb25lbnQsIF91bnJlc29sdmVkUHJvcHMpO1xuXG4gICAgICAgIHJldHVybiB1cGRhdGVDbGFzc0NvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgX0NvbXBvbmVudCwgX3Jlc29sdmVkUHJvcHMsIHJlbmRlckxhbmVzKTtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICByZXR1cm4gdXBkYXRlSG9zdFJvb3QoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcblxuICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgIHJldHVybiB1cGRhdGVIb3N0Q29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG5cbiAgICBjYXNlIEhvc3RUZXh0OlxuICAgICAgcmV0dXJuIHVwZGF0ZUhvc3RUZXh0KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcblxuICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICByZXR1cm4gdXBkYXRlU3VzcGVuc2VDb21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcblxuICAgIGNhc2UgSG9zdFBvcnRhbDpcbiAgICAgIHJldHVybiB1cGRhdGVQb3J0YWxDb21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcblxuICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgIHtcbiAgICAgICAgdmFyIHR5cGUgPSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuICAgICAgICB2YXIgX3VucmVzb2x2ZWRQcm9wczIgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG5cbiAgICAgICAgdmFyIF9yZXNvbHZlZFByb3BzMiA9IHdvcmtJblByb2dyZXNzLmVsZW1lbnRUeXBlID09PSB0eXBlID8gX3VucmVzb2x2ZWRQcm9wczIgOiByZXNvbHZlRGVmYXVsdFByb3BzKHR5cGUsIF91bnJlc29sdmVkUHJvcHMyKTtcblxuICAgICAgICByZXR1cm4gdXBkYXRlRm9yd2FyZFJlZihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgdHlwZSwgX3Jlc29sdmVkUHJvcHMyLCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG5cbiAgICBjYXNlIEZyYWdtZW50OlxuICAgICAgcmV0dXJuIHVwZGF0ZUZyYWdtZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG5cbiAgICBjYXNlIE1vZGU6XG4gICAgICByZXR1cm4gdXBkYXRlTW9kZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuXG4gICAgY2FzZSBQcm9maWxlcjpcbiAgICAgIHJldHVybiB1cGRhdGVQcm9maWxlcihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuXG4gICAgY2FzZSBDb250ZXh0UHJvdmlkZXI6XG4gICAgICByZXR1cm4gdXBkYXRlQ29udGV4dFByb3ZpZGVyKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG5cbiAgICBjYXNlIENvbnRleHRDb25zdW1lcjpcbiAgICAgIHJldHVybiB1cGRhdGVDb250ZXh0Q29uc3VtZXIoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcblxuICAgIGNhc2UgTWVtb0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIF90eXBlMiA9IHdvcmtJblByb2dyZXNzLnR5cGU7XG4gICAgICAgIHZhciBfdW5yZXNvbHZlZFByb3BzMyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wczsgLy8gUmVzb2x2ZSBvdXRlciBwcm9wcyBmaXJzdCwgdGhlbiByZXNvbHZlIGlubmVyIHByb3BzLlxuXG4gICAgICAgIHZhciBfcmVzb2x2ZWRQcm9wczMgPSByZXNvbHZlRGVmYXVsdFByb3BzKF90eXBlMiwgX3VucmVzb2x2ZWRQcm9wczMpO1xuXG4gICAgICAgIHtcbiAgICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3MudHlwZSAhPT0gd29ya0luUHJvZ3Jlc3MuZWxlbWVudFR5cGUpIHtcbiAgICAgICAgICAgIHZhciBvdXRlclByb3BUeXBlcyA9IF90eXBlMi5wcm9wVHlwZXM7XG5cbiAgICAgICAgICAgIGlmIChvdXRlclByb3BUeXBlcykge1xuICAgICAgICAgICAgICBjaGVja1Byb3BUeXBlcyhvdXRlclByb3BUeXBlcywgX3Jlc29sdmVkUHJvcHMzLCAvLyBSZXNvbHZlZCBmb3Igb3V0ZXIgb25seVxuICAgICAgICAgICAgICAncHJvcCcsIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShfdHlwZTIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBfcmVzb2x2ZWRQcm9wczMgPSByZXNvbHZlRGVmYXVsdFByb3BzKF90eXBlMi50eXBlLCBfcmVzb2x2ZWRQcm9wczMpO1xuICAgICAgICByZXR1cm4gdXBkYXRlTWVtb0NvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgX3R5cGUyLCBfcmVzb2x2ZWRQcm9wczMsIHJlbmRlckxhbmVzKTtcbiAgICAgIH1cblxuICAgIGNhc2UgU2ltcGxlTWVtb0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVNpbXBsZU1lbW9Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHdvcmtJblByb2dyZXNzLnR5cGUsIHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcywgcmVuZGVyTGFuZXMpO1xuICAgICAgfVxuXG4gICAgY2FzZSBJbmNvbXBsZXRlQ2xhc3NDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciBfQ29tcG9uZW50MiA9IHdvcmtJblByb2dyZXNzLnR5cGU7XG4gICAgICAgIHZhciBfdW5yZXNvbHZlZFByb3BzNCA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcblxuICAgICAgICB2YXIgX3Jlc29sdmVkUHJvcHM0ID0gd29ya0luUHJvZ3Jlc3MuZWxlbWVudFR5cGUgPT09IF9Db21wb25lbnQyID8gX3VucmVzb2x2ZWRQcm9wczQgOiByZXNvbHZlRGVmYXVsdFByb3BzKF9Db21wb25lbnQyLCBfdW5yZXNvbHZlZFByb3BzNCk7XG5cbiAgICAgICAgcmV0dXJuIG1vdW50SW5jb21wbGV0ZUNsYXNzQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBfQ29tcG9uZW50MiwgX3Jlc29sdmVkUHJvcHM0LCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG5cbiAgICBjYXNlIFN1c3BlbnNlTGlzdENvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVN1c3BlbnNlTGlzdENvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICAgICAgfVxuXG4gICAgY2FzZSBTY29wZUNvbXBvbmVudDpcbiAgICAgIHtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGNhc2UgT2Zmc2NyZWVuQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICByZXR1cm4gdXBkYXRlT2Zmc2NyZWVuQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIHVuaXQgb2Ygd29yayB0YWcgKFwiICsgd29ya0luUHJvZ3Jlc3MudGFnICsgXCIpLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gXCIgKyAnUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xufVxuXG5mdW5jdGlvbiBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzKSB7XG4gIC8vIFRhZyB0aGUgZmliZXIgd2l0aCBhbiB1cGRhdGUgZWZmZWN0LiBUaGlzIHR1cm5zIGEgUGxhY2VtZW50IGludG9cbiAgLy8gYSBQbGFjZW1lbnRBbmRVcGRhdGUuXG4gIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFVwZGF0ZTtcbn1cblxuZnVuY3Rpb24gbWFya1JlZiQxKHdvcmtJblByb2dyZXNzKSB7XG4gIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IFJlZjtcblxuICB7XG4gICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gUmVmU3RhdGljO1xuICB9XG59XG5cbnZhciBhcHBlbmRBbGxDaGlsZHJlbjtcbnZhciB1cGRhdGVIb3N0Q29udGFpbmVyO1xudmFyIHVwZGF0ZUhvc3RDb21wb25lbnQkMTtcbnZhciB1cGRhdGVIb3N0VGV4dCQxO1xuXG57XG4gIC8vIE11dGF0aW9uIG1vZGVcbiAgYXBwZW5kQWxsQ2hpbGRyZW4gPSBmdW5jdGlvbiAocGFyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmVlZHNWaXNpYmlsaXR5VG9nZ2xlLCBpc0hpZGRlbikge1xuICAgIC8vIFdlIG9ubHkgaGF2ZSB0aGUgdG9wIEZpYmVyIHRoYXQgd2FzIGNyZWF0ZWQgYnV0IHdlIG5lZWQgcmVjdXJzZSBkb3duIGl0c1xuICAgIC8vIGNoaWxkcmVuIHRvIGZpbmQgYWxsIHRoZSB0ZXJtaW5hbCBub2Rlcy5cbiAgICB2YXIgbm9kZSA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuXG4gICAgd2hpbGUgKG5vZGUgIT09IG51bGwpIHtcbiAgICAgIGlmIChub2RlLnRhZyA9PT0gSG9zdENvbXBvbmVudCB8fCBub2RlLnRhZyA9PT0gSG9zdFRleHQpIHtcbiAgICAgICAgYXBwZW5kSW5pdGlhbENoaWxkKHBhcmVudCwgbm9kZS5zdGF0ZU5vZGUpO1xuICAgICAgfSBlbHNlIGlmIChub2RlLnRhZyA9PT0gSG9zdFBvcnRhbCkgOyBlbHNlIGlmIChub2RlLmNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgIG5vZGUuY2hpbGQucmV0dXJuID0gbm9kZTtcbiAgICAgICAgbm9kZSA9IG5vZGUuY2hpbGQ7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAobm9kZSA9PT0gd29ya0luUHJvZ3Jlc3MpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB3aGlsZSAobm9kZS5zaWJsaW5nID09PSBudWxsKSB7XG4gICAgICAgIGlmIChub2RlLnJldHVybiA9PT0gbnVsbCB8fCBub2RlLnJldHVybiA9PT0gd29ya0luUHJvZ3Jlc3MpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBub2RlID0gbm9kZS5yZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5vZGUuc2libGluZy5yZXR1cm4gPSBub2RlLnJldHVybjtcbiAgICAgIG5vZGUgPSBub2RlLnNpYmxpbmc7XG4gICAgfVxuICB9O1xuXG4gIHVwZGF0ZUhvc3RDb250YWluZXIgPSBmdW5jdGlvbiAoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpIHsvLyBOb29wXG4gIH07XG5cbiAgdXBkYXRlSG9zdENvbXBvbmVudCQxID0gZnVuY3Rpb24gKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCB0eXBlLCBuZXdQcm9wcywgcm9vdENvbnRhaW5lckluc3RhbmNlKSB7XG4gICAgLy8gSWYgd2UgaGF2ZSBhbiBhbHRlcm5hdGUsIHRoYXQgbWVhbnMgdGhpcyBpcyBhbiB1cGRhdGUgYW5kIHdlIG5lZWQgdG9cbiAgICAvLyBzY2hlZHVsZSBhIHNpZGUtZWZmZWN0IHRvIGRvIHRoZSB1cGRhdGVzLlxuICAgIHZhciBvbGRQcm9wcyA9IGN1cnJlbnQubWVtb2l6ZWRQcm9wcztcblxuICAgIGlmIChvbGRQcm9wcyA9PT0gbmV3UHJvcHMpIHtcbiAgICAgIC8vIEluIG11dGF0aW9uIG1vZGUsIHRoaXMgaXMgc3VmZmljaWVudCBmb3IgYSBiYWlsb3V0IGJlY2F1c2VcbiAgICAgIC8vIHdlIHdvbid0IHRvdWNoIHRoaXMgbm9kZSBldmVuIGlmIGNoaWxkcmVuIGNoYW5nZWQuXG4gICAgICByZXR1cm47XG4gICAgfSAvLyBJZiB3ZSBnZXQgdXBkYXRlZCBiZWNhdXNlIG9uZSBvZiBvdXIgY2hpbGRyZW4gdXBkYXRlZCwgd2UgZG9uJ3RcbiAgICAvLyBoYXZlIG5ld1Byb3BzIHNvIHdlJ2xsIGhhdmUgdG8gcmV1c2UgdGhlbS5cbiAgICAvLyBUT0RPOiBTcGxpdCB0aGUgdXBkYXRlIEFQSSBhcyBzZXBhcmF0ZSBmb3IgdGhlIHByb3BzIHZzLiBjaGlsZHJlbi5cbiAgICAvLyBFdmVuIGJldHRlciB3b3VsZCBiZSBpZiBjaGlsZHJlbiB3ZXJlbid0IHNwZWNpYWwgY2FzZWQgYXQgYWxsIHRoby5cblxuXG4gICAgdmFyIGluc3RhbmNlID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuICAgIHZhciBjdXJyZW50SG9zdENvbnRleHQgPSBnZXRIb3N0Q29udGV4dCgpOyAvLyBUT0RPOiBFeHBlcmllbmNpbmcgYW4gZXJyb3Igd2hlcmUgb2xkUHJvcHMgaXMgbnVsbC4gU3VnZ2VzdHMgYSBob3N0XG4gICAgLy8gY29tcG9uZW50IGlzIGhpdHRpbmcgdGhlIHJlc3VtZSBwYXRoLiBGaWd1cmUgb3V0IHdoeS4gUG9zc2libHlcbiAgICAvLyByZWxhdGVkIHRvIGBoaWRkZW5gLlxuXG4gICAgdmFyIHVwZGF0ZVBheWxvYWQgPSBwcmVwYXJlVXBkYXRlKGluc3RhbmNlLCB0eXBlLCBvbGRQcm9wcywgbmV3UHJvcHMsIHJvb3RDb250YWluZXJJbnN0YW5jZSwgY3VycmVudEhvc3RDb250ZXh0KTsgLy8gVE9ETzogVHlwZSB0aGlzIHNwZWNpZmljIHRvIHRoaXMgdHlwZSBvZiBjb21wb25lbnQuXG5cbiAgICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IHVwZGF0ZVBheWxvYWQ7IC8vIElmIHRoZSB1cGRhdGUgcGF5bG9hZCBpbmRpY2F0ZXMgdGhhdCB0aGVyZSBpcyBhIGNoYW5nZSBvciBpZiB0aGVyZVxuICAgIC8vIGlzIGEgbmV3IHJlZiB3ZSBtYXJrIHRoaXMgYXMgYW4gdXBkYXRlLiBBbGwgdGhlIHdvcmsgaXMgZG9uZSBpbiBjb21taXRXb3JrLlxuXG4gICAgaWYgKHVwZGF0ZVBheWxvYWQpIHtcbiAgICAgIG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MpO1xuICAgIH1cbiAgfTtcblxuICB1cGRhdGVIb3N0VGV4dCQxID0gZnVuY3Rpb24gKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBvbGRUZXh0LCBuZXdUZXh0KSB7XG4gICAgLy8gSWYgdGhlIHRleHQgZGlmZmVycywgbWFyayBpdCBhcyBhbiB1cGRhdGUuIEFsbCB0aGUgd29yayBpbiBkb25lIGluIGNvbW1pdFdvcmsuXG4gICAgaWYgKG9sZFRleHQgIT09IG5ld1RleHQpIHtcbiAgICAgIG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MpO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gY3V0T2ZmVGFpbElmTmVlZGVkKHJlbmRlclN0YXRlLCBoYXNSZW5kZXJlZEFUYWlsRmFsbGJhY2spIHtcbiAgaWYgKGdldElzSHlkcmF0aW5nKCkpIHtcbiAgICAvLyBJZiB3ZSdyZSBoeWRyYXRpbmcsIHdlIHNob3VsZCBjb25zdW1lIGFzIG1hbnkgaXRlbXMgYXMgd2UgY2FuXG4gICAgLy8gc28gd2UgZG9uJ3QgbGVhdmUgYW55IGJlaGluZC5cbiAgICByZXR1cm47XG4gIH1cblxuICBzd2l0Y2ggKHJlbmRlclN0YXRlLnRhaWxNb2RlKSB7XG4gICAgY2FzZSAnaGlkZGVuJzpcbiAgICAgIHtcbiAgICAgICAgLy8gQW55IGluc2VydGlvbnMgYXQgdGhlIGVuZCBvZiB0aGUgdGFpbCBsaXN0IGFmdGVyIHRoaXMgcG9pbnRcbiAgICAgICAgLy8gc2hvdWxkIGJlIGludmlzaWJsZS4gSWYgdGhlcmUgYXJlIGFscmVhZHkgbW91bnRlZCBib3VuZGFyaWVzXG4gICAgICAgIC8vIGFueXRoaW5nIGJlZm9yZSB0aGVtIGFyZSBub3QgY29uc2lkZXJlZCBmb3IgY29sbGFwc2luZy5cbiAgICAgICAgLy8gVGhlcmVmb3JlIHdlIG5lZWQgdG8gZ28gdGhyb3VnaCB0aGUgd2hvbGUgdGFpbCB0byBmaW5kIGlmXG4gICAgICAgIC8vIHRoZXJlIGFyZSBhbnkuXG4gICAgICAgIHZhciB0YWlsTm9kZSA9IHJlbmRlclN0YXRlLnRhaWw7XG4gICAgICAgIHZhciBsYXN0VGFpbE5vZGUgPSBudWxsO1xuXG4gICAgICAgIHdoaWxlICh0YWlsTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGlmICh0YWlsTm9kZS5hbHRlcm5hdGUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGxhc3RUYWlsTm9kZSA9IHRhaWxOb2RlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRhaWxOb2RlID0gdGFpbE5vZGUuc2libGluZztcbiAgICAgICAgfSAvLyBOZXh0IHdlJ3JlIHNpbXBseSBnb2luZyB0byBkZWxldGUgYWxsIGluc2VydGlvbnMgYWZ0ZXIgdGhlXG4gICAgICAgIC8vIGxhc3QgcmVuZGVyZWQgaXRlbS5cblxuXG4gICAgICAgIGlmIChsYXN0VGFpbE5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBBbGwgcmVtYWluaW5nIGl0ZW1zIGluIHRoZSB0YWlsIGFyZSBpbnNlcnRpb25zLlxuICAgICAgICAgIHJlbmRlclN0YXRlLnRhaWwgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIERldGFjaCB0aGUgaW5zZXJ0aW9uIGFmdGVyIHRoZSBsYXN0IG5vZGUgdGhhdCB3YXMgYWxyZWFkeVxuICAgICAgICAgIC8vIGluc2VydGVkLlxuICAgICAgICAgIGxhc3RUYWlsTm9kZS5zaWJsaW5nID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgY2FzZSAnY29sbGFwc2VkJzpcbiAgICAgIHtcbiAgICAgICAgLy8gQW55IGluc2VydGlvbnMgYXQgdGhlIGVuZCBvZiB0aGUgdGFpbCBsaXN0IGFmdGVyIHRoaXMgcG9pbnRcbiAgICAgICAgLy8gc2hvdWxkIGJlIGludmlzaWJsZS4gSWYgdGhlcmUgYXJlIGFscmVhZHkgbW91bnRlZCBib3VuZGFyaWVzXG4gICAgICAgIC8vIGFueXRoaW5nIGJlZm9yZSB0aGVtIGFyZSBub3QgY29uc2lkZXJlZCBmb3IgY29sbGFwc2luZy5cbiAgICAgICAgLy8gVGhlcmVmb3JlIHdlIG5lZWQgdG8gZ28gdGhyb3VnaCB0aGUgd2hvbGUgdGFpbCB0byBmaW5kIGlmXG4gICAgICAgIC8vIHRoZXJlIGFyZSBhbnkuXG4gICAgICAgIHZhciBfdGFpbE5vZGUgPSByZW5kZXJTdGF0ZS50YWlsO1xuICAgICAgICB2YXIgX2xhc3RUYWlsTm9kZSA9IG51bGw7XG5cbiAgICAgICAgd2hpbGUgKF90YWlsTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGlmIChfdGFpbE5vZGUuYWx0ZXJuYXRlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBfbGFzdFRhaWxOb2RlID0gX3RhaWxOb2RlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIF90YWlsTm9kZSA9IF90YWlsTm9kZS5zaWJsaW5nO1xuICAgICAgICB9IC8vIE5leHQgd2UncmUgc2ltcGx5IGdvaW5nIHRvIGRlbGV0ZSBhbGwgaW5zZXJ0aW9ucyBhZnRlciB0aGVcbiAgICAgICAgLy8gbGFzdCByZW5kZXJlZCBpdGVtLlxuXG5cbiAgICAgICAgaWYgKF9sYXN0VGFpbE5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBBbGwgcmVtYWluaW5nIGl0ZW1zIGluIHRoZSB0YWlsIGFyZSBpbnNlcnRpb25zLlxuICAgICAgICAgIGlmICghaGFzUmVuZGVyZWRBVGFpbEZhbGxiYWNrICYmIHJlbmRlclN0YXRlLnRhaWwgIT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIFdlIHN1c3BlbmRlZCBkdXJpbmcgdGhlIGhlYWQuIFdlIHdhbnQgdG8gc2hvdyBhdCBsZWFzdCBvbmVcbiAgICAgICAgICAgIC8vIHJvdyBhdCB0aGUgdGFpbC4gU28gd2UnbGwga2VlcCBvbiBhbmQgY3V0IG9mZiB0aGUgcmVzdC5cbiAgICAgICAgICAgIHJlbmRlclN0YXRlLnRhaWwuc2libGluZyA9IG51bGw7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlbmRlclN0YXRlLnRhaWwgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBEZXRhY2ggdGhlIGluc2VydGlvbiBhZnRlciB0aGUgbGFzdCBub2RlIHRoYXQgd2FzIGFscmVhZHlcbiAgICAgICAgICAvLyBpbnNlcnRlZC5cbiAgICAgICAgICBfbGFzdFRhaWxOb2RlLnNpYmxpbmcgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYnViYmxlUHJvcGVydGllcyhjb21wbGV0ZWRXb3JrKSB7XG4gIHZhciBkaWRCYWlsb3V0ID0gY29tcGxldGVkV29yay5hbHRlcm5hdGUgIT09IG51bGwgJiYgY29tcGxldGVkV29yay5hbHRlcm5hdGUuY2hpbGQgPT09IGNvbXBsZXRlZFdvcmsuY2hpbGQ7XG4gIHZhciBuZXdDaGlsZExhbmVzID0gTm9MYW5lcztcbiAgdmFyIHN1YnRyZWVGbGFncyA9IE5vRmxhZ3M7XG5cbiAgaWYgKCFkaWRCYWlsb3V0KSB7XG4gICAgLy8gQnViYmxlIHVwIHRoZSBlYXJsaWVzdCBleHBpcmF0aW9uIHRpbWUuXG4gICAgaWYgKCAoY29tcGxldGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgIC8vIEluIHByb2ZpbGluZyBtb2RlLCByZXNldENoaWxkRXhwaXJhdGlvblRpbWUgaXMgYWxzbyB1c2VkIHRvIHJlc2V0XG4gICAgICAvLyBwcm9maWxlciBkdXJhdGlvbnMuXG4gICAgICB2YXIgYWN0dWFsRHVyYXRpb24gPSBjb21wbGV0ZWRXb3JrLmFjdHVhbER1cmF0aW9uO1xuICAgICAgdmFyIHRyZWVCYXNlRHVyYXRpb24gPSBjb21wbGV0ZWRXb3JrLnNlbGZCYXNlRHVyYXRpb247XG4gICAgICB2YXIgY2hpbGQgPSBjb21wbGV0ZWRXb3JrLmNoaWxkO1xuXG4gICAgICB3aGlsZSAoY2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgbmV3Q2hpbGRMYW5lcyA9IG1lcmdlTGFuZXMobmV3Q2hpbGRMYW5lcywgbWVyZ2VMYW5lcyhjaGlsZC5sYW5lcywgY2hpbGQuY2hpbGRMYW5lcykpO1xuICAgICAgICBzdWJ0cmVlRmxhZ3MgfD0gY2hpbGQuc3VidHJlZUZsYWdzO1xuICAgICAgICBzdWJ0cmVlRmxhZ3MgfD0gY2hpbGQuZmxhZ3M7IC8vIFdoZW4gYSBmaWJlciBpcyBjbG9uZWQsIGl0cyBhY3R1YWxEdXJhdGlvbiBpcyByZXNldCB0byAwLiBUaGlzIHZhbHVlIHdpbGxcbiAgICAgICAgLy8gb25seSBiZSB1cGRhdGVkIGlmIHdvcmsgaXMgZG9uZSBvbiB0aGUgZmliZXIgKGkuZS4gaXQgZG9lc24ndCBiYWlsb3V0KS5cbiAgICAgICAgLy8gV2hlbiB3b3JrIGlzIGRvbmUsIGl0IHNob3VsZCBidWJibGUgdG8gdGhlIHBhcmVudCdzIGFjdHVhbER1cmF0aW9uLiBJZlxuICAgICAgICAvLyB0aGUgZmliZXIgaGFzIG5vdCBiZWVuIGNsb25lZCB0aG91Z2gsIChtZWFuaW5nIG5vIHdvcmsgd2FzIGRvbmUpLCB0aGVuXG4gICAgICAgIC8vIHRoaXMgdmFsdWUgd2lsbCByZWZsZWN0IHRoZSBhbW91bnQgb2YgdGltZSBzcGVudCB3b3JraW5nIG9uIGEgcHJldmlvdXNcbiAgICAgICAgLy8gcmVuZGVyLiBJbiB0aGF0IGNhc2UgaXQgc2hvdWxkIG5vdCBidWJibGUuIFdlIGRldGVybWluZSB3aGV0aGVyIGl0IHdhc1xuICAgICAgICAvLyBjbG9uZWQgYnkgY29tcGFyaW5nIHRoZSBjaGlsZCBwb2ludGVyLlxuXG4gICAgICAgIGFjdHVhbER1cmF0aW9uICs9IGNoaWxkLmFjdHVhbER1cmF0aW9uO1xuICAgICAgICB0cmVlQmFzZUR1cmF0aW9uICs9IGNoaWxkLnRyZWVCYXNlRHVyYXRpb247XG4gICAgICAgIGNoaWxkID0gY2hpbGQuc2libGluZztcbiAgICAgIH1cblxuICAgICAgY29tcGxldGVkV29yay5hY3R1YWxEdXJhdGlvbiA9IGFjdHVhbER1cmF0aW9uO1xuICAgICAgY29tcGxldGVkV29yay50cmVlQmFzZUR1cmF0aW9uID0gdHJlZUJhc2VEdXJhdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIF9jaGlsZCA9IGNvbXBsZXRlZFdvcmsuY2hpbGQ7XG5cbiAgICAgIHdoaWxlIChfY2hpbGQgIT09IG51bGwpIHtcbiAgICAgICAgbmV3Q2hpbGRMYW5lcyA9IG1lcmdlTGFuZXMobmV3Q2hpbGRMYW5lcywgbWVyZ2VMYW5lcyhfY2hpbGQubGFuZXMsIF9jaGlsZC5jaGlsZExhbmVzKSk7XG4gICAgICAgIHN1YnRyZWVGbGFncyB8PSBfY2hpbGQuc3VidHJlZUZsYWdzO1xuICAgICAgICBzdWJ0cmVlRmxhZ3MgfD0gX2NoaWxkLmZsYWdzOyAvLyBVcGRhdGUgdGhlIHJldHVybiBwb2ludGVyIHNvIHRoZSB0cmVlIGlzIGNvbnNpc3RlbnQuIFRoaXMgaXMgYSBjb2RlXG4gICAgICAgIC8vIHNtZWxsIGJlY2F1c2UgaXQgYXNzdW1lcyB0aGUgY29tbWl0IHBoYXNlIGlzIG5ldmVyIGNvbmN1cnJlbnQgd2l0aFxuICAgICAgICAvLyB0aGUgcmVuZGVyIHBoYXNlLiBXaWxsIGFkZHJlc3MgZHVyaW5nIHJlZmFjdG9yIHRvIGFsdGVybmF0ZSBtb2RlbC5cblxuICAgICAgICBfY2hpbGQucmV0dXJuID0gY29tcGxldGVkV29yaztcbiAgICAgICAgX2NoaWxkID0gX2NoaWxkLnNpYmxpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29tcGxldGVkV29yay5zdWJ0cmVlRmxhZ3MgfD0gc3VidHJlZUZsYWdzO1xuICB9IGVsc2Uge1xuICAgIC8vIEJ1YmJsZSB1cCB0aGUgZWFybGllc3QgZXhwaXJhdGlvbiB0aW1lLlxuICAgIGlmICggKGNvbXBsZXRlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlKSB7XG4gICAgICAvLyBJbiBwcm9maWxpbmcgbW9kZSwgcmVzZXRDaGlsZEV4cGlyYXRpb25UaW1lIGlzIGFsc28gdXNlZCB0byByZXNldFxuICAgICAgLy8gcHJvZmlsZXIgZHVyYXRpb25zLlxuICAgICAgdmFyIF90cmVlQmFzZUR1cmF0aW9uID0gY29tcGxldGVkV29yay5zZWxmQmFzZUR1cmF0aW9uO1xuICAgICAgdmFyIF9jaGlsZDIgPSBjb21wbGV0ZWRXb3JrLmNoaWxkO1xuXG4gICAgICB3aGlsZSAoX2NoaWxkMiAhPT0gbnVsbCkge1xuICAgICAgICBuZXdDaGlsZExhbmVzID0gbWVyZ2VMYW5lcyhuZXdDaGlsZExhbmVzLCBtZXJnZUxhbmVzKF9jaGlsZDIubGFuZXMsIF9jaGlsZDIuY2hpbGRMYW5lcykpOyAvLyBcIlN0YXRpY1wiIGZsYWdzIHNoYXJlIHRoZSBsaWZldGltZSBvZiB0aGUgZmliZXIvaG9vayB0aGV5IGJlbG9uZyB0byxcbiAgICAgICAgLy8gc28gd2Ugc2hvdWxkIGJ1YmJsZSB0aG9zZSB1cCBldmVuIGR1cmluZyBhIGJhaWxvdXQuIEFsbCB0aGUgb3RoZXJcbiAgICAgICAgLy8gZmxhZ3MgaGF2ZSBhIGxpZmV0aW1lIG9ubHkgb2YgYSBzaW5nbGUgcmVuZGVyICsgY29tbWl0LCBzbyB3ZSBzaG91bGRcbiAgICAgICAgLy8gaWdub3JlIHRoZW0uXG5cbiAgICAgICAgc3VidHJlZUZsYWdzIHw9IF9jaGlsZDIuc3VidHJlZUZsYWdzICYgU3RhdGljTWFzaztcbiAgICAgICAgc3VidHJlZUZsYWdzIHw9IF9jaGlsZDIuZmxhZ3MgJiBTdGF0aWNNYXNrO1xuICAgICAgICBfdHJlZUJhc2VEdXJhdGlvbiArPSBfY2hpbGQyLnRyZWVCYXNlRHVyYXRpb247XG4gICAgICAgIF9jaGlsZDIgPSBfY2hpbGQyLnNpYmxpbmc7XG4gICAgICB9XG5cbiAgICAgIGNvbXBsZXRlZFdvcmsudHJlZUJhc2VEdXJhdGlvbiA9IF90cmVlQmFzZUR1cmF0aW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgX2NoaWxkMyA9IGNvbXBsZXRlZFdvcmsuY2hpbGQ7XG5cbiAgICAgIHdoaWxlIChfY2hpbGQzICE9PSBudWxsKSB7XG4gICAgICAgIG5ld0NoaWxkTGFuZXMgPSBtZXJnZUxhbmVzKG5ld0NoaWxkTGFuZXMsIG1lcmdlTGFuZXMoX2NoaWxkMy5sYW5lcywgX2NoaWxkMy5jaGlsZExhbmVzKSk7IC8vIFwiU3RhdGljXCIgZmxhZ3Mgc2hhcmUgdGhlIGxpZmV0aW1lIG9mIHRoZSBmaWJlci9ob29rIHRoZXkgYmVsb25nIHRvLFxuICAgICAgICAvLyBzbyB3ZSBzaG91bGQgYnViYmxlIHRob3NlIHVwIGV2ZW4gZHVyaW5nIGEgYmFpbG91dC4gQWxsIHRoZSBvdGhlclxuICAgICAgICAvLyBmbGFncyBoYXZlIGEgbGlmZXRpbWUgb25seSBvZiBhIHNpbmdsZSByZW5kZXIgKyBjb21taXQsIHNvIHdlIHNob3VsZFxuICAgICAgICAvLyBpZ25vcmUgdGhlbS5cblxuICAgICAgICBzdWJ0cmVlRmxhZ3MgfD0gX2NoaWxkMy5zdWJ0cmVlRmxhZ3MgJiBTdGF0aWNNYXNrO1xuICAgICAgICBzdWJ0cmVlRmxhZ3MgfD0gX2NoaWxkMy5mbGFncyAmIFN0YXRpY01hc2s7IC8vIFVwZGF0ZSB0aGUgcmV0dXJuIHBvaW50ZXIgc28gdGhlIHRyZWUgaXMgY29uc2lzdGVudC4gVGhpcyBpcyBhIGNvZGVcbiAgICAgICAgLy8gc21lbGwgYmVjYXVzZSBpdCBhc3N1bWVzIHRoZSBjb21taXQgcGhhc2UgaXMgbmV2ZXIgY29uY3VycmVudCB3aXRoXG4gICAgICAgIC8vIHRoZSByZW5kZXIgcGhhc2UuIFdpbGwgYWRkcmVzcyBkdXJpbmcgcmVmYWN0b3IgdG8gYWx0ZXJuYXRlIG1vZGVsLlxuXG4gICAgICAgIF9jaGlsZDMucmV0dXJuID0gY29tcGxldGVkV29yaztcbiAgICAgICAgX2NoaWxkMyA9IF9jaGlsZDMuc2libGluZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wbGV0ZWRXb3JrLnN1YnRyZWVGbGFncyB8PSBzdWJ0cmVlRmxhZ3M7XG4gIH1cblxuICBjb21wbGV0ZWRXb3JrLmNoaWxkTGFuZXMgPSBuZXdDaGlsZExhbmVzO1xuICByZXR1cm4gZGlkQmFpbG91dDtcbn1cblxuZnVuY3Rpb24gY29tcGxldGVEZWh5ZHJhdGVkU3VzcGVuc2VCb3VuZGFyeShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dFN0YXRlKSB7XG4gIGlmIChoYXNVbmh5ZHJhdGVkVGFpbE5vZGVzKCkgJiYgKHdvcmtJblByb2dyZXNzLm1vZGUgJiBDb25jdXJyZW50TW9kZSkgIT09IE5vTW9kZSAmJiAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiBEaWRDYXB0dXJlKSA9PT0gTm9GbGFncykge1xuICAgIHdhcm5JZlVuaHlkcmF0ZWRUYWlsTm9kZXMod29ya0luUHJvZ3Jlc3MpO1xuICAgIHJlc2V0SHlkcmF0aW9uU3RhdGUoKTtcbiAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBGb3JjZUNsaWVudFJlbmRlciB8IEluY29tcGxldGUgfCBTaG91bGRDYXB0dXJlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciB3YXNIeWRyYXRlZCA9IHBvcEh5ZHJhdGlvblN0YXRlKHdvcmtJblByb2dyZXNzKTtcblxuICBpZiAobmV4dFN0YXRlICE9PSBudWxsICYmIG5leHRTdGF0ZS5kZWh5ZHJhdGVkICE9PSBudWxsKSB7XG4gICAgLy8gV2UgbWlnaHQgYmUgaW5zaWRlIGEgaHlkcmF0aW9uIHN0YXRlIHRoZSBmaXJzdCB0aW1lIHdlJ3JlIHBpY2tpbmcgdXAgdGhpc1xuICAgIC8vIFN1c3BlbnNlIGJvdW5kYXJ5LCBhbmQgYWxzbyBhZnRlciB3ZSd2ZSByZWVudGVyZWQgaXQgZm9yIGZ1cnRoZXIgaHlkcmF0aW9uLlxuICAgIGlmIChjdXJyZW50ID09PSBudWxsKSB7XG4gICAgICBpZiAoIXdhc0h5ZHJhdGVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQSBkZWh5ZHJhdGVkIHN1c3BlbnNlIGNvbXBvbmVudCB3YXMgY29tcGxldGVkIHdpdGhvdXQgYSBoeWRyYXRlZCBub2RlLiAnICsgJ1RoaXMgaXMgcHJvYmFibHkgYSBidWcgaW4gUmVhY3QuJyk7XG4gICAgICB9XG5cbiAgICAgIHByZXBhcmVUb0h5ZHJhdGVIb3N0U3VzcGVuc2VJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKTtcblxuICAgICAge1xuICAgICAgICBpZiAoKHdvcmtJblByb2dyZXNzLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSkge1xuICAgICAgICAgIHZhciBpc1RpbWVkT3V0U3VzcGVuc2UgPSBuZXh0U3RhdGUgIT09IG51bGw7XG5cbiAgICAgICAgICBpZiAoaXNUaW1lZE91dFN1c3BlbnNlKSB7XG4gICAgICAgICAgICAvLyBEb24ndCBjb3VudCB0aW1lIHNwZW50IGluIGEgdGltZWQgb3V0IFN1c3BlbnNlIHN1YnRyZWUgYXMgcGFydCBvZiB0aGUgYmFzZSBkdXJhdGlvbi5cbiAgICAgICAgICAgIHZhciBwcmltYXJ5Q2hpbGRGcmFnbWVudCA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuXG4gICAgICAgICAgICBpZiAocHJpbWFyeUNoaWxkRnJhZ21lbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgLy8gJEZsb3dGaXhNZSBGbG93IGRvZXNuJ3Qgc3VwcG9ydCB0eXBlIGNhc3RpbmcgaW4gY29tYmluYXRpb24gd2l0aCB0aGUgLT0gb3BlcmF0b3JcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHJlZUJhc2VEdXJhdGlvbiAtPSBwcmltYXJ5Q2hpbGRGcmFnbWVudC50cmVlQmFzZUR1cmF0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFdlIG1pZ2h0IGhhdmUgcmVlbnRlcmVkIHRoaXMgYm91bmRhcnkgdG8gaHlkcmF0ZSBpdC4gSWYgc28sIHdlIG5lZWQgdG8gcmVzZXQgdGhlIGh5ZHJhdGlvblxuICAgICAgLy8gc3RhdGUgc2luY2Ugd2UncmUgbm93IGV4aXRpbmcgb3V0IG9mIGl0LiBwb3BIeWRyYXRpb25TdGF0ZSBkb2Vzbid0IGRvIHRoYXQgZm9yIHVzLlxuICAgICAgcmVzZXRIeWRyYXRpb25TdGF0ZSgpO1xuXG4gICAgICBpZiAoKHdvcmtJblByb2dyZXNzLmZsYWdzICYgRGlkQ2FwdHVyZSkgPT09IE5vRmxhZ3MpIHtcbiAgICAgICAgLy8gVGhpcyBib3VuZGFyeSBkaWQgbm90IHN1c3BlbmQgc28gaXQncyBub3cgaHlkcmF0ZWQgYW5kIHVuc3VzcGVuZGVkLlxuICAgICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgICAgIH0gLy8gSWYgbm90aGluZyBzdXNwZW5kZWQsIHdlIG5lZWQgdG8gc2NoZWR1bGUgYW4gZWZmZWN0IHRvIG1hcmsgdGhpcyBib3VuZGFyeVxuICAgICAgLy8gYXMgaGF2aW5nIGh5ZHJhdGVkIHNvIGV2ZW50cyBrbm93IHRoYXQgdGhleSdyZSBmcmVlIHRvIGJlIGludm9rZWQuXG4gICAgICAvLyBJdCdzIGFsc28gYSBzaWduYWwgdG8gcmVwbGF5IGV2ZW50cyBhbmQgdGhlIHN1c3BlbnNlIGNhbGxiYWNrLlxuICAgICAgLy8gSWYgc29tZXRoaW5nIHN1c3BlbmRlZCwgc2NoZWR1bGUgYW4gZWZmZWN0IHRvIGF0dGFjaCByZXRyeSBsaXN0ZW5lcnMuXG4gICAgICAvLyBTbyB3ZSBtaWdodCBhcyB3ZWxsIGFsd2F5cyBtYXJrIHRoaXMuXG5cblxuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gVXBkYXRlO1xuICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyk7XG5cbiAgICAgIHtcbiAgICAgICAgaWYgKCh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgICB2YXIgX2lzVGltZWRPdXRTdXNwZW5zZSA9IG5leHRTdGF0ZSAhPT0gbnVsbDtcblxuICAgICAgICAgIGlmIChfaXNUaW1lZE91dFN1c3BlbnNlKSB7XG4gICAgICAgICAgICAvLyBEb24ndCBjb3VudCB0aW1lIHNwZW50IGluIGEgdGltZWQgb3V0IFN1c3BlbnNlIHN1YnRyZWUgYXMgcGFydCBvZiB0aGUgYmFzZSBkdXJhdGlvbi5cbiAgICAgICAgICAgIHZhciBfcHJpbWFyeUNoaWxkRnJhZ21lbnQgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcblxuICAgICAgICAgICAgaWYgKF9wcmltYXJ5Q2hpbGRGcmFnbWVudCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAvLyAkRmxvd0ZpeE1lIEZsb3cgZG9lc24ndCBzdXBwb3J0IHR5cGUgY2FzdGluZyBpbiBjb21iaW5hdGlvbiB3aXRoIHRoZSAtPSBvcGVyYXRvclxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50cmVlQmFzZUR1cmF0aW9uIC09IF9wcmltYXJ5Q2hpbGRGcmFnbWVudC50cmVlQmFzZUR1cmF0aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIFN1Y2Nlc3NmdWxseSBjb21wbGV0ZWQgdGhpcyB0cmVlLiBJZiB0aGlzIHdhcyBhIGZvcmNlZCBjbGllbnQgcmVuZGVyLFxuICAgIC8vIHRoZXJlIG1heSBoYXZlIGJlZW4gcmVjb3ZlcmFibGUgZXJyb3JzIGR1cmluZyBmaXJzdCBoeWRyYXRpb25cbiAgICAvLyBhdHRlbXB0LiBJZiBzbywgYWRkIHRoZW0gdG8gYSBxdWV1ZSBzbyB3ZSBjYW4gbG9nIHRoZW0gaW4gdGhlXG4gICAgLy8gY29tbWl0IHBoYXNlLlxuICAgIHVwZ3JhZGVIeWRyYXRpb25FcnJvcnNUb1JlY292ZXJhYmxlKCk7IC8vIEZhbGwgdGhyb3VnaCB0byBub3JtYWwgU3VzcGVuc2UgcGF0aFxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tcGxldGVXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICB2YXIgbmV3UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7IC8vIE5vdGU6IFRoaXMgaW50ZW50aW9uYWxseSBkb2Vzbid0IGNoZWNrIGlmIHdlJ3JlIGh5ZHJhdGluZyBiZWNhdXNlIGNvbXBhcmluZ1xuICAvLyB0byB0aGUgY3VycmVudCB0cmVlIHByb3ZpZGVyIGZpYmVyIGlzIGp1c3QgYXMgZmFzdCBhbmQgbGVzcyBlcnJvci1wcm9uZS5cbiAgLy8gSWRlYWxseSB3ZSB3b3VsZCBoYXZlIGEgc3BlY2lhbCB2ZXJzaW9uIG9mIHRoZSB3b3JrIGxvb3Agb25seVxuICAvLyBmb3IgaHlkcmF0aW9uLlxuXG4gIHBvcFRyZWVDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcblxuICBzd2l0Y2ggKHdvcmtJblByb2dyZXNzLnRhZykge1xuICAgIGNhc2UgSW5kZXRlcm1pbmF0ZUNvbXBvbmVudDpcbiAgICBjYXNlIExhenlDb21wb25lbnQ6XG4gICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgIGNhc2UgRnJhZ21lbnQ6XG4gICAgY2FzZSBNb2RlOlxuICAgIGNhc2UgUHJvZmlsZXI6XG4gICAgY2FzZSBDb250ZXh0Q29uc3VtZXI6XG4gICAgY2FzZSBNZW1vQ29tcG9uZW50OlxuICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICByZXR1cm4gbnVsbDtcblxuICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciBDb21wb25lbnQgPSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuXG4gICAgICAgIGlmIChpc0NvbnRleHRQcm92aWRlcihDb21wb25lbnQpKSB7XG4gICAgICAgICAgcG9wQ29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIH1cblxuICAgICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICBjYXNlIEhvc3RSb290OlxuICAgICAge1xuICAgICAgICB2YXIgZmliZXJSb290ID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuICAgICAgICBwb3BIb3N0Q29udGFpbmVyKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgcG9wVG9wTGV2ZWxDb250ZXh0T2JqZWN0KHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgcmVzZXRXb3JrSW5Qcm9ncmVzc1ZlcnNpb25zKCk7XG5cbiAgICAgICAgaWYgKGZpYmVyUm9vdC5wZW5kaW5nQ29udGV4dCkge1xuICAgICAgICAgIGZpYmVyUm9vdC5jb250ZXh0ID0gZmliZXJSb290LnBlbmRpbmdDb250ZXh0O1xuICAgICAgICAgIGZpYmVyUm9vdC5wZW5kaW5nQ29udGV4dCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY3VycmVudCA9PT0gbnVsbCB8fCBjdXJyZW50LmNoaWxkID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gSWYgd2UgaHlkcmF0ZWQsIHBvcCBzbyB0aGF0IHdlIGNhbiBkZWxldGUgYW55IHJlbWFpbmluZyBjaGlsZHJlblxuICAgICAgICAgIC8vIHRoYXQgd2VyZW4ndCBoeWRyYXRlZC5cbiAgICAgICAgICB2YXIgd2FzSHlkcmF0ZWQgPSBwb3BIeWRyYXRpb25TdGF0ZSh3b3JrSW5Qcm9ncmVzcyk7XG5cbiAgICAgICAgICBpZiAod2FzSHlkcmF0ZWQpIHtcbiAgICAgICAgICAgIC8vIElmIHdlIGh5ZHJhdGVkLCB0aGVuIHdlJ2xsIG5lZWQgdG8gc2NoZWR1bGUgYW4gdXBkYXRlIGZvclxuICAgICAgICAgICAgLy8gdGhlIGNvbW1pdCBzaWRlLWVmZmVjdHMgb24gdGhlIHJvb3QuXG4gICAgICAgICAgICBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgdmFyIHByZXZTdGF0ZSA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcblxuICAgICAgICAgICAgICBpZiAoIC8vIENoZWNrIGlmIHRoaXMgaXMgYSBjbGllbnQgcm9vdFxuICAgICAgICAgICAgICAhcHJldlN0YXRlLmlzRGVoeWRyYXRlZCB8fCAvLyBDaGVjayBpZiB3ZSByZXZlcnRlZCB0byBjbGllbnQgcmVuZGVyaW5nIChlLmcuIGR1ZSB0byBhbiBlcnJvcilcbiAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzICYgRm9yY2VDbGllbnRSZW5kZXIpICE9PSBOb0ZsYWdzKSB7XG4gICAgICAgICAgICAgICAgLy8gU2NoZWR1bGUgYW4gZWZmZWN0IHRvIGNsZWFyIHRoaXMgY29udGFpbmVyIGF0IHRoZSBzdGFydCBvZiB0aGVcbiAgICAgICAgICAgICAgICAvLyBuZXh0IGNvbW1pdC4gVGhpcyBoYW5kbGVzIHRoZSBjYXNlIG9mIFJlYWN0IHJlbmRlcmluZyBpbnRvIGFcbiAgICAgICAgICAgICAgICAvLyBjb250YWluZXIgd2l0aCBwcmV2aW91cyBjaGlsZHJlbi4gSXQncyBhbHNvIHNhZmUgdG8gZG8gZm9yXG4gICAgICAgICAgICAgICAgLy8gdXBkYXRlcyB0b28sIGJlY2F1c2UgY3VycmVudC5jaGlsZCB3b3VsZCBvbmx5IGJlIG51bGwgaWYgdGhlXG4gICAgICAgICAgICAgICAgLy8gcHJldmlvdXMgcmVuZGVyIHdhcyBudWxsIChzbyB0aGUgY29udGFpbmVyIHdvdWxkIGFscmVhZHlcbiAgICAgICAgICAgICAgICAvLyBiZSBlbXB0eSkuXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gU25hcHNob3Q7IC8vIElmIHRoaXMgd2FzIGEgZm9yY2VkIGNsaWVudCByZW5kZXIsIHRoZXJlIG1heSBoYXZlIGJlZW5cbiAgICAgICAgICAgICAgICAvLyByZWNvdmVyYWJsZSBlcnJvcnMgZHVyaW5nIGZpcnN0IGh5ZHJhdGlvbiBhdHRlbXB0LiBJZiBzbywgYWRkXG4gICAgICAgICAgICAgICAgLy8gdGhlbSB0byBhIHF1ZXVlIHNvIHdlIGNhbiBsb2cgdGhlbSBpbiB0aGUgY29tbWl0IHBoYXNlLlxuXG4gICAgICAgICAgICAgICAgdXBncmFkZUh5ZHJhdGlvbkVycm9yc1RvUmVjb3ZlcmFibGUoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHVwZGF0ZUhvc3RDb250YWluZXIoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKTtcblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgcG9wSG9zdENvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICB2YXIgcm9vdENvbnRhaW5lckluc3RhbmNlID0gZ2V0Um9vdEhvc3RDb250YWluZXIoKTtcbiAgICAgICAgdmFyIHR5cGUgPSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuXG4gICAgICAgIGlmIChjdXJyZW50ICE9PSBudWxsICYmIHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZSAhPSBudWxsKSB7XG4gICAgICAgICAgdXBkYXRlSG9zdENvbXBvbmVudCQxKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCB0eXBlLCBuZXdQcm9wcywgcm9vdENvbnRhaW5lckluc3RhbmNlKTtcblxuICAgICAgICAgIGlmIChjdXJyZW50LnJlZiAhPT0gd29ya0luUHJvZ3Jlc3MucmVmKSB7XG4gICAgICAgICAgICBtYXJrUmVmJDEod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoIW5ld1Byb3BzKSB7XG4gICAgICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignV2UgbXVzdCBoYXZlIG5ldyBwcm9wcyBmb3IgbmV3IG1vdW50cy4gVGhpcyBlcnJvciBpcyBsaWtlbHkgJyArICdjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgICAgICAgICAgfSAvLyBUaGlzIGNhbiBoYXBwZW4gd2hlbiB3ZSBhYm9ydCB3b3JrLlxuXG5cbiAgICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIGN1cnJlbnRIb3N0Q29udGV4dCA9IGdldEhvc3RDb250ZXh0KCk7IC8vIFRPRE86IE1vdmUgY3JlYXRlSW5zdGFuY2UgdG8gYmVnaW5Xb3JrIGFuZCBrZWVwIGl0IG9uIGEgY29udGV4dFxuICAgICAgICAgIC8vIFwic3RhY2tcIiBhcyB0aGUgcGFyZW50LiBUaGVuIGFwcGVuZCBjaGlsZHJlbiBhcyB3ZSBnbyBpbiBiZWdpbldvcmtcbiAgICAgICAgICAvLyBvciBjb21wbGV0ZVdvcmsgZGVwZW5kaW5nIG9uIHdoZXRoZXIgd2Ugd2FudCB0byBhZGQgdGhlbSB0b3AtPmRvd24gb3JcbiAgICAgICAgICAvLyBib3R0b20tPnVwLiBUb3AtPmRvd24gaXMgZmFzdGVyIGluIElFMTEuXG5cbiAgICAgICAgICB2YXIgX3dhc0h5ZHJhdGVkID0gcG9wSHlkcmF0aW9uU3RhdGUod29ya0luUHJvZ3Jlc3MpO1xuXG4gICAgICAgICAgaWYgKF93YXNIeWRyYXRlZCkge1xuICAgICAgICAgICAgLy8gVE9ETzogTW92ZSB0aGlzIGFuZCBjcmVhdGVJbnN0YW5jZSBzdGVwIGludG8gdGhlIGJlZ2luUGhhc2VcbiAgICAgICAgICAgIC8vIHRvIGNvbnNvbGlkYXRlLlxuICAgICAgICAgICAgaWYgKHByZXBhcmVUb0h5ZHJhdGVIb3N0SW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIHJvb3RDb250YWluZXJJbnN0YW5jZSwgY3VycmVudEhvc3RDb250ZXh0KSkge1xuICAgICAgICAgICAgICAvLyBJZiBjaGFuZ2VzIHRvIHRoZSBoeWRyYXRlZCBub2RlIG5lZWQgdG8gYmUgYXBwbGllZCBhdCB0aGVcbiAgICAgICAgICAgICAgLy8gY29tbWl0LXBoYXNlIHdlIG1hcmsgdGhpcyBhcyBzdWNoLlxuICAgICAgICAgICAgICBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gY3JlYXRlSW5zdGFuY2UodHlwZSwgbmV3UHJvcHMsIHJvb3RDb250YWluZXJJbnN0YW5jZSwgY3VycmVudEhvc3RDb250ZXh0LCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgICBhcHBlbmRBbGxDaGlsZHJlbihpbnN0YW5jZSwgd29ya0luUHJvZ3Jlc3MsIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPSBpbnN0YW5jZTsgLy8gQ2VydGFpbiByZW5kZXJlcnMgcmVxdWlyZSBjb21taXQtdGltZSBlZmZlY3RzIGZvciBpbml0aWFsIG1vdW50LlxuICAgICAgICAgICAgLy8gKGVnIERPTSByZW5kZXJlciBzdXBwb3J0cyBhdXRvLWZvY3VzIGZvciBjZXJ0YWluIGVsZW1lbnRzKS5cbiAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBzdWNoIHJlbmRlcmVycyBnZXQgc2NoZWR1bGVkIGZvciBsYXRlciB3b3JrLlxuXG4gICAgICAgICAgICBpZiAoZmluYWxpemVJbml0aWFsQ2hpbGRyZW4oaW5zdGFuY2UsIHR5cGUsIG5ld1Byb3BzLCByb290Q29udGFpbmVySW5zdGFuY2UpKSB7XG4gICAgICAgICAgICAgIG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh3b3JrSW5Qcm9ncmVzcy5yZWYgIT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgcmVmIG9uIGEgaG9zdCBub2RlIHdlIG5lZWQgdG8gc2NoZWR1bGUgYSBjYWxsYmFja1xuICAgICAgICAgICAgbWFya1JlZiQxKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICBjYXNlIEhvc3RUZXh0OlxuICAgICAge1xuICAgICAgICB2YXIgbmV3VGV4dCA9IG5ld1Byb3BzO1xuXG4gICAgICAgIGlmIChjdXJyZW50ICYmIHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZSAhPSBudWxsKSB7XG4gICAgICAgICAgdmFyIG9sZFRleHQgPSBjdXJyZW50Lm1lbW9pemVkUHJvcHM7IC8vIElmIHdlIGhhdmUgYW4gYWx0ZXJuYXRlLCB0aGF0IG1lYW5zIHRoaXMgaXMgYW4gdXBkYXRlIGFuZCB3ZSBuZWVkXG4gICAgICAgICAgLy8gdG8gc2NoZWR1bGUgYSBzaWRlLWVmZmVjdCB0byBkbyB0aGUgdXBkYXRlcy5cblxuICAgICAgICAgIHVwZGF0ZUhvc3RUZXh0JDEoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG9sZFRleHQsIG5ld1RleHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0eXBlb2YgbmV3VGV4dCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICh3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdXZSBtdXN0IGhhdmUgbmV3IHByb3BzIGZvciBuZXcgbW91bnRzLiBUaGlzIGVycm9yIGlzIGxpa2VseSAnICsgJ2NhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgICAgICAgICB9IC8vIFRoaXMgY2FuIGhhcHBlbiB3aGVuIHdlIGFib3J0IHdvcmsuXG5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgX3Jvb3RDb250YWluZXJJbnN0YW5jZSA9IGdldFJvb3RIb3N0Q29udGFpbmVyKCk7XG5cbiAgICAgICAgICB2YXIgX2N1cnJlbnRIb3N0Q29udGV4dCA9IGdldEhvc3RDb250ZXh0KCk7XG5cbiAgICAgICAgICB2YXIgX3dhc0h5ZHJhdGVkMiA9IHBvcEh5ZHJhdGlvblN0YXRlKHdvcmtJblByb2dyZXNzKTtcblxuICAgICAgICAgIGlmIChfd2FzSHlkcmF0ZWQyKSB7XG4gICAgICAgICAgICBpZiAocHJlcGFyZVRvSHlkcmF0ZUhvc3RUZXh0SW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MpKSB7XG4gICAgICAgICAgICAgIG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPSBjcmVhdGVUZXh0SW5zdGFuY2UobmV3VGV4dCwgX3Jvb3RDb250YWluZXJJbnN0YW5jZSwgX2N1cnJlbnRIb3N0Q29udGV4dCwgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHBvcFN1c3BlbnNlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIHZhciBuZXh0U3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlOyAvLyBTcGVjaWFsIHBhdGggZm9yIGRlaHlkcmF0ZWQgYm91bmRhcmllcy4gV2UgbWF5IGV2ZW50dWFsbHkgbW92ZSB0aGlzXG4gICAgICAgIC8vIHRvIGl0cyBvd24gZmliZXIgdHlwZSBzbyB0aGF0IHdlIGNhbiBhZGQgb3RoZXIga2luZHMgb2YgaHlkcmF0aW9uXG4gICAgICAgIC8vIGJvdW5kYXJpZXMgdGhhdCBhcmVuJ3QgYXNzb2NpYXRlZCB3aXRoIGEgU3VzcGVuc2UgdHJlZS4gSW4gYW50aWNpcGF0aW9uXG4gICAgICAgIC8vIG9mIHN1Y2ggYSByZWZhY3RvciwgYWxsIHRoZSBoeWRyYXRpb24gbG9naWMgaXMgY29udGFpbmVkIGluXG4gICAgICAgIC8vIHRoaXMgYnJhbmNoLlxuXG4gICAgICAgIGlmIChjdXJyZW50ID09PSBudWxsIHx8IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSAhPT0gbnVsbCAmJiBjdXJyZW50Lm1lbW9pemVkU3RhdGUuZGVoeWRyYXRlZCAhPT0gbnVsbCkge1xuICAgICAgICAgIHZhciBmYWxsdGhyb3VnaFRvTm9ybWFsU3VzcGVuc2VQYXRoID0gY29tcGxldGVEZWh5ZHJhdGVkU3VzcGVuc2VCb3VuZGFyeShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dFN0YXRlKTtcblxuICAgICAgICAgIGlmICghZmFsbHRocm91Z2hUb05vcm1hbFN1c3BlbnNlUGF0aCkge1xuICAgICAgICAgICAgaWYgKHdvcmtJblByb2dyZXNzLmZsYWdzICYgU2hvdWxkQ2FwdHVyZSkge1xuICAgICAgICAgICAgICAvLyBTcGVjaWFsIGNhc2UuIFRoZXJlIHdlcmUgcmVtYWluaW5nIHVuaHlkcmF0ZWQgbm9kZXMuIFdlIHRyZWF0XG4gICAgICAgICAgICAgIC8vIHRoaXMgYXMgYSBtaXNtYXRjaC4gUmV2ZXJ0IHRvIGNsaWVudCByZW5kZXJpbmcuXG4gICAgICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIERpZCBub3QgZmluaXNoIGh5ZHJhdGluZywgZWl0aGVyIGJlY2F1c2UgdGhpcyBpcyB0aGUgaW5pdGlhbFxuICAgICAgICAgICAgICAvLyByZW5kZXIgb3IgYmVjYXVzZSBzb21ldGhpbmcgc3VzcGVuZGVkLlxuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IC8vIENvbnRpbnVlIHdpdGggdGhlIG5vcm1hbCBTdXNwZW5zZSBwYXRoLlxuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoKHdvcmtJblByb2dyZXNzLmZsYWdzICYgRGlkQ2FwdHVyZSkgIT09IE5vRmxhZ3MpIHtcbiAgICAgICAgICAvLyBTb21ldGhpbmcgc3VzcGVuZGVkLiBSZS1yZW5kZXIgd2l0aCB0aGUgZmFsbGJhY2sgY2hpbGRyZW4uXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSByZW5kZXJMYW5lczsgLy8gRG8gbm90IHJlc2V0IHRoZSBlZmZlY3QgbGlzdC5cblxuICAgICAgICAgIGlmICggKHdvcmtJblByb2dyZXNzLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSkge1xuICAgICAgICAgICAgdHJhbnNmZXJBY3R1YWxEdXJhdGlvbih3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgfSAvLyBEb24ndCBidWJibGUgcHJvcGVydGllcyBpbiB0aGlzIGNhc2UuXG5cblxuICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBuZXh0RGlkVGltZW91dCA9IG5leHRTdGF0ZSAhPT0gbnVsbDtcbiAgICAgICAgdmFyIHByZXZEaWRUaW1lb3V0ID0gY3VycmVudCAhPT0gbnVsbCAmJiBjdXJyZW50Lm1lbW9pemVkU3RhdGUgIT09IG51bGw7XG4gICAgICAgIC8vIGEgcGFzc2l2ZSBlZmZlY3QsIHdoaWNoIGlzIHdoZW4gd2UgcHJvY2VzcyB0aGUgdHJhbnNpdGlvbnNcblxuXG4gICAgICAgIGlmIChuZXh0RGlkVGltZW91dCAhPT0gcHJldkRpZFRpbWVvdXQpIHtcbiAgICAgICAgICAvLyBhbiBlZmZlY3QgdG8gdG9nZ2xlIHRoZSBzdWJ0cmVlJ3MgdmlzaWJpbGl0eS4gV2hlbiB3ZSBzd2l0Y2ggZnJvbVxuICAgICAgICAgIC8vIGZhbGxiYWNrIC0+IHByaW1hcnksIHRoZSBpbm5lciBPZmZzY3JlZW4gZmliZXIgc2NoZWR1bGVzIHRoaXMgZWZmZWN0XG4gICAgICAgICAgLy8gYXMgcGFydCBvZiBpdHMgbm9ybWFsIGNvbXBsZXRlIHBoYXNlLiBCdXQgd2hlbiB3ZSBzd2l0Y2ggZnJvbVxuICAgICAgICAgIC8vIHByaW1hcnkgLT4gZmFsbGJhY2ssIHRoZSBpbm5lciBPZmZzY3JlZW4gZmliZXIgZG9lcyBub3QgaGF2ZSBhIGNvbXBsZXRlXG4gICAgICAgICAgLy8gcGhhc2UuIFNvIHdlIG5lZWQgdG8gc2NoZWR1bGUgaXRzIGVmZmVjdCBoZXJlLlxuICAgICAgICAgIC8vXG4gICAgICAgICAgLy8gV2UgYWxzbyB1c2UgdGhpcyBmbGFnIHRvIGNvbm5lY3QvZGlzY29ubmVjdCB0aGUgZWZmZWN0cywgYnV0IHRoZSBzYW1lXG4gICAgICAgICAgLy8gbG9naWMgYXBwbGllczogd2hlbiByZS1jb25uZWN0aW5nLCB0aGUgT2Zmc2NyZWVuIGZpYmVyJ3MgY29tcGxldGVcbiAgICAgICAgICAvLyBwaGFzZSB3aWxsIGhhbmRsZSBzY2hlZHVsaW5nIHRoZSBlZmZlY3QuIEl0J3Mgb25seSB3aGVuIHRoZSBmYWxsYmFja1xuICAgICAgICAgIC8vIGlzIGFjdGl2ZSB0aGF0IHdlIGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbC5cblxuXG4gICAgICAgICAgaWYgKG5leHREaWRUaW1lb3V0KSB7XG4gICAgICAgICAgICB2YXIgX29mZnNjcmVlbkZpYmVyMiA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgICAgICAgICAgX29mZnNjcmVlbkZpYmVyMi5mbGFncyB8PSBWaXNpYmlsaXR5OyAvLyBUT0RPOiBUaGlzIHdpbGwgc3RpbGwgc3VzcGVuZCBhIHN5bmNocm9ub3VzIHRyZWUgaWYgYW55dGhpbmdcbiAgICAgICAgICAgIC8vIGluIHRoZSBjb25jdXJyZW50IHRyZWUgYWxyZWFkeSBzdXNwZW5kZWQgZHVyaW5nIHRoaXMgcmVuZGVyLlxuICAgICAgICAgICAgLy8gVGhpcyBpcyBhIGtub3duIGJ1Zy5cblxuICAgICAgICAgICAgaWYgKCh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgQ29uY3VycmVudE1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgICAgICAgLy8gVE9ETzogTW92ZSB0aGlzIGJhY2sgdG8gdGhyb3dFeGNlcHRpb24gYmVjYXVzZSB0aGlzIGlzIHRvbyBsYXRlXG4gICAgICAgICAgICAgIC8vIGlmIHRoaXMgaXMgYSBsYXJnZSB0cmVlIHdoaWNoIGlzIGNvbW1vbiBmb3IgaW5pdGlhbCBsb2Fkcy4gV2VcbiAgICAgICAgICAgICAgLy8gZG9uJ3Qga25vdyBpZiB3ZSBzaG91bGQgcmVzdGFydCBhIHJlbmRlciBvciBub3QgdW50aWwgd2UgZ2V0XG4gICAgICAgICAgICAgIC8vIHRoaXMgbWFya2VyLCBhbmQgdGhpcyBpcyB0b28gbGF0ZS5cbiAgICAgICAgICAgICAgLy8gSWYgdGhpcyByZW5kZXIgYWxyZWFkeSBoYWQgYSBwaW5nIG9yIGxvd2VyIHByaSB1cGRhdGVzLFxuICAgICAgICAgICAgICAvLyBhbmQgdGhpcyBpcyB0aGUgZmlyc3QgdGltZSB3ZSBrbm93IHdlJ3JlIGdvaW5nIHRvIHN1c3BlbmQgd2VcbiAgICAgICAgICAgICAgLy8gc2hvdWxkIGJlIGFibGUgdG8gaW1tZWRpYXRlbHkgcmVzdGFydCBmcm9tIHdpdGhpbiB0aHJvd0V4Y2VwdGlvbi5cbiAgICAgICAgICAgICAgdmFyIGhhc0ludmlzaWJsZUNoaWxkQ29udGV4dCA9IGN1cnJlbnQgPT09IG51bGwgJiYgKHdvcmtJblByb2dyZXNzLm1lbW9pemVkUHJvcHMudW5zdGFibGVfYXZvaWRUaGlzRmFsbGJhY2sgIT09IHRydWUgfHwgIWVuYWJsZVN1c3BlbnNlQXZvaWRUaGlzRmFsbGJhY2spO1xuXG4gICAgICAgICAgICAgIGlmIChoYXNJbnZpc2libGVDaGlsZENvbnRleHQgfHwgaGFzU3VzcGVuc2VDb250ZXh0KHN1c3BlbnNlU3RhY2tDdXJzb3IuY3VycmVudCwgSW52aXNpYmxlUGFyZW50U3VzcGVuc2VDb250ZXh0KSkge1xuICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgd2FzIGluIGFuIGludmlzaWJsZSB0cmVlIG9yIGEgbmV3IHJlbmRlciwgdGhlbiBzaG93aW5nXG4gICAgICAgICAgICAgICAgLy8gdGhpcyBib3VuZGFyeSBpcyBvay5cbiAgICAgICAgICAgICAgICByZW5kZXJEaWRTdXNwZW5kKCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSdyZSBnb2luZyB0byBoYXZlIHRvIGhpZGUgY29udGVudCBzbyB3ZSBzaG91bGRcbiAgICAgICAgICAgICAgICAvLyBzdXNwZW5kIGZvciBsb25nZXIgaWYgcG9zc2libGUuXG4gICAgICAgICAgICAgICAgcmVuZGVyRGlkU3VzcGVuZERlbGF5SWZQb3NzaWJsZSgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHdha2VhYmxlcyA9IHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlO1xuXG4gICAgICAgIGlmICh3YWtlYWJsZXMgIT09IG51bGwpIHtcbiAgICAgICAgICAvLyBTY2hlZHVsZSBhbiBlZmZlY3QgdG8gYXR0YWNoIGEgcmV0cnkgbGlzdGVuZXIgdG8gdGhlIHByb21pc2UuXG4gICAgICAgICAgLy8gVE9ETzogTW92ZSB0byBwYXNzaXZlIHBoYXNlXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gVXBkYXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyk7XG5cbiAgICAgICAge1xuICAgICAgICAgIGlmICgod29ya0luUHJvZ3Jlc3MubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlKSB7XG4gICAgICAgICAgICBpZiAobmV4dERpZFRpbWVvdXQpIHtcbiAgICAgICAgICAgICAgLy8gRG9uJ3QgY291bnQgdGltZSBzcGVudCBpbiBhIHRpbWVkIG91dCBTdXNwZW5zZSBzdWJ0cmVlIGFzIHBhcnQgb2YgdGhlIGJhc2UgZHVyYXRpb24uXG4gICAgICAgICAgICAgIHZhciBwcmltYXJ5Q2hpbGRGcmFnbWVudCA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuXG4gICAgICAgICAgICAgIGlmIChwcmltYXJ5Q2hpbGRGcmFnbWVudCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIC8vICRGbG93Rml4TWUgRmxvdyBkb2Vzbid0IHN1cHBvcnQgdHlwZSBjYXN0aW5nIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIC09IG9wZXJhdG9yXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHJlZUJhc2VEdXJhdGlvbiAtPSBwcmltYXJ5Q2hpbGRGcmFnbWVudC50cmVlQmFzZUR1cmF0aW9uO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICBjYXNlIEhvc3RQb3J0YWw6XG4gICAgICBwb3BIb3N0Q29udGFpbmVyKHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHVwZGF0ZUhvc3RDb250YWluZXIoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpO1xuXG4gICAgICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICBwcmVwYXJlUG9ydGFsTW91bnQod29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pO1xuICAgICAgfVxuXG4gICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHJldHVybiBudWxsO1xuXG4gICAgY2FzZSBDb250ZXh0UHJvdmlkZXI6XG4gICAgICAvLyBQb3AgcHJvdmlkZXIgZmliZXJcbiAgICAgIHZhciBjb250ZXh0ID0gd29ya0luUHJvZ3Jlc3MudHlwZS5fY29udGV4dDtcbiAgICAgIHBvcFByb3ZpZGVyKGNvbnRleHQsIHdvcmtJblByb2dyZXNzKTtcbiAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICBjYXNlIEluY29tcGxldGVDbGFzc0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgLy8gU2FtZSBhcyBjbGFzcyBjb21wb25lbnQgY2FzZS4gSSBwdXQgaXQgZG93biBoZXJlIHNvIHRoYXQgdGhlIHRhZ3MgYXJlXG4gICAgICAgIC8vIHNlcXVlbnRpYWwgdG8gZW5zdXJlIHRoaXMgc3dpdGNoIGlzIGNvbXBpbGVkIHRvIGEganVtcCB0YWJsZS5cbiAgICAgICAgdmFyIF9Db21wb25lbnQgPSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuXG4gICAgICAgIGlmIChpc0NvbnRleHRQcm92aWRlcihfQ29tcG9uZW50KSkge1xuICAgICAgICAgIHBvcENvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBTdXNwZW5zZUxpc3RDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHBvcFN1c3BlbnNlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIHZhciByZW5kZXJTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG5cbiAgICAgICAgaWYgKHJlbmRlclN0YXRlID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gV2UncmUgcnVubmluZyBpbiB0aGUgZGVmYXVsdCwgXCJpbmRlcGVuZGVudFwiIG1vZGUuXG4gICAgICAgICAgLy8gV2UgZG9uJ3QgZG8gYW55dGhpbmcgaW4gdGhpcyBtb2RlLlxuICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGRpZFN1c3BlbmRBbHJlYWR5ID0gKHdvcmtJblByb2dyZXNzLmZsYWdzICYgRGlkQ2FwdHVyZSkgIT09IE5vRmxhZ3M7XG4gICAgICAgIHZhciByZW5kZXJlZFRhaWwgPSByZW5kZXJTdGF0ZS5yZW5kZXJpbmc7XG5cbiAgICAgICAgaWYgKHJlbmRlcmVkVGFpbCA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIFdlIGp1c3QgcmVuZGVyZWQgdGhlIGhlYWQuXG4gICAgICAgICAgaWYgKCFkaWRTdXNwZW5kQWxyZWFkeSkge1xuICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgZmlyc3QgcGFzcy4gV2UgbmVlZCB0byBmaWd1cmUgb3V0IGlmIGFueXRoaW5nIGlzIHN0aWxsXG4gICAgICAgICAgICAvLyBzdXNwZW5kZWQgaW4gdGhlIHJlbmRlcmVkIHNldC5cbiAgICAgICAgICAgIC8vIElmIG5ldyBjb250ZW50IHVuc3VzcGVuZGVkLCBidXQgdGhlcmUncyBzdGlsbCBzb21lIGNvbnRlbnQgdGhhdFxuICAgICAgICAgICAgLy8gZGlkbid0LiBUaGVuIHdlIG5lZWQgdG8gZG8gYSBzZWNvbmQgcGFzcyB0aGF0IGZvcmNlcyBldmVyeXRoaW5nXG4gICAgICAgICAgICAvLyB0byBrZWVwIHNob3dpbmcgdGhlaXIgZmFsbGJhY2tzLlxuICAgICAgICAgICAgLy8gV2UgbWlnaHQgYmUgc3VzcGVuZGVkIGlmIHNvbWV0aGluZyBpbiB0aGlzIHJlbmRlciBwYXNzIHN1c3BlbmRlZCwgb3JcbiAgICAgICAgICAgIC8vIHNvbWV0aGluZyBpbiB0aGUgcHJldmlvdXMgY29tbWl0dGVkIHBhc3Mgc3VzcGVuZGVkLiBPdGhlcndpc2UsXG4gICAgICAgICAgICAvLyB0aGVyZSdzIG5vIGNoYW5jZSBzbyB3ZSBjYW4gc2tpcCB0aGUgZXhwZW5zaXZlIGNhbGwgdG9cbiAgICAgICAgICAgIC8vIGZpbmRGaXJzdFN1c3BlbmRlZC5cbiAgICAgICAgICAgIHZhciBjYW5ub3RCZVN1c3BlbmRlZCA9IHJlbmRlckhhc05vdFN1c3BlbmRlZFlldCgpICYmIChjdXJyZW50ID09PSBudWxsIHx8IChjdXJyZW50LmZsYWdzICYgRGlkQ2FwdHVyZSkgPT09IE5vRmxhZ3MpO1xuXG4gICAgICAgICAgICBpZiAoIWNhbm5vdEJlU3VzcGVuZGVkKSB7XG4gICAgICAgICAgICAgIHZhciByb3cgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcblxuICAgICAgICAgICAgICB3aGlsZSAocm93ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdmFyIHN1c3BlbmRlZCA9IGZpbmRGaXJzdFN1c3BlbmRlZChyb3cpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHN1c3BlbmRlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgZGlkU3VzcGVuZEFscmVhZHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTtcbiAgICAgICAgICAgICAgICAgIGN1dE9mZlRhaWxJZk5lZWRlZChyZW5kZXJTdGF0ZSwgZmFsc2UpOyAvLyBJZiB0aGlzIGlzIGEgbmV3bHkgc3VzcGVuZGVkIHRyZWUsIGl0IG1pZ2h0IG5vdCBnZXQgY29tbWl0dGVkIGFzXG4gICAgICAgICAgICAgICAgICAvLyBwYXJ0IG9mIHRoZSBzZWNvbmQgcGFzcy4gSW4gdGhhdCBjYXNlIG5vdGhpbmcgd2lsbCBzdWJzY3JpYmUgdG9cbiAgICAgICAgICAgICAgICAgIC8vIGl0cyB0aGVuYWJsZXMuIEluc3RlYWQsIHdlJ2xsIHRyYW5zZmVyIGl0cyB0aGVuYWJsZXMgdG8gdGhlXG4gICAgICAgICAgICAgICAgICAvLyBTdXNwZW5zZUxpc3Qgc28gdGhhdCBpdCBjYW4gcmV0cnkgaWYgdGhleSByZXNvbHZlLlxuICAgICAgICAgICAgICAgICAgLy8gVGhlcmUgbWlnaHQgYmUgbXVsdGlwbGUgb2YgdGhlc2UgaW4gdGhlIGxpc3QgYnV0IHNpbmNlIHdlJ3JlXG4gICAgICAgICAgICAgICAgICAvLyBnb2luZyB0byB3YWl0IGZvciBhbGwgb2YgdGhlbSBhbnl3YXksIGl0IGRvZXNuJ3QgcmVhbGx5IG1hdHRlclxuICAgICAgICAgICAgICAgICAgLy8gd2hpY2ggb25lcyBnZXRzIHRvIHBpbmcuIEluIHRoZW9yeSB3ZSBjb3VsZCBnZXQgY2xldmVyIGFuZCBrZWVwXG4gICAgICAgICAgICAgICAgICAvLyB0cmFjayBvZiBob3cgbWFueSBkZXBlbmRlbmNpZXMgcmVtYWluIGJ1dCBpdCBnZXRzIHRyaWNreSBiZWNhdXNlXG4gICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgbWVhbnRpbWUsIHdlIGNhbiBhZGQvcmVtb3ZlL2NoYW5nZSBpdGVtcyBhbmQgZGVwZW5kZW5jaWVzLlxuICAgICAgICAgICAgICAgICAgLy8gV2UgbWlnaHQgYmFpbCBvdXQgb2YgdGhlIGxvb3AgYmVmb3JlIGZpbmRpbmcgYW55IGJ1dCB0aGF0XG4gICAgICAgICAgICAgICAgICAvLyBkb2Vzbid0IG1hdHRlciBzaW5jZSB0aGF0IG1lYW5zIHRoYXQgdGhlIG90aGVyIGJvdW5kYXJpZXMgdGhhdFxuICAgICAgICAgICAgICAgICAgLy8gd2UgZGlkIGZpbmQgYWxyZWFkeSBoYXMgdGhlaXIgbGlzdGVuZXJzIGF0dGFjaGVkLlxuXG4gICAgICAgICAgICAgICAgICB2YXIgbmV3VGhlbmFibGVzID0gc3VzcGVuZGVkLnVwZGF0ZVF1ZXVlO1xuXG4gICAgICAgICAgICAgICAgICBpZiAobmV3VGhlbmFibGVzICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gbmV3VGhlbmFibGVzO1xuICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBVcGRhdGU7XG4gICAgICAgICAgICAgICAgICB9IC8vIFJlcmVuZGVyIHRoZSB3aG9sZSBsaXN0LCBidXQgdGhpcyB0aW1lLCB3ZSdsbCBmb3JjZSBmYWxsYmFja3NcbiAgICAgICAgICAgICAgICAgIC8vIHRvIHN0YXkgaW4gcGxhY2UuXG4gICAgICAgICAgICAgICAgICAvLyBSZXNldCB0aGUgZWZmZWN0IGZsYWdzIGJlZm9yZSBkb2luZyB0aGUgc2Vjb25kIHBhc3Mgc2luY2UgdGhhdCdzIG5vdyBpbnZhbGlkLlxuICAgICAgICAgICAgICAgICAgLy8gUmVzZXQgdGhlIGNoaWxkIGZpYmVycyB0byB0aGVpciBvcmlnaW5hbCBzdGF0ZS5cblxuXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5zdWJ0cmVlRmxhZ3MgPSBOb0ZsYWdzO1xuICAgICAgICAgICAgICAgICAgcmVzZXRDaGlsZEZpYmVycyh3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpOyAvLyBTZXQgdXAgdGhlIFN1c3BlbnNlIENvbnRleHQgdG8gZm9yY2Ugc3VzcGVuc2UgYW5kIGltbWVkaWF0ZWx5XG4gICAgICAgICAgICAgICAgICAvLyByZXJlbmRlciB0aGUgY2hpbGRyZW4uXG5cbiAgICAgICAgICAgICAgICAgIHB1c2hTdXNwZW5zZUNvbnRleHQod29ya0luUHJvZ3Jlc3MsIHNldFNoYWxsb3dTdXNwZW5zZUNvbnRleHQoc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50LCBGb3JjZVN1c3BlbnNlRmFsbGJhY2spKTsgLy8gRG9uJ3QgYnViYmxlIHByb3BlcnRpZXMgaW4gdGhpcyBjYXNlLlxuXG4gICAgICAgICAgICAgICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcm93ID0gcm93LnNpYmxpbmc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlbmRlclN0YXRlLnRhaWwgIT09IG51bGwgJiYgbm93KCkgPiBnZXRSZW5kZXJUYXJnZXRUaW1lKCkpIHtcbiAgICAgICAgICAgICAgLy8gV2UgaGF2ZSBhbHJlYWR5IHBhc3NlZCBvdXIgQ1BVIGRlYWRsaW5lIGJ1dCB3ZSBzdGlsbCBoYXZlIHJvd3NcbiAgICAgICAgICAgICAgLy8gbGVmdCBpbiB0aGUgdGFpbC4gV2UnbGwganVzdCBnaXZlIHVwIGZ1cnRoZXIgYXR0ZW1wdHMgdG8gcmVuZGVyXG4gICAgICAgICAgICAgIC8vIHRoZSBtYWluIGNvbnRlbnQgYW5kIG9ubHkgcmVuZGVyIGZhbGxiYWNrcy5cbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRGlkQ2FwdHVyZTtcbiAgICAgICAgICAgICAgZGlkU3VzcGVuZEFscmVhZHkgPSB0cnVlO1xuICAgICAgICAgICAgICBjdXRPZmZUYWlsSWZOZWVkZWQocmVuZGVyU3RhdGUsIGZhbHNlKTsgLy8gU2luY2Ugbm90aGluZyBhY3R1YWxseSBzdXNwZW5kZWQsIHRoZXJlIHdpbGwgbm90aGluZyB0byBwaW5nIHRoaXNcbiAgICAgICAgICAgICAgLy8gdG8gZ2V0IGl0IHN0YXJ0ZWQgYmFjayB1cCB0byBhdHRlbXB0IHRoZSBuZXh0IGl0ZW0uIFdoaWxlIGluIHRlcm1zXG4gICAgICAgICAgICAgIC8vIG9mIHByaW9yaXR5IHRoaXMgd29yayBoYXMgdGhlIHNhbWUgcHJpb3JpdHkgYXMgdGhpcyBjdXJyZW50IHJlbmRlcixcbiAgICAgICAgICAgICAgLy8gaXQncyBub3QgcGFydCBvZiB0aGUgc2FtZSB0cmFuc2l0aW9uIG9uY2UgdGhlIHRyYW5zaXRpb24gaGFzXG4gICAgICAgICAgICAgIC8vIGNvbW1pdHRlZC4gSWYgaXQncyBzeW5jLCB3ZSBzdGlsbCB3YW50IHRvIHlpZWxkIHNvIHRoYXQgaXQgY2FuIGJlXG4gICAgICAgICAgICAgIC8vIHBhaW50ZWQuIENvbmNlcHR1YWxseSwgdGhpcyBpcyByZWFsbHkgdGhlIHNhbWUgYXMgcGluZ2luZy5cbiAgICAgICAgICAgICAgLy8gV2UgY2FuIHVzZSBhbnkgUmV0cnlMYW5lIGV2ZW4gaWYgaXQncyB0aGUgb25lIGN1cnJlbnRseSByZW5kZXJpbmdcbiAgICAgICAgICAgICAgLy8gc2luY2Ugd2UncmUgbGVhdmluZyBpdCBiZWhpbmQgb24gdGhpcyBub2RlLlxuXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmxhbmVzID0gU29tZVJldHJ5TGFuZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY3V0T2ZmVGFpbElmTmVlZGVkKHJlbmRlclN0YXRlLCBmYWxzZSk7XG4gICAgICAgICAgfSAvLyBOZXh0IHdlJ3JlIGdvaW5nIHRvIHJlbmRlciB0aGUgdGFpbC5cblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEFwcGVuZCB0aGUgcmVuZGVyZWQgcm93IHRvIHRoZSBjaGlsZCBsaXN0LlxuICAgICAgICAgIGlmICghZGlkU3VzcGVuZEFscmVhZHkpIHtcbiAgICAgICAgICAgIHZhciBfc3VzcGVuZGVkID0gZmluZEZpcnN0U3VzcGVuZGVkKHJlbmRlcmVkVGFpbCk7XG5cbiAgICAgICAgICAgIGlmIChfc3VzcGVuZGVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IERpZENhcHR1cmU7XG4gICAgICAgICAgICAgIGRpZFN1c3BlbmRBbHJlYWR5ID0gdHJ1ZTsgLy8gRW5zdXJlIHdlIHRyYW5zZmVyIHRoZSB1cGRhdGUgcXVldWUgdG8gdGhlIHBhcmVudCBzbyB0aGF0IGl0IGRvZXNuJ3RcbiAgICAgICAgICAgICAgLy8gZ2V0IGxvc3QgaWYgdGhpcyByb3cgZW5kcyB1cCBkcm9wcGVkIGR1cmluZyBhIHNlY29uZCBwYXNzLlxuXG4gICAgICAgICAgICAgIHZhciBfbmV3VGhlbmFibGVzID0gX3N1c3BlbmRlZC51cGRhdGVRdWV1ZTtcblxuICAgICAgICAgICAgICBpZiAoX25ld1RoZW5hYmxlcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gX25ld1RoZW5hYmxlcztcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBVcGRhdGU7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjdXRPZmZUYWlsSWZOZWVkZWQocmVuZGVyU3RhdGUsIHRydWUpOyAvLyBUaGlzIG1pZ2h0IGhhdmUgYmVlbiBtb2RpZmllZC5cblxuICAgICAgICAgICAgICBpZiAocmVuZGVyU3RhdGUudGFpbCA9PT0gbnVsbCAmJiByZW5kZXJTdGF0ZS50YWlsTW9kZSA9PT0gJ2hpZGRlbicgJiYgIXJlbmRlcmVkVGFpbC5hbHRlcm5hdGUgJiYgIWdldElzSHlkcmF0aW5nKCkgLy8gV2UgZG9uJ3QgY3V0IGl0IGlmIHdlJ3JlIGh5ZHJhdGluZy5cbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAvLyBXZSdyZSBkb25lLlxuICAgICAgICAgICAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCAvLyBUaGUgdGltZSBpdCB0b29rIHRvIHJlbmRlciBsYXN0IHJvdyBpcyBncmVhdGVyIHRoYW4gdGhlIHJlbWFpbmluZ1xuICAgICAgICAgICAgLy8gdGltZSB3ZSBoYXZlIHRvIHJlbmRlci4gU28gcmVuZGVyaW5nIG9uZSBtb3JlIHJvdyB3b3VsZCBsaWtlbHlcbiAgICAgICAgICAgIC8vIGV4Y2VlZCBpdC5cbiAgICAgICAgICAgIG5vdygpICogMiAtIHJlbmRlclN0YXRlLnJlbmRlcmluZ1N0YXJ0VGltZSA+IGdldFJlbmRlclRhcmdldFRpbWUoKSAmJiByZW5kZXJMYW5lcyAhPT0gT2Zmc2NyZWVuTGFuZSkge1xuICAgICAgICAgICAgICAvLyBXZSBoYXZlIG5vdyBwYXNzZWQgb3VyIENQVSBkZWFkbGluZSBhbmQgd2UnbGwganVzdCBnaXZlIHVwIGZ1cnRoZXJcbiAgICAgICAgICAgICAgLy8gYXR0ZW1wdHMgdG8gcmVuZGVyIHRoZSBtYWluIGNvbnRlbnQgYW5kIG9ubHkgcmVuZGVyIGZhbGxiYWNrcy5cbiAgICAgICAgICAgICAgLy8gVGhlIGFzc3VtcHRpb24gaXMgdGhhdCB0aGlzIGlzIHVzdWFsbHkgZmFzdGVyLlxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBEaWRDYXB0dXJlO1xuICAgICAgICAgICAgICBkaWRTdXNwZW5kQWxyZWFkeSA9IHRydWU7XG4gICAgICAgICAgICAgIGN1dE9mZlRhaWxJZk5lZWRlZChyZW5kZXJTdGF0ZSwgZmFsc2UpOyAvLyBTaW5jZSBub3RoaW5nIGFjdHVhbGx5IHN1c3BlbmRlZCwgdGhlcmUgd2lsbCBub3RoaW5nIHRvIHBpbmcgdGhpc1xuICAgICAgICAgICAgICAvLyB0byBnZXQgaXQgc3RhcnRlZCBiYWNrIHVwIHRvIGF0dGVtcHQgdGhlIG5leHQgaXRlbS4gV2hpbGUgaW4gdGVybXNcbiAgICAgICAgICAgICAgLy8gb2YgcHJpb3JpdHkgdGhpcyB3b3JrIGhhcyB0aGUgc2FtZSBwcmlvcml0eSBhcyB0aGlzIGN1cnJlbnQgcmVuZGVyLFxuICAgICAgICAgICAgICAvLyBpdCdzIG5vdCBwYXJ0IG9mIHRoZSBzYW1lIHRyYW5zaXRpb24gb25jZSB0aGUgdHJhbnNpdGlvbiBoYXNcbiAgICAgICAgICAgICAgLy8gY29tbWl0dGVkLiBJZiBpdCdzIHN5bmMsIHdlIHN0aWxsIHdhbnQgdG8geWllbGQgc28gdGhhdCBpdCBjYW4gYmVcbiAgICAgICAgICAgICAgLy8gcGFpbnRlZC4gQ29uY2VwdHVhbGx5LCB0aGlzIGlzIHJlYWxseSB0aGUgc2FtZSBhcyBwaW5naW5nLlxuICAgICAgICAgICAgICAvLyBXZSBjYW4gdXNlIGFueSBSZXRyeUxhbmUgZXZlbiBpZiBpdCdzIHRoZSBvbmUgY3VycmVudGx5IHJlbmRlcmluZ1xuICAgICAgICAgICAgICAvLyBzaW5jZSB3ZSdyZSBsZWF2aW5nIGl0IGJlaGluZCBvbiB0aGlzIG5vZGUuXG5cbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBTb21lUmV0cnlMYW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChyZW5kZXJTdGF0ZS5pc0JhY2t3YXJkcykge1xuICAgICAgICAgICAgLy8gVGhlIGVmZmVjdCBsaXN0IG9mIHRoZSBiYWNrd2FyZHMgdGFpbCB3aWxsIGhhdmUgYmVlbiBhZGRlZFxuICAgICAgICAgICAgLy8gdG8gdGhlIGVuZC4gVGhpcyBicmVha3MgdGhlIGd1YXJhbnRlZSB0aGF0IGxpZmUtY3ljbGVzIGZpcmUgaW5cbiAgICAgICAgICAgIC8vIHNpYmxpbmcgb3JkZXIgYnV0IHRoYXQgaXNuJ3QgYSBzdHJvbmcgZ3VhcmFudGVlIHByb21pc2VkIGJ5IFJlYWN0LlxuICAgICAgICAgICAgLy8gRXNwZWNpYWxseSBzaW5jZSB0aGVzZSBtaWdodCBhbHNvIGp1c3QgcG9wIGluIGR1cmluZyBmdXR1cmUgY29tbWl0cy5cbiAgICAgICAgICAgIC8vIEFwcGVuZCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0LlxuICAgICAgICAgICAgcmVuZGVyZWRUYWlsLnNpYmxpbmcgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmNoaWxkID0gcmVuZGVyZWRUYWlsO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgcHJldmlvdXNTaWJsaW5nID0gcmVuZGVyU3RhdGUubGFzdDtcblxuICAgICAgICAgICAgaWYgKHByZXZpb3VzU2libGluZyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBwcmV2aW91c1NpYmxpbmcuc2libGluZyA9IHJlbmRlcmVkVGFpbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmNoaWxkID0gcmVuZGVyZWRUYWlsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZW5kZXJTdGF0ZS5sYXN0ID0gcmVuZGVyZWRUYWlsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZW5kZXJTdGF0ZS50YWlsICE9PSBudWxsKSB7XG4gICAgICAgICAgLy8gV2Ugc3RpbGwgaGF2ZSB0YWlsIHJvd3MgdG8gcmVuZGVyLlxuICAgICAgICAgIC8vIFBvcCBhIHJvdy5cbiAgICAgICAgICB2YXIgbmV4dCA9IHJlbmRlclN0YXRlLnRhaWw7XG4gICAgICAgICAgcmVuZGVyU3RhdGUucmVuZGVyaW5nID0gbmV4dDtcbiAgICAgICAgICByZW5kZXJTdGF0ZS50YWlsID0gbmV4dC5zaWJsaW5nO1xuICAgICAgICAgIHJlbmRlclN0YXRlLnJlbmRlcmluZ1N0YXJ0VGltZSA9IG5vdygpO1xuICAgICAgICAgIG5leHQuc2libGluZyA9IG51bGw7IC8vIFJlc3RvcmUgdGhlIGNvbnRleHQuXG4gICAgICAgICAgLy8gVE9ETzogV2UgY2FuIHByb2JhYmx5IGp1c3QgYXZvaWQgcG9wcGluZyBpdCBpbnN0ZWFkIGFuZCBvbmx5XG4gICAgICAgICAgLy8gc2V0dGluZyBpdCB0aGUgZmlyc3QgdGltZSB3ZSBnbyBmcm9tIG5vdCBzdXNwZW5kZWQgdG8gc3VzcGVuZGVkLlxuXG4gICAgICAgICAgdmFyIHN1c3BlbnNlQ29udGV4dCA9IHN1c3BlbnNlU3RhY2tDdXJzb3IuY3VycmVudDtcblxuICAgICAgICAgIGlmIChkaWRTdXNwZW5kQWxyZWFkeSkge1xuICAgICAgICAgICAgc3VzcGVuc2VDb250ZXh0ID0gc2V0U2hhbGxvd1N1c3BlbnNlQ29udGV4dChzdXNwZW5zZUNvbnRleHQsIEZvcmNlU3VzcGVuc2VGYWxsYmFjayk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1c3BlbnNlQ29udGV4dCA9IHNldERlZmF1bHRTaGFsbG93U3VzcGVuc2VDb250ZXh0KHN1c3BlbnNlQ29udGV4dCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcHVzaFN1c3BlbnNlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgc3VzcGVuc2VDb250ZXh0KTsgLy8gRG8gYSBwYXNzIG92ZXIgdGhlIG5leHQgcm93LlxuICAgICAgICAgIC8vIERvbid0IGJ1YmJsZSBwcm9wZXJ0aWVzIGluIHRoaXMgY2FzZS5cblxuICAgICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBTY29wZUNvbXBvbmVudDpcbiAgICAgIHtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGNhc2UgT2Zmc2NyZWVuQ29tcG9uZW50OlxuICAgIGNhc2UgTGVnYWN5SGlkZGVuQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICBwb3BSZW5kZXJMYW5lcyh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIHZhciBfbmV4dFN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgdmFyIG5leHRJc0hpZGRlbiA9IF9uZXh0U3RhdGUgIT09IG51bGw7XG5cbiAgICAgICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICB2YXIgX3ByZXZTdGF0ZSA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgICB2YXIgcHJldklzSGlkZGVuID0gX3ByZXZTdGF0ZSAhPT0gbnVsbDtcblxuICAgICAgICAgIGlmIChwcmV2SXNIaWRkZW4gIT09IG5leHRJc0hpZGRlbiAmJiAoIC8vIExlZ2FjeUhpZGRlbiBkb2Vzbid0IGRvIGFueSBoaWRpbmcg4oCUIGl0IG9ubHkgcHJlLXJlbmRlcnMuXG4gICAgICAgICAgIWVuYWJsZUxlZ2FjeUhpZGRlbiApKSB7XG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBWaXNpYmlsaXR5O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbmV4dElzSGlkZGVuIHx8ICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgQ29uY3VycmVudE1vZGUpID09PSBOb01vZGUpIHtcbiAgICAgICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBEb24ndCBidWJibGUgcHJvcGVydGllcyBmb3IgaGlkZGVuIGNoaWxkcmVuIHVubGVzcyB3ZSdyZSByZW5kZXJpbmdcbiAgICAgICAgICAvLyBhdCBvZmZzY3JlZW4gcHJpb3JpdHkuXG4gICAgICAgICAgaWYgKGluY2x1ZGVzU29tZUxhbmUoc3VidHJlZVJlbmRlckxhbmVzLCBPZmZzY3JlZW5MYW5lKSkge1xuICAgICAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyk7XG5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUgd2FzIGFuIGluc2VydGlvbiBvciB1cGRhdGUgaW4gdGhlIGhpZGRlbiBzdWJ0cmVlLlxuICAgICAgICAgICAgICAvLyBJZiBzbywgd2UgbmVlZCB0byBoaWRlIHRob3NlIG5vZGVzIGluIHRoZSBjb21taXQgcGhhc2UsIHNvXG4gICAgICAgICAgICAgIC8vIHNjaGVkdWxlIGEgdmlzaWJpbGl0eSBlZmZlY3QuXG4gICAgICAgICAgICAgIGlmICggd29ya0luUHJvZ3Jlc3Muc3VidHJlZUZsYWdzICYgKFBsYWNlbWVudCB8IFVwZGF0ZSkpIHtcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSBWaXNpYmlsaXR5O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBDYWNoZUNvbXBvbmVudDpcbiAgICAgIHtcblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgIGNhc2UgVHJhY2luZ01hcmtlckNvbXBvbmVudDpcbiAgICAgIHtcblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gdW5pdCBvZiB3b3JrIHRhZyAoXCIgKyB3b3JrSW5Qcm9ncmVzcy50YWcgKyBcIikuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBcIiArICdSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG59XG5cbmZ1bmN0aW9uIHVud2luZFdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gIC8vIE5vdGU6IFRoaXMgaW50ZW50aW9uYWxseSBkb2Vzbid0IGNoZWNrIGlmIHdlJ3JlIGh5ZHJhdGluZyBiZWNhdXNlIGNvbXBhcmluZ1xuICAvLyB0byB0aGUgY3VycmVudCB0cmVlIHByb3ZpZGVyIGZpYmVyIGlzIGp1c3QgYXMgZmFzdCBhbmQgbGVzcyBlcnJvci1wcm9uZS5cbiAgLy8gSWRlYWxseSB3ZSB3b3VsZCBoYXZlIGEgc3BlY2lhbCB2ZXJzaW9uIG9mIHRoZSB3b3JrIGxvb3Agb25seVxuICAvLyBmb3IgaHlkcmF0aW9uLlxuICBwb3BUcmVlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG5cbiAgc3dpdGNoICh3b3JrSW5Qcm9ncmVzcy50YWcpIHtcbiAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICB2YXIgQ29tcG9uZW50ID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcblxuICAgICAgICBpZiAoaXNDb250ZXh0UHJvdmlkZXIoQ29tcG9uZW50KSkge1xuICAgICAgICAgIHBvcENvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGZsYWdzID0gd29ya0luUHJvZ3Jlc3MuZmxhZ3M7XG5cbiAgICAgICAgaWYgKGZsYWdzICYgU2hvdWxkQ2FwdHVyZSkge1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzID0gZmxhZ3MgJiB+U2hvdWxkQ2FwdHVyZSB8IERpZENhcHR1cmU7XG5cbiAgICAgICAgICBpZiAoICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgICAgIHRyYW5zZmVyQWN0dWFsRHVyYXRpb24od29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgIHtcbiAgICAgICAgdmFyIHJvb3QgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgICAgIHBvcEhvc3RDb250YWluZXIod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICBwb3BUb3BMZXZlbENvbnRleHRPYmplY3Qod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICByZXNldFdvcmtJblByb2dyZXNzVmVyc2lvbnMoKTtcbiAgICAgICAgdmFyIF9mbGFncyA9IHdvcmtJblByb2dyZXNzLmZsYWdzO1xuXG4gICAgICAgIGlmICgoX2ZsYWdzICYgU2hvdWxkQ2FwdHVyZSkgIT09IE5vRmxhZ3MgJiYgKF9mbGFncyAmIERpZENhcHR1cmUpID09PSBOb0ZsYWdzKSB7XG4gICAgICAgICAgLy8gVGhlcmUgd2FzIGFuIGVycm9yIGR1cmluZyByZW5kZXIgdGhhdCB3YXNuJ3QgY2FwdHVyZWQgYnkgYSBzdXNwZW5zZVxuICAgICAgICAgIC8vIGJvdW5kYXJ5LiBEbyBhIHNlY29uZCBwYXNzIG9uIHRoZSByb290IHRvIHVubW91bnQgdGhlIGNoaWxkcmVuLlxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzID0gX2ZsYWdzICYgflNob3VsZENhcHR1cmUgfCBEaWRDYXB0dXJlO1xuICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgfSAvLyBXZSB1bndvdW5kIHRvIHRoZSByb290IHdpdGhvdXQgY29tcGxldGluZyBpdC4gRXhpdC5cblxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAge1xuICAgICAgICAvLyBUT0RPOiBwb3BIeWRyYXRpb25TdGF0ZVxuICAgICAgICBwb3BIb3N0Q29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgY2FzZSBTdXNwZW5zZUNvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgcG9wU3VzcGVuc2VDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgdmFyIHN1c3BlbnNlU3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuXG4gICAgICAgIGlmIChzdXNwZW5zZVN0YXRlICE9PSBudWxsICYmIHN1c3BlbnNlU3RhdGUuZGVoeWRyYXRlZCAhPT0gbnVsbCkge1xuICAgICAgICAgIGlmICh3b3JrSW5Qcm9ncmVzcy5hbHRlcm5hdGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGhyZXcgaW4gbmV3bHkgbW91bnRlZCBkZWh5ZHJhdGVkIGNvbXBvbmVudC4gVGhpcyBpcyBsaWtlbHkgYSBidWcgaW4gJyArICdSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmVzZXRIeWRyYXRpb25TdGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIF9mbGFnczIgPSB3b3JrSW5Qcm9ncmVzcy5mbGFncztcblxuICAgICAgICBpZiAoX2ZsYWdzMiAmIFNob3VsZENhcHR1cmUpIHtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyA9IF9mbGFnczIgJiB+U2hvdWxkQ2FwdHVyZSB8IERpZENhcHR1cmU7IC8vIENhcHR1cmVkIGEgc3VzcGVuc2UgZWZmZWN0LiBSZS1yZW5kZXIgdGhlIGJvdW5kYXJ5LlxuXG4gICAgICAgICAgaWYgKCAod29ya0luUHJvZ3Jlc3MubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlKSB7XG4gICAgICAgICAgICB0cmFuc2ZlckFjdHVhbER1cmF0aW9uKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3M7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgIGNhc2UgU3VzcGVuc2VMaXN0Q29tcG9uZW50OlxuICAgICAge1xuICAgICAgICBwb3BTdXNwZW5zZUNvbnRleHQod29ya0luUHJvZ3Jlc3MpOyAvLyBTdXNwZW5zZUxpc3QgZG9lc24ndCBhY3R1YWxseSBjYXRjaCBhbnl0aGluZy4gSXQgc2hvdWxkJ3ZlIGJlZW5cbiAgICAgICAgLy8gY2F1Z2h0IGJ5IGEgbmVzdGVkIGJvdW5kYXJ5LiBJZiBub3QsIGl0IHNob3VsZCBidWJibGUgdGhyb3VnaC5cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFBvcnRhbDpcbiAgICAgIHBvcEhvc3RDb250YWluZXIod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICBjYXNlIENvbnRleHRQcm92aWRlcjpcbiAgICAgIHZhciBjb250ZXh0ID0gd29ya0luUHJvZ3Jlc3MudHlwZS5fY29udGV4dDtcbiAgICAgIHBvcFByb3ZpZGVyKGNvbnRleHQsIHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHJldHVybiBudWxsO1xuXG4gICAgY2FzZSBPZmZzY3JlZW5Db21wb25lbnQ6XG4gICAgY2FzZSBMZWdhY3lIaWRkZW5Db21wb25lbnQ6XG4gICAgICBwb3BSZW5kZXJMYW5lcyh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICByZXR1cm4gbnVsbDtcblxuICAgIGNhc2UgQ2FjaGVDb21wb25lbnQ6XG5cbiAgICAgIHJldHVybiBudWxsO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIHVud2luZEludGVycnVwdGVkV29yayhjdXJyZW50LCBpbnRlcnJ1cHRlZFdvcmssIHJlbmRlckxhbmVzKSB7XG4gIC8vIE5vdGU6IFRoaXMgaW50ZW50aW9uYWxseSBkb2Vzbid0IGNoZWNrIGlmIHdlJ3JlIGh5ZHJhdGluZyBiZWNhdXNlIGNvbXBhcmluZ1xuICAvLyB0byB0aGUgY3VycmVudCB0cmVlIHByb3ZpZGVyIGZpYmVyIGlzIGp1c3QgYXMgZmFzdCBhbmQgbGVzcyBlcnJvci1wcm9uZS5cbiAgLy8gSWRlYWxseSB3ZSB3b3VsZCBoYXZlIGEgc3BlY2lhbCB2ZXJzaW9uIG9mIHRoZSB3b3JrIGxvb3Agb25seVxuICAvLyBmb3IgaHlkcmF0aW9uLlxuICBwb3BUcmVlQ29udGV4dChpbnRlcnJ1cHRlZFdvcmspO1xuXG4gIHN3aXRjaCAoaW50ZXJydXB0ZWRXb3JrLnRhZykge1xuICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciBjaGlsZENvbnRleHRUeXBlcyA9IGludGVycnVwdGVkV29yay50eXBlLmNoaWxkQ29udGV4dFR5cGVzO1xuXG4gICAgICAgIGlmIChjaGlsZENvbnRleHRUeXBlcyAhPT0gbnVsbCAmJiBjaGlsZENvbnRleHRUeXBlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcG9wQ29udGV4dChpbnRlcnJ1cHRlZFdvcmspO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIEhvc3RSb290OlxuICAgICAge1xuICAgICAgICB2YXIgcm9vdCA9IGludGVycnVwdGVkV29yay5zdGF0ZU5vZGU7XG4gICAgICAgIHBvcEhvc3RDb250YWluZXIoaW50ZXJydXB0ZWRXb3JrKTtcbiAgICAgICAgcG9wVG9wTGV2ZWxDb250ZXh0T2JqZWN0KGludGVycnVwdGVkV29yayk7XG4gICAgICAgIHJlc2V0V29ya0luUHJvZ3Jlc3NWZXJzaW9ucygpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgcG9wSG9zdENvbnRleHQoaW50ZXJydXB0ZWRXb3JrKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIEhvc3RQb3J0YWw6XG4gICAgICBwb3BIb3N0Q29udGFpbmVyKGludGVycnVwdGVkV29yayk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICBwb3BTdXNwZW5zZUNvbnRleHQoaW50ZXJydXB0ZWRXb3JrKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBTdXNwZW5zZUxpc3RDb21wb25lbnQ6XG4gICAgICBwb3BTdXNwZW5zZUNvbnRleHQoaW50ZXJydXB0ZWRXb3JrKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBDb250ZXh0UHJvdmlkZXI6XG4gICAgICB2YXIgY29udGV4dCA9IGludGVycnVwdGVkV29yay50eXBlLl9jb250ZXh0O1xuICAgICAgcG9wUHJvdmlkZXIoY29udGV4dCwgaW50ZXJydXB0ZWRXb3JrKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBPZmZzY3JlZW5Db21wb25lbnQ6XG4gICAgY2FzZSBMZWdhY3lIaWRkZW5Db21wb25lbnQ6XG4gICAgICBwb3BSZW5kZXJMYW5lcyhpbnRlcnJ1cHRlZFdvcmspO1xuICAgICAgYnJlYWs7XG4gIH1cbn1cblxudmFyIGRpZFdhcm5BYm91dFVuZGVmaW5lZFNuYXBzaG90QmVmb3JlVXBkYXRlID0gbnVsbDtcblxue1xuICBkaWRXYXJuQWJvdXRVbmRlZmluZWRTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9IG5ldyBTZXQoKTtcbn0gLy8gVXNlZCBkdXJpbmcgdGhlIGNvbW1pdCBwaGFzZSB0byB0cmFjayB0aGUgc3RhdGUgb2YgdGhlIE9mZnNjcmVlbiBjb21wb25lbnQgc3RhY2suXG4vLyBBbGxvd3MgdXMgdG8gYXZvaWQgdHJhdmVyc2luZyB0aGUgcmV0dXJuIHBhdGggdG8gZmluZCB0aGUgbmVhcmVzdCBPZmZzY3JlZW4gYW5jZXN0b3IuXG4vLyBPbmx5IHVzZWQgd2hlbiBlbmFibGVTdXNwZW5zZUxheW91dEVmZmVjdFNlbWFudGljcyBpcyBlbmFibGVkLlxuXG5cbnZhciBvZmZzY3JlZW5TdWJ0cmVlSXNIaWRkZW4gPSBmYWxzZTtcbnZhciBvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuID0gZmFsc2U7XG52YXIgUG9zc2libHlXZWFrU2V0ID0gdHlwZW9mIFdlYWtTZXQgPT09ICdmdW5jdGlvbicgPyBXZWFrU2V0IDogU2V0O1xudmFyIG5leHRFZmZlY3QgPSBudWxsOyAvLyBVc2VkIGZvciBQcm9maWxpbmcgYnVpbGRzIHRvIHRyYWNrIHVwZGF0ZXJzLlxuXG52YXIgaW5Qcm9ncmVzc0xhbmVzID0gbnVsbDtcbnZhciBpblByb2dyZXNzUm9vdCA9IG51bGw7XG5mdW5jdGlvbiByZXBvcnRVbmNhdWdodEVycm9ySW5ERVYoZXJyb3IpIHtcbiAgLy8gV3JhcHBpbmcgZWFjaCBzbWFsbCBwYXJ0IG9mIHRoZSBjb21taXQgcGhhc2UgaW50byBhIGd1YXJkZWRcbiAgLy8gY2FsbGJhY2sgaXMgYSBiaXQgdG9vIHNsb3cgKGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9wdWxsLzIxNjY2KS5cbiAgLy8gQnV0IHdlIHJlbHkgb24gaXQgdG8gc3VyZmFjZSBlcnJvcnMgdG8gREVWIHRvb2xzIGxpa2Ugb3ZlcmxheXNcbiAgLy8gKGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMjE3MTIpLlxuICAvLyBBcyBhIGNvbXByb21pc2UsIHJldGhyb3cgb25seSBjYXVnaHQgZXJyb3JzIGluIGEgZ3VhcmQuXG4gIHtcbiAgICBpbnZva2VHdWFyZGVkQ2FsbGJhY2sobnVsbCwgZnVuY3Rpb24gKCkge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG4gICAgY2xlYXJDYXVnaHRFcnJvcigpO1xuICB9XG59XG5cbnZhciBjYWxsQ29tcG9uZW50V2lsbFVubW91bnRXaXRoVGltZXIgPSBmdW5jdGlvbiAoY3VycmVudCwgaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucHJvcHMgPSBjdXJyZW50Lm1lbW9pemVkUHJvcHM7XG4gIGluc3RhbmNlLnN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlO1xuXG4gIGlmICggY3VycmVudC5tb2RlICYgUHJvZmlsZU1vZGUpIHtcbiAgICB0cnkge1xuICAgICAgc3RhcnRMYXlvdXRFZmZlY3RUaW1lcigpO1xuICAgICAgaW5zdGFuY2UuY29tcG9uZW50V2lsbFVubW91bnQoKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgcmVjb3JkTGF5b3V0RWZmZWN0RHVyYXRpb24oY3VycmVudCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVbm1vdW50KCk7XG4gIH1cbn07IC8vIENhcHR1cmUgZXJyb3JzIHNvIHRoZXkgZG9uJ3QgaW50ZXJydXB0IG1vdW50aW5nLlxuXG5cbmZ1bmN0aW9uIHNhZmVseUNhbGxDb21taXRIb29rTGF5b3V0RWZmZWN0TGlzdE1vdW50KGN1cnJlbnQsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IpIHtcbiAgdHJ5IHtcbiAgICBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KExheW91dCwgY3VycmVudCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZXJyb3IpO1xuICB9XG59IC8vIENhcHR1cmUgZXJyb3JzIHNvIHRoZXkgZG9uJ3QgaW50ZXJydXB0IHVubW91bnRpbmcuXG5cblxuZnVuY3Rpb24gc2FmZWx5Q2FsbENvbXBvbmVudFdpbGxVbm1vdW50KGN1cnJlbnQsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGluc3RhbmNlKSB7XG4gIHRyeSB7XG4gICAgY2FsbENvbXBvbmVudFdpbGxVbm1vdW50V2l0aFRpbWVyKGN1cnJlbnQsIGluc3RhbmNlKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihjdXJyZW50LCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLCBlcnJvcik7XG4gIH1cbn0gLy8gQ2FwdHVyZSBlcnJvcnMgc28gdGhleSBkb24ndCBpbnRlcnJ1cHQgbW91bnRpbmcuXG5cblxuZnVuY3Rpb24gc2FmZWx5Q2FsbENvbXBvbmVudERpZE1vdW50KGN1cnJlbnQsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGluc3RhbmNlKSB7XG4gIHRyeSB7XG4gICAgaW5zdGFuY2UuY29tcG9uZW50RGlkTW91bnQoKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihjdXJyZW50LCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLCBlcnJvcik7XG4gIH1cbn0gLy8gQ2FwdHVyZSBlcnJvcnMgc28gdGhleSBkb24ndCBpbnRlcnJ1cHQgbW91bnRpbmcuXG5cblxuZnVuY3Rpb24gc2FmZWx5QXR0YWNoUmVmKGN1cnJlbnQsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IpIHtcbiAgdHJ5IHtcbiAgICBjb21taXRBdHRhY2hSZWYoY3VycmVudCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZXJyb3IpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNhZmVseURldGFjaFJlZihjdXJyZW50LCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yKSB7XG4gIHZhciByZWYgPSBjdXJyZW50LnJlZjtcblxuICBpZiAocmVmICE9PSBudWxsKSB7XG4gICAgaWYgKHR5cGVvZiByZWYgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciByZXRWYWw7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGlmIChlbmFibGVQcm9maWxlclRpbWVyICYmIGVuYWJsZVByb2ZpbGVyQ29tbWl0SG9va3MgJiYgY3VycmVudC5tb2RlICYgUHJvZmlsZU1vZGUpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgc3RhcnRMYXlvdXRFZmZlY3RUaW1lcigpO1xuICAgICAgICAgICAgcmV0VmFsID0gcmVmKG51bGwpO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICByZWNvcmRMYXlvdXRFZmZlY3REdXJhdGlvbihjdXJyZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0VmFsID0gcmVmKG51bGwpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihjdXJyZW50LCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLCBlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIHtcbiAgICAgICAgaWYgKHR5cGVvZiByZXRWYWwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBlcnJvcignVW5leHBlY3RlZCByZXR1cm4gdmFsdWUgZnJvbSBhIGNhbGxiYWNrIHJlZiBpbiAlcy4gJyArICdBIGNhbGxiYWNrIHJlZiBzaG91bGQgbm90IHJldHVybiBhIGZ1bmN0aW9uLicsIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoY3VycmVudCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc2FmZWx5Q2FsbERlc3Ryb3koY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZGVzdHJveSkge1xuICB0cnkge1xuICAgIGRlc3Ryb3koKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihjdXJyZW50LCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLCBlcnJvcik7XG4gIH1cbn1cblxudmFyIGZvY3VzZWRJbnN0YW5jZUhhbmRsZSA9IG51bGw7XG52YXIgc2hvdWxkRmlyZUFmdGVyQWN0aXZlSW5zdGFuY2VCbHVyID0gZmFsc2U7XG5mdW5jdGlvbiBjb21taXRCZWZvcmVNdXRhdGlvbkVmZmVjdHMocm9vdCwgZmlyc3RDaGlsZCkge1xuICBmb2N1c2VkSW5zdGFuY2VIYW5kbGUgPSBwcmVwYXJlRm9yQ29tbWl0KHJvb3QuY29udGFpbmVySW5mbyk7XG4gIG5leHRFZmZlY3QgPSBmaXJzdENoaWxkO1xuICBjb21taXRCZWZvcmVNdXRhdGlvbkVmZmVjdHNfYmVnaW4oKTsgLy8gV2Ugbm8gbG9uZ2VyIG5lZWQgdG8gdHJhY2sgdGhlIGFjdGl2ZSBpbnN0YW5jZSBmaWJlclxuXG4gIHZhciBzaG91bGRGaXJlID0gc2hvdWxkRmlyZUFmdGVyQWN0aXZlSW5zdGFuY2VCbHVyO1xuICBzaG91bGRGaXJlQWZ0ZXJBY3RpdmVJbnN0YW5jZUJsdXIgPSBmYWxzZTtcbiAgZm9jdXNlZEluc3RhbmNlSGFuZGxlID0gbnVsbDtcbiAgcmV0dXJuIHNob3VsZEZpcmU7XG59XG5cbmZ1bmN0aW9uIGNvbW1pdEJlZm9yZU11dGF0aW9uRWZmZWN0c19iZWdpbigpIHtcbiAgd2hpbGUgKG5leHRFZmZlY3QgIT09IG51bGwpIHtcbiAgICB2YXIgZmliZXIgPSBuZXh0RWZmZWN0OyAvLyBUaGlzIHBoYXNlIGlzIG9ubHkgdXNlZCBmb3IgYmVmb3JlQWN0aXZlSW5zdGFuY2VCbHVyLlxuXG4gICAgdmFyIGNoaWxkID0gZmliZXIuY2hpbGQ7XG5cbiAgICBpZiAoKGZpYmVyLnN1YnRyZWVGbGFncyAmIEJlZm9yZU11dGF0aW9uTWFzaykgIT09IE5vRmxhZ3MgJiYgY2hpbGQgIT09IG51bGwpIHtcbiAgICAgIGNoaWxkLnJldHVybiA9IGZpYmVyO1xuICAgICAgbmV4dEVmZmVjdCA9IGNoaWxkO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb21taXRCZWZvcmVNdXRhdGlvbkVmZmVjdHNfY29tcGxldGUoKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0QmVmb3JlTXV0YXRpb25FZmZlY3RzX2NvbXBsZXRlKCkge1xuICB3aGlsZSAobmV4dEVmZmVjdCAhPT0gbnVsbCkge1xuICAgIHZhciBmaWJlciA9IG5leHRFZmZlY3Q7XG4gICAgc2V0Q3VycmVudEZpYmVyKGZpYmVyKTtcblxuICAgIHRyeSB7XG4gICAgICBjb21taXRCZWZvcmVNdXRhdGlvbkVmZmVjdHNPbkZpYmVyKGZpYmVyKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmliZXIsIGZpYmVyLnJldHVybiwgZXJyb3IpO1xuICAgIH1cblxuICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gICAgdmFyIHNpYmxpbmcgPSBmaWJlci5zaWJsaW5nO1xuXG4gICAgaWYgKHNpYmxpbmcgIT09IG51bGwpIHtcbiAgICAgIHNpYmxpbmcucmV0dXJuID0gZmliZXIucmV0dXJuO1xuICAgICAgbmV4dEVmZmVjdCA9IHNpYmxpbmc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbmV4dEVmZmVjdCA9IGZpYmVyLnJldHVybjtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRCZWZvcmVNdXRhdGlvbkVmZmVjdHNPbkZpYmVyKGZpbmlzaGVkV29yaykge1xuICB2YXIgY3VycmVudCA9IGZpbmlzaGVkV29yay5hbHRlcm5hdGU7XG4gIHZhciBmbGFncyA9IGZpbmlzaGVkV29yay5mbGFncztcblxuICBpZiAoKGZsYWdzICYgU25hcHNob3QpICE9PSBOb0ZsYWdzKSB7XG4gICAgc2V0Q3VycmVudEZpYmVyKGZpbmlzaGVkV29yayk7XG5cbiAgICBzd2l0Y2ggKGZpbmlzaGVkV29yay50YWcpIHtcbiAgICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgICBjYXNlIEZvcndhcmRSZWY6XG4gICAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAgICB7XG4gICAgICAgICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBwcmV2UHJvcHMgPSBjdXJyZW50Lm1lbW9pemVkUHJvcHM7XG4gICAgICAgICAgICB2YXIgcHJldlN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlO1xuICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTsgLy8gV2UgY291bGQgdXBkYXRlIGluc3RhbmNlIHByb3BzIGFuZCBzdGF0ZSBoZXJlLFxuICAgICAgICAgICAgLy8gYnV0IGluc3RlYWQgd2UgcmVseSBvbiB0aGVtIGJlaW5nIHNldCBkdXJpbmcgbGFzdCByZW5kZXIuXG4gICAgICAgICAgICAvLyBUT0RPOiByZXZpc2l0IHRoaXMgd2hlbiB3ZSBpbXBsZW1lbnQgcmVzdW1pbmcuXG5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkV29yay50eXBlID09PSBmaW5pc2hlZFdvcmsuZWxlbWVudFR5cGUgJiYgIWRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5zdGFuY2UucHJvcHMgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzKSB7XG4gICAgICAgICAgICAgICAgICBlcnJvcignRXhwZWN0ZWQgJXMgcHJvcHMgdG8gbWF0Y2ggbWVtb2l6ZWQgcHJvcHMgYmVmb3JlICcgKyAnZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUuICcgKyAnVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSAnICsgJ2EgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnByb3BzYC4gJyArICdQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nLCBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpbmlzaGVkV29yaykgfHwgJ2luc3RhbmNlJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGluc3RhbmNlLnN0YXRlICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSkge1xuICAgICAgICAgICAgICAgICAgZXJyb3IoJ0V4cGVjdGVkICVzIHN0YXRlIHRvIG1hdGNoIG1lbW9pemVkIHN0YXRlIGJlZm9yZSAnICsgJ2dldFNuYXBzaG90QmVmb3JlVXBkYXRlLiAnICsgJ1RoaXMgbWlnaHQgZWl0aGVyIGJlIGJlY2F1c2Ugb2YgYSBidWcgaW4gUmVhY3QsIG9yIGJlY2F1c2UgJyArICdhIGNvbXBvbmVudCByZWFzc2lnbnMgaXRzIG93biBgdGhpcy5zdGF0ZWAuICcgKyAnUGxlYXNlIGZpbGUgYW4gaXNzdWUuJywgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaW5pc2hlZFdvcmspIHx8ICdpbnN0YW5jZScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgc25hcHNob3QgPSBpbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShmaW5pc2hlZFdvcmsuZWxlbWVudFR5cGUgPT09IGZpbmlzaGVkV29yay50eXBlID8gcHJldlByb3BzIDogcmVzb2x2ZURlZmF1bHRQcm9wcyhmaW5pc2hlZFdvcmsudHlwZSwgcHJldlByb3BzKSwgcHJldlN0YXRlKTtcblxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YXIgZGlkV2FyblNldCA9IGRpZFdhcm5BYm91dFVuZGVmaW5lZFNuYXBzaG90QmVmb3JlVXBkYXRlO1xuXG4gICAgICAgICAgICAgIGlmIChzbmFwc2hvdCA9PT0gdW5kZWZpbmVkICYmICFkaWRXYXJuU2V0LmhhcyhmaW5pc2hlZFdvcmsudHlwZSkpIHtcbiAgICAgICAgICAgICAgICBkaWRXYXJuU2V0LmFkZChmaW5pc2hlZFdvcmsudHlwZSk7XG5cbiAgICAgICAgICAgICAgICBlcnJvcignJXMuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoKTogQSBzbmFwc2hvdCB2YWx1ZSAob3IgbnVsbCkgJyArICdtdXN0IGJlIHJldHVybmVkLiBZb3UgaGF2ZSByZXR1cm5lZCB1bmRlZmluZWQuJywgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaW5pc2hlZFdvcmspKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbnN0YW5jZS5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZSA9IHNuYXBzaG90O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICAgIHtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB2YXIgcm9vdCA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG4gICAgICAgICAgICBjbGVhckNvbnRhaW5lcihyb290LmNvbnRhaW5lckluZm8pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgIGNhc2UgSG9zdFRleHQ6XG4gICAgICBjYXNlIEhvc3RQb3J0YWw6XG4gICAgICBjYXNlIEluY29tcGxldGVDbGFzc0NvbXBvbmVudDpcbiAgICAgICAgLy8gTm90aGluZyB0byBkbyBmb3IgdGhlc2UgY29tcG9uZW50IHR5cGVzXG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGlzIHVuaXQgb2Ygd29yayB0YWcgc2hvdWxkIG5vdCBoYXZlIHNpZGUtZWZmZWN0cy4gVGhpcyBlcnJvciBpcyAnICsgJ2xpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVzZXRDdXJyZW50RmliZXIoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRIb29rRWZmZWN0TGlzdFVubW91bnQoZmxhZ3MsIGZpbmlzaGVkV29yaywgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvcikge1xuICB2YXIgdXBkYXRlUXVldWUgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWU7XG4gIHZhciBsYXN0RWZmZWN0ID0gdXBkYXRlUXVldWUgIT09IG51bGwgPyB1cGRhdGVRdWV1ZS5sYXN0RWZmZWN0IDogbnVsbDtcblxuICBpZiAobGFzdEVmZmVjdCAhPT0gbnVsbCkge1xuICAgIHZhciBmaXJzdEVmZmVjdCA9IGxhc3RFZmZlY3QubmV4dDtcbiAgICB2YXIgZWZmZWN0ID0gZmlyc3RFZmZlY3Q7XG5cbiAgICBkbyB7XG4gICAgICBpZiAoKGVmZmVjdC50YWcgJiBmbGFncykgPT09IGZsYWdzKSB7XG4gICAgICAgIC8vIFVubW91bnRcbiAgICAgICAgdmFyIGRlc3Ryb3kgPSBlZmZlY3QuZGVzdHJveTtcbiAgICAgICAgZWZmZWN0LmRlc3Ryb3kgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKGRlc3Ryb3kgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlmICgoZmxhZ3MgJiBQYXNzaXZlJDEpICE9PSBOb0ZsYWdzJDEpIHtcbiAgICAgICAgICAgICAgbWFya0NvbXBvbmVudFBhc3NpdmVFZmZlY3RVbm1vdW50U3RhcnRlZChmaW5pc2hlZFdvcmspO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgoZmxhZ3MgJiBMYXlvdXQpICE9PSBOb0ZsYWdzJDEpIHtcbiAgICAgICAgICAgICAgbWFya0NvbXBvbmVudExheW91dEVmZmVjdFVubW91bnRTdGFydGVkKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWYgKChmbGFncyAmIEluc2VydGlvbikgIT09IE5vRmxhZ3MkMSkge1xuICAgICAgICAgICAgICBzZXRJc1J1bm5pbmdJbnNlcnRpb25FZmZlY3QodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc2FmZWx5Q2FsbERlc3Ryb3koZmluaXNoZWRXb3JrLCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLCBkZXN0cm95KTtcblxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlmICgoZmxhZ3MgJiBJbnNlcnRpb24pICE9PSBOb0ZsYWdzJDEpIHtcbiAgICAgICAgICAgICAgc2V0SXNSdW5uaW5nSW5zZXJ0aW9uRWZmZWN0KGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZiAoKGZsYWdzICYgUGFzc2l2ZSQxKSAhPT0gTm9GbGFncyQxKSB7XG4gICAgICAgICAgICAgIG1hcmtDb21wb25lbnRQYXNzaXZlRWZmZWN0VW5tb3VudFN0b3BwZWQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoKGZsYWdzICYgTGF5b3V0KSAhPT0gTm9GbGFncyQxKSB7XG4gICAgICAgICAgICAgIG1hcmtDb21wb25lbnRMYXlvdXRFZmZlY3RVbm1vdW50U3RvcHBlZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBlZmZlY3QgPSBlZmZlY3QubmV4dDtcbiAgICB9IHdoaWxlIChlZmZlY3QgIT09IGZpcnN0RWZmZWN0KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KGZsYWdzLCBmaW5pc2hlZFdvcmspIHtcbiAgdmFyIHVwZGF0ZVF1ZXVlID0gZmluaXNoZWRXb3JrLnVwZGF0ZVF1ZXVlO1xuICB2YXIgbGFzdEVmZmVjdCA9IHVwZGF0ZVF1ZXVlICE9PSBudWxsID8gdXBkYXRlUXVldWUubGFzdEVmZmVjdCA6IG51bGw7XG5cbiAgaWYgKGxhc3RFZmZlY3QgIT09IG51bGwpIHtcbiAgICB2YXIgZmlyc3RFZmZlY3QgPSBsYXN0RWZmZWN0Lm5leHQ7XG4gICAgdmFyIGVmZmVjdCA9IGZpcnN0RWZmZWN0O1xuXG4gICAgZG8ge1xuICAgICAgaWYgKChlZmZlY3QudGFnICYgZmxhZ3MpID09PSBmbGFncykge1xuICAgICAgICB7XG4gICAgICAgICAgaWYgKChmbGFncyAmIFBhc3NpdmUkMSkgIT09IE5vRmxhZ3MkMSkge1xuICAgICAgICAgICAgbWFya0NvbXBvbmVudFBhc3NpdmVFZmZlY3RNb3VudFN0YXJ0ZWQoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKChmbGFncyAmIExheW91dCkgIT09IE5vRmxhZ3MkMSkge1xuICAgICAgICAgICAgbWFya0NvbXBvbmVudExheW91dEVmZmVjdE1vdW50U3RhcnRlZChmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIH1cbiAgICAgICAgfSAvLyBNb3VudFxuXG5cbiAgICAgICAgdmFyIGNyZWF0ZSA9IGVmZmVjdC5jcmVhdGU7XG5cbiAgICAgICAge1xuICAgICAgICAgIGlmICgoZmxhZ3MgJiBJbnNlcnRpb24pICE9PSBOb0ZsYWdzJDEpIHtcbiAgICAgICAgICAgIHNldElzUnVubmluZ0luc2VydGlvbkVmZmVjdCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBlZmZlY3QuZGVzdHJveSA9IGNyZWF0ZSgpO1xuXG4gICAgICAgIHtcbiAgICAgICAgICBpZiAoKGZsYWdzICYgSW5zZXJ0aW9uKSAhPT0gTm9GbGFncyQxKSB7XG4gICAgICAgICAgICBzZXRJc1J1bm5pbmdJbnNlcnRpb25FZmZlY3QoZmFsc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHtcbiAgICAgICAgICBpZiAoKGZsYWdzICYgUGFzc2l2ZSQxKSAhPT0gTm9GbGFncyQxKSB7XG4gICAgICAgICAgICBtYXJrQ29tcG9uZW50UGFzc2l2ZUVmZmVjdE1vdW50U3RvcHBlZCgpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoKGZsYWdzICYgTGF5b3V0KSAhPT0gTm9GbGFncyQxKSB7XG4gICAgICAgICAgICBtYXJrQ29tcG9uZW50TGF5b3V0RWZmZWN0TW91bnRTdG9wcGVkKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAge1xuICAgICAgICAgIHZhciBkZXN0cm95ID0gZWZmZWN0LmRlc3Ryb3k7XG5cbiAgICAgICAgICBpZiAoZGVzdHJveSAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBkZXN0cm95ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB2YXIgaG9va05hbWUgPSB2b2lkIDA7XG5cbiAgICAgICAgICAgIGlmICgoZWZmZWN0LnRhZyAmIExheW91dCkgIT09IE5vRmxhZ3MpIHtcbiAgICAgICAgICAgICAgaG9va05hbWUgPSAndXNlTGF5b3V0RWZmZWN0JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoKGVmZmVjdC50YWcgJiBJbnNlcnRpb24pICE9PSBOb0ZsYWdzKSB7XG4gICAgICAgICAgICAgIGhvb2tOYW1lID0gJ3VzZUluc2VydGlvbkVmZmVjdCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBob29rTmFtZSA9ICd1c2VFZmZlY3QnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgYWRkZW5kdW0gPSB2b2lkIDA7XG5cbiAgICAgICAgICAgIGlmIChkZXN0cm95ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIGFkZGVuZHVtID0gJyBZb3UgcmV0dXJuZWQgbnVsbC4gSWYgeW91ciBlZmZlY3QgZG9lcyBub3QgcmVxdWlyZSBjbGVhbiAnICsgJ3VwLCByZXR1cm4gdW5kZWZpbmVkIChvciBub3RoaW5nKS4nO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGVzdHJveS50aGVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIGFkZGVuZHVtID0gJ1xcblxcbkl0IGxvb2tzIGxpa2UgeW91IHdyb3RlICcgKyBob29rTmFtZSArICcoYXN5bmMgKCkgPT4gLi4uKSBvciByZXR1cm5lZCBhIFByb21pc2UuICcgKyAnSW5zdGVhZCwgd3JpdGUgdGhlIGFzeW5jIGZ1bmN0aW9uIGluc2lkZSB5b3VyIGVmZmVjdCAnICsgJ2FuZCBjYWxsIGl0IGltbWVkaWF0ZWx5OlxcblxcbicgKyBob29rTmFtZSArICcoKCkgPT4ge1xcbicgKyAnICBhc3luYyBmdW5jdGlvbiBmZXRjaERhdGEoKSB7XFxuJyArICcgICAgLy8gWW91IGNhbiBhd2FpdCBoZXJlXFxuJyArICcgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBNeUFQSS5nZXREYXRhKHNvbWVJZCk7XFxuJyArICcgICAgLy8gLi4uXFxuJyArICcgIH1cXG4nICsgJyAgZmV0Y2hEYXRhKCk7XFxuJyArIFwifSwgW3NvbWVJZF0pOyAvLyBPciBbXSBpZiBlZmZlY3QgZG9lc24ndCBuZWVkIHByb3BzIG9yIHN0YXRlXFxuXFxuXCIgKyAnTGVhcm4gbW9yZSBhYm91dCBkYXRhIGZldGNoaW5nIHdpdGggSG9va3M6IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9ob29rcy1kYXRhLWZldGNoaW5nJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGFkZGVuZHVtID0gJyBZb3UgcmV0dXJuZWQ6ICcgKyBkZXN0cm95O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBlcnJvcignJXMgbXVzdCBub3QgcmV0dXJuIGFueXRoaW5nIGJlc2lkZXMgYSBmdW5jdGlvbiwgJyArICd3aGljaCBpcyB1c2VkIGZvciBjbGVhbi11cC4lcycsIGhvb2tOYW1lLCBhZGRlbmR1bSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGVmZmVjdCA9IGVmZmVjdC5uZXh0O1xuICAgIH0gd2hpbGUgKGVmZmVjdCAhPT0gZmlyc3RFZmZlY3QpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdFBhc3NpdmVFZmZlY3REdXJhdGlvbnMoZmluaXNoZWRSb290LCBmaW5pc2hlZFdvcmspIHtcbiAge1xuICAgIC8vIE9ubHkgUHJvZmlsZXJzIHdpdGggd29yayBpbiB0aGVpciBzdWJ0cmVlIHdpbGwgaGF2ZSBhbiBVcGRhdGUgZWZmZWN0IHNjaGVkdWxlZC5cbiAgICBpZiAoKGZpbmlzaGVkV29yay5mbGFncyAmIFVwZGF0ZSkgIT09IE5vRmxhZ3MpIHtcbiAgICAgIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykge1xuICAgICAgICBjYXNlIFByb2ZpbGVyOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciBwYXNzaXZlRWZmZWN0RHVyYXRpb24gPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlLnBhc3NpdmVFZmZlY3REdXJhdGlvbjtcbiAgICAgICAgICAgIHZhciBfZmluaXNoZWRXb3JrJG1lbW9pemUgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcyxcbiAgICAgICAgICAgICAgICBpZCA9IF9maW5pc2hlZFdvcmskbWVtb2l6ZS5pZCxcbiAgICAgICAgICAgICAgICBvblBvc3RDb21taXQgPSBfZmluaXNoZWRXb3JrJG1lbW9pemUub25Qb3N0Q29tbWl0OyAvLyBUaGlzIHZhbHVlIHdpbGwgc3RpbGwgcmVmbGVjdCB0aGUgcHJldmlvdXMgY29tbWl0IHBoYXNlLlxuICAgICAgICAgICAgLy8gSXQgZG9lcyBub3QgZ2V0IHJlc2V0IHVudGlsIHRoZSBzdGFydCBvZiB0aGUgbmV4dCBjb21taXQgcGhhc2UuXG5cbiAgICAgICAgICAgIHZhciBjb21taXRUaW1lID0gZ2V0Q29tbWl0VGltZSgpO1xuICAgICAgICAgICAgdmFyIHBoYXNlID0gZmluaXNoZWRXb3JrLmFsdGVybmF0ZSA9PT0gbnVsbCA/ICdtb3VudCcgOiAndXBkYXRlJztcblxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZiAoaXNDdXJyZW50VXBkYXRlTmVzdGVkKCkpIHtcbiAgICAgICAgICAgICAgICBwaGFzZSA9ICduZXN0ZWQtdXBkYXRlJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIG9uUG9zdENvbW1pdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICBvblBvc3RDb21taXQoaWQsIHBoYXNlLCBwYXNzaXZlRWZmZWN0RHVyYXRpb24sIGNvbW1pdFRpbWUpO1xuICAgICAgICAgICAgfSAvLyBCdWJibGUgdGltZXMgdG8gdGhlIG5leHQgbmVhcmVzdCBhbmNlc3RvciBQcm9maWxlci5cbiAgICAgICAgICAgIC8vIEFmdGVyIHdlIHByb2Nlc3MgdGhhdCBQcm9maWxlciwgd2UnbGwgYnViYmxlIGZ1cnRoZXIgdXAuXG5cblxuICAgICAgICAgICAgdmFyIHBhcmVudEZpYmVyID0gZmluaXNoZWRXb3JrLnJldHVybjtcblxuICAgICAgICAgICAgb3V0ZXI6IHdoaWxlIChwYXJlbnRGaWJlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBzd2l0Y2ggKHBhcmVudEZpYmVyLnRhZykge1xuICAgICAgICAgICAgICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICAgICAgICAgICAgICB2YXIgcm9vdCA9IHBhcmVudEZpYmVyLnN0YXRlTm9kZTtcbiAgICAgICAgICAgICAgICAgIHJvb3QucGFzc2l2ZUVmZmVjdER1cmF0aW9uICs9IHBhc3NpdmVFZmZlY3REdXJhdGlvbjtcbiAgICAgICAgICAgICAgICAgIGJyZWFrIG91dGVyO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBQcm9maWxlcjpcbiAgICAgICAgICAgICAgICAgIHZhciBwYXJlbnRTdGF0ZU5vZGUgPSBwYXJlbnRGaWJlci5zdGF0ZU5vZGU7XG4gICAgICAgICAgICAgICAgICBwYXJlbnRTdGF0ZU5vZGUucGFzc2l2ZUVmZmVjdER1cmF0aW9uICs9IHBhc3NpdmVFZmZlY3REdXJhdGlvbjtcbiAgICAgICAgICAgICAgICAgIGJyZWFrIG91dGVyO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5yZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0TGF5b3V0RWZmZWN0T25GaWJlcihmaW5pc2hlZFJvb3QsIGN1cnJlbnQsIGZpbmlzaGVkV29yaywgY29tbWl0dGVkTGFuZXMpIHtcbiAgaWYgKChmaW5pc2hlZFdvcmsuZmxhZ3MgJiBMYXlvdXRNYXNrKSAhPT0gTm9GbGFncykge1xuICAgIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykge1xuICAgICAgY2FzZSBGdW5jdGlvbkNvbXBvbmVudDpcbiAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgIGNhc2UgU2ltcGxlTWVtb0NvbXBvbmVudDpcbiAgICAgICAge1xuICAgICAgICAgIGlmICggIW9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4pIHtcbiAgICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgbGF5b3V0IGVmZmVjdHMgaGF2ZSBhbHJlYWR5IGJlZW4gZGVzdHJveWVkIChkdXJpbmcgbXV0YXRpb24gcGhhc2UpLlxuICAgICAgICAgICAgLy8gVGhpcyBpcyBkb25lIHRvIHByZXZlbnQgc2libGluZyBjb21wb25lbnQgZWZmZWN0cyBmcm9tIGludGVyZmVyaW5nIHdpdGggZWFjaCBvdGhlcixcbiAgICAgICAgICAgIC8vIGUuZy4gYSBkZXN0cm95IGZ1bmN0aW9uIGluIG9uZSBjb21wb25lbnQgc2hvdWxkIG5ldmVyIG92ZXJyaWRlIGEgcmVmIHNldFxuICAgICAgICAgICAgLy8gYnkgYSBjcmVhdGUgZnVuY3Rpb24gaW4gYW5vdGhlciBjb21wb25lbnQgZHVyaW5nIHRoZSBzYW1lIGNvbW1pdC5cbiAgICAgICAgICAgIGlmICggZmluaXNoZWRXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkge1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHN0YXJ0TGF5b3V0RWZmZWN0VGltZXIoKTtcbiAgICAgICAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KExheW91dCB8IEhhc0VmZmVjdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICByZWNvcmRMYXlvdXRFZmZlY3REdXJhdGlvbihmaW5pc2hlZFdvcmspO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KExheW91dCB8IEhhc0VmZmVjdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIGluc3RhbmNlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcblxuICAgICAgICAgIGlmIChmaW5pc2hlZFdvcmsuZmxhZ3MgJiBVcGRhdGUpIHtcbiAgICAgICAgICAgIGlmICghb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbikge1xuICAgICAgICAgICAgICBpZiAoY3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIC8vIFdlIGNvdWxkIHVwZGF0ZSBpbnN0YW5jZSBwcm9wcyBhbmQgc3RhdGUgaGVyZSxcbiAgICAgICAgICAgICAgICAvLyBidXQgaW5zdGVhZCB3ZSByZWx5IG9uIHRoZW0gYmVpbmcgc2V0IGR1cmluZyBsYXN0IHJlbmRlci5cbiAgICAgICAgICAgICAgICAvLyBUT0RPOiByZXZpc2l0IHRoaXMgd2hlbiB3ZSBpbXBsZW1lbnQgcmVzdW1pbmcuXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkV29yay50eXBlID09PSBmaW5pc2hlZFdvcmsuZWxlbWVudFR5cGUgJiYgIWRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluc3RhbmNlLnByb3BzICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcykge1xuICAgICAgICAgICAgICAgICAgICAgIGVycm9yKCdFeHBlY3RlZCAlcyBwcm9wcyB0byBtYXRjaCBtZW1vaXplZCBwcm9wcyBiZWZvcmUgJyArICdjb21wb25lbnREaWRNb3VudC4gJyArICdUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlICcgKyAnYSBjb21wb25lbnQgcmVhc3NpZ25zIGl0cyBvd24gYHRoaXMucHJvcHNgLiAnICsgJ1BsZWFzZSBmaWxlIGFuIGlzc3VlLicsIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKSB8fCAnaW5zdGFuY2UnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnN0YW5jZS5zdGF0ZSAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICBlcnJvcignRXhwZWN0ZWQgJXMgc3RhdGUgdG8gbWF0Y2ggbWVtb2l6ZWQgc3RhdGUgYmVmb3JlICcgKyAnY29tcG9uZW50RGlkTW91bnQuICcgKyAnVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSAnICsgJ2EgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnN0YXRlYC4gJyArICdQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nLCBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpbmlzaGVkV29yaykgfHwgJ2luc3RhbmNlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIGZpbmlzaGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpIHtcbiAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0TGF5b3V0RWZmZWN0VGltZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UuY29tcG9uZW50RGlkTW91bnQoKTtcbiAgICAgICAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgIHJlY29yZExheW91dEVmZmVjdER1cmF0aW9uKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGluc3RhbmNlLmNvbXBvbmVudERpZE1vdW50KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhciBwcmV2UHJvcHMgPSBmaW5pc2hlZFdvcmsuZWxlbWVudFR5cGUgPT09IGZpbmlzaGVkV29yay50eXBlID8gY3VycmVudC5tZW1vaXplZFByb3BzIDogcmVzb2x2ZURlZmF1bHRQcm9wcyhmaW5pc2hlZFdvcmsudHlwZSwgY3VycmVudC5tZW1vaXplZFByb3BzKTtcbiAgICAgICAgICAgICAgICB2YXIgcHJldlN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlOyAvLyBXZSBjb3VsZCB1cGRhdGUgaW5zdGFuY2UgcHJvcHMgYW5kIHN0YXRlIGhlcmUsXG4gICAgICAgICAgICAgICAgLy8gYnV0IGluc3RlYWQgd2UgcmVseSBvbiB0aGVtIGJlaW5nIHNldCBkdXJpbmcgbGFzdCByZW5kZXIuXG4gICAgICAgICAgICAgICAgLy8gVE9ETzogcmV2aXNpdCB0aGlzIHdoZW4gd2UgaW1wbGVtZW50IHJlc3VtaW5nLlxuXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkV29yay50eXBlID09PSBmaW5pc2hlZFdvcmsuZWxlbWVudFR5cGUgJiYgIWRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluc3RhbmNlLnByb3BzICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcykge1xuICAgICAgICAgICAgICAgICAgICAgIGVycm9yKCdFeHBlY3RlZCAlcyBwcm9wcyB0byBtYXRjaCBtZW1vaXplZCBwcm9wcyBiZWZvcmUgJyArICdjb21wb25lbnREaWRVcGRhdGUuICcgKyAnVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSAnICsgJ2EgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnByb3BzYC4gJyArICdQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nLCBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpbmlzaGVkV29yaykgfHwgJ2luc3RhbmNlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zdGFuY2Uuc3RhdGUgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgZXJyb3IoJ0V4cGVjdGVkICVzIHN0YXRlIHRvIG1hdGNoIG1lbW9pemVkIHN0YXRlIGJlZm9yZSAnICsgJ2NvbXBvbmVudERpZFVwZGF0ZS4gJyArICdUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlICcgKyAnYSBjb21wb25lbnQgcmVhc3NpZ25zIGl0cyBvd24gYHRoaXMuc3RhdGVgLiAnICsgJ1BsZWFzZSBmaWxlIGFuIGlzc3VlLicsIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKSB8fCAnaW5zdGFuY2UnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICggZmluaXNoZWRXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkge1xuICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRMYXlvdXRFZmZlY3RUaW1lcigpO1xuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS5jb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmV2U3RhdGUsIGluc3RhbmNlLl9fcmVhY3RJbnRlcm5hbFNuYXBzaG90QmVmb3JlVXBkYXRlKTtcbiAgICAgICAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgIHJlY29yZExheW91dEVmZmVjdER1cmF0aW9uKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGluc3RhbmNlLmNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMsIHByZXZTdGF0ZSwgaW5zdGFuY2UuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gLy8gVE9ETzogSSB0aGluayB0aGlzIGlzIG5vdyBhbHdheXMgbm9uLW51bGwgYnkgdGhlIHRpbWUgaXQgcmVhY2hlcyB0aGVcbiAgICAgICAgICAvLyBjb21taXQgcGhhc2UuIENvbnNpZGVyIHJlbW92aW5nIHRoZSB0eXBlIGNoZWNrLlxuXG5cbiAgICAgICAgICB2YXIgdXBkYXRlUXVldWUgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWU7XG5cbiAgICAgICAgICBpZiAodXBkYXRlUXVldWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkV29yay50eXBlID09PSBmaW5pc2hlZFdvcmsuZWxlbWVudFR5cGUgJiYgIWRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5zdGFuY2UucHJvcHMgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzKSB7XG4gICAgICAgICAgICAgICAgICBlcnJvcignRXhwZWN0ZWQgJXMgcHJvcHMgdG8gbWF0Y2ggbWVtb2l6ZWQgcHJvcHMgYmVmb3JlICcgKyAncHJvY2Vzc2luZyB0aGUgdXBkYXRlIHF1ZXVlLiAnICsgJ1RoaXMgbWlnaHQgZWl0aGVyIGJlIGJlY2F1c2Ugb2YgYSBidWcgaW4gUmVhY3QsIG9yIGJlY2F1c2UgJyArICdhIGNvbXBvbmVudCByZWFzc2lnbnMgaXRzIG93biBgdGhpcy5wcm9wc2AuICcgKyAnUGxlYXNlIGZpbGUgYW4gaXNzdWUuJywgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaW5pc2hlZFdvcmspIHx8ICdpbnN0YW5jZScpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpbnN0YW5jZS5zdGF0ZSAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgIGVycm9yKCdFeHBlY3RlZCAlcyBzdGF0ZSB0byBtYXRjaCBtZW1vaXplZCBzdGF0ZSBiZWZvcmUgJyArICdwcm9jZXNzaW5nIHRoZSB1cGRhdGUgcXVldWUuICcgKyAnVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSAnICsgJ2EgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnN0YXRlYC4gJyArICdQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nLCBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpbmlzaGVkV29yaykgfHwgJ2luc3RhbmNlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IC8vIFdlIGNvdWxkIHVwZGF0ZSBpbnN0YW5jZSBwcm9wcyBhbmQgc3RhdGUgaGVyZSxcbiAgICAgICAgICAgIC8vIGJ1dCBpbnN0ZWFkIHdlIHJlbHkgb24gdGhlbSBiZWluZyBzZXQgZHVyaW5nIGxhc3QgcmVuZGVyLlxuICAgICAgICAgICAgLy8gVE9ETzogcmV2aXNpdCB0aGlzIHdoZW4gd2UgaW1wbGVtZW50IHJlc3VtaW5nLlxuXG5cbiAgICAgICAgICAgIGNvbW1pdFVwZGF0ZVF1ZXVlKGZpbmlzaGVkV29yaywgdXBkYXRlUXVldWUsIGluc3RhbmNlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIEhvc3RSb290OlxuICAgICAgICB7XG4gICAgICAgICAgLy8gVE9ETzogSSB0aGluayB0aGlzIGlzIG5vdyBhbHdheXMgbm9uLW51bGwgYnkgdGhlIHRpbWUgaXQgcmVhY2hlcyB0aGVcbiAgICAgICAgICAvLyBjb21taXQgcGhhc2UuIENvbnNpZGVyIHJlbW92aW5nIHRoZSB0eXBlIGNoZWNrLlxuICAgICAgICAgIHZhciBfdXBkYXRlUXVldWUgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWU7XG5cbiAgICAgICAgICBpZiAoX3VwZGF0ZVF1ZXVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgX2luc3RhbmNlID0gbnVsbDtcblxuICAgICAgICAgICAgaWYgKGZpbmlzaGVkV29yay5jaGlsZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBzd2l0Y2ggKGZpbmlzaGVkV29yay5jaGlsZC50YWcpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICAgICAgICAgICAgICBfaW5zdGFuY2UgPSBnZXRQdWJsaWNJbnN0YW5jZShmaW5pc2hlZFdvcmsuY2hpbGQuc3RhdGVOb2RlKTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgICAgICAgICAgICAgIF9pbnN0YW5jZSA9IGZpbmlzaGVkV29yay5jaGlsZC5zdGF0ZU5vZGU7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb21taXRVcGRhdGVRdWV1ZShmaW5pc2hlZFdvcmssIF91cGRhdGVRdWV1ZSwgX2luc3RhbmNlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgX2luc3RhbmNlMiA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7IC8vIFJlbmRlcmVycyBtYXkgc2NoZWR1bGUgd29yayB0byBiZSBkb25lIGFmdGVyIGhvc3QgY29tcG9uZW50cyBhcmUgbW91bnRlZFxuICAgICAgICAgIC8vIChlZyBET00gcmVuZGVyZXIgbWF5IHNjaGVkdWxlIGF1dG8tZm9jdXMgZm9yIGlucHV0cyBhbmQgZm9ybSBjb250cm9scykuXG4gICAgICAgICAgLy8gVGhlc2UgZWZmZWN0cyBzaG91bGQgb25seSBiZSBjb21taXR0ZWQgd2hlbiBjb21wb25lbnRzIGFyZSBmaXJzdCBtb3VudGVkLFxuICAgICAgICAgIC8vIGFrYSB3aGVuIHRoZXJlIGlzIG5vIGN1cnJlbnQvYWx0ZXJuYXRlLlxuXG4gICAgICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwgJiYgZmluaXNoZWRXb3JrLmZsYWdzICYgVXBkYXRlKSB7XG4gICAgICAgICAgICB2YXIgdHlwZSA9IGZpbmlzaGVkV29yay50eXBlO1xuICAgICAgICAgICAgdmFyIHByb3BzID0gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHM7XG4gICAgICAgICAgICBjb21taXRNb3VudChfaW5zdGFuY2UyLCB0eXBlLCBwcm9wcyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBIb3N0VGV4dDpcbiAgICAgICAge1xuICAgICAgICAgIC8vIFdlIGhhdmUgbm8gbGlmZS1jeWNsZXMgYXNzb2NpYXRlZCB3aXRoIHRleHQuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBIb3N0UG9ydGFsOlxuICAgICAgICB7XG4gICAgICAgICAgLy8gV2UgaGF2ZSBubyBsaWZlLWN5Y2xlcyBhc3NvY2lhdGVkIHdpdGggcG9ydGFscy5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIFByb2ZpbGVyOlxuICAgICAgICB7XG4gICAgICAgICAge1xuICAgICAgICAgICAgdmFyIF9maW5pc2hlZFdvcmskbWVtb2l6ZTIgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcyxcbiAgICAgICAgICAgICAgICBvbkNvbW1pdCA9IF9maW5pc2hlZFdvcmskbWVtb2l6ZTIub25Db21taXQsXG4gICAgICAgICAgICAgICAgb25SZW5kZXIgPSBfZmluaXNoZWRXb3JrJG1lbW9pemUyLm9uUmVuZGVyO1xuICAgICAgICAgICAgdmFyIGVmZmVjdER1cmF0aW9uID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZS5lZmZlY3REdXJhdGlvbjtcbiAgICAgICAgICAgIHZhciBjb21taXRUaW1lID0gZ2V0Q29tbWl0VGltZSgpO1xuICAgICAgICAgICAgdmFyIHBoYXNlID0gY3VycmVudCA9PT0gbnVsbCA/ICdtb3VudCcgOiAndXBkYXRlJztcblxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZiAoaXNDdXJyZW50VXBkYXRlTmVzdGVkKCkpIHtcbiAgICAgICAgICAgICAgICBwaGFzZSA9ICduZXN0ZWQtdXBkYXRlJztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIG9uUmVuZGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIG9uUmVuZGVyKGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzLmlkLCBwaGFzZSwgZmluaXNoZWRXb3JrLmFjdHVhbER1cmF0aW9uLCBmaW5pc2hlZFdvcmsudHJlZUJhc2VEdXJhdGlvbiwgZmluaXNoZWRXb3JrLmFjdHVhbFN0YXJ0VGltZSwgY29tbWl0VGltZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvbkNvbW1pdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIG9uQ29tbWl0KGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzLmlkLCBwaGFzZSwgZWZmZWN0RHVyYXRpb24sIGNvbW1pdFRpbWUpO1xuICAgICAgICAgICAgICB9IC8vIFNjaGVkdWxlIGEgcGFzc2l2ZSBlZmZlY3QgZm9yIHRoaXMgUHJvZmlsZXIgdG8gY2FsbCBvblBvc3RDb21taXQgaG9va3MuXG4gICAgICAgICAgICAgIC8vIFRoaXMgZWZmZWN0IHNob3VsZCBiZSBzY2hlZHVsZWQgZXZlbiBpZiB0aGVyZSBpcyBubyBvblBvc3RDb21taXQgY2FsbGJhY2sgZm9yIHRoaXMgUHJvZmlsZXIsXG4gICAgICAgICAgICAgIC8vIGJlY2F1c2UgdGhlIGVmZmVjdCBpcyBhbHNvIHdoZXJlIHRpbWVzIGJ1YmJsZSB0byBwYXJlbnQgUHJvZmlsZXJzLlxuXG5cbiAgICAgICAgICAgICAgZW5xdWV1ZVBlbmRpbmdQYXNzaXZlUHJvZmlsZXJFZmZlY3QoZmluaXNoZWRXb3JrKTsgLy8gUHJvcGFnYXRlIGxheW91dCBlZmZlY3QgZHVyYXRpb25zIHRvIHRoZSBuZXh0IG5lYXJlc3QgUHJvZmlsZXIgYW5jZXN0b3IuXG4gICAgICAgICAgICAgIC8vIERvIG5vdCByZXNldCB0aGVzZSB2YWx1ZXMgdW50aWwgdGhlIG5leHQgcmVuZGVyIHNvIERldlRvb2xzIGhhcyBhIGNoYW5jZSB0byByZWFkIHRoZW0gZmlyc3QuXG5cbiAgICAgICAgICAgICAgdmFyIHBhcmVudEZpYmVyID0gZmluaXNoZWRXb3JrLnJldHVybjtcblxuICAgICAgICAgICAgICBvdXRlcjogd2hpbGUgKHBhcmVudEZpYmVyICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChwYXJlbnRGaWJlci50YWcpIHtcbiAgICAgICAgICAgICAgICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICAgICAgICAgICAgICAgIHZhciByb290ID0gcGFyZW50RmliZXIuc3RhdGVOb2RlO1xuICAgICAgICAgICAgICAgICAgICByb290LmVmZmVjdER1cmF0aW9uICs9IGVmZmVjdER1cmF0aW9uO1xuICAgICAgICAgICAgICAgICAgICBicmVhayBvdXRlcjtcblxuICAgICAgICAgICAgICAgICAgY2FzZSBQcm9maWxlcjpcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBhcmVudFN0YXRlTm9kZSA9IHBhcmVudEZpYmVyLnN0YXRlTm9kZTtcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50U3RhdGVOb2RlLmVmZmVjdER1cmF0aW9uICs9IGVmZmVjdER1cmF0aW9uO1xuICAgICAgICAgICAgICAgICAgICBicmVhayBvdXRlcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLnJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgU3VzcGVuc2VDb21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICBjb21taXRTdXNwZW5zZUh5ZHJhdGlvbkNhbGxiYWNrcyhmaW5pc2hlZFJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBTdXNwZW5zZUxpc3RDb21wb25lbnQ6XG4gICAgICBjYXNlIEluY29tcGxldGVDbGFzc0NvbXBvbmVudDpcbiAgICAgIGNhc2UgU2NvcGVDb21wb25lbnQ6XG4gICAgICBjYXNlIE9mZnNjcmVlbkNvbXBvbmVudDpcbiAgICAgIGNhc2UgTGVnYWN5SGlkZGVuQ29tcG9uZW50OlxuICAgICAgY2FzZSBUcmFjaW5nTWFya2VyQ29tcG9uZW50OlxuICAgICAgICB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGlzIHVuaXQgb2Ygd29yayB0YWcgc2hvdWxkIG5vdCBoYXZlIHNpZGUtZWZmZWN0cy4gVGhpcyBlcnJvciBpcyAnICsgJ2xpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgIH1cbiAgfVxuXG4gIGlmICggIW9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4pIHtcbiAgICB7XG4gICAgICBpZiAoZmluaXNoZWRXb3JrLmZsYWdzICYgUmVmKSB7XG4gICAgICAgIGNvbW1pdEF0dGFjaFJlZihmaW5pc2hlZFdvcmspO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZWFwcGVhckxheW91dEVmZmVjdHNPbkZpYmVyKG5vZGUpIHtcbiAgLy8gVHVybiBvbiBsYXlvdXQgZWZmZWN0cyBpbiBhIHRyZWUgdGhhdCBwcmV2aW91c2x5IGRpc2FwcGVhcmVkLlxuICAvLyBUT0RPIChPZmZzY3JlZW4pIENoZWNrOiBmbGFncyAmIExheW91dFN0YXRpY1xuICBzd2l0Y2ggKG5vZGUudGFnKSB7XG4gICAgY2FzZSBGdW5jdGlvbkNvbXBvbmVudDpcbiAgICBjYXNlIEZvcndhcmRSZWY6XG4gICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICBpZiAoIG5vZGUubW9kZSAmIFByb2ZpbGVNb2RlKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHN0YXJ0TGF5b3V0RWZmZWN0VGltZXIoKTtcbiAgICAgICAgICAgIHNhZmVseUNhbGxDb21taXRIb29rTGF5b3V0RWZmZWN0TGlzdE1vdW50KG5vZGUsIG5vZGUucmV0dXJuKTtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgcmVjb3JkTGF5b3V0RWZmZWN0RHVyYXRpb24obm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNhZmVseUNhbGxDb21taXRIb29rTGF5b3V0RWZmZWN0TGlzdE1vdW50KG5vZGUsIG5vZGUucmV0dXJuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIGluc3RhbmNlID0gbm9kZS5zdGF0ZU5vZGU7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnREaWRNb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHNhZmVseUNhbGxDb21wb25lbnREaWRNb3VudChub2RlLCBub2RlLnJldHVybiwgaW5zdGFuY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2FmZWx5QXR0YWNoUmVmKG5vZGUsIG5vZGUucmV0dXJuKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHNhZmVseUF0dGFjaFJlZihub2RlLCBub2RlLnJldHVybik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGhpZGVPclVuaGlkZUFsbENoaWxkcmVuKGZpbmlzaGVkV29yaywgaXNIaWRkZW4pIHtcbiAgLy8gT25seSBoaWRlIG9yIHVuaGlkZSB0aGUgdG9wLW1vc3QgaG9zdCBub2Rlcy5cbiAgdmFyIGhvc3RTdWJ0cmVlUm9vdCA9IG51bGw7XG5cbiAge1xuICAgIC8vIFdlIG9ubHkgaGF2ZSB0aGUgdG9wIEZpYmVyIHRoYXQgd2FzIGluc2VydGVkIGJ1dCB3ZSBuZWVkIHRvIHJlY3Vyc2UgZG93biBpdHNcbiAgICAvLyBjaGlsZHJlbiB0byBmaW5kIGFsbCB0aGUgdGVybWluYWwgbm9kZXMuXG4gICAgdmFyIG5vZGUgPSBmaW5pc2hlZFdvcms7XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKG5vZGUudGFnID09PSBIb3N0Q29tcG9uZW50KSB7XG4gICAgICAgIGlmIChob3N0U3VidHJlZVJvb3QgPT09IG51bGwpIHtcbiAgICAgICAgICBob3N0U3VidHJlZVJvb3QgPSBub2RlO1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IG5vZGUuc3RhdGVOb2RlO1xuXG4gICAgICAgICAgICBpZiAoaXNIaWRkZW4pIHtcbiAgICAgICAgICAgICAgaGlkZUluc3RhbmNlKGluc3RhbmNlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHVuaGlkZUluc3RhbmNlKG5vZGUuc3RhdGVOb2RlLCBub2RlLm1lbW9pemVkUHJvcHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAobm9kZS50YWcgPT09IEhvc3RUZXh0KSB7XG4gICAgICAgIGlmIChob3N0U3VidHJlZVJvb3QgPT09IG51bGwpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIF9pbnN0YW5jZTMgPSBub2RlLnN0YXRlTm9kZTtcblxuICAgICAgICAgICAgaWYgKGlzSGlkZGVuKSB7XG4gICAgICAgICAgICAgIGhpZGVUZXh0SW5zdGFuY2UoX2luc3RhbmNlMyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB1bmhpZGVUZXh0SW5zdGFuY2UoX2luc3RhbmNlMywgbm9kZS5tZW1vaXplZFByb3BzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKChub2RlLnRhZyA9PT0gT2Zmc2NyZWVuQ29tcG9uZW50IHx8IG5vZGUudGFnID09PSBMZWdhY3lIaWRkZW5Db21wb25lbnQpICYmIG5vZGUubWVtb2l6ZWRTdGF0ZSAhPT0gbnVsbCAmJiBub2RlICE9PSBmaW5pc2hlZFdvcmspIDsgZWxzZSBpZiAobm9kZS5jaGlsZCAhPT0gbnVsbCkge1xuICAgICAgICBub2RlLmNoaWxkLnJldHVybiA9IG5vZGU7XG4gICAgICAgIG5vZGUgPSBub2RlLmNoaWxkO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5vZGUgPT09IGZpbmlzaGVkV29yaykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHdoaWxlIChub2RlLnNpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgICAgaWYgKG5vZGUucmV0dXJuID09PSBudWxsIHx8IG5vZGUucmV0dXJuID09PSBmaW5pc2hlZFdvcmspIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaG9zdFN1YnRyZWVSb290ID09PSBub2RlKSB7XG4gICAgICAgICAgaG9zdFN1YnRyZWVSb290ID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGhvc3RTdWJ0cmVlUm9vdCA9PT0gbm9kZSkge1xuICAgICAgICBob3N0U3VidHJlZVJvb3QgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICBub2RlLnNpYmxpbmcucmV0dXJuID0gbm9kZS5yZXR1cm47XG4gICAgICBub2RlID0gbm9kZS5zaWJsaW5nO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRBdHRhY2hSZWYoZmluaXNoZWRXb3JrKSB7XG4gIHZhciByZWYgPSBmaW5pc2hlZFdvcmsucmVmO1xuXG4gIGlmIChyZWYgIT09IG51bGwpIHtcbiAgICB2YXIgaW5zdGFuY2UgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuICAgIHZhciBpbnN0YW5jZVRvVXNlO1xuXG4gICAgc3dpdGNoIChmaW5pc2hlZFdvcmsudGFnKSB7XG4gICAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICAgIGluc3RhbmNlVG9Vc2UgPSBnZXRQdWJsaWNJbnN0YW5jZShpbnN0YW5jZSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpbnN0YW5jZVRvVXNlID0gaW5zdGFuY2U7XG4gICAgfSAvLyBNb3ZlZCBvdXRzaWRlIHRvIGVuc3VyZSBEQ0Ugd29ya3Mgd2l0aCB0aGlzIGZsYWdcblxuICAgIGlmICh0eXBlb2YgcmVmID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgcmV0VmFsO1xuXG4gICAgICBpZiAoIGZpbmlzaGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBzdGFydExheW91dEVmZmVjdFRpbWVyKCk7XG4gICAgICAgICAgcmV0VmFsID0gcmVmKGluc3RhbmNlVG9Vc2UpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIHJlY29yZExheW91dEVmZmVjdER1cmF0aW9uKGZpbmlzaGVkV29yayk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldFZhbCA9IHJlZihpbnN0YW5jZVRvVXNlKTtcbiAgICAgIH1cblxuICAgICAge1xuICAgICAgICBpZiAodHlwZW9mIHJldFZhbCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGVycm9yKCdVbmV4cGVjdGVkIHJldHVybiB2YWx1ZSBmcm9tIGEgY2FsbGJhY2sgcmVmIGluICVzLiAnICsgJ0EgY2FsbGJhY2sgcmVmIHNob3VsZCBub3QgcmV0dXJuIGEgZnVuY3Rpb24uJywgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaW5pc2hlZFdvcmspKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB7XG4gICAgICAgIGlmICghcmVmLmhhc093blByb3BlcnR5KCdjdXJyZW50JykpIHtcbiAgICAgICAgICBlcnJvcignVW5leHBlY3RlZCByZWYgb2JqZWN0IHByb3ZpZGVkIGZvciAlcy4gJyArICdVc2UgZWl0aGVyIGEgcmVmLXNldHRlciBmdW5jdGlvbiBvciBSZWFjdC5jcmVhdGVSZWYoKS4nLCBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpbmlzaGVkV29yaykpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJlZi5jdXJyZW50ID0gaW5zdGFuY2VUb1VzZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZGV0YWNoRmliZXJNdXRhdGlvbihmaWJlcikge1xuICAvLyBDdXQgb2ZmIHRoZSByZXR1cm4gcG9pbnRlciB0byBkaXNjb25uZWN0IGl0IGZyb20gdGhlIHRyZWUuXG4gIC8vIFRoaXMgZW5hYmxlcyB1cyB0byBkZXRlY3QgYW5kIHdhcm4gYWdhaW5zdCBzdGF0ZSB1cGRhdGVzIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuXG4gIC8vIEl0IGFsc28gcHJldmVudHMgZXZlbnRzIGZyb20gYnViYmxpbmcgZnJvbSB3aXRoaW4gZGlzY29ubmVjdGVkIGNvbXBvbmVudHMuXG4gIC8vXG4gIC8vIElkZWFsbHksIHdlIHNob3VsZCBhbHNvIGNsZWFyIHRoZSBjaGlsZCBwb2ludGVyIG9mIHRoZSBwYXJlbnQgYWx0ZXJuYXRlIHRvIGxldCB0aGlzXG4gIC8vIGdldCBHQzplZCBidXQgd2UgZG9uJ3Qga25vdyB3aGljaCBmb3Igc3VyZSB3aGljaCBwYXJlbnQgaXMgdGhlIGN1cnJlbnRcbiAgLy8gb25lIHNvIHdlJ2xsIHNldHRsZSBmb3IgR0M6aW5nIHRoZSBzdWJ0cmVlIG9mIHRoaXMgY2hpbGQuXG4gIC8vIFRoaXMgY2hpbGQgaXRzZWxmIHdpbGwgYmUgR0M6ZWQgd2hlbiB0aGUgcGFyZW50IHVwZGF0ZXMgdGhlIG5leHQgdGltZS5cbiAgLy9cbiAgLy8gTm90ZSB0aGF0IHdlIGNhbid0IGNsZWFyIGNoaWxkIG9yIHNpYmxpbmcgcG9pbnRlcnMgeWV0LlxuICAvLyBUaGV5J3JlIG5lZWRlZCBmb3IgcGFzc2l2ZSBlZmZlY3RzIGFuZCBmb3IgZmluZERPTU5vZGUuXG4gIC8vIFdlIGRlZmVyIHRob3NlIGZpZWxkcywgYW5kIGFsbCBvdGhlciBjbGVhbnVwLCB0byB0aGUgcGFzc2l2ZSBwaGFzZSAoc2VlIGRldGFjaEZpYmVyQWZ0ZXJFZmZlY3RzKS5cbiAgLy9cbiAgLy8gRG9uJ3QgcmVzZXQgdGhlIGFsdGVybmF0ZSB5ZXQsIGVpdGhlci4gV2UgbmVlZCB0aGF0IHNvIHdlIGNhbiBkZXRhY2ggdGhlXG4gIC8vIGFsdGVybmF0ZSdzIGZpZWxkcyBpbiB0aGUgcGFzc2l2ZSBwaGFzZS4gQ2xlYXJpbmcgdGhlIHJldHVybiBwb2ludGVyIGlzXG4gIC8vIHN1ZmZpY2llbnQgZm9yIGZpbmRET01Ob2RlIHNlbWFudGljcy5cbiAgdmFyIGFsdGVybmF0ZSA9IGZpYmVyLmFsdGVybmF0ZTtcblxuICBpZiAoYWx0ZXJuYXRlICE9PSBudWxsKSB7XG4gICAgYWx0ZXJuYXRlLnJldHVybiA9IG51bGw7XG4gIH1cblxuICBmaWJlci5yZXR1cm4gPSBudWxsO1xufVxuXG5mdW5jdGlvbiBkZXRhY2hGaWJlckFmdGVyRWZmZWN0cyhmaWJlcikge1xuICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlO1xuXG4gIGlmIChhbHRlcm5hdGUgIT09IG51bGwpIHtcbiAgICBmaWJlci5hbHRlcm5hdGUgPSBudWxsO1xuICAgIGRldGFjaEZpYmVyQWZ0ZXJFZmZlY3RzKGFsdGVybmF0ZSk7XG4gIH0gLy8gTm90ZTogRGVmZW5zaXZlbHkgdXNpbmcgbmVnYXRpb24gaW5zdGVhZCBvZiA8IGluIGNhc2VcbiAgLy8gYGRlbGV0ZWRUcmVlQ2xlYW5VcExldmVsYCBpcyB1bmRlZmluZWQuXG5cblxuICB7XG4gICAgLy8gQ2xlYXIgY3ljbGljYWwgRmliZXIgZmllbGRzLiBUaGlzIGxldmVsIGFsb25lIGlzIGRlc2lnbmVkIHRvIHJvdWdobHlcbiAgICAvLyBhcHByb3hpbWF0ZSB0aGUgcGxhbm5lZCBGaWJlciByZWZhY3Rvci4gSW4gdGhhdCB3b3JsZCwgYHNldFN0YXRlYCB3aWxsIGJlXG4gICAgLy8gYm91bmQgdG8gYSBzcGVjaWFsIFwiaW5zdGFuY2VcIiBvYmplY3QgaW5zdGVhZCBvZiBhIEZpYmVyLiBUaGUgSW5zdGFuY2VcbiAgICAvLyBvYmplY3Qgd2lsbCBub3QgaGF2ZSBhbnkgb2YgdGhlc2UgZmllbGRzLiBJdCB3aWxsIG9ubHkgYmUgY29ubmVjdGVkIHRvXG4gICAgLy8gdGhlIGZpYmVyIHRyZWUgdmlhIGEgc2luZ2xlIGxpbmsgYXQgdGhlIHJvb3QuIFNvIGlmIHRoaXMgbGV2ZWwgYWxvbmUgaXNcbiAgICAvLyBzdWZmaWNpZW50IHRvIGZpeCBtZW1vcnkgaXNzdWVzLCB0aGF0IGJvZGVzIHdlbGwgZm9yIG91ciBwbGFucy5cbiAgICBmaWJlci5jaGlsZCA9IG51bGw7XG4gICAgZmliZXIuZGVsZXRpb25zID0gbnVsbDtcbiAgICBmaWJlci5zaWJsaW5nID0gbnVsbDsgLy8gVGhlIGBzdGF0ZU5vZGVgIGlzIGN5Y2xpY2FsIGJlY2F1c2Ugb24gaG9zdCBub2RlcyBpdCBwb2ludHMgdG8gdGhlIGhvc3RcbiAgICAvLyB0cmVlLCB3aGljaCBoYXMgaXRzIG93biBwb2ludGVycyB0byBjaGlsZHJlbiwgcGFyZW50cywgYW5kIHNpYmxpbmdzLlxuICAgIC8vIFRoZSBvdGhlciBob3N0IG5vZGVzIGFsc28gcG9pbnQgYmFjayB0byBmaWJlcnMsIHNvIHdlIHNob3VsZCBkZXRhY2ggdGhhdFxuICAgIC8vIG9uZSwgdG9vLlxuXG4gICAgaWYgKGZpYmVyLnRhZyA9PT0gSG9zdENvbXBvbmVudCkge1xuICAgICAgdmFyIGhvc3RJbnN0YW5jZSA9IGZpYmVyLnN0YXRlTm9kZTtcblxuICAgICAgaWYgKGhvc3RJbnN0YW5jZSAhPT0gbnVsbCkge1xuICAgICAgICBkZXRhY2hEZWxldGVkSW5zdGFuY2UoaG9zdEluc3RhbmNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmaWJlci5zdGF0ZU5vZGUgPSBudWxsOyAvLyBJJ20gaW50ZW50aW9uYWxseSBub3QgY2xlYXJpbmcgdGhlIGByZXR1cm5gIGZpZWxkIGluIHRoaXMgbGV2ZWwuIFdlXG4gICAgLy8gYWxyZWFkeSBkaXNjb25uZWN0IHRoZSBgcmV0dXJuYCBwb2ludGVyIGF0IHRoZSByb290IG9mIHRoZSBkZWxldGVkXG4gICAgLy8gc3VidHJlZSAoaW4gYGRldGFjaEZpYmVyTXV0YXRpb25gKS4gQmVzaWRlcywgYHJldHVybmAgYnkgaXRzZWxmIGlzIG5vdFxuICAgIC8vIGN5Y2xpY2FsIOKAlCBpdCdzIG9ubHkgY3ljbGljYWwgd2hlbiBjb21iaW5lZCB3aXRoIGBjaGlsZGAsIGBzaWJsaW5nYCwgYW5kXG4gICAgLy8gYGFsdGVybmF0ZWAuIEJ1dCB3ZSdsbCBjbGVhciBpdCBpbiB0aGUgbmV4dCBsZXZlbCBhbnl3YXksIGp1c3QgaW4gY2FzZS5cblxuICAgIHtcbiAgICAgIGZpYmVyLl9kZWJ1Z093bmVyID0gbnVsbDtcbiAgICB9XG5cbiAgICB7XG4gICAgICAvLyBUaGVvcmV0aWNhbGx5LCBub3RoaW5nIGluIGhlcmUgc2hvdWxkIGJlIG5lY2Vzc2FyeSwgYmVjYXVzZSB3ZSBhbHJlYWR5XG4gICAgICAvLyBkaXNjb25uZWN0ZWQgdGhlIGZpYmVyIGZyb20gdGhlIHRyZWUuIFNvIGV2ZW4gaWYgc29tZXRoaW5nIGxlYWtzIHRoaXNcbiAgICAgIC8vIHBhcnRpY3VsYXIgZmliZXIsIGl0IHdvbid0IGxlYWsgYW55dGhpbmcgZWxzZVxuICAgICAgLy9cbiAgICAgIC8vIFRoZSBwdXJwb3NlIG9mIHRoaXMgYnJhbmNoIGlzIHRvIGJlIHN1cGVyIGFnZ3Jlc3NpdmUgc28gd2UgY2FuIG1lYXN1cmVcbiAgICAgIC8vIGlmIHRoZXJlJ3MgYW55IGRpZmZlcmVuY2UgaW4gbWVtb3J5IGltcGFjdC4gSWYgdGhlcmUgaXMsIHRoYXQgY291bGRcbiAgICAgIC8vIGluZGljYXRlIGEgUmVhY3QgbGVhayB3ZSBkb24ndCBrbm93IGFib3V0LlxuICAgICAgZmliZXIucmV0dXJuID0gbnVsbDtcbiAgICAgIGZpYmVyLmRlcGVuZGVuY2llcyA9IG51bGw7XG4gICAgICBmaWJlci5tZW1vaXplZFByb3BzID0gbnVsbDtcbiAgICAgIGZpYmVyLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgICAgZmliZXIucGVuZGluZ1Byb3BzID0gbnVsbDtcbiAgICAgIGZpYmVyLnN0YXRlTm9kZSA9IG51bGw7IC8vIFRPRE86IE1vdmUgdG8gYGNvbW1pdFBhc3NpdmVVbm1vdW50SW5zaWRlRGVsZXRlZFRyZWVPbkZpYmVyYCBpbnN0ZWFkLlxuXG4gICAgICBmaWJlci51cGRhdGVRdWV1ZSA9IG51bGw7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldEhvc3RQYXJlbnRGaWJlcihmaWJlcikge1xuICB2YXIgcGFyZW50ID0gZmliZXIucmV0dXJuO1xuXG4gIHdoaWxlIChwYXJlbnQgIT09IG51bGwpIHtcbiAgICBpZiAoaXNIb3N0UGFyZW50KHBhcmVudCkpIHtcbiAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgfVxuXG4gICAgcGFyZW50ID0gcGFyZW50LnJldHVybjtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgdG8gZmluZCBhIGhvc3QgcGFyZW50LiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgJyArICdpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG59XG5cbmZ1bmN0aW9uIGlzSG9zdFBhcmVudChmaWJlcikge1xuICByZXR1cm4gZmliZXIudGFnID09PSBIb3N0Q29tcG9uZW50IHx8IGZpYmVyLnRhZyA9PT0gSG9zdFJvb3QgfHwgZmliZXIudGFnID09PSBIb3N0UG9ydGFsO1xufVxuXG5mdW5jdGlvbiBnZXRIb3N0U2libGluZyhmaWJlcikge1xuICAvLyBXZSdyZSBnb2luZyB0byBzZWFyY2ggZm9yd2FyZCBpbnRvIHRoZSB0cmVlIHVudGlsIHdlIGZpbmQgYSBzaWJsaW5nIGhvc3RcbiAgLy8gbm9kZS4gVW5mb3J0dW5hdGVseSwgaWYgbXVsdGlwbGUgaW5zZXJ0aW9ucyBhcmUgZG9uZSBpbiBhIHJvdyB3ZSBoYXZlIHRvXG4gIC8vIHNlYXJjaCBwYXN0IHRoZW0uIFRoaXMgbGVhZHMgdG8gZXhwb25lbnRpYWwgc2VhcmNoIGZvciB0aGUgbmV4dCBzaWJsaW5nLlxuICAvLyBUT0RPOiBGaW5kIGEgbW9yZSBlZmZpY2llbnQgd2F5IHRvIGRvIHRoaXMuXG4gIHZhciBub2RlID0gZmliZXI7XG5cbiAgc2libGluZ3M6IHdoaWxlICh0cnVlKSB7XG4gICAgLy8gSWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcsIGxldCdzIHRyeSB0aGUgbmV4dCBzaWJsaW5nLlxuICAgIHdoaWxlIChub2RlLnNpYmxpbmcgPT09IG51bGwpIHtcbiAgICAgIGlmIChub2RlLnJldHVybiA9PT0gbnVsbCB8fCBpc0hvc3RQYXJlbnQobm9kZS5yZXR1cm4pKSB7XG4gICAgICAgIC8vIElmIHdlIHBvcCBvdXQgb2YgdGhlIHJvb3Qgb3IgaGl0IHRoZSBwYXJlbnQgdGhlIGZpYmVyIHdlIGFyZSB0aGVcbiAgICAgICAgLy8gbGFzdCBzaWJsaW5nLlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgIH1cblxuICAgIG5vZGUuc2libGluZy5yZXR1cm4gPSBub2RlLnJldHVybjtcbiAgICBub2RlID0gbm9kZS5zaWJsaW5nO1xuXG4gICAgd2hpbGUgKG5vZGUudGFnICE9PSBIb3N0Q29tcG9uZW50ICYmIG5vZGUudGFnICE9PSBIb3N0VGV4dCAmJiBub2RlLnRhZyAhPT0gRGVoeWRyYXRlZEZyYWdtZW50KSB7XG4gICAgICAvLyBJZiBpdCBpcyBub3QgaG9zdCBub2RlIGFuZCwgd2UgbWlnaHQgaGF2ZSBhIGhvc3Qgbm9kZSBpbnNpZGUgaXQuXG4gICAgICAvLyBUcnkgdG8gc2VhcmNoIGRvd24gdW50aWwgd2UgZmluZCBvbmUuXG4gICAgICBpZiAobm9kZS5mbGFncyAmIFBsYWNlbWVudCkge1xuICAgICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgY2hpbGQsIHRyeSB0aGUgc2libGluZ3MgaW5zdGVhZC5cbiAgICAgICAgY29udGludWUgc2libGluZ3M7XG4gICAgICB9IC8vIElmIHdlIGRvbid0IGhhdmUgYSBjaGlsZCwgdHJ5IHRoZSBzaWJsaW5ncyBpbnN0ZWFkLlxuICAgICAgLy8gV2UgYWxzbyBza2lwIHBvcnRhbHMgYmVjYXVzZSB0aGV5IGFyZSBub3QgcGFydCBvZiB0aGlzIGhvc3QgdHJlZS5cblxuXG4gICAgICBpZiAobm9kZS5jaGlsZCA9PT0gbnVsbCB8fCBub2RlLnRhZyA9PT0gSG9zdFBvcnRhbCkge1xuICAgICAgICBjb250aW51ZSBzaWJsaW5ncztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vZGUuY2hpbGQucmV0dXJuID0gbm9kZTtcbiAgICAgICAgbm9kZSA9IG5vZGUuY2hpbGQ7XG4gICAgICB9XG4gICAgfSAvLyBDaGVjayBpZiB0aGlzIGhvc3Qgbm9kZSBpcyBzdGFibGUgb3IgYWJvdXQgdG8gYmUgcGxhY2VkLlxuXG5cbiAgICBpZiAoIShub2RlLmZsYWdzICYgUGxhY2VtZW50KSkge1xuICAgICAgLy8gRm91bmQgaXQhXG4gICAgICByZXR1cm4gbm9kZS5zdGF0ZU5vZGU7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdFBsYWNlbWVudChmaW5pc2hlZFdvcmspIHtcblxuXG4gIHZhciBwYXJlbnRGaWJlciA9IGdldEhvc3RQYXJlbnRGaWJlcihmaW5pc2hlZFdvcmspOyAvLyBOb3RlOiB0aGVzZSB0d28gdmFyaWFibGVzICptdXN0KiBhbHdheXMgYmUgdXBkYXRlZCB0b2dldGhlci5cblxuICBzd2l0Y2ggKHBhcmVudEZpYmVyLnRhZykge1xuICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgdmFyIHBhcmVudCA9IHBhcmVudEZpYmVyLnN0YXRlTm9kZTtcblxuICAgICAgICBpZiAocGFyZW50RmliZXIuZmxhZ3MgJiBDb250ZW50UmVzZXQpIHtcbiAgICAgICAgICAvLyBSZXNldCB0aGUgdGV4dCBjb250ZW50IG9mIHRoZSBwYXJlbnQgYmVmb3JlIGRvaW5nIGFueSBpbnNlcnRpb25zXG4gICAgICAgICAgcmVzZXRUZXh0Q29udGVudChwYXJlbnQpOyAvLyBDbGVhciBDb250ZW50UmVzZXQgZnJvbSB0aGUgZWZmZWN0IHRhZ1xuXG4gICAgICAgICAgcGFyZW50RmliZXIuZmxhZ3MgJj0gfkNvbnRlbnRSZXNldDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBiZWZvcmUgPSBnZXRIb3N0U2libGluZyhmaW5pc2hlZFdvcmspOyAvLyBXZSBvbmx5IGhhdmUgdGhlIHRvcCBGaWJlciB0aGF0IHdhcyBpbnNlcnRlZCBidXQgd2UgbmVlZCB0byByZWN1cnNlIGRvd24gaXRzXG4gICAgICAgIC8vIGNoaWxkcmVuIHRvIGZpbmQgYWxsIHRoZSB0ZXJtaW5hbCBub2Rlcy5cblxuICAgICAgICBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGUoZmluaXNoZWRXb3JrLCBiZWZvcmUsIHBhcmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Um9vdDpcbiAgICBjYXNlIEhvc3RQb3J0YWw6XG4gICAgICB7XG4gICAgICAgIHZhciBfcGFyZW50ID0gcGFyZW50RmliZXIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87XG5cbiAgICAgICAgdmFyIF9iZWZvcmUgPSBnZXRIb3N0U2libGluZyhmaW5pc2hlZFdvcmspO1xuXG4gICAgICAgIGluc2VydE9yQXBwZW5kUGxhY2VtZW50Tm9kZUludG9Db250YWluZXIoZmluaXNoZWRXb3JrLCBfYmVmb3JlLCBfcGFyZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lLW5vLWZhbGx0aHJvdWdoXG5cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGhvc3QgcGFyZW50IGZpYmVyLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgJyArICdpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5zZXJ0T3JBcHBlbmRQbGFjZW1lbnROb2RlSW50b0NvbnRhaW5lcihub2RlLCBiZWZvcmUsIHBhcmVudCkge1xuICB2YXIgdGFnID0gbm9kZS50YWc7XG4gIHZhciBpc0hvc3QgPSB0YWcgPT09IEhvc3RDb21wb25lbnQgfHwgdGFnID09PSBIb3N0VGV4dDtcblxuICBpZiAoaXNIb3N0KSB7XG4gICAgdmFyIHN0YXRlTm9kZSA9IG5vZGUuc3RhdGVOb2RlO1xuXG4gICAgaWYgKGJlZm9yZSkge1xuICAgICAgaW5zZXJ0SW5Db250YWluZXJCZWZvcmUocGFyZW50LCBzdGF0ZU5vZGUsIGJlZm9yZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFwcGVuZENoaWxkVG9Db250YWluZXIocGFyZW50LCBzdGF0ZU5vZGUpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0YWcgPT09IEhvc3RQb3J0YWwpIDsgZWxzZSB7XG4gICAgdmFyIGNoaWxkID0gbm9kZS5jaGlsZDtcblxuICAgIGlmIChjaGlsZCAhPT0gbnVsbCkge1xuICAgICAgaW5zZXJ0T3JBcHBlbmRQbGFjZW1lbnROb2RlSW50b0NvbnRhaW5lcihjaGlsZCwgYmVmb3JlLCBwYXJlbnQpO1xuICAgICAgdmFyIHNpYmxpbmcgPSBjaGlsZC5zaWJsaW5nO1xuXG4gICAgICB3aGlsZSAoc2libGluZyAhPT0gbnVsbCkge1xuICAgICAgICBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGVJbnRvQ29udGFpbmVyKHNpYmxpbmcsIGJlZm9yZSwgcGFyZW50KTtcbiAgICAgICAgc2libGluZyA9IHNpYmxpbmcuc2libGluZztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5zZXJ0T3JBcHBlbmRQbGFjZW1lbnROb2RlKG5vZGUsIGJlZm9yZSwgcGFyZW50KSB7XG4gIHZhciB0YWcgPSBub2RlLnRhZztcbiAgdmFyIGlzSG9zdCA9IHRhZyA9PT0gSG9zdENvbXBvbmVudCB8fCB0YWcgPT09IEhvc3RUZXh0O1xuXG4gIGlmIChpc0hvc3QpIHtcbiAgICB2YXIgc3RhdGVOb2RlID0gbm9kZS5zdGF0ZU5vZGU7XG5cbiAgICBpZiAoYmVmb3JlKSB7XG4gICAgICBpbnNlcnRCZWZvcmUocGFyZW50LCBzdGF0ZU5vZGUsIGJlZm9yZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFwcGVuZENoaWxkKHBhcmVudCwgc3RhdGVOb2RlKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodGFnID09PSBIb3N0UG9ydGFsKSA7IGVsc2Uge1xuICAgIHZhciBjaGlsZCA9IG5vZGUuY2hpbGQ7XG5cbiAgICBpZiAoY2hpbGQgIT09IG51bGwpIHtcbiAgICAgIGluc2VydE9yQXBwZW5kUGxhY2VtZW50Tm9kZShjaGlsZCwgYmVmb3JlLCBwYXJlbnQpO1xuICAgICAgdmFyIHNpYmxpbmcgPSBjaGlsZC5zaWJsaW5nO1xuXG4gICAgICB3aGlsZSAoc2libGluZyAhPT0gbnVsbCkge1xuICAgICAgICBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGUoc2libGluZywgYmVmb3JlLCBwYXJlbnQpO1xuICAgICAgICBzaWJsaW5nID0gc2libGluZy5zaWJsaW5nO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSAvLyBUaGVzZSBhcmUgdHJhY2tlZCBvbiB0aGUgc3RhY2sgYXMgd2UgcmVjdXJzaXZlbHkgdHJhdmVyc2UgYVxuLy8gZGVsZXRlZCBzdWJ0cmVlLlxuLy8gVE9ETzogVXBkYXRlIHRoZXNlIGR1cmluZyB0aGUgd2hvbGUgbXV0YXRpb24gcGhhc2UsIG5vdCBqdXN0IGR1cmluZ1xuLy8gYSBkZWxldGlvbi5cblxuXG52YXIgaG9zdFBhcmVudCA9IG51bGw7XG52YXIgaG9zdFBhcmVudElzQ29udGFpbmVyID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGNvbW1pdERlbGV0aW9uRWZmZWN0cyhyb290LCByZXR1cm5GaWJlciwgZGVsZXRlZEZpYmVyKSB7XG4gIHtcbiAgICAvLyBXZSBvbmx5IGhhdmUgdGhlIHRvcCBGaWJlciB0aGF0IHdhcyBkZWxldGVkIGJ1dCB3ZSBuZWVkIHRvIHJlY3Vyc2UgZG93biBpdHNcbiAgICAvLyBjaGlsZHJlbiB0byBmaW5kIGFsbCB0aGUgdGVybWluYWwgbm9kZXMuXG4gICAgLy8gUmVjdXJzaXZlbHkgZGVsZXRlIGFsbCBob3N0IG5vZGVzIGZyb20gdGhlIHBhcmVudCwgZGV0YWNoIHJlZnMsIGNsZWFuXG4gICAgLy8gdXAgbW91bnRlZCBsYXlvdXQgZWZmZWN0cywgYW5kIGNhbGwgY29tcG9uZW50V2lsbFVubW91bnQuXG4gICAgLy8gV2Ugb25seSBuZWVkIHRvIHJlbW92ZSB0aGUgdG9wbW9zdCBob3N0IGNoaWxkIGluIGVhY2ggYnJhbmNoLiBCdXQgdGhlbiB3ZVxuICAgIC8vIHN0aWxsIG5lZWQgdG8ga2VlcCB0cmF2ZXJzaW5nIHRvIHVubW91bnQgZWZmZWN0cywgcmVmcywgYW5kIGNXVS4gVE9ETzogV2VcbiAgICAvLyBjb3VsZCBzcGxpdCB0aGlzIGludG8gdHdvIHNlcGFyYXRlIHRyYXZlcnNhbHMgZnVuY3Rpb25zLCB3aGVyZSB0aGUgc2Vjb25kXG4gICAgLy8gb25lIGRvZXNuJ3QgaW5jbHVkZSBhbnkgcmVtb3ZlQ2hpbGQgbG9naWMuIFRoaXMgaXMgbWF5YmUgdGhlIHNhbWVcbiAgICAvLyBmdW5jdGlvbiBhcyBcImRpc2FwcGVhckxheW91dEVmZmVjdHNcIiAob3Igd2hhdGV2ZXIgdGhhdCB0dXJucyBpbnRvIGFmdGVyXG4gICAgLy8gdGhlIGxheW91dCBwaGFzZSBpcyByZWZhY3RvcmVkIHRvIHVzZSByZWN1cnNpb24pLlxuICAgIC8vIEJlZm9yZSBzdGFydGluZywgZmluZCB0aGUgbmVhcmVzdCBob3N0IHBhcmVudCBvbiB0aGUgc3RhY2sgc28gd2Uga25vd1xuICAgIC8vIHdoaWNoIGluc3RhbmNlL2NvbnRhaW5lciB0byByZW1vdmUgdGhlIGNoaWxkcmVuIGZyb20uXG4gICAgLy8gVE9ETzogSW5zdGVhZCBvZiBzZWFyY2hpbmcgdXAgdGhlIGZpYmVyIHJldHVybiBwYXRoIG9uIGV2ZXJ5IGRlbGV0aW9uLCB3ZVxuICAgIC8vIGNhbiB0cmFjayB0aGUgbmVhcmVzdCBob3N0IGNvbXBvbmVudCBvbiB0aGUgSlMgc3RhY2sgYXMgd2UgdHJhdmVyc2UgdGhlXG4gICAgLy8gdHJlZSBkdXJpbmcgdGhlIGNvbW1pdCBwaGFzZS4gVGhpcyB3b3VsZCBtYWtlIGluc2VydGlvbnMgZmFzdGVyLCB0b28uXG4gICAgdmFyIHBhcmVudCA9IHJldHVybkZpYmVyO1xuXG4gICAgZmluZFBhcmVudDogd2hpbGUgKHBhcmVudCAhPT0gbnVsbCkge1xuICAgICAgc3dpdGNoIChwYXJlbnQudGFnKSB7XG4gICAgICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBob3N0UGFyZW50ID0gcGFyZW50LnN0YXRlTm9kZTtcbiAgICAgICAgICAgIGhvc3RQYXJlbnRJc0NvbnRhaW5lciA9IGZhbHNlO1xuICAgICAgICAgICAgYnJlYWsgZmluZFBhcmVudDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBob3N0UGFyZW50ID0gcGFyZW50LnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuICAgICAgICAgICAgaG9zdFBhcmVudElzQ29udGFpbmVyID0gdHJ1ZTtcbiAgICAgICAgICAgIGJyZWFrIGZpbmRQYXJlbnQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgSG9zdFBvcnRhbDpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBob3N0UGFyZW50ID0gcGFyZW50LnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuICAgICAgICAgICAgaG9zdFBhcmVudElzQ29udGFpbmVyID0gdHJ1ZTtcbiAgICAgICAgICAgIGJyZWFrIGZpbmRQYXJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBwYXJlbnQgPSBwYXJlbnQucmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChob3N0UGFyZW50ID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHRvIGZpbmQgYSBob3N0IHBhcmVudC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5ICcgKyAnYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgIH1cblxuICAgIGNvbW1pdERlbGV0aW9uRWZmZWN0c09uRmliZXIocm9vdCwgcmV0dXJuRmliZXIsIGRlbGV0ZWRGaWJlcik7XG4gICAgaG9zdFBhcmVudCA9IG51bGw7XG4gICAgaG9zdFBhcmVudElzQ29udGFpbmVyID0gZmFsc2U7XG4gIH1cblxuICBkZXRhY2hGaWJlck11dGF0aW9uKGRlbGV0ZWRGaWJlcik7XG59XG5cbmZ1bmN0aW9uIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEZWxldGlvbkVmZmVjdHMoZmluaXNoZWRSb290LCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLCBwYXJlbnQpIHtcbiAgLy8gVE9ETzogVXNlIGEgc3RhdGljIGZsYWcgdG8gc2tpcCB0cmVlcyB0aGF0IGRvbid0IGhhdmUgdW5tb3VudCBlZmZlY3RzXG4gIHZhciBjaGlsZCA9IHBhcmVudC5jaGlsZDtcblxuICB3aGlsZSAoY2hpbGQgIT09IG51bGwpIHtcbiAgICBjb21taXREZWxldGlvbkVmZmVjdHNPbkZpYmVyKGZpbmlzaGVkUm9vdCwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgY2hpbGQpO1xuICAgIGNoaWxkID0gY2hpbGQuc2libGluZztcbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXREZWxldGlvbkVmZmVjdHNPbkZpYmVyKGZpbmlzaGVkUm9vdCwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZGVsZXRlZEZpYmVyKSB7XG4gIG9uQ29tbWl0VW5tb3VudChkZWxldGVkRmliZXIpOyAvLyBUaGUgY2FzZXMgaW4gdGhpcyBvdXRlciBzd2l0Y2ggbW9kaWZ5IHRoZSBzdGFjayBiZWZvcmUgdGhleSB0cmF2ZXJzZVxuICAvLyBpbnRvIHRoZWlyIHN1YnRyZWUuIFRoZXJlIGFyZSBzaW1wbGVyIGNhc2VzIGluIHRoZSBpbm5lciBzd2l0Y2hcbiAgLy8gdGhhdCBkb24ndCBtb2RpZnkgdGhlIHN0YWNrLlxuXG4gIHN3aXRjaCAoZGVsZXRlZEZpYmVyLnRhZykge1xuICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgaWYgKCFvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuKSB7XG4gICAgICAgICAgc2FmZWx5RGV0YWNoUmVmKGRlbGV0ZWRGaWJlciwgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvcik7XG4gICAgICAgIH0gLy8gSW50ZW50aW9uYWwgZmFsbHRocm91Z2ggdG8gbmV4dCBicmFuY2hcblxuICAgICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZS1uby1mYWxsdGhyb3VnaFxuXG4gICAgY2FzZSBIb3N0VGV4dDpcbiAgICAgIHtcbiAgICAgICAgLy8gV2Ugb25seSBuZWVkIHRvIHJlbW92ZSB0aGUgbmVhcmVzdCBob3N0IGNoaWxkLiBTZXQgdGhlIGhvc3QgcGFyZW50XG4gICAgICAgIC8vIHRvIGBudWxsYCBvbiB0aGUgc3RhY2sgdG8gaW5kaWNhdGUgdGhhdCBuZXN0ZWQgY2hpbGRyZW4gZG9uJ3RcbiAgICAgICAgLy8gbmVlZCB0byBiZSByZW1vdmVkLlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIHByZXZIb3N0UGFyZW50ID0gaG9zdFBhcmVudDtcbiAgICAgICAgICB2YXIgcHJldkhvc3RQYXJlbnRJc0NvbnRhaW5lciA9IGhvc3RQYXJlbnRJc0NvbnRhaW5lcjtcbiAgICAgICAgICBob3N0UGFyZW50ID0gbnVsbDtcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlRGVsZXRpb25FZmZlY3RzKGZpbmlzaGVkUm9vdCwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZGVsZXRlZEZpYmVyKTtcbiAgICAgICAgICBob3N0UGFyZW50ID0gcHJldkhvc3RQYXJlbnQ7XG4gICAgICAgICAgaG9zdFBhcmVudElzQ29udGFpbmVyID0gcHJldkhvc3RQYXJlbnRJc0NvbnRhaW5lcjtcblxuICAgICAgICAgIGlmIChob3N0UGFyZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBOb3cgdGhhdCBhbGwgdGhlIGNoaWxkIGVmZmVjdHMgaGF2ZSB1bm1vdW50ZWQsIHdlIGNhbiByZW1vdmUgdGhlXG4gICAgICAgICAgICAvLyBub2RlIGZyb20gdGhlIHRyZWUuXG4gICAgICAgICAgICBpZiAoaG9zdFBhcmVudElzQ29udGFpbmVyKSB7XG4gICAgICAgICAgICAgIHJlbW92ZUNoaWxkRnJvbUNvbnRhaW5lcihob3N0UGFyZW50LCBkZWxldGVkRmliZXIuc3RhdGVOb2RlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlbW92ZUNoaWxkKGhvc3RQYXJlbnQsIGRlbGV0ZWRGaWJlci5zdGF0ZU5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgRGVoeWRyYXRlZEZyYWdtZW50OlxuICAgICAge1xuICAgICAgICAvLyBEZWxldGUgdGhlIGRlaHlkcmF0ZWQgc3VzcGVuc2UgYm91bmRhcnkgYW5kIGFsbCBvZiBpdHMgY29udGVudC5cblxuXG4gICAgICAgIHtcbiAgICAgICAgICBpZiAoaG9zdFBhcmVudCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKGhvc3RQYXJlbnRJc0NvbnRhaW5lcikge1xuICAgICAgICAgICAgICBjbGVhclN1c3BlbnNlQm91bmRhcnlGcm9tQ29udGFpbmVyKGhvc3RQYXJlbnQsIGRlbGV0ZWRGaWJlci5zdGF0ZU5vZGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY2xlYXJTdXNwZW5zZUJvdW5kYXJ5KGhvc3RQYXJlbnQsIGRlbGV0ZWRGaWJlci5zdGF0ZU5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFBvcnRhbDpcbiAgICAgIHtcbiAgICAgICAge1xuICAgICAgICAgIC8vIFdoZW4gd2UgZ28gaW50byBhIHBvcnRhbCwgaXQgYmVjb21lcyB0aGUgcGFyZW50IHRvIHJlbW92ZSBmcm9tLlxuICAgICAgICAgIHZhciBfcHJldkhvc3RQYXJlbnQgPSBob3N0UGFyZW50O1xuICAgICAgICAgIHZhciBfcHJldkhvc3RQYXJlbnRJc0NvbnRhaW5lciA9IGhvc3RQYXJlbnRJc0NvbnRhaW5lcjtcbiAgICAgICAgICBob3N0UGFyZW50ID0gZGVsZXRlZEZpYmVyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuICAgICAgICAgIGhvc3RQYXJlbnRJc0NvbnRhaW5lciA9IHRydWU7XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZURlbGV0aW9uRWZmZWN0cyhmaW5pc2hlZFJvb3QsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGRlbGV0ZWRGaWJlcik7XG4gICAgICAgICAgaG9zdFBhcmVudCA9IF9wcmV2SG9zdFBhcmVudDtcbiAgICAgICAgICBob3N0UGFyZW50SXNDb250YWluZXIgPSBfcHJldkhvc3RQYXJlbnRJc0NvbnRhaW5lcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgIGNhc2UgTWVtb0NvbXBvbmVudDpcbiAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIGlmICghb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbikge1xuICAgICAgICAgIHZhciB1cGRhdGVRdWV1ZSA9IGRlbGV0ZWRGaWJlci51cGRhdGVRdWV1ZTtcblxuICAgICAgICAgIGlmICh1cGRhdGVRdWV1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIGxhc3RFZmZlY3QgPSB1cGRhdGVRdWV1ZS5sYXN0RWZmZWN0O1xuXG4gICAgICAgICAgICBpZiAobGFzdEVmZmVjdCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICB2YXIgZmlyc3RFZmZlY3QgPSBsYXN0RWZmZWN0Lm5leHQ7XG4gICAgICAgICAgICAgIHZhciBlZmZlY3QgPSBmaXJzdEVmZmVjdDtcblxuICAgICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgdmFyIF9lZmZlY3QgPSBlZmZlY3QsXG4gICAgICAgICAgICAgICAgICAgIGRlc3Ryb3kgPSBfZWZmZWN0LmRlc3Ryb3ksXG4gICAgICAgICAgICAgICAgICAgIHRhZyA9IF9lZmZlY3QudGFnO1xuXG4gICAgICAgICAgICAgICAgaWYgKGRlc3Ryb3kgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgaWYgKCh0YWcgJiBJbnNlcnRpb24pICE9PSBOb0ZsYWdzJDEpIHtcbiAgICAgICAgICAgICAgICAgICAgc2FmZWx5Q2FsbERlc3Ryb3koZGVsZXRlZEZpYmVyLCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLCBkZXN0cm95KTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKHRhZyAmIExheW91dCkgIT09IE5vRmxhZ3MkMSkge1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgbWFya0NvbXBvbmVudExheW91dEVmZmVjdFVubW91bnRTdGFydGVkKGRlbGV0ZWRGaWJlcik7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoIGRlbGV0ZWRGaWJlci5tb2RlICYgUHJvZmlsZU1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydExheW91dEVmZmVjdFRpbWVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgc2FmZWx5Q2FsbERlc3Ryb3koZGVsZXRlZEZpYmVyLCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLCBkZXN0cm95KTtcbiAgICAgICAgICAgICAgICAgICAgICByZWNvcmRMYXlvdXRFZmZlY3REdXJhdGlvbihkZWxldGVkRmliZXIpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHNhZmVseUNhbGxEZXN0cm95KGRlbGV0ZWRGaWJlciwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZGVzdHJveSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgbWFya0NvbXBvbmVudExheW91dEVmZmVjdFVubW91bnRTdG9wcGVkKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBlZmZlY3QgPSBlZmZlY3QubmV4dDtcbiAgICAgICAgICAgICAgfSB3aGlsZSAoZWZmZWN0ICE9PSBmaXJzdEVmZmVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZURlbGV0aW9uRWZmZWN0cyhmaW5pc2hlZFJvb3QsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGRlbGV0ZWRGaWJlcik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIGlmICghb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbikge1xuICAgICAgICAgIHNhZmVseURldGFjaFJlZihkZWxldGVkRmliZXIsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IpO1xuICAgICAgICAgIHZhciBpbnN0YW5jZSA9IGRlbGV0ZWRGaWJlci5zdGF0ZU5vZGU7XG5cbiAgICAgICAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVbm1vdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBzYWZlbHlDYWxsQ29tcG9uZW50V2lsbFVubW91bnQoZGVsZXRlZEZpYmVyLCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLCBpbnN0YW5jZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZURlbGV0aW9uRWZmZWN0cyhmaW5pc2hlZFJvb3QsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGRlbGV0ZWRGaWJlcik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgU2NvcGVDb21wb25lbnQ6XG4gICAgICB7XG5cbiAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZURlbGV0aW9uRWZmZWN0cyhmaW5pc2hlZFJvb3QsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGRlbGV0ZWRGaWJlcik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgT2Zmc2NyZWVuQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICBpZiAoIC8vIFRPRE86IFJlbW92ZSB0aGlzIGRlYWQgZmxhZ1xuICAgICAgICAgZGVsZXRlZEZpYmVyLm1vZGUgJiBDb25jdXJyZW50TW9kZSkge1xuICAgICAgICAgIC8vIElmIHRoaXMgb2Zmc2NyZWVuIGNvbXBvbmVudCBpcyBoaWRkZW4sIHdlIGFscmVhZHkgdW5tb3VudGVkIGl0LiBCZWZvcmVcbiAgICAgICAgICAvLyBkZWxldGluZyB0aGUgY2hpbGRyZW4sIHRyYWNrIHRoYXQgaXQncyBhbHJlYWR5IHVubW91bnRlZCBzbyB0aGF0IHdlXG4gICAgICAgICAgLy8gZG9uJ3QgYXR0ZW1wdCB0byB1bm1vdW50IHRoZSBlZmZlY3RzIGFnYWluLlxuICAgICAgICAgIC8vIFRPRE86IElmIHRoZSB0cmVlIGlzIGhpZGRlbiwgaW4gbW9zdCBjYXNlcyB3ZSBzaG91bGQgYmUgYWJsZSB0byBza2lwXG4gICAgICAgICAgLy8gb3ZlciB0aGUgbmVzdGVkIGNoaWxkcmVuIGVudGlyZWx5LiBBbiBleGNlcHRpb24gaXMgd2UgaGF2ZW4ndCB5ZXQgZm91bmRcbiAgICAgICAgICAvLyB0aGUgdG9wbW9zdCBob3N0IG5vZGUgdG8gZGVsZXRlLCB3aGljaCB3ZSBhbHJlYWR5IHRyYWNrIG9uIHRoZSBzdGFjay5cbiAgICAgICAgICAvLyBCdXQgdGhlIG90aGVyIGNhc2UgaXMgcG9ydGFscywgd2hpY2ggbmVlZCB0byBiZSBkZXRhY2hlZCBubyBtYXR0ZXIgaG93XG4gICAgICAgICAgLy8gZGVlcGx5IHRoZXkgYXJlIG5lc3RlZC4gV2Ugc2hvdWxkIHVzZSBhIHN1YnRyZWUgZmxhZyB0byB0cmFjayB3aGV0aGVyIGFcbiAgICAgICAgICAvLyBzdWJ0cmVlIGluY2x1ZGVzIGEgbmVzdGVkIHBvcnRhbC5cbiAgICAgICAgICB2YXIgcHJldk9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gPSBvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuO1xuICAgICAgICAgIG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gPSBwcmV2T2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiB8fCBkZWxldGVkRmliZXIubWVtb2l6ZWRTdGF0ZSAhPT0gbnVsbDtcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlRGVsZXRpb25FZmZlY3RzKGZpbmlzaGVkUm9vdCwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZGVsZXRlZEZpYmVyKTtcbiAgICAgICAgICBvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuID0gcHJldk9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZURlbGV0aW9uRWZmZWN0cyhmaW5pc2hlZFJvb3QsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGRlbGV0ZWRGaWJlcik7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICB7XG4gICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEZWxldGlvbkVmZmVjdHMoZmluaXNoZWRSb290LCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLCBkZWxldGVkRmliZXIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0U3VzcGVuc2VDYWxsYmFjayhmaW5pc2hlZFdvcmspIHtcbiAgLy8gVE9ETzogTW92ZSB0aGlzIHRvIHBhc3NpdmUgcGhhc2VcbiAgdmFyIG5ld1N0YXRlID0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGU7XG59XG5cbmZ1bmN0aW9uIGNvbW1pdFN1c3BlbnNlSHlkcmF0aW9uQ2FsbGJhY2tzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKSB7XG5cbiAgdmFyIG5ld1N0YXRlID0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGU7XG5cbiAgaWYgKG5ld1N0YXRlID09PSBudWxsKSB7XG4gICAgdmFyIGN1cnJlbnQgPSBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlO1xuXG4gICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgIHZhciBwcmV2U3RhdGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG5cbiAgICAgIGlmIChwcmV2U3RhdGUgIT09IG51bGwpIHtcbiAgICAgICAgdmFyIHN1c3BlbnNlSW5zdGFuY2UgPSBwcmV2U3RhdGUuZGVoeWRyYXRlZDtcblxuICAgICAgICBpZiAoc3VzcGVuc2VJbnN0YW5jZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbW1pdEh5ZHJhdGVkU3VzcGVuc2VJbnN0YW5jZShzdXNwZW5zZUluc3RhbmNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBhdHRhY2hTdXNwZW5zZVJldHJ5TGlzdGVuZXJzKGZpbmlzaGVkV29yaykge1xuICAvLyBJZiB0aGlzIGJvdW5kYXJ5IGp1c3QgdGltZWQgb3V0LCB0aGVuIGl0IHdpbGwgaGF2ZSBhIHNldCBvZiB3YWtlYWJsZXMuXG4gIC8vIEZvciBlYWNoIHdha2VhYmxlLCBhdHRhY2ggYSBsaXN0ZW5lciBzbyB0aGF0IHdoZW4gaXQgcmVzb2x2ZXMsIFJlYWN0XG4gIC8vIGF0dGVtcHRzIHRvIHJlLXJlbmRlciB0aGUgYm91bmRhcnkgaW4gdGhlIHByaW1hcnkgKHByZS10aW1lb3V0KSBzdGF0ZS5cbiAgdmFyIHdha2VhYmxlcyA9IGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZTtcblxuICBpZiAod2FrZWFibGVzICE9PSBudWxsKSB7XG4gICAgZmluaXNoZWRXb3JrLnVwZGF0ZVF1ZXVlID0gbnVsbDtcbiAgICB2YXIgcmV0cnlDYWNoZSA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG5cbiAgICBpZiAocmV0cnlDYWNoZSA9PT0gbnVsbCkge1xuICAgICAgcmV0cnlDYWNoZSA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGUgPSBuZXcgUG9zc2libHlXZWFrU2V0KCk7XG4gICAgfVxuXG4gICAgd2FrZWFibGVzLmZvckVhY2goZnVuY3Rpb24gKHdha2VhYmxlKSB7XG4gICAgICAvLyBNZW1vaXplIHVzaW5nIHRoZSBib3VuZGFyeSBmaWJlciB0byBwcmV2ZW50IHJlZHVuZGFudCBsaXN0ZW5lcnMuXG4gICAgICB2YXIgcmV0cnkgPSByZXNvbHZlUmV0cnlXYWtlYWJsZS5iaW5kKG51bGwsIGZpbmlzaGVkV29yaywgd2FrZWFibGUpO1xuXG4gICAgICBpZiAoIXJldHJ5Q2FjaGUuaGFzKHdha2VhYmxlKSkge1xuICAgICAgICByZXRyeUNhY2hlLmFkZCh3YWtlYWJsZSk7XG5cbiAgICAgICAge1xuICAgICAgICAgIGlmIChpc0RldlRvb2xzUHJlc2VudCkge1xuICAgICAgICAgICAgaWYgKGluUHJvZ3Jlc3NMYW5lcyAhPT0gbnVsbCAmJiBpblByb2dyZXNzUm9vdCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIHBlbmRpbmcgd29yayBzdGlsbCwgYXNzb2NpYXRlIHRoZSBvcmlnaW5hbCB1cGRhdGVycyB3aXRoIGl0LlxuICAgICAgICAgICAgICByZXN0b3JlUGVuZGluZ1VwZGF0ZXJzKGluUHJvZ3Jlc3NSb290LCBpblByb2dyZXNzTGFuZXMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ0V4cGVjdGVkIGZpbmlzaGVkIHJvb3QgYW5kIGxhbmVzIHRvIGJlIHNldC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB3YWtlYWJsZS50aGVuKHJldHJ5LCByZXRyeSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn0gLy8gVGhpcyBmdW5jdGlvbiBkZXRlY3RzIHdoZW4gYSBTdXNwZW5zZSBib3VuZGFyeSBnb2VzIGZyb20gdmlzaWJsZSB0byBoaWRkZW4uXG5mdW5jdGlvbiBjb21taXRNdXRhdGlvbkVmZmVjdHMocm9vdCwgZmluaXNoZWRXb3JrLCBjb21taXR0ZWRMYW5lcykge1xuICBpblByb2dyZXNzTGFuZXMgPSBjb21taXR0ZWRMYW5lcztcbiAgaW5Qcm9ncmVzc1Jvb3QgPSByb290O1xuICBzZXRDdXJyZW50RmliZXIoZmluaXNoZWRXb3JrKTtcbiAgY29tbWl0TXV0YXRpb25FZmZlY3RzT25GaWJlcihmaW5pc2hlZFdvcmssIHJvb3QpO1xuICBzZXRDdXJyZW50RmliZXIoZmluaXNoZWRXb3JrKTtcbiAgaW5Qcm9ncmVzc0xhbmVzID0gbnVsbDtcbiAgaW5Qcm9ncmVzc1Jvb3QgPSBudWxsO1xufVxuXG5mdW5jdGlvbiByZWN1cnNpdmVseVRyYXZlcnNlTXV0YXRpb25FZmZlY3RzKHJvb3QsIHBhcmVudEZpYmVyLCBsYW5lcykge1xuICAvLyBEZWxldGlvbnMgZWZmZWN0cyBjYW4gYmUgc2NoZWR1bGVkIG9uIGFueSBmaWJlciB0eXBlLiBUaGV5IG5lZWQgdG8gaGFwcGVuXG4gIC8vIGJlZm9yZSB0aGUgY2hpbGRyZW4gZWZmZWN0cyBoYWUgZmlyZWQuXG4gIHZhciBkZWxldGlvbnMgPSBwYXJlbnRGaWJlci5kZWxldGlvbnM7XG5cbiAgaWYgKGRlbGV0aW9ucyAhPT0gbnVsbCkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGVsZXRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgY2hpbGRUb0RlbGV0ZSA9IGRlbGV0aW9uc1tpXTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29tbWl0RGVsZXRpb25FZmZlY3RzKHJvb3QsIHBhcmVudEZpYmVyLCBjaGlsZFRvRGVsZXRlKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGNoaWxkVG9EZWxldGUsIHBhcmVudEZpYmVyLCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIHByZXZEZWJ1Z0ZpYmVyID0gZ2V0Q3VycmVudEZpYmVyKCk7XG5cbiAgaWYgKHBhcmVudEZpYmVyLnN1YnRyZWVGbGFncyAmIE11dGF0aW9uTWFzaykge1xuICAgIHZhciBjaGlsZCA9IHBhcmVudEZpYmVyLmNoaWxkO1xuXG4gICAgd2hpbGUgKGNoaWxkICE9PSBudWxsKSB7XG4gICAgICBzZXRDdXJyZW50RmliZXIoY2hpbGQpO1xuICAgICAgY29tbWl0TXV0YXRpb25FZmZlY3RzT25GaWJlcihjaGlsZCwgcm9vdCk7XG4gICAgICBjaGlsZCA9IGNoaWxkLnNpYmxpbmc7XG4gICAgfVxuICB9XG5cbiAgc2V0Q3VycmVudEZpYmVyKHByZXZEZWJ1Z0ZpYmVyKTtcbn1cblxuZnVuY3Rpb24gY29tbWl0TXV0YXRpb25FZmZlY3RzT25GaWJlcihmaW5pc2hlZFdvcmssIHJvb3QsIGxhbmVzKSB7XG4gIHZhciBjdXJyZW50ID0gZmluaXNoZWRXb3JrLmFsdGVybmF0ZTtcbiAgdmFyIGZsYWdzID0gZmluaXNoZWRXb3JrLmZsYWdzOyAvLyBUaGUgZWZmZWN0IGZsYWcgc2hvdWxkIGJlIGNoZWNrZWQgKmFmdGVyKiB3ZSByZWZpbmUgdGhlIHR5cGUgb2YgZmliZXIsXG4gIC8vIGJlY2F1c2UgdGhlIGZpYmVyIHRhZyBpcyBtb3JlIHNwZWNpZmljLiBBbiBleGNlcHRpb24gaXMgYW55IGZsYWcgcmVsYXRlZFxuICAvLyB0byByZWNvbmNpbGF0aW9uLCBiZWNhdXNlIHRob3NlIGNhbiBiZSBzZXQgb24gYWxsIGZpYmVyIHR5cGVzLlxuXG4gIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykge1xuICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgIGNhc2UgTWVtb0NvbXBvbmVudDpcbiAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VNdXRhdGlvbkVmZmVjdHMocm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgY29tbWl0UmVjb25jaWxpYXRpb25FZmZlY3RzKGZpbmlzaGVkV29yayk7XG5cbiAgICAgICAgaWYgKGZsYWdzICYgVXBkYXRlKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChJbnNlcnRpb24gfCBIYXNFZmZlY3QsIGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybik7XG4gICAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KEluc2VydGlvbiB8IEhhc0VmZmVjdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7XG4gICAgICAgICAgfSAvLyBMYXlvdXQgZWZmZWN0cyBhcmUgZGVzdHJveWVkIGR1cmluZyB0aGUgbXV0YXRpb24gcGhhc2Ugc28gdGhhdCBhbGxcbiAgICAgICAgICAvLyBkZXN0cm95IGZ1bmN0aW9ucyBmb3IgYWxsIGZpYmVycyBhcmUgY2FsbGVkIGJlZm9yZSBhbnkgY3JlYXRlIGZ1bmN0aW9ucy5cbiAgICAgICAgICAvLyBUaGlzIHByZXZlbnRzIHNpYmxpbmcgY29tcG9uZW50IGVmZmVjdHMgZnJvbSBpbnRlcmZlcmluZyB3aXRoIGVhY2ggb3RoZXIsXG4gICAgICAgICAgLy8gZS5nLiBhIGRlc3Ryb3kgZnVuY3Rpb24gaW4gb25lIGNvbXBvbmVudCBzaG91bGQgbmV2ZXIgb3ZlcnJpZGUgYSByZWYgc2V0XG4gICAgICAgICAgLy8gYnkgYSBjcmVhdGUgZnVuY3Rpb24gaW4gYW5vdGhlciBjb21wb25lbnQgZHVyaW5nIHRoZSBzYW1lIGNvbW1pdC5cblxuXG4gICAgICAgICAgaWYgKCBmaW5pc2hlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBzdGFydExheW91dEVmZmVjdFRpbWVyKCk7XG4gICAgICAgICAgICAgIGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChMYXlvdXQgfCBIYXNFZmZlY3QsIGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybik7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmVjb3JkTGF5b3V0RWZmZWN0RHVyYXRpb24oZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29tbWl0SG9va0VmZmVjdExpc3RVbm1vdW50KExheW91dCB8IEhhc0VmZmVjdCwgZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VNdXRhdGlvbkVmZmVjdHMocm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgY29tbWl0UmVjb25jaWxpYXRpb25FZmZlY3RzKGZpbmlzaGVkV29yayk7XG5cbiAgICAgICAgaWYgKGZsYWdzICYgUmVmKSB7XG4gICAgICAgICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHNhZmVseURldGFjaFJlZihjdXJyZW50LCBjdXJyZW50LnJldHVybik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBIb3N0Q29tcG9uZW50OlxuICAgICAge1xuICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTXV0YXRpb25FZmZlY3RzKHJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgIGNvbW1pdFJlY29uY2lsaWF0aW9uRWZmZWN0cyhmaW5pc2hlZFdvcmspO1xuXG4gICAgICAgIGlmIChmbGFncyAmIFJlZikge1xuICAgICAgICAgIGlmIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgICBzYWZlbHlEZXRhY2hSZWYoY3VycmVudCwgY3VycmVudC5yZXR1cm4pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHtcbiAgICAgICAgICAvLyBUT0RPOiBDb250ZW50UmVzZXQgZ2V0cyBjbGVhcmVkIGJ5IHRoZSBjaGlsZHJlbiBkdXJpbmcgdGhlIGNvbW1pdFxuICAgICAgICAgIC8vIHBoYXNlLiBUaGlzIGlzIGEgcmVmYWN0b3IgaGF6YXJkIGJlY2F1c2UgaXQgbWVhbnMgd2UgbXVzdCByZWFkXG4gICAgICAgICAgLy8gZmxhZ3MgdGhlIGZsYWdzIGFmdGVyIGBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHNgIGhhcyBhbHJlYWR5IHJ1bjtcbiAgICAgICAgICAvLyB0aGUgb3JkZXIgbWF0dGVycy4gV2Ugc2hvdWxkIHJlZmFjdG9yIHNvIHRoYXQgQ29udGVudFJlc2V0IGRvZXMgbm90XG4gICAgICAgICAgLy8gcmVseSBvbiBtdXRhdGluZyB0aGUgZmxhZyBkdXJpbmcgY29tbWl0LiBMaWtlIGJ5IHNldHRpbmcgYSBmbGFnXG4gICAgICAgICAgLy8gZHVyaW5nIHRoZSByZW5kZXIgcGhhc2UgaW5zdGVhZC5cbiAgICAgICAgICBpZiAoZmluaXNoZWRXb3JrLmZsYWdzICYgQ29udGVudFJlc2V0KSB7XG4gICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByZXNldFRleHRDb250ZW50KGluc3RhbmNlKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChmbGFncyAmIFVwZGF0ZSkge1xuICAgICAgICAgICAgdmFyIF9pbnN0YW5jZTQgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuXG4gICAgICAgICAgICBpZiAoX2luc3RhbmNlNCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgIC8vIENvbW1pdCB0aGUgd29yayBwcmVwYXJlZCBlYXJsaWVyLlxuICAgICAgICAgICAgICB2YXIgbmV3UHJvcHMgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wczsgLy8gRm9yIGh5ZHJhdGlvbiB3ZSByZXVzZSB0aGUgdXBkYXRlIHBhdGggYnV0IHdlIHRyZWF0IHRoZSBvbGRQcm9wc1xuICAgICAgICAgICAgICAvLyBhcyB0aGUgbmV3UHJvcHMuIFRoZSB1cGRhdGVQYXlsb2FkIHdpbGwgY29udGFpbiB0aGUgcmVhbCBjaGFuZ2UgaW5cbiAgICAgICAgICAgICAgLy8gdGhpcyBjYXNlLlxuXG4gICAgICAgICAgICAgIHZhciBvbGRQcm9wcyA9IGN1cnJlbnQgIT09IG51bGwgPyBjdXJyZW50Lm1lbW9pemVkUHJvcHMgOiBuZXdQcm9wcztcbiAgICAgICAgICAgICAgdmFyIHR5cGUgPSBmaW5pc2hlZFdvcmsudHlwZTsgLy8gVE9ETzogVHlwZSB0aGUgdXBkYXRlUXVldWUgdG8gYmUgc3BlY2lmaWMgdG8gaG9zdCBjb21wb25lbnRzLlxuXG4gICAgICAgICAgICAgIHZhciB1cGRhdGVQYXlsb2FkID0gZmluaXNoZWRXb3JrLnVwZGF0ZVF1ZXVlO1xuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWUgPSBudWxsO1xuXG4gICAgICAgICAgICAgIGlmICh1cGRhdGVQYXlsb2FkICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgIGNvbW1pdFVwZGF0ZShfaW5zdGFuY2U0LCB1cGRhdGVQYXlsb2FkLCB0eXBlLCBvbGRQcm9wcywgbmV3UHJvcHMsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFRleHQ6XG4gICAgICB7XG4gICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VNdXRhdGlvbkVmZmVjdHMocm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgY29tbWl0UmVjb25jaWxpYXRpb25FZmZlY3RzKGZpbmlzaGVkV29yayk7XG5cbiAgICAgICAgaWYgKGZsYWdzICYgVXBkYXRlKSB7XG4gICAgICAgICAge1xuICAgICAgICAgICAgaWYgKGZpbmlzaGVkV29yay5zdGF0ZU5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGlzIHNob3VsZCBoYXZlIGEgdGV4dCBub2RlIGluaXRpYWxpemVkLiBUaGlzIGVycm9yIGlzIGxpa2VseSAnICsgJ2NhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciB0ZXh0SW5zdGFuY2UgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuICAgICAgICAgICAgdmFyIG5ld1RleHQgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wczsgLy8gRm9yIGh5ZHJhdGlvbiB3ZSByZXVzZSB0aGUgdXBkYXRlIHBhdGggYnV0IHdlIHRyZWF0IHRoZSBvbGRQcm9wc1xuICAgICAgICAgICAgLy8gYXMgdGhlIG5ld1Byb3BzLiBUaGUgdXBkYXRlUGF5bG9hZCB3aWxsIGNvbnRhaW4gdGhlIHJlYWwgY2hhbmdlIGluXG4gICAgICAgICAgICAvLyB0aGlzIGNhc2UuXG5cbiAgICAgICAgICAgIHZhciBvbGRUZXh0ID0gY3VycmVudCAhPT0gbnVsbCA/IGN1cnJlbnQubWVtb2l6ZWRQcm9wcyA6IG5ld1RleHQ7XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbW1pdFRleHRVcGRhdGUodGV4dEluc3RhbmNlLCBvbGRUZXh0LCBuZXdUZXh0KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICB7XG4gICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VNdXRhdGlvbkVmZmVjdHMocm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgY29tbWl0UmVjb25jaWxpYXRpb25FZmZlY3RzKGZpbmlzaGVkV29yayk7XG5cbiAgICAgICAgaWYgKGZsYWdzICYgVXBkYXRlKSB7XG4gICAgICAgICAge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgdmFyIHByZXZSb290U3RhdGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG5cbiAgICAgICAgICAgICAgaWYgKHByZXZSb290U3RhdGUuaXNEZWh5ZHJhdGVkKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgIGNvbW1pdEh5ZHJhdGVkQ29udGFpbmVyKHJvb3QuY29udGFpbmVySW5mbyk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGNhc2UgSG9zdFBvcnRhbDpcbiAgICAgIHtcbiAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290LCBmaW5pc2hlZFdvcmspO1xuICAgICAgICBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHMoZmluaXNoZWRXb3JrKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlIFN1c3BlbnNlQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTXV0YXRpb25FZmZlY3RzKHJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgIGNvbW1pdFJlY29uY2lsaWF0aW9uRWZmZWN0cyhmaW5pc2hlZFdvcmspO1xuICAgICAgICB2YXIgb2Zmc2NyZWVuRmliZXIgPSBmaW5pc2hlZFdvcmsuY2hpbGQ7XG5cbiAgICAgICAgaWYgKG9mZnNjcmVlbkZpYmVyLmZsYWdzICYgVmlzaWJpbGl0eSkge1xuICAgICAgICAgIHZhciBvZmZzY3JlZW5JbnN0YW5jZSA9IG9mZnNjcmVlbkZpYmVyLnN0YXRlTm9kZTtcbiAgICAgICAgICB2YXIgbmV3U3RhdGUgPSBvZmZzY3JlZW5GaWJlci5tZW1vaXplZFN0YXRlO1xuICAgICAgICAgIHZhciBpc0hpZGRlbiA9IG5ld1N0YXRlICE9PSBudWxsOyAvLyBUcmFjayB0aGUgY3VycmVudCBzdGF0ZSBvbiB0aGUgT2Zmc2NyZWVuIGluc3RhbmNlIHNvIHdlIGNhblxuICAgICAgICAgIC8vIHJlYWQgaXQgZHVyaW5nIGFuIGV2ZW50XG5cbiAgICAgICAgICBvZmZzY3JlZW5JbnN0YW5jZS5pc0hpZGRlbiA9IGlzSGlkZGVuO1xuXG4gICAgICAgICAgaWYgKGlzSGlkZGVuKSB7XG4gICAgICAgICAgICB2YXIgd2FzSGlkZGVuID0gb2Zmc2NyZWVuRmliZXIuYWx0ZXJuYXRlICE9PSBudWxsICYmIG9mZnNjcmVlbkZpYmVyLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlICE9PSBudWxsO1xuXG4gICAgICAgICAgICBpZiAoIXdhc0hpZGRlbikge1xuICAgICAgICAgICAgICAvLyBUT0RPOiBNb3ZlIHRvIHBhc3NpdmUgcGhhc2VcbiAgICAgICAgICAgICAgbWFya0NvbW1pdFRpbWVPZkZhbGxiYWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZsYWdzICYgVXBkYXRlKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbW1pdFN1c3BlbnNlQ2FsbGJhY2soZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYXR0YWNoU3VzcGVuc2VSZXRyeUxpc3RlbmVycyhmaW5pc2hlZFdvcmspO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgY2FzZSBPZmZzY3JlZW5Db21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIHZhciBfd2FzSGlkZGVuID0gY3VycmVudCAhPT0gbnVsbCAmJiBjdXJyZW50Lm1lbW9pemVkU3RhdGUgIT09IG51bGw7XG5cbiAgICAgICAgaWYgKCAvLyBUT0RPOiBSZW1vdmUgdGhpcyBkZWFkIGZsYWdcbiAgICAgICAgIGZpbmlzaGVkV29yay5tb2RlICYgQ29uY3VycmVudE1vZGUpIHtcbiAgICAgICAgICAvLyBCZWZvcmUgY29tbWl0dGluZyB0aGUgY2hpbGRyZW4sIHRyYWNrIG9uIHRoZSBzdGFjayB3aGV0aGVyIHRoaXNcbiAgICAgICAgICAvLyBvZmZzY3JlZW4gc3VidHJlZSB3YXMgYWxyZWFkeSBoaWRkZW4sIHNvIHRoYXQgd2UgZG9uJ3QgdW5tb3VudCB0aGVcbiAgICAgICAgICAvLyBlZmZlY3RzIGFnYWluLlxuICAgICAgICAgIHZhciBwcmV2T2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiA9IG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW47XG4gICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiA9IHByZXZPZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuIHx8IF93YXNIaWRkZW47XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290LCBmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gPSBwcmV2T2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTXV0YXRpb25FZmZlY3RzKHJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgIH1cblxuICAgICAgICBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHMoZmluaXNoZWRXb3JrKTtcblxuICAgICAgICBpZiAoZmxhZ3MgJiBWaXNpYmlsaXR5KSB7XG4gICAgICAgICAgdmFyIF9vZmZzY3JlZW5JbnN0YW5jZSA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG4gICAgICAgICAgdmFyIF9uZXdTdGF0ZSA9IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlO1xuXG4gICAgICAgICAgdmFyIF9pc0hpZGRlbiA9IF9uZXdTdGF0ZSAhPT0gbnVsbDtcblxuICAgICAgICAgIHZhciBvZmZzY3JlZW5Cb3VuZGFyeSA9IGZpbmlzaGVkV29yazsgLy8gVHJhY2sgdGhlIGN1cnJlbnQgc3RhdGUgb24gdGhlIE9mZnNjcmVlbiBpbnN0YW5jZSBzbyB3ZSBjYW5cbiAgICAgICAgICAvLyByZWFkIGl0IGR1cmluZyBhbiBldmVudFxuXG4gICAgICAgICAgX29mZnNjcmVlbkluc3RhbmNlLmlzSGlkZGVuID0gX2lzSGlkZGVuO1xuXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWYgKF9pc0hpZGRlbikge1xuICAgICAgICAgICAgICBpZiAoIV93YXNIaWRkZW4pIHtcbiAgICAgICAgICAgICAgICBpZiAoKG9mZnNjcmVlbkJvdW5kYXJ5Lm1vZGUgJiBDb25jdXJyZW50TW9kZSkgIT09IE5vTW9kZSkge1xuICAgICAgICAgICAgICAgICAgbmV4dEVmZmVjdCA9IG9mZnNjcmVlbkJvdW5kYXJ5O1xuICAgICAgICAgICAgICAgICAgdmFyIG9mZnNjcmVlbkNoaWxkID0gb2Zmc2NyZWVuQm91bmRhcnkuY2hpbGQ7XG5cbiAgICAgICAgICAgICAgICAgIHdoaWxlIChvZmZzY3JlZW5DaGlsZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBuZXh0RWZmZWN0ID0gb2Zmc2NyZWVuQ2hpbGQ7XG4gICAgICAgICAgICAgICAgICAgIGRpc2FwcGVhckxheW91dEVmZmVjdHNfYmVnaW4ob2Zmc2NyZWVuQ2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICBvZmZzY3JlZW5DaGlsZCA9IG9mZnNjcmVlbkNoaWxkLnNpYmxpbmc7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAge1xuICAgICAgICAgICAgLy8gVE9ETzogVGhpcyBuZWVkcyB0byBydW4gd2hlbmV2ZXIgdGhlcmUncyBhbiBpbnNlcnRpb24gb3IgdXBkYXRlXG4gICAgICAgICAgICAvLyBpbnNpZGUgYSBoaWRkZW4gT2Zmc2NyZWVuIHRyZWUuXG4gICAgICAgICAgICBoaWRlT3JVbmhpZGVBbGxDaGlsZHJlbihvZmZzY3JlZW5Cb3VuZGFyeSwgX2lzSGlkZGVuKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlIFN1c3BlbnNlTGlzdENvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290LCBmaW5pc2hlZFdvcmspO1xuICAgICAgICBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHMoZmluaXNoZWRXb3JrKTtcblxuICAgICAgICBpZiAoZmxhZ3MgJiBVcGRhdGUpIHtcbiAgICAgICAgICBhdHRhY2hTdXNwZW5zZVJldHJ5TGlzdGVuZXJzKGZpbmlzaGVkV29yayk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICBjYXNlIFNjb3BlQ29tcG9uZW50OlxuICAgICAge1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICB7XG4gICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VNdXRhdGlvbkVmZmVjdHMocm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgY29tbWl0UmVjb25jaWxpYXRpb25FZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHMoZmluaXNoZWRXb3JrKSB7XG4gIC8vIFBsYWNlbWVudCBlZmZlY3RzIChpbnNlcnRpb25zLCByZW9yZGVycykgY2FuIGJlIHNjaGVkdWxlZCBvbiBhbnkgZmliZXJcbiAgLy8gdHlwZS4gVGhleSBuZWVkcyB0byBoYXBwZW4gYWZ0ZXIgdGhlIGNoaWxkcmVuIGVmZmVjdHMgaGF2ZSBmaXJlZCwgYnV0XG4gIC8vIGJlZm9yZSB0aGUgZWZmZWN0cyBvbiB0aGlzIGZpYmVyIGhhdmUgZmlyZWQuXG4gIHZhciBmbGFncyA9IGZpbmlzaGVkV29yay5mbGFncztcblxuICBpZiAoZmxhZ3MgJiBQbGFjZW1lbnQpIHtcbiAgICB0cnkge1xuICAgICAgY29tbWl0UGxhY2VtZW50KGZpbmlzaGVkV29yayk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpO1xuICAgIH0gLy8gQ2xlYXIgdGhlIFwicGxhY2VtZW50XCIgZnJvbSBlZmZlY3QgdGFnIHNvIHRoYXQgd2Uga25vdyB0aGF0IHRoaXMgaXNcbiAgICAvLyBpbnNlcnRlZCwgYmVmb3JlIGFueSBsaWZlLWN5Y2xlcyBsaWtlIGNvbXBvbmVudERpZE1vdW50IGdldHMgY2FsbGVkLlxuICAgIC8vIFRPRE86IGZpbmRET01Ob2RlIGRvZXNuJ3QgcmVseSBvbiB0aGlzIGFueSBtb3JlIGJ1dCBpc01vdW50ZWQgZG9lc1xuICAgIC8vIGFuZCBpc01vdW50ZWQgaXMgZGVwcmVjYXRlZCBhbnl3YXkgc28gd2Ugc2hvdWxkIGJlIGFibGUgdG8ga2lsbCB0aGlzLlxuXG5cbiAgICBmaW5pc2hlZFdvcmsuZmxhZ3MgJj0gflBsYWNlbWVudDtcbiAgfVxuXG4gIGlmIChmbGFncyAmIEh5ZHJhdGluZykge1xuICAgIGZpbmlzaGVkV29yay5mbGFncyAmPSB+SHlkcmF0aW5nO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdExheW91dEVmZmVjdHMoZmluaXNoZWRXb3JrLCByb290LCBjb21taXR0ZWRMYW5lcykge1xuICBpblByb2dyZXNzTGFuZXMgPSBjb21taXR0ZWRMYW5lcztcbiAgaW5Qcm9ncmVzc1Jvb3QgPSByb290O1xuICBuZXh0RWZmZWN0ID0gZmluaXNoZWRXb3JrO1xuICBjb21taXRMYXlvdXRFZmZlY3RzX2JlZ2luKGZpbmlzaGVkV29yaywgcm9vdCwgY29tbWl0dGVkTGFuZXMpO1xuICBpblByb2dyZXNzTGFuZXMgPSBudWxsO1xuICBpblByb2dyZXNzUm9vdCA9IG51bGw7XG59XG5cbmZ1bmN0aW9uIGNvbW1pdExheW91dEVmZmVjdHNfYmVnaW4oc3VidHJlZVJvb3QsIHJvb3QsIGNvbW1pdHRlZExhbmVzKSB7XG4gIC8vIFN1c3BlbnNlIGxheW91dCBlZmZlY3RzIHNlbWFudGljcyBkb24ndCBjaGFuZ2UgZm9yIGxlZ2FjeSByb290cy5cbiAgdmFyIGlzTW9kZXJuUm9vdCA9IChzdWJ0cmVlUm9vdC5tb2RlICYgQ29uY3VycmVudE1vZGUpICE9PSBOb01vZGU7XG5cbiAgd2hpbGUgKG5leHRFZmZlY3QgIT09IG51bGwpIHtcbiAgICB2YXIgZmliZXIgPSBuZXh0RWZmZWN0O1xuICAgIHZhciBmaXJzdENoaWxkID0gZmliZXIuY2hpbGQ7XG5cbiAgICBpZiAoIGZpYmVyLnRhZyA9PT0gT2Zmc2NyZWVuQ29tcG9uZW50ICYmIGlzTW9kZXJuUm9vdCkge1xuICAgICAgLy8gS2VlcCB0cmFjayBvZiB0aGUgY3VycmVudCBPZmZzY3JlZW4gc3RhY2sncyBzdGF0ZS5cbiAgICAgIHZhciBpc0hpZGRlbiA9IGZpYmVyLm1lbW9pemVkU3RhdGUgIT09IG51bGw7XG4gICAgICB2YXIgbmV3T2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuID0gaXNIaWRkZW4gfHwgb2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuO1xuXG4gICAgICBpZiAobmV3T2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuKSB7XG4gICAgICAgIC8vIFRoZSBPZmZzY3JlZW4gdHJlZSBpcyBoaWRkZW4uIFNraXAgb3ZlciBpdHMgbGF5b3V0IGVmZmVjdHMuXG4gICAgICAgIGNvbW1pdExheW91dE1vdW50RWZmZWN0c19jb21wbGV0ZShzdWJ0cmVlUm9vdCwgcm9vdCwgY29tbWl0dGVkTGFuZXMpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRPRE8gKE9mZnNjcmVlbikgQWxzbyBjaGVjazogc3VidHJlZUZsYWdzICYgTGF5b3V0TWFza1xuICAgICAgICB2YXIgY3VycmVudCA9IGZpYmVyLmFsdGVybmF0ZTtcbiAgICAgICAgdmFyIHdhc0hpZGRlbiA9IGN1cnJlbnQgIT09IG51bGwgJiYgY3VycmVudC5tZW1vaXplZFN0YXRlICE9PSBudWxsO1xuICAgICAgICB2YXIgbmV3T2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiA9IHdhc0hpZGRlbiB8fCBvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuO1xuICAgICAgICB2YXIgcHJldk9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbiA9IG9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbjtcbiAgICAgICAgdmFyIHByZXZPZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuID0gb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbjsgLy8gVHJhdmVyc2UgdGhlIE9mZnNjcmVlbiBzdWJ0cmVlIHdpdGggdGhlIGN1cnJlbnQgT2Zmc2NyZWVuIGFzIHRoZSByb290LlxuXG4gICAgICAgIG9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbiA9IG5ld09mZnNjcmVlblN1YnRyZWVJc0hpZGRlbjtcbiAgICAgICAgb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiA9IG5ld09mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW47XG5cbiAgICAgICAgaWYgKG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gJiYgIXByZXZPZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuKSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyB0aGUgcm9vdCBvZiBhIHJlYXBwZWFyaW5nIGJvdW5kYXJ5LiBUdXJuIGl0cyBsYXlvdXQgZWZmZWN0c1xuICAgICAgICAgIC8vIGJhY2sgb24uXG4gICAgICAgICAgbmV4dEVmZmVjdCA9IGZpYmVyO1xuICAgICAgICAgIHJlYXBwZWFyTGF5b3V0RWZmZWN0c19iZWdpbihmaWJlcik7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgY2hpbGQgPSBmaXJzdENoaWxkO1xuXG4gICAgICAgIHdoaWxlIChjaGlsZCAhPT0gbnVsbCkge1xuICAgICAgICAgIG5leHRFZmZlY3QgPSBjaGlsZDtcbiAgICAgICAgICBjb21taXRMYXlvdXRFZmZlY3RzX2JlZ2luKGNoaWxkLCAvLyBOZXcgcm9vdDsgYnViYmxlIGJhY2sgdXAgdG8gaGVyZSBhbmQgc3RvcC5cbiAgICAgICAgICByb290LCBjb21taXR0ZWRMYW5lcyk7XG4gICAgICAgICAgY2hpbGQgPSBjaGlsZC5zaWJsaW5nO1xuICAgICAgICB9IC8vIFJlc3RvcmUgT2Zmc2NyZWVuIHN0YXRlIGFuZCByZXN1bWUgaW4gb3VyLXByb2dyZXNzIHRyYXZlcnNhbC5cblxuXG4gICAgICAgIG5leHRFZmZlY3QgPSBmaWJlcjtcbiAgICAgICAgb2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuID0gcHJldk9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbjtcbiAgICAgICAgb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiA9IHByZXZPZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuO1xuICAgICAgICBjb21taXRMYXlvdXRNb3VudEVmZmVjdHNfY29tcGxldGUoc3VidHJlZVJvb3QsIHJvb3QsIGNvbW1pdHRlZExhbmVzKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKChmaWJlci5zdWJ0cmVlRmxhZ3MgJiBMYXlvdXRNYXNrKSAhPT0gTm9GbGFncyAmJiBmaXJzdENoaWxkICE9PSBudWxsKSB7XG4gICAgICBmaXJzdENoaWxkLnJldHVybiA9IGZpYmVyO1xuICAgICAgbmV4dEVmZmVjdCA9IGZpcnN0Q2hpbGQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbW1pdExheW91dE1vdW50RWZmZWN0c19jb21wbGV0ZShzdWJ0cmVlUm9vdCwgcm9vdCwgY29tbWl0dGVkTGFuZXMpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRMYXlvdXRNb3VudEVmZmVjdHNfY29tcGxldGUoc3VidHJlZVJvb3QsIHJvb3QsIGNvbW1pdHRlZExhbmVzKSB7XG4gIHdoaWxlIChuZXh0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyIGZpYmVyID0gbmV4dEVmZmVjdDtcblxuICAgIGlmICgoZmliZXIuZmxhZ3MgJiBMYXlvdXRNYXNrKSAhPT0gTm9GbGFncykge1xuICAgICAgdmFyIGN1cnJlbnQgPSBmaWJlci5hbHRlcm5hdGU7XG4gICAgICBzZXRDdXJyZW50RmliZXIoZmliZXIpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb21taXRMYXlvdXRFZmZlY3RPbkZpYmVyKHJvb3QsIGN1cnJlbnQsIGZpYmVyLCBjb21taXR0ZWRMYW5lcyk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaWJlciwgZmliZXIucmV0dXJuLCBlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gICAgfVxuXG4gICAgaWYgKGZpYmVyID09PSBzdWJ0cmVlUm9vdCkge1xuICAgICAgbmV4dEVmZmVjdCA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHNpYmxpbmcgPSBmaWJlci5zaWJsaW5nO1xuXG4gICAgaWYgKHNpYmxpbmcgIT09IG51bGwpIHtcbiAgICAgIHNpYmxpbmcucmV0dXJuID0gZmliZXIucmV0dXJuO1xuICAgICAgbmV4dEVmZmVjdCA9IHNpYmxpbmc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbmV4dEVmZmVjdCA9IGZpYmVyLnJldHVybjtcbiAgfVxufVxuXG5mdW5jdGlvbiBkaXNhcHBlYXJMYXlvdXRFZmZlY3RzX2JlZ2luKHN1YnRyZWVSb290KSB7XG4gIHdoaWxlIChuZXh0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyIGZpYmVyID0gbmV4dEVmZmVjdDtcbiAgICB2YXIgZmlyc3RDaGlsZCA9IGZpYmVyLmNoaWxkOyAvLyBUT0RPIChPZmZzY3JlZW4pIENoZWNrOiBmbGFncyAmIChSZWZTdGF0aWMgfCBMYXlvdXRTdGF0aWMpXG5cbiAgICBzd2l0Y2ggKGZpYmVyLnRhZykge1xuICAgICAgY2FzZSBGdW5jdGlvbkNvbXBvbmVudDpcbiAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgIGNhc2UgTWVtb0NvbXBvbmVudDpcbiAgICAgIGNhc2UgU2ltcGxlTWVtb0NvbXBvbmVudDpcbiAgICAgICAge1xuICAgICAgICAgIGlmICggZmliZXIubW9kZSAmIFByb2ZpbGVNb2RlKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBzdGFydExheW91dEVmZmVjdFRpbWVyKCk7XG4gICAgICAgICAgICAgIGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChMYXlvdXQsIGZpYmVyLCBmaWJlci5yZXR1cm4pO1xuICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgcmVjb3JkTGF5b3V0RWZmZWN0RHVyYXRpb24oZmliZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdFVubW91bnQoTGF5b3V0LCBmaWJlciwgZmliZXIucmV0dXJuKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIENsYXNzQ29tcG9uZW50OlxuICAgICAgICB7XG4gICAgICAgICAgLy8gVE9ETyAoT2Zmc2NyZWVuKSBDaGVjazogZmxhZ3MgJiBSZWZTdGF0aWNcbiAgICAgICAgICBzYWZlbHlEZXRhY2hSZWYoZmliZXIsIGZpYmVyLnJldHVybik7XG4gICAgICAgICAgdmFyIGluc3RhbmNlID0gZmliZXIuc3RhdGVOb2RlO1xuXG4gICAgICAgICAgaWYgKHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsVW5tb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgc2FmZWx5Q2FsbENvbXBvbmVudFdpbGxVbm1vdW50KGZpYmVyLCBmaWJlci5yZXR1cm4sIGluc3RhbmNlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICBzYWZlbHlEZXRhY2hSZWYoZmliZXIsIGZpYmVyLnJldHVybik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBPZmZzY3JlZW5Db21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICAvLyBDaGVjayBpZiB0aGlzIGlzIGFcbiAgICAgICAgICB2YXIgaXNIaWRkZW4gPSBmaWJlci5tZW1vaXplZFN0YXRlICE9PSBudWxsO1xuXG4gICAgICAgICAgaWYgKGlzSGlkZGVuKSB7XG4gICAgICAgICAgICAvLyBOZXN0ZWQgT2Zmc2NyZWVuIHRyZWUgaXMgYWxyZWFkeSBoaWRkZW4uIERvbid0IGRpc2FwcGVhclxuICAgICAgICAgICAgLy8gaXRzIGVmZmVjdHMuXG4gICAgICAgICAgICBkaXNhcHBlYXJMYXlvdXRFZmZlY3RzX2NvbXBsZXRlKHN1YnRyZWVSb290KTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfSAvLyBUT0RPIChPZmZzY3JlZW4pIENoZWNrOiBzdWJ0cmVlRmxhZ3MgJiBMYXlvdXRTdGF0aWNcblxuXG4gICAgaWYgKGZpcnN0Q2hpbGQgIT09IG51bGwpIHtcbiAgICAgIGZpcnN0Q2hpbGQucmV0dXJuID0gZmliZXI7XG4gICAgICBuZXh0RWZmZWN0ID0gZmlyc3RDaGlsZDtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzYXBwZWFyTGF5b3V0RWZmZWN0c19jb21wbGV0ZShzdWJ0cmVlUm9vdCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGRpc2FwcGVhckxheW91dEVmZmVjdHNfY29tcGxldGUoc3VidHJlZVJvb3QpIHtcbiAgd2hpbGUgKG5leHRFZmZlY3QgIT09IG51bGwpIHtcbiAgICB2YXIgZmliZXIgPSBuZXh0RWZmZWN0O1xuXG4gICAgaWYgKGZpYmVyID09PSBzdWJ0cmVlUm9vdCkge1xuICAgICAgbmV4dEVmZmVjdCA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHNpYmxpbmcgPSBmaWJlci5zaWJsaW5nO1xuXG4gICAgaWYgKHNpYmxpbmcgIT09IG51bGwpIHtcbiAgICAgIHNpYmxpbmcucmV0dXJuID0gZmliZXIucmV0dXJuO1xuICAgICAgbmV4dEVmZmVjdCA9IHNpYmxpbmc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbmV4dEVmZmVjdCA9IGZpYmVyLnJldHVybjtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWFwcGVhckxheW91dEVmZmVjdHNfYmVnaW4oc3VidHJlZVJvb3QpIHtcbiAgd2hpbGUgKG5leHRFZmZlY3QgIT09IG51bGwpIHtcbiAgICB2YXIgZmliZXIgPSBuZXh0RWZmZWN0O1xuICAgIHZhciBmaXJzdENoaWxkID0gZmliZXIuY2hpbGQ7XG5cbiAgICBpZiAoZmliZXIudGFnID09PSBPZmZzY3JlZW5Db21wb25lbnQpIHtcbiAgICAgIHZhciBpc0hpZGRlbiA9IGZpYmVyLm1lbW9pemVkU3RhdGUgIT09IG51bGw7XG5cbiAgICAgIGlmIChpc0hpZGRlbikge1xuICAgICAgICAvLyBOZXN0ZWQgT2Zmc2NyZWVuIHRyZWUgaXMgc3RpbGwgaGlkZGVuLiBEb24ndCByZS1hcHBlYXIgaXRzIGVmZmVjdHMuXG4gICAgICAgIHJlYXBwZWFyTGF5b3V0RWZmZWN0c19jb21wbGV0ZShzdWJ0cmVlUm9vdCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH0gLy8gVE9ETyAoT2Zmc2NyZWVuKSBDaGVjazogc3VidHJlZUZsYWdzICYgTGF5b3V0U3RhdGljXG5cblxuICAgIGlmIChmaXJzdENoaWxkICE9PSBudWxsKSB7XG4gICAgICAvLyBUaGlzIG5vZGUgbWF5IGhhdmUgYmVlbiByZXVzZWQgZnJvbSBhIHByZXZpb3VzIHJlbmRlciwgc28gd2UgY2FuJ3RcbiAgICAgIC8vIGFzc3VtZSBpdHMgcmV0dXJuIHBvaW50ZXIgaXMgY29ycmVjdC5cbiAgICAgIGZpcnN0Q2hpbGQucmV0dXJuID0gZmliZXI7XG4gICAgICBuZXh0RWZmZWN0ID0gZmlyc3RDaGlsZDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVhcHBlYXJMYXlvdXRFZmZlY3RzX2NvbXBsZXRlKHN1YnRyZWVSb290KTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVhcHBlYXJMYXlvdXRFZmZlY3RzX2NvbXBsZXRlKHN1YnRyZWVSb290KSB7XG4gIHdoaWxlIChuZXh0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyIGZpYmVyID0gbmV4dEVmZmVjdDsgLy8gVE9ETyAoT2Zmc2NyZWVuKSBDaGVjazogZmxhZ3MgJiBMYXlvdXRTdGF0aWNcblxuICAgIHNldEN1cnJlbnRGaWJlcihmaWJlcik7XG5cbiAgICB0cnkge1xuICAgICAgcmVhcHBlYXJMYXlvdXRFZmZlY3RzT25GaWJlcihmaWJlcik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpYmVyLCBmaWJlci5yZXR1cm4sIGVycm9yKTtcbiAgICB9XG5cbiAgICByZXNldEN1cnJlbnRGaWJlcigpO1xuXG4gICAgaWYgKGZpYmVyID09PSBzdWJ0cmVlUm9vdCkge1xuICAgICAgbmV4dEVmZmVjdCA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHNpYmxpbmcgPSBmaWJlci5zaWJsaW5nO1xuXG4gICAgaWYgKHNpYmxpbmcgIT09IG51bGwpIHtcbiAgICAgIC8vIFRoaXMgbm9kZSBtYXkgaGF2ZSBiZWVuIHJldXNlZCBmcm9tIGEgcHJldmlvdXMgcmVuZGVyLCBzbyB3ZSBjYW4ndFxuICAgICAgLy8gYXNzdW1lIGl0cyByZXR1cm4gcG9pbnRlciBpcyBjb3JyZWN0LlxuICAgICAgc2libGluZy5yZXR1cm4gPSBmaWJlci5yZXR1cm47XG4gICAgICBuZXh0RWZmZWN0ID0gc2libGluZztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBuZXh0RWZmZWN0ID0gZmliZXIucmV0dXJuO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdFBhc3NpdmVNb3VudEVmZmVjdHMocm9vdCwgZmluaXNoZWRXb3JrLCBjb21taXR0ZWRMYW5lcywgY29tbWl0dGVkVHJhbnNpdGlvbnMpIHtcbiAgbmV4dEVmZmVjdCA9IGZpbmlzaGVkV29yaztcbiAgY29tbWl0UGFzc2l2ZU1vdW50RWZmZWN0c19iZWdpbihmaW5pc2hlZFdvcmssIHJvb3QsIGNvbW1pdHRlZExhbmVzLCBjb21taXR0ZWRUcmFuc2l0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIGNvbW1pdFBhc3NpdmVNb3VudEVmZmVjdHNfYmVnaW4oc3VidHJlZVJvb3QsIHJvb3QsIGNvbW1pdHRlZExhbmVzLCBjb21taXR0ZWRUcmFuc2l0aW9ucykge1xuICB3aGlsZSAobmV4dEVmZmVjdCAhPT0gbnVsbCkge1xuICAgIHZhciBmaWJlciA9IG5leHRFZmZlY3Q7XG4gICAgdmFyIGZpcnN0Q2hpbGQgPSBmaWJlci5jaGlsZDtcblxuICAgIGlmICgoZmliZXIuc3VidHJlZUZsYWdzICYgUGFzc2l2ZU1hc2spICE9PSBOb0ZsYWdzICYmIGZpcnN0Q2hpbGQgIT09IG51bGwpIHtcbiAgICAgIGZpcnN0Q2hpbGQucmV0dXJuID0gZmliZXI7XG4gICAgICBuZXh0RWZmZWN0ID0gZmlyc3RDaGlsZDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29tbWl0UGFzc2l2ZU1vdW50RWZmZWN0c19jb21wbGV0ZShzdWJ0cmVlUm9vdCwgcm9vdCwgY29tbWl0dGVkTGFuZXMsIGNvbW1pdHRlZFRyYW5zaXRpb25zKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0UGFzc2l2ZU1vdW50RWZmZWN0c19jb21wbGV0ZShzdWJ0cmVlUm9vdCwgcm9vdCwgY29tbWl0dGVkTGFuZXMsIGNvbW1pdHRlZFRyYW5zaXRpb25zKSB7XG4gIHdoaWxlIChuZXh0RWZmZWN0ICE9PSBudWxsKSB7XG4gICAgdmFyIGZpYmVyID0gbmV4dEVmZmVjdDtcblxuICAgIGlmICgoZmliZXIuZmxhZ3MgJiBQYXNzaXZlKSAhPT0gTm9GbGFncykge1xuICAgICAgc2V0Q3VycmVudEZpYmVyKGZpYmVyKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29tbWl0UGFzc2l2ZU1vdW50T25GaWJlcihyb290LCBmaWJlciwgY29tbWl0dGVkTGFuZXMsIGNvbW1pdHRlZFRyYW5zaXRpb25zKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpYmVyLCBmaWJlci5yZXR1cm4sIGVycm9yKTtcbiAgICAgIH1cblxuICAgICAgcmVzZXRDdXJyZW50RmliZXIoKTtcbiAgICB9XG5cbiAgICBpZiAoZmliZXIgPT09IHN1YnRyZWVSb290KSB7XG4gICAgICBuZXh0RWZmZWN0ID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgc2libGluZyA9IGZpYmVyLnNpYmxpbmc7XG5cbiAgICBpZiAoc2libGluZyAhPT0gbnVsbCkge1xuICAgICAgc2libGluZy5yZXR1cm4gPSBmaWJlci5yZXR1cm47XG4gICAgICBuZXh0RWZmZWN0ID0gc2libGluZztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBuZXh0RWZmZWN0ID0gZmliZXIucmV0dXJuO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdFBhc3NpdmVNb3VudE9uRmliZXIoZmluaXNoZWRSb290LCBmaW5pc2hlZFdvcmssIGNvbW1pdHRlZExhbmVzLCBjb21taXR0ZWRUcmFuc2l0aW9ucykge1xuICBzd2l0Y2ggKGZpbmlzaGVkV29yay50YWcpIHtcbiAgICBjYXNlIEZ1bmN0aW9uQ29tcG9uZW50OlxuICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICB7XG4gICAgICAgIGlmICggZmluaXNoZWRXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkge1xuICAgICAgICAgIHN0YXJ0UGFzc2l2ZUVmZmVjdFRpbWVyKCk7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29tbWl0SG9va0VmZmVjdExpc3RNb3VudChQYXNzaXZlJDEgfCBIYXNFZmZlY3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHJlY29yZFBhc3NpdmVFZmZlY3REdXJhdGlvbihmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KFBhc3NpdmUkMSB8IEhhc0VmZmVjdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdFBhc3NpdmVVbm1vdW50RWZmZWN0cyhmaXJzdENoaWxkKSB7XG4gIG5leHRFZmZlY3QgPSBmaXJzdENoaWxkO1xuICBjb21taXRQYXNzaXZlVW5tb3VudEVmZmVjdHNfYmVnaW4oKTtcbn1cblxuZnVuY3Rpb24gY29tbWl0UGFzc2l2ZVVubW91bnRFZmZlY3RzX2JlZ2luKCkge1xuICB3aGlsZSAobmV4dEVmZmVjdCAhPT0gbnVsbCkge1xuICAgIHZhciBmaWJlciA9IG5leHRFZmZlY3Q7XG4gICAgdmFyIGNoaWxkID0gZmliZXIuY2hpbGQ7XG5cbiAgICBpZiAoKG5leHRFZmZlY3QuZmxhZ3MgJiBDaGlsZERlbGV0aW9uKSAhPT0gTm9GbGFncykge1xuICAgICAgdmFyIGRlbGV0aW9ucyA9IGZpYmVyLmRlbGV0aW9ucztcblxuICAgICAgaWYgKGRlbGV0aW9ucyAhPT0gbnVsbCkge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRlbGV0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBmaWJlclRvRGVsZXRlID0gZGVsZXRpb25zW2ldO1xuICAgICAgICAgIG5leHRFZmZlY3QgPSBmaWJlclRvRGVsZXRlO1xuICAgICAgICAgIGNvbW1pdFBhc3NpdmVVbm1vdW50RWZmZWN0c0luc2lkZU9mRGVsZXRlZFRyZWVfYmVnaW4oZmliZXJUb0RlbGV0ZSwgZmliZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAge1xuICAgICAgICAgIC8vIEEgZmliZXIgd2FzIGRlbGV0ZWQgZnJvbSB0aGlzIHBhcmVudCBmaWJlciwgYnV0IGl0J3Mgc3RpbGwgcGFydCBvZlxuICAgICAgICAgIC8vIHRoZSBwcmV2aW91cyAoYWx0ZXJuYXRlKSBwYXJlbnQgZmliZXIncyBsaXN0IG9mIGNoaWxkcmVuLiBCZWNhdXNlXG4gICAgICAgICAgLy8gY2hpbGRyZW4gYXJlIGEgbGlua2VkIGxpc3QsIGFuIGVhcmxpZXIgc2libGluZyB0aGF0J3Mgc3RpbGwgYWxpdmVcbiAgICAgICAgICAvLyB3aWxsIGJlIGNvbm5lY3RlZCB0byB0aGUgZGVsZXRlZCBmaWJlciB2aWEgaXRzIGBhbHRlcm5hdGVgOlxuICAgICAgICAgIC8vXG4gICAgICAgICAgLy8gICBsaXZlIGZpYmVyXG4gICAgICAgICAgLy8gICAtLWFsdGVybmF0ZS0tPiBwcmV2aW91cyBsaXZlIGZpYmVyXG4gICAgICAgICAgLy8gICAtLXNpYmxpbmctLT4gZGVsZXRlZCBmaWJlclxuICAgICAgICAgIC8vXG4gICAgICAgICAgLy8gV2UgY2FuJ3QgZGlzY29ubmVjdCBgYWx0ZXJuYXRlYCBvbiBub2RlcyB0aGF0IGhhdmVuJ3QgYmVlbiBkZWxldGVkXG4gICAgICAgICAgLy8geWV0LCBidXQgd2UgY2FuIGRpc2Nvbm5lY3QgdGhlIGBzaWJsaW5nYCBhbmQgYGNoaWxkYCBwb2ludGVycy5cbiAgICAgICAgICB2YXIgcHJldmlvdXNGaWJlciA9IGZpYmVyLmFsdGVybmF0ZTtcblxuICAgICAgICAgIGlmIChwcmV2aW91c0ZpYmVyICE9PSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgZGV0YWNoZWRDaGlsZCA9IHByZXZpb3VzRmliZXIuY2hpbGQ7XG5cbiAgICAgICAgICAgIGlmIChkZXRhY2hlZENoaWxkICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIHByZXZpb3VzRmliZXIuY2hpbGQgPSBudWxsO1xuXG4gICAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICB2YXIgZGV0YWNoZWRTaWJsaW5nID0gZGV0YWNoZWRDaGlsZC5zaWJsaW5nO1xuICAgICAgICAgICAgICAgIGRldGFjaGVkQ2hpbGQuc2libGluZyA9IG51bGw7XG4gICAgICAgICAgICAgICAgZGV0YWNoZWRDaGlsZCA9IGRldGFjaGVkU2libGluZztcbiAgICAgICAgICAgICAgfSB3aGlsZSAoZGV0YWNoZWRDaGlsZCAhPT0gbnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbmV4dEVmZmVjdCA9IGZpYmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICgoZmliZXIuc3VidHJlZUZsYWdzICYgUGFzc2l2ZU1hc2spICE9PSBOb0ZsYWdzICYmIGNoaWxkICE9PSBudWxsKSB7XG4gICAgICBjaGlsZC5yZXR1cm4gPSBmaWJlcjtcbiAgICAgIG5leHRFZmZlY3QgPSBjaGlsZDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29tbWl0UGFzc2l2ZVVubW91bnRFZmZlY3RzX2NvbXBsZXRlKCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvbW1pdFBhc3NpdmVVbm1vdW50RWZmZWN0c19jb21wbGV0ZSgpIHtcbiAgd2hpbGUgKG5leHRFZmZlY3QgIT09IG51bGwpIHtcbiAgICB2YXIgZmliZXIgPSBuZXh0RWZmZWN0O1xuXG4gICAgaWYgKChmaWJlci5mbGFncyAmIFBhc3NpdmUpICE9PSBOb0ZsYWdzKSB7XG4gICAgICBzZXRDdXJyZW50RmliZXIoZmliZXIpO1xuICAgICAgY29tbWl0UGFzc2l2ZVVubW91bnRPbkZpYmVyKGZpYmVyKTtcbiAgICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gICAgfVxuXG4gICAgdmFyIHNpYmxpbmcgPSBmaWJlci5zaWJsaW5nO1xuXG4gICAgaWYgKHNpYmxpbmcgIT09IG51bGwpIHtcbiAgICAgIHNpYmxpbmcucmV0dXJuID0gZmliZXIucmV0dXJuO1xuICAgICAgbmV4dEVmZmVjdCA9IHNpYmxpbmc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbmV4dEVmZmVjdCA9IGZpYmVyLnJldHVybjtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRQYXNzaXZlVW5tb3VudE9uRmliZXIoZmluaXNoZWRXb3JrKSB7XG4gIHN3aXRjaCAoZmluaXNoZWRXb3JrLnRhZykge1xuICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgIGNhc2UgU2ltcGxlTWVtb0NvbXBvbmVudDpcbiAgICAgIHtcbiAgICAgICAgaWYgKCBmaW5pc2hlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSB7XG4gICAgICAgICAgc3RhcnRQYXNzaXZlRWZmZWN0VGltZXIoKTtcbiAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdFVubW91bnQoUGFzc2l2ZSQxIHwgSGFzRWZmZWN0LCBmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4pO1xuICAgICAgICAgIHJlY29yZFBhc3NpdmVFZmZlY3REdXJhdGlvbihmaW5pc2hlZFdvcmspO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChQYXNzaXZlJDEgfCBIYXNFZmZlY3QsIGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybik7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRQYXNzaXZlVW5tb3VudEVmZmVjdHNJbnNpZGVPZkRlbGV0ZWRUcmVlX2JlZ2luKGRlbGV0ZWRTdWJ0cmVlUm9vdCwgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvcikge1xuICB3aGlsZSAobmV4dEVmZmVjdCAhPT0gbnVsbCkge1xuICAgIHZhciBmaWJlciA9IG5leHRFZmZlY3Q7IC8vIERlbGV0aW9uIGVmZmVjdHMgZmlyZSBpbiBwYXJlbnQgLT4gY2hpbGQgb3JkZXJcbiAgICAvLyBUT0RPOiBDaGVjayBpZiBmaWJlciBoYXMgYSBQYXNzaXZlU3RhdGljIGZsYWdcblxuICAgIHNldEN1cnJlbnRGaWJlcihmaWJlcik7XG4gICAgY29tbWl0UGFzc2l2ZVVubW91bnRJbnNpZGVEZWxldGVkVHJlZU9uRmliZXIoZmliZXIsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IpO1xuICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gICAgdmFyIGNoaWxkID0gZmliZXIuY2hpbGQ7IC8vIFRPRE86IE9ubHkgdHJhdmVyc2Ugc3VidHJlZSBpZiBpdCBoYXMgYSBQYXNzaXZlU3RhdGljIGZsYWcuIChCdXQsIGlmIHdlXG4gICAgLy8gZG8gdGhpcywgc3RpbGwgbmVlZCB0byBoYW5kbGUgYGRlbGV0ZWRUcmVlQ2xlYW5VcExldmVsYCBjb3JyZWN0bHkuKVxuXG4gICAgaWYgKGNoaWxkICE9PSBudWxsKSB7XG4gICAgICBjaGlsZC5yZXR1cm4gPSBmaWJlcjtcbiAgICAgIG5leHRFZmZlY3QgPSBjaGlsZDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29tbWl0UGFzc2l2ZVVubW91bnRFZmZlY3RzSW5zaWRlT2ZEZWxldGVkVHJlZV9jb21wbGV0ZShkZWxldGVkU3VidHJlZVJvb3QpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXRQYXNzaXZlVW5tb3VudEVmZmVjdHNJbnNpZGVPZkRlbGV0ZWRUcmVlX2NvbXBsZXRlKGRlbGV0ZWRTdWJ0cmVlUm9vdCkge1xuICB3aGlsZSAobmV4dEVmZmVjdCAhPT0gbnVsbCkge1xuICAgIHZhciBmaWJlciA9IG5leHRFZmZlY3Q7XG4gICAgdmFyIHNpYmxpbmcgPSBmaWJlci5zaWJsaW5nO1xuICAgIHZhciByZXR1cm5GaWJlciA9IGZpYmVyLnJldHVybjtcblxuICAgIHtcbiAgICAgIC8vIFJlY3Vyc2l2ZWx5IHRyYXZlcnNlIHRoZSBlbnRpcmUgZGVsZXRlZCB0cmVlIGFuZCBjbGVhbiB1cCBmaWJlciBmaWVsZHMuXG4gICAgICAvLyBUaGlzIGlzIG1vcmUgYWdncmVzc2l2ZSB0aGFuIGlkZWFsLCBhbmQgdGhlIGxvbmcgdGVybSBnb2FsIGlzIHRvIG9ubHlcbiAgICAgIC8vIGhhdmUgdG8gZGV0YWNoIHRoZSBkZWxldGVkIHRyZWUgYXQgdGhlIHJvb3QuXG4gICAgICBkZXRhY2hGaWJlckFmdGVyRWZmZWN0cyhmaWJlcik7XG5cbiAgICAgIGlmIChmaWJlciA9PT0gZGVsZXRlZFN1YnRyZWVSb290KSB7XG4gICAgICAgIG5leHRFZmZlY3QgPSBudWxsO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHNpYmxpbmcgIT09IG51bGwpIHtcbiAgICAgIHNpYmxpbmcucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICBuZXh0RWZmZWN0ID0gc2libGluZztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBuZXh0RWZmZWN0ID0gcmV0dXJuRmliZXI7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0UGFzc2l2ZVVubW91bnRJbnNpZGVEZWxldGVkVHJlZU9uRmliZXIoY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvcikge1xuICBzd2l0Y2ggKGN1cnJlbnQudGFnKSB7XG4gICAgY2FzZSBGdW5jdGlvbkNvbXBvbmVudDpcbiAgICBjYXNlIEZvcndhcmRSZWY6XG4gICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICBpZiAoIGN1cnJlbnQubW9kZSAmIFByb2ZpbGVNb2RlKSB7XG4gICAgICAgICAgc3RhcnRQYXNzaXZlRWZmZWN0VGltZXIoKTtcbiAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdFVubW91bnQoUGFzc2l2ZSQxLCBjdXJyZW50LCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yKTtcbiAgICAgICAgICByZWNvcmRQYXNzaXZlRWZmZWN0RHVyYXRpb24oY3VycmVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29tbWl0SG9va0VmZmVjdExpc3RVbm1vdW50KFBhc3NpdmUkMSwgY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvcik7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgfVxufSAvLyBUT0RPOiBSZXVzZSByZWFwcGVhckxheW91dEVmZmVjdHMgdHJhdmVyc2FsIGhlcmU/XG5cblxuZnVuY3Rpb24gaW52b2tlTGF5b3V0RWZmZWN0TW91bnRJbkRFVihmaWJlcikge1xuICB7XG4gICAgLy8gV2UgZG9uJ3QgbmVlZCB0byByZS1jaGVjayBTdHJpY3RFZmZlY3RzTW9kZSBoZXJlLlxuICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgaWYgdGhhdCBjaGVjayBoYXMgYWxyZWFkeSBwYXNzZWQuXG4gICAgc3dpdGNoIChmaWJlci50YWcpIHtcbiAgICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgICBjYXNlIEZvcndhcmRSZWY6XG4gICAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29tbWl0SG9va0VmZmVjdExpc3RNb3VudChMYXlvdXQgfCBIYXNFZmZlY3QsIGZpYmVyKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmliZXIsIGZpYmVyLnJldHVybiwgZXJyb3IpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBmaWJlci5zdGF0ZU5vZGU7XG5cbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaW5zdGFuY2UuY29tcG9uZW50RGlkTW91bnQoKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmliZXIsIGZpYmVyLnJldHVybiwgZXJyb3IpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGludm9rZVBhc3NpdmVFZmZlY3RNb3VudEluREVWKGZpYmVyKSB7XG4gIHtcbiAgICAvLyBXZSBkb24ndCBuZWVkIHRvIHJlLWNoZWNrIFN0cmljdEVmZmVjdHNNb2RlIGhlcmUuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBpZiB0aGF0IGNoZWNrIGhhcyBhbHJlYWR5IHBhc3NlZC5cbiAgICBzd2l0Y2ggKGZpYmVyLnRhZykge1xuICAgICAgY2FzZSBGdW5jdGlvbkNvbXBvbmVudDpcbiAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgIGNhc2UgU2ltcGxlTWVtb0NvbXBvbmVudDpcbiAgICAgICAge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KFBhc3NpdmUkMSB8IEhhc0VmZmVjdCwgZmliZXIpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaWJlciwgZmliZXIucmV0dXJuLCBlcnJvcik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaW52b2tlTGF5b3V0RWZmZWN0VW5tb3VudEluREVWKGZpYmVyKSB7XG4gIHtcbiAgICAvLyBXZSBkb24ndCBuZWVkIHRvIHJlLWNoZWNrIFN0cmljdEVmZmVjdHNNb2RlIGhlcmUuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBpZiB0aGF0IGNoZWNrIGhhcyBhbHJlYWR5IHBhc3NlZC5cbiAgICBzd2l0Y2ggKGZpYmVyLnRhZykge1xuICAgICAgY2FzZSBGdW5jdGlvbkNvbXBvbmVudDpcbiAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgIGNhc2UgU2ltcGxlTWVtb0NvbXBvbmVudDpcbiAgICAgICAge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdFVubW91bnQoTGF5b3V0IHwgSGFzRWZmZWN0LCBmaWJlciwgZmliZXIucmV0dXJuKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmliZXIsIGZpYmVyLnJldHVybiwgZXJyb3IpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBmaWJlci5zdGF0ZU5vZGU7XG5cbiAgICAgICAgICBpZiAodHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVbm1vdW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBzYWZlbHlDYWxsQ29tcG9uZW50V2lsbFVubW91bnQoZmliZXIsIGZpYmVyLnJldHVybiwgaW5zdGFuY2UpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGludm9rZVBhc3NpdmVFZmZlY3RVbm1vdW50SW5ERVYoZmliZXIpIHtcbiAge1xuICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gcmUtY2hlY2sgU3RyaWN0RWZmZWN0c01vZGUgaGVyZS5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIGlmIHRoYXQgY2hlY2sgaGFzIGFscmVhZHkgcGFzc2VkLlxuICAgIHN3aXRjaCAoZmliZXIudGFnKSB7XG4gICAgICBjYXNlIEZ1bmN0aW9uQ29tcG9uZW50OlxuICAgICAgY2FzZSBGb3J3YXJkUmVmOlxuICAgICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgICAgICB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChQYXNzaXZlJDEgfCBIYXNFZmZlY3QsIGZpYmVyLCBmaWJlci5yZXR1cm4pO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaWJlciwgZmliZXIucmV0dXJuLCBlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBDT01QT05FTlRfVFlQRSA9IDA7XG52YXIgSEFTX1BTRVVET19DTEFTU19UWVBFID0gMTtcbnZhciBST0xFX1RZUEUgPSAyO1xudmFyIFRFU1RfTkFNRV9UWVBFID0gMztcbnZhciBURVhUX1RZUEUgPSA0O1xuXG5pZiAodHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuZm9yKSB7XG4gIHZhciBzeW1ib2xGb3IgPSBTeW1ib2wuZm9yO1xuICBDT01QT05FTlRfVFlQRSA9IHN5bWJvbEZvcignc2VsZWN0b3IuY29tcG9uZW50Jyk7XG4gIEhBU19QU0VVRE9fQ0xBU1NfVFlQRSA9IHN5bWJvbEZvcignc2VsZWN0b3IuaGFzX3BzZXVkb19jbGFzcycpO1xuICBST0xFX1RZUEUgPSBzeW1ib2xGb3IoJ3NlbGVjdG9yLnJvbGUnKTtcbiAgVEVTVF9OQU1FX1RZUEUgPSBzeW1ib2xGb3IoJ3NlbGVjdG9yLnRlc3RfaWQnKTtcbiAgVEVYVF9UWVBFID0gc3ltYm9sRm9yKCdzZWxlY3Rvci50ZXh0Jyk7XG59XG52YXIgY29tbWl0SG9va3MgPSBbXTtcbmZ1bmN0aW9uIG9uQ29tbWl0Um9vdCQxKCkge1xuICB7XG4gICAgY29tbWl0SG9va3MuZm9yRWFjaChmdW5jdGlvbiAoY29tbWl0SG9vaykge1xuICAgICAgcmV0dXJuIGNvbW1pdEhvb2soKTtcbiAgICB9KTtcbiAgfVxufVxuXG52YXIgUmVhY3RDdXJyZW50QWN0UXVldWUgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRBY3RRdWV1ZTtcbmZ1bmN0aW9uIGlzTGVnYWN5QWN0RW52aXJvbm1lbnQoZmliZXIpIHtcbiAge1xuICAgIC8vIExlZ2FjeSBtb2RlLiBXZSBwcmVzZXJ2ZSB0aGUgYmVoYXZpb3Igb2YgUmVhY3QgMTcncyBhY3QuIEl0IGFzc3VtZXMgYW5cbiAgICAvLyBhY3QgZW52aXJvbm1lbnQgd2hlbmV2ZXIgYGplc3RgIGlzIGRlZmluZWQsIGJ1dCB5b3UgY2FuIHN0aWxsIHR1cm4gb2ZmXG4gICAgLy8gc3B1cmlvdXMgd2FybmluZ3MgYnkgc2V0dGluZyBJU19SRUFDVF9BQ1RfRU5WSVJPTk1FTlQgZXhwbGljaXRseVxuICAgIC8vIHRvIGZhbHNlLlxuICAgIHZhciBpc1JlYWN0QWN0RW52aXJvbm1lbnRHbG9iYWwgPSAvLyAkRmxvd0V4cGVjdGVkRXJyb3Ig4oCTIEZsb3cgZG9lc24ndCBrbm93IGFib3V0IElTX1JFQUNUX0FDVF9FTlZJUk9OTUVOVCBnbG9iYWxcbiAgICB0eXBlb2YgSVNfUkVBQ1RfQUNUX0VOVklST05NRU5UICE9PSAndW5kZWZpbmVkJyA/IElTX1JFQUNUX0FDVF9FTlZJUk9OTUVOVCA6IHVuZGVmaW5lZDsgLy8gJEZsb3dFeHBlY3RlZEVycm9yIC0gRmxvdyBkb2Vzbid0IGtub3cgYWJvdXQgamVzdFxuXG4gICAgdmFyIGplc3RJc0RlZmluZWQgPSB0eXBlb2YgamVzdCAhPT0gJ3VuZGVmaW5lZCc7XG4gICAgcmV0dXJuICBqZXN0SXNEZWZpbmVkICYmIGlzUmVhY3RBY3RFbnZpcm9ubWVudEdsb2JhbCAhPT0gZmFsc2U7XG4gIH1cbn1cbmZ1bmN0aW9uIGlzQ29uY3VycmVudEFjdEVudmlyb25tZW50KCkge1xuICB7XG4gICAgdmFyIGlzUmVhY3RBY3RFbnZpcm9ubWVudEdsb2JhbCA9IC8vICRGbG93RXhwZWN0ZWRFcnJvciDigJMgRmxvdyBkb2Vzbid0IGtub3cgYWJvdXQgSVNfUkVBQ1RfQUNUX0VOVklST05NRU5UIGdsb2JhbFxuICAgIHR5cGVvZiBJU19SRUFDVF9BQ1RfRU5WSVJPTk1FTlQgIT09ICd1bmRlZmluZWQnID8gSVNfUkVBQ1RfQUNUX0VOVklST05NRU5UIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKCFpc1JlYWN0QWN0RW52aXJvbm1lbnRHbG9iYWwgJiYgUmVhY3RDdXJyZW50QWN0UXVldWUuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgLy8gVE9ETzogSW5jbHVkZSBsaW5rIHRvIHJlbGV2YW50IGRvY3VtZW50YXRpb24gcGFnZS5cbiAgICAgIGVycm9yKCdUaGUgY3VycmVudCB0ZXN0aW5nIGVudmlyb25tZW50IGlzIG5vdCBjb25maWd1cmVkIHRvIHN1cHBvcnQgJyArICdhY3QoLi4uKScpO1xuICAgIH1cblxuICAgIHJldHVybiBpc1JlYWN0QWN0RW52aXJvbm1lbnRHbG9iYWw7XG4gIH1cbn1cblxudmFyIGNlaWwgPSBNYXRoLmNlaWw7XG52YXIgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcixcbiAgICBSZWFjdEN1cnJlbnRPd25lciQyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50T3duZXIsXG4gICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMyA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLFxuICAgIFJlYWN0Q3VycmVudEFjdFF1ZXVlJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRBY3RRdWV1ZTtcbnZhciBOb0NvbnRleHQgPVxuLyogICAgICAgICAgICAgKi9cbjA7XG52YXIgQmF0Y2hlZENvbnRleHQgPVxuLyogICAgICAgICAgICAgICAqL1xuMTtcbnZhciBSZW5kZXJDb250ZXh0ID1cbi8qICAgICAgICAgICAgICAgICovXG4yO1xudmFyIENvbW1pdENvbnRleHQgPVxuLyogICAgICAgICAgICAgICAgKi9cbjQ7XG52YXIgUm9vdEluUHJvZ3Jlc3MgPSAwO1xudmFyIFJvb3RGYXRhbEVycm9yZWQgPSAxO1xudmFyIFJvb3RFcnJvcmVkID0gMjtcbnZhciBSb290U3VzcGVuZGVkID0gMztcbnZhciBSb290U3VzcGVuZGVkV2l0aERlbGF5ID0gNDtcbnZhciBSb290Q29tcGxldGVkID0gNTtcbnZhciBSb290RGlkTm90Q29tcGxldGUgPSA2OyAvLyBEZXNjcmliZXMgd2hlcmUgd2UgYXJlIGluIHRoZSBSZWFjdCBleGVjdXRpb24gc3RhY2tcblxudmFyIGV4ZWN1dGlvbkNvbnRleHQgPSBOb0NvbnRleHQ7IC8vIFRoZSByb290IHdlJ3JlIHdvcmtpbmcgb25cblxudmFyIHdvcmtJblByb2dyZXNzUm9vdCA9IG51bGw7IC8vIFRoZSBmaWJlciB3ZSdyZSB3b3JraW5nIG9uXG5cbnZhciB3b3JrSW5Qcm9ncmVzcyA9IG51bGw7IC8vIFRoZSBsYW5lcyB3ZSdyZSByZW5kZXJpbmdcblxudmFyIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzID0gTm9MYW5lczsgLy8gU3RhY2sgdGhhdCBhbGxvd3MgY29tcG9uZW50cyB0byBjaGFuZ2UgdGhlIHJlbmRlciBsYW5lcyBmb3IgaXRzIHN1YnRyZWVcbi8vIFRoaXMgaXMgYSBzdXBlcnNldCBvZiB0aGUgbGFuZXMgd2Ugc3RhcnRlZCB3b3JraW5nIG9uIGF0IHRoZSByb290LiBUaGUgb25seVxuLy8gY2FzZSB3aGVyZSBpdCdzIGRpZmZlcmVudCBmcm9tIGB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lc2AgaXMgd2hlbiB3ZVxuLy8gZW50ZXIgYSBzdWJ0cmVlIHRoYXQgaXMgaGlkZGVuIGFuZCBuZWVkcyB0byBiZSB1bmhpZGRlbjogU3VzcGVuc2UgYW5kXG4vLyBPZmZzY3JlZW4gY29tcG9uZW50LlxuLy9cbi8vIE1vc3QgdGhpbmdzIGluIHRoZSB3b3JrIGxvb3Agc2hvdWxkIGRlYWwgd2l0aCB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcy5cbi8vIE1vc3QgdGhpbmdzIGluIGJlZ2luL2NvbXBsZXRlIHBoYXNlcyBzaG91bGQgZGVhbCB3aXRoIHN1YnRyZWVSZW5kZXJMYW5lcy5cblxudmFyIHN1YnRyZWVSZW5kZXJMYW5lcyA9IE5vTGFuZXM7XG52YXIgc3VidHJlZVJlbmRlckxhbmVzQ3Vyc29yID0gY3JlYXRlQ3Vyc29yKE5vTGFuZXMpOyAvLyBXaGV0aGVyIHRvIHJvb3QgY29tcGxldGVkLCBlcnJvcmVkLCBzdXNwZW5kZWQsIGV0Yy5cblxudmFyIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290SW5Qcm9ncmVzczsgLy8gQSBmYXRhbCBlcnJvciwgaWYgb25lIGlzIHRocm93blxuXG52YXIgd29ya0luUHJvZ3Jlc3NSb290RmF0YWxFcnJvciA9IG51bGw7IC8vIFwiSW5jbHVkZWRcIiBsYW5lcyByZWZlciB0byBsYW5lcyB0aGF0IHdlcmUgd29ya2VkIG9uIGR1cmluZyB0aGlzIHJlbmRlci4gSXQnc1xuLy8gc2xpZ2h0bHkgZGlmZmVyZW50IHRoYW4gYHJlbmRlckxhbmVzYCBiZWNhdXNlIGByZW5kZXJMYW5lc2AgY2FuIGNoYW5nZSBhcyB5b3Vcbi8vIGVudGVyIGFuZCBleGl0IGFuIE9mZnNjcmVlbiB0cmVlLiBUaGlzIHZhbHVlIGlzIHRoZSBjb21iaW5hdGlvbiBvZiBhbGwgcmVuZGVyXG4vLyBsYW5lcyBmb3IgdGhlIGVudGlyZSByZW5kZXIgcGhhc2UuXG5cbnZhciB3b3JrSW5Qcm9ncmVzc1Jvb3RJbmNsdWRlZExhbmVzID0gTm9MYW5lczsgLy8gVGhlIHdvcmsgbGVmdCBvdmVyIGJ5IGNvbXBvbmVudHMgdGhhdCB3ZXJlIHZpc2l0ZWQgZHVyaW5nIHRoaXMgcmVuZGVyLiBPbmx5XG4vLyBpbmNsdWRlcyB1bnByb2Nlc3NlZCB1cGRhdGVzLCBub3Qgd29yayBpbiBiYWlsZWQgb3V0IGNoaWxkcmVuLlxuXG52YXIgd29ya0luUHJvZ3Jlc3NSb290U2tpcHBlZExhbmVzID0gTm9MYW5lczsgLy8gTGFuZXMgdGhhdCB3ZXJlIHVwZGF0ZWQgKGluIGFuIGludGVybGVhdmVkIGV2ZW50KSBkdXJpbmcgdGhpcyByZW5kZXIuXG5cbnZhciB3b3JrSW5Qcm9ncmVzc1Jvb3RJbnRlcmxlYXZlZFVwZGF0ZWRMYW5lcyA9IE5vTGFuZXM7IC8vIExhbmVzIHRoYXQgd2VyZSB1cGRhdGVkIGR1cmluZyB0aGUgcmVuZGVyIHBoYXNlICgqbm90KiBhbiBpbnRlcmxlYXZlZCBldmVudCkuXG5cbnZhciB3b3JrSW5Qcm9ncmVzc1Jvb3RQaW5nZWRMYW5lcyA9IE5vTGFuZXM7IC8vIEVycm9ycyB0aGF0IGFyZSB0aHJvd24gZHVyaW5nIHRoZSByZW5kZXIgcGhhc2UuXG5cbnZhciB3b3JrSW5Qcm9ncmVzc1Jvb3RDb25jdXJyZW50RXJyb3JzID0gbnVsbDsgLy8gVGhlc2UgYXJlIGVycm9ycyB0aGF0IHdlIHJlY292ZXJlZCBmcm9tIHdpdGhvdXQgc3VyZmFjaW5nIHRoZW0gdG8gdGhlIFVJLlxuLy8gV2Ugd2lsbCBsb2cgdGhlbSBvbmNlIHRoZSB0cmVlIGNvbW1pdHMuXG5cbnZhciB3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycyA9IG51bGw7IC8vIFRoZSBtb3N0IHJlY2VudCB0aW1lIHdlIGNvbW1pdHRlZCBhIGZhbGxiYWNrLiBUaGlzIGxldHMgdXMgZW5zdXJlIGEgdHJhaW5cbi8vIG1vZGVsIHdoZXJlIHdlIGRvbid0IGNvbW1pdCBuZXcgbG9hZGluZyBzdGF0ZXMgaW4gdG9vIHF1aWNrIHN1Y2Nlc3Npb24uXG5cbnZhciBnbG9iYWxNb3N0UmVjZW50RmFsbGJhY2tUaW1lID0gMDtcbnZhciBGQUxMQkFDS19USFJPVFRMRV9NUyA9IDUwMDsgLy8gVGhlIGFic29sdXRlIHRpbWUgZm9yIHdoZW4gd2Ugc2hvdWxkIHN0YXJ0IGdpdmluZyB1cCBvbiByZW5kZXJpbmdcbi8vIG1vcmUgYW5kIHByZWZlciBDUFUgc3VzcGVuc2UgaGV1cmlzdGljcyBpbnN0ZWFkLlxuXG52YXIgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyVGFyZ2V0VGltZSA9IEluZmluaXR5OyAvLyBIb3cgbG9uZyBhIHJlbmRlciBpcyBzdXBwb3NlZCB0byB0YWtlIGJlZm9yZSB3ZSBzdGFydCBmb2xsb3dpbmcgQ1BVXG4vLyBzdXNwZW5zZSBoZXVyaXN0aWNzIGFuZCBvcHQgb3V0IG9mIHJlbmRlcmluZyBtb3JlIGNvbnRlbnQuXG5cbnZhciBSRU5ERVJfVElNRU9VVF9NUyA9IDUwMDtcbnZhciB3b3JrSW5Qcm9ncmVzc1RyYW5zaXRpb25zID0gbnVsbDtcblxuZnVuY3Rpb24gcmVzZXRSZW5kZXJUaW1lcigpIHtcbiAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyVGFyZ2V0VGltZSA9IG5vdygpICsgUkVOREVSX1RJTUVPVVRfTVM7XG59XG5cbmZ1bmN0aW9uIGdldFJlbmRlclRhcmdldFRpbWUoKSB7XG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJUYXJnZXRUaW1lO1xufVxudmFyIGhhc1VuY2F1Z2h0RXJyb3IgPSBmYWxzZTtcbnZhciBmaXJzdFVuY2F1Z2h0RXJyb3IgPSBudWxsO1xudmFyIGxlZ2FjeUVycm9yQm91bmRhcmllc1RoYXRBbHJlYWR5RmFpbGVkID0gbnVsbDsgLy8gT25seSB1c2VkIHdoZW4gZW5hYmxlUHJvZmlsZXJOZXN0ZWRVcGRhdGVTY2hlZHVsZWRIb29rIGlzIHRydWU7XG52YXIgcm9vdERvZXNIYXZlUGFzc2l2ZUVmZmVjdHMgPSBmYWxzZTtcbnZhciByb290V2l0aFBlbmRpbmdQYXNzaXZlRWZmZWN0cyA9IG51bGw7XG52YXIgcGVuZGluZ1Bhc3NpdmVFZmZlY3RzTGFuZXMgPSBOb0xhbmVzO1xudmFyIHBlbmRpbmdQYXNzaXZlUHJvZmlsZXJFZmZlY3RzID0gW107XG52YXIgcGVuZGluZ1Bhc3NpdmVUcmFuc2l0aW9ucyA9IG51bGw7IC8vIFVzZSB0aGVzZSB0byBwcmV2ZW50IGFuIGluZmluaXRlIGxvb3Agb2YgbmVzdGVkIHVwZGF0ZXNcblxudmFyIE5FU1RFRF9VUERBVEVfTElNSVQgPSA1MDtcbnZhciBuZXN0ZWRVcGRhdGVDb3VudCA9IDA7XG52YXIgcm9vdFdpdGhOZXN0ZWRVcGRhdGVzID0gbnVsbDtcbnZhciBpc0ZsdXNoaW5nUGFzc2l2ZUVmZmVjdHMgPSBmYWxzZTtcbnZhciBkaWRTY2hlZHVsZVVwZGF0ZUR1cmluZ1Bhc3NpdmVFZmZlY3RzID0gZmFsc2U7XG52YXIgTkVTVEVEX1BBU1NJVkVfVVBEQVRFX0xJTUlUID0gNTA7XG52YXIgbmVzdGVkUGFzc2l2ZVVwZGF0ZUNvdW50ID0gMDtcbnZhciByb290V2l0aFBhc3NpdmVOZXN0ZWRVcGRhdGVzID0gbnVsbDsgLy8gSWYgdHdvIHVwZGF0ZXMgYXJlIHNjaGVkdWxlZCB3aXRoaW4gdGhlIHNhbWUgZXZlbnQsIHdlIHNob3VsZCB0cmVhdCB0aGVpclxuLy8gZXZlbnQgdGltZXMgYXMgc2ltdWx0YW5lb3VzLCBldmVuIGlmIHRoZSBhY3R1YWwgY2xvY2sgdGltZSBoYXMgYWR2YW5jZWRcbi8vIGJldHdlZW4gdGhlIGZpcnN0IGFuZCBzZWNvbmQgY2FsbC5cblxudmFyIGN1cnJlbnRFdmVudFRpbWUgPSBOb1RpbWVzdGFtcDtcbnZhciBjdXJyZW50RXZlbnRUcmFuc2l0aW9uTGFuZSA9IE5vTGFuZXM7XG52YXIgaXNSdW5uaW5nSW5zZXJ0aW9uRWZmZWN0ID0gZmFsc2U7XG5mdW5jdGlvbiBnZXRXb3JrSW5Qcm9ncmVzc1Jvb3QoKSB7XG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzc1Jvb3Q7XG59XG5mdW5jdGlvbiByZXF1ZXN0RXZlbnRUaW1lKCkge1xuICBpZiAoKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSAhPT0gTm9Db250ZXh0KSB7XG4gICAgLy8gV2UncmUgaW5zaWRlIFJlYWN0LCBzbyBpdCdzIGZpbmUgdG8gcmVhZCB0aGUgYWN0dWFsIHRpbWUuXG4gICAgcmV0dXJuIG5vdygpO1xuICB9IC8vIFdlJ3JlIG5vdCBpbnNpZGUgUmVhY3QsIHNvIHdlIG1heSBiZSBpbiB0aGUgbWlkZGxlIG9mIGEgYnJvd3NlciBldmVudC5cblxuXG4gIGlmIChjdXJyZW50RXZlbnRUaW1lICE9PSBOb1RpbWVzdGFtcCkge1xuICAgIC8vIFVzZSB0aGUgc2FtZSBzdGFydCB0aW1lIGZvciBhbGwgdXBkYXRlcyB1bnRpbCB3ZSBlbnRlciBSZWFjdCBhZ2Fpbi5cbiAgICByZXR1cm4gY3VycmVudEV2ZW50VGltZTtcbiAgfSAvLyBUaGlzIGlzIHRoZSBmaXJzdCB1cGRhdGUgc2luY2UgUmVhY3QgeWllbGRlZC4gQ29tcHV0ZSBhIG5ldyBzdGFydCB0aW1lLlxuXG5cbiAgY3VycmVudEV2ZW50VGltZSA9IG5vdygpO1xuICByZXR1cm4gY3VycmVudEV2ZW50VGltZTtcbn1cbmZ1bmN0aW9uIHJlcXVlc3RVcGRhdGVMYW5lKGZpYmVyKSB7XG4gIC8vIFNwZWNpYWwgY2FzZXNcbiAgdmFyIG1vZGUgPSBmaWJlci5tb2RlO1xuXG4gIGlmICgobW9kZSAmIENvbmN1cnJlbnRNb2RlKSA9PT0gTm9Nb2RlKSB7XG4gICAgcmV0dXJuIFN5bmNMYW5lO1xuICB9IGVsc2UgaWYgKCAoZXhlY3V0aW9uQ29udGV4dCAmIFJlbmRlckNvbnRleHQpICE9PSBOb0NvbnRleHQgJiYgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICAvLyBUaGlzIGlzIGEgcmVuZGVyIHBoYXNlIHVwZGF0ZS4gVGhlc2UgYXJlIG5vdCBvZmZpY2lhbGx5IHN1cHBvcnRlZC4gVGhlXG4gICAgLy8gb2xkIGJlaGF2aW9yIGlzIHRvIGdpdmUgdGhpcyB0aGUgc2FtZSBcInRocmVhZFwiIChsYW5lcykgYXNcbiAgICAvLyB3aGF0ZXZlciBpcyBjdXJyZW50bHkgcmVuZGVyaW5nLiBTbyBpZiB5b3UgY2FsbCBgc2V0U3RhdGVgIG9uIGEgY29tcG9uZW50XG4gICAgLy8gdGhhdCBoYXBwZW5zIGxhdGVyIGluIHRoZSBzYW1lIHJlbmRlciwgaXQgd2lsbCBmbHVzaC4gSWRlYWxseSwgd2Ugd2FudCB0b1xuICAgIC8vIHJlbW92ZSB0aGUgc3BlY2lhbCBjYXNlIGFuZCB0cmVhdCB0aGVtIGFzIGlmIHRoZXkgY2FtZSBmcm9tIGFuXG4gICAgLy8gaW50ZXJsZWF2ZWQgZXZlbnQuIFJlZ2FyZGxlc3MsIHRoaXMgcGF0dGVybiBpcyBub3Qgb2ZmaWNpYWxseSBzdXBwb3J0ZWQuXG4gICAgLy8gVGhpcyBiZWhhdmlvciBpcyBvbmx5IGEgZmFsbGJhY2suIFRoZSBmbGFnIG9ubHkgZXhpc3RzIHVudGlsIHdlIGNhbiByb2xsXG4gICAgLy8gb3V0IHRoZSBzZXRTdGF0ZSB3YXJuaW5nLCBzaW5jZSBleGlzdGluZyBjb2RlIG1pZ2h0IGFjY2lkZW50YWxseSByZWx5IG9uXG4gICAgLy8gdGhlIGN1cnJlbnQgYmVoYXZpb3IuXG4gICAgcmV0dXJuIHBpY2tBcmJpdHJhcnlMYW5lKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzKTtcbiAgfVxuXG4gIHZhciBpc1RyYW5zaXRpb24gPSByZXF1ZXN0Q3VycmVudFRyYW5zaXRpb24oKSAhPT0gTm9UcmFuc2l0aW9uO1xuXG4gIGlmIChpc1RyYW5zaXRpb24pIHtcbiAgICBpZiAoIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDMudHJhbnNpdGlvbiAhPT0gbnVsbCkge1xuICAgICAgdmFyIHRyYW5zaXRpb24gPSBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQzLnRyYW5zaXRpb247XG5cbiAgICAgIGlmICghdHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycykge1xuICAgICAgICB0cmFuc2l0aW9uLl91cGRhdGVkRmliZXJzID0gbmV3IFNldCgpO1xuICAgICAgfVxuXG4gICAgICB0cmFuc2l0aW9uLl91cGRhdGVkRmliZXJzLmFkZChmaWJlcik7XG4gICAgfSAvLyBUaGUgYWxnb3JpdGhtIGZvciBhc3NpZ25pbmcgYW4gdXBkYXRlIHRvIGEgbGFuZSBzaG91bGQgYmUgc3RhYmxlIGZvciBhbGxcbiAgICAvLyB1cGRhdGVzIGF0IHRoZSBzYW1lIHByaW9yaXR5IHdpdGhpbiB0aGUgc2FtZSBldmVudC4gVG8gZG8gdGhpcywgdGhlXG4gICAgLy8gaW5wdXRzIHRvIHRoZSBhbGdvcml0aG0gbXVzdCBiZSB0aGUgc2FtZS5cbiAgICAvL1xuICAgIC8vIFRoZSB0cmljayB3ZSB1c2UgaXMgdG8gY2FjaGUgdGhlIGZpcnN0IG9mIGVhY2ggb2YgdGhlc2UgaW5wdXRzIHdpdGhpbiBhblxuICAgIC8vIGV2ZW50LiBUaGVuIHJlc2V0IHRoZSBjYWNoZWQgdmFsdWVzIG9uY2Ugd2UgY2FuIGJlIHN1cmUgdGhlIGV2ZW50IGlzXG4gICAgLy8gb3Zlci4gT3VyIGhldXJpc3RpYyBmb3IgdGhhdCBpcyB3aGVuZXZlciB3ZSBlbnRlciBhIGNvbmN1cnJlbnQgd29yayBsb29wLlxuXG5cbiAgICBpZiAoY3VycmVudEV2ZW50VHJhbnNpdGlvbkxhbmUgPT09IE5vTGFuZSkge1xuICAgICAgLy8gQWxsIHRyYW5zaXRpb25zIHdpdGhpbiB0aGUgc2FtZSBldmVudCBhcmUgYXNzaWduZWQgdGhlIHNhbWUgbGFuZS5cbiAgICAgIGN1cnJlbnRFdmVudFRyYW5zaXRpb25MYW5lID0gY2xhaW1OZXh0VHJhbnNpdGlvbkxhbmUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY3VycmVudEV2ZW50VHJhbnNpdGlvbkxhbmU7XG4gIH0gLy8gVXBkYXRlcyBvcmlnaW5hdGluZyBpbnNpZGUgY2VydGFpbiBSZWFjdCBtZXRob2RzLCBsaWtlIGZsdXNoU3luYywgaGF2ZVxuICAvLyB0aGVpciBwcmlvcml0eSBzZXQgYnkgdHJhY2tpbmcgaXQgd2l0aCBhIGNvbnRleHQgdmFyaWFibGUuXG4gIC8vXG4gIC8vIFRoZSBvcGFxdWUgdHlwZSByZXR1cm5lZCBieSB0aGUgaG9zdCBjb25maWcgaXMgaW50ZXJuYWxseSBhIGxhbmUsIHNvIHdlIGNhblxuICAvLyB1c2UgdGhhdCBkaXJlY3RseS5cbiAgLy8gVE9ETzogTW92ZSB0aGlzIHR5cGUgY29udmVyc2lvbiB0byB0aGUgZXZlbnQgcHJpb3JpdHkgbW9kdWxlLlxuXG5cbiAgdmFyIHVwZGF0ZUxhbmUgPSBnZXRDdXJyZW50VXBkYXRlUHJpb3JpdHkoKTtcblxuICBpZiAodXBkYXRlTGFuZSAhPT0gTm9MYW5lKSB7XG4gICAgcmV0dXJuIHVwZGF0ZUxhbmU7XG4gIH0gLy8gVGhpcyB1cGRhdGUgb3JpZ2luYXRlZCBvdXRzaWRlIFJlYWN0LiBBc2sgdGhlIGhvc3QgZW52aXJvbm1lbnQgZm9yIGFuXG4gIC8vIGFwcHJvcHJpYXRlIHByaW9yaXR5LCBiYXNlZCBvbiB0aGUgdHlwZSBvZiBldmVudC5cbiAgLy9cbiAgLy8gVGhlIG9wYXF1ZSB0eXBlIHJldHVybmVkIGJ5IHRoZSBob3N0IGNvbmZpZyBpcyBpbnRlcm5hbGx5IGEgbGFuZSwgc28gd2UgY2FuXG4gIC8vIHVzZSB0aGF0IGRpcmVjdGx5LlxuICAvLyBUT0RPOiBNb3ZlIHRoaXMgdHlwZSBjb252ZXJzaW9uIHRvIHRoZSBldmVudCBwcmlvcml0eSBtb2R1bGUuXG5cblxuICB2YXIgZXZlbnRMYW5lID0gZ2V0Q3VycmVudEV2ZW50UHJpb3JpdHkoKTtcbiAgcmV0dXJuIGV2ZW50TGFuZTtcbn1cblxuZnVuY3Rpb24gcmVxdWVzdFJldHJ5TGFuZShmaWJlcikge1xuICAvLyBUaGlzIGlzIGEgZm9yayBvZiBgcmVxdWVzdFVwZGF0ZUxhbmVgIGRlc2lnbmVkIHNwZWNpZmljYWxseSBmb3IgU3VzcGVuc2VcbiAgLy8gXCJyZXRyaWVzXCIg4oCUIGEgc3BlY2lhbCB1cGRhdGUgdGhhdCBhdHRlbXB0cyB0byBmbGlwIGEgU3VzcGVuc2UgYm91bmRhcnlcbiAgLy8gZnJvbSBpdHMgcGxhY2Vob2xkZXIgc3RhdGUgdG8gaXRzIHByaW1hcnkvcmVzb2x2ZWQgc3RhdGUuXG4gIC8vIFNwZWNpYWwgY2FzZXNcbiAgdmFyIG1vZGUgPSBmaWJlci5tb2RlO1xuXG4gIGlmICgobW9kZSAmIENvbmN1cnJlbnRNb2RlKSA9PT0gTm9Nb2RlKSB7XG4gICAgcmV0dXJuIFN5bmNMYW5lO1xuICB9XG5cbiAgcmV0dXJuIGNsYWltTmV4dFJldHJ5TGFuZSgpO1xufVxuXG5mdW5jdGlvbiBzY2hlZHVsZVVwZGF0ZU9uRmliZXIocm9vdCwgZmliZXIsIGxhbmUsIGV2ZW50VGltZSkge1xuICBjaGVja0Zvck5lc3RlZFVwZGF0ZXMoKTtcblxuICB7XG4gICAgaWYgKGlzUnVubmluZ0luc2VydGlvbkVmZmVjdCkge1xuICAgICAgZXJyb3IoJ3VzZUluc2VydGlvbkVmZmVjdCBtdXN0IG5vdCBzY2hlZHVsZSB1cGRhdGVzLicpO1xuICAgIH1cbiAgfVxuXG4gIHtcbiAgICBpZiAoaXNGbHVzaGluZ1Bhc3NpdmVFZmZlY3RzKSB7XG4gICAgICBkaWRTY2hlZHVsZVVwZGF0ZUR1cmluZ1Bhc3NpdmVFZmZlY3RzID0gdHJ1ZTtcbiAgICB9XG4gIH0gLy8gTWFyayB0aGF0IHRoZSByb290IGhhcyBhIHBlbmRpbmcgdXBkYXRlLlxuXG5cbiAgbWFya1Jvb3RVcGRhdGVkKHJvb3QsIGxhbmUsIGV2ZW50VGltZSk7XG5cbiAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgUmVuZGVyQ29udGV4dCkgIT09IE5vTGFuZXMgJiYgcm9vdCA9PT0gd29ya0luUHJvZ3Jlc3NSb290KSB7XG4gICAgLy8gVGhpcyB1cGRhdGUgd2FzIGRpc3BhdGNoZWQgZHVyaW5nIHRoZSByZW5kZXIgcGhhc2UuIFRoaXMgaXMgYSBtaXN0YWtlXG4gICAgLy8gaWYgdGhlIHVwZGF0ZSBvcmlnaW5hdGVzIGZyb20gdXNlciBzcGFjZSAod2l0aCB0aGUgZXhjZXB0aW9uIG9mIGxvY2FsXG4gICAgLy8gaG9vayB1cGRhdGVzLCB3aGljaCBhcmUgaGFuZGxlZCBkaWZmZXJlbnRseSBhbmQgZG9uJ3QgcmVhY2ggdGhpc1xuICAgIC8vIGZ1bmN0aW9uKSwgYnV0IHRoZXJlIGFyZSBzb21lIGludGVybmFsIFJlYWN0IGZlYXR1cmVzIHRoYXQgdXNlIHRoaXMgYXNcbiAgICAvLyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwsIGxpa2Ugc2VsZWN0aXZlIGh5ZHJhdGlvbi5cbiAgICB3YXJuQWJvdXRSZW5kZXJQaGFzZVVwZGF0ZXNJbkRFVihmaWJlcik7IC8vIFRyYWNrIGxhbmVzIHRoYXQgd2VyZSB1cGRhdGVkIGR1cmluZyB0aGUgcmVuZGVyIHBoYXNlXG4gIH0gZWxzZSB7XG4gICAgLy8gVGhpcyBpcyBhIG5vcm1hbCB1cGRhdGUsIHNjaGVkdWxlZCBmcm9tIG91dHNpZGUgdGhlIHJlbmRlciBwaGFzZS4gRm9yXG4gICAgLy8gZXhhbXBsZSwgZHVyaW5nIGFuIGlucHV0IGV2ZW50LlxuICAgIHtcbiAgICAgIGlmIChpc0RldlRvb2xzUHJlc2VudCkge1xuICAgICAgICBhZGRGaWJlclRvTGFuZXNNYXAocm9vdCwgZmliZXIsIGxhbmUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHdhcm5JZlVwZGF0ZXNOb3RXcmFwcGVkV2l0aEFjdERFVihmaWJlcik7XG5cbiAgICBpZiAocm9vdCA9PT0gd29ya0luUHJvZ3Jlc3NSb290KSB7XG4gICAgICAvLyBSZWNlaXZlZCBhbiB1cGRhdGUgdG8gYSB0cmVlIHRoYXQncyBpbiB0aGUgbWlkZGxlIG9mIHJlbmRlcmluZy4gTWFya1xuICAgICAgLy8gdGhhdCB0aGVyZSB3YXMgYW4gaW50ZXJsZWF2ZWQgdXBkYXRlIHdvcmsgb24gdGhpcyByb290LiBVbmxlc3MgdGhlXG4gICAgICAvLyBgZGVmZXJSZW5kZXJQaGFzZVVwZGF0ZVRvTmV4dEJhdGNoYCBmbGFnIGlzIG9mZiBhbmQgdGhpcyBpcyBhIHJlbmRlclxuICAgICAgLy8gcGhhc2UgdXBkYXRlLiBJbiB0aGF0IGNhc2UsIHdlIGRvbid0IHRyZWF0IHJlbmRlciBwaGFzZSB1cGRhdGVzIGFzIGlmXG4gICAgICAvLyB0aGV5IHdlcmUgaW50ZXJsZWF2ZWQsIGZvciBiYWNrd2FyZHMgY29tcGF0IHJlYXNvbnMuXG4gICAgICBpZiAoIChleGVjdXRpb25Db250ZXh0ICYgUmVuZGVyQ29udGV4dCkgPT09IE5vQ29udGV4dCkge1xuICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RJbnRlcmxlYXZlZFVwZGF0ZWRMYW5lcyA9IG1lcmdlTGFuZXMod29ya0luUHJvZ3Jlc3NSb290SW50ZXJsZWF2ZWRVcGRhdGVkTGFuZXMsIGxhbmUpO1xuICAgICAgfVxuXG4gICAgICBpZiAod29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9PT0gUm9vdFN1c3BlbmRlZFdpdGhEZWxheSkge1xuICAgICAgICAvLyBUaGUgcm9vdCBhbHJlYWR5IHN1c3BlbmRlZCB3aXRoIGEgZGVsYXksIHdoaWNoIG1lYW5zIHRoaXMgcmVuZGVyXG4gICAgICAgIC8vIGRlZmluaXRlbHkgd29uJ3QgZmluaXNoLiBTaW5jZSB3ZSBoYXZlIGEgbmV3IHVwZGF0ZSwgbGV0J3MgbWFyayBpdCBhc1xuICAgICAgICAvLyBzdXNwZW5kZWQgbm93LCByaWdodCBiZWZvcmUgbWFya2luZyB0aGUgaW5jb21pbmcgdXBkYXRlLiBUaGlzIGhhcyB0aGVcbiAgICAgICAgLy8gZWZmZWN0IG9mIGludGVycnVwdGluZyB0aGUgY3VycmVudCByZW5kZXIgYW5kIHN3aXRjaGluZyB0byB0aGUgdXBkYXRlLlxuICAgICAgICAvLyBUT0RPOiBNYWtlIHN1cmUgdGhpcyBkb2Vzbid0IG92ZXJyaWRlIHBpbmdzIHRoYXQgaGFwcGVuIHdoaWxlIHdlJ3ZlXG4gICAgICAgIC8vIGFscmVhZHkgc3RhcnRlZCByZW5kZXJpbmcuXG4gICAgICAgIG1hcmtSb290U3VzcGVuZGVkJDEocm9vdCwgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGVuc3VyZVJvb3RJc1NjaGVkdWxlZChyb290LCBldmVudFRpbWUpO1xuXG4gICAgaWYgKGxhbmUgPT09IFN5bmNMYW5lICYmIGV4ZWN1dGlvbkNvbnRleHQgPT09IE5vQ29udGV4dCAmJiAoZmliZXIubW9kZSAmIENvbmN1cnJlbnRNb2RlKSA9PT0gTm9Nb2RlICYmIC8vIFRyZWF0IGBhY3RgIGFzIGlmIGl0J3MgaW5zaWRlIGBiYXRjaGVkVXBkYXRlc2AsIGV2ZW4gaW4gbGVnYWN5IG1vZGUuXG4gICAgISggUmVhY3RDdXJyZW50QWN0UXVldWUkMS5pc0JhdGNoaW5nTGVnYWN5KSkge1xuICAgICAgLy8gRmx1c2ggdGhlIHN5bmNocm9ub3VzIHdvcmsgbm93LCB1bmxlc3Mgd2UncmUgYWxyZWFkeSB3b3JraW5nIG9yIGluc2lkZVxuICAgICAgLy8gYSBiYXRjaC4gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGluc2lkZSBzY2hlZHVsZVVwZGF0ZU9uRmliZXIgaW5zdGVhZCBvZlxuICAgICAgLy8gc2NoZWR1bGVDYWxsYmFja0ZvckZpYmVyIHRvIHByZXNlcnZlIHRoZSBhYmlsaXR5IHRvIHNjaGVkdWxlIGEgY2FsbGJhY2tcbiAgICAgIC8vIHdpdGhvdXQgaW1tZWRpYXRlbHkgZmx1c2hpbmcgaXQuIFdlIG9ubHkgZG8gdGhpcyBmb3IgdXNlci1pbml0aWF0ZWRcbiAgICAgIC8vIHVwZGF0ZXMsIHRvIHByZXNlcnZlIGhpc3RvcmljYWwgYmVoYXZpb3Igb2YgbGVnYWN5IG1vZGUuXG4gICAgICByZXNldFJlbmRlclRpbWVyKCk7XG4gICAgICBmbHVzaFN5bmNDYWxsYmFja3NPbmx5SW5MZWdhY3lNb2RlKCk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBzY2hlZHVsZUluaXRpYWxIeWRyYXRpb25PblJvb3Qocm9vdCwgbGFuZSwgZXZlbnRUaW1lKSB7XG4gIC8vIFRoaXMgaXMgYSBzcGVjaWFsIGZvcmsgb2Ygc2NoZWR1bGVVcGRhdGVPbkZpYmVyIHRoYXQgaXMgb25seSB1c2VkIHRvXG4gIC8vIHNjaGVkdWxlIHRoZSBpbml0aWFsIGh5ZHJhdGlvbiBvZiBhIHJvb3QgdGhhdCBoYXMganVzdCBiZWVuIGNyZWF0ZWQuIE1vc3RcbiAgLy8gb2YgdGhlIHN0dWZmIGluIHNjaGVkdWxlVXBkYXRlT25GaWJlciBjYW4gYmUgc2tpcHBlZC5cbiAgLy9cbiAgLy8gVGhlIG1haW4gcmVhc29uIGZvciB0aGlzIHNlcGFyYXRlIHBhdGgsIHRob3VnaCwgaXMgdG8gZGlzdGluZ3Vpc2ggdGhlXG4gIC8vIGluaXRpYWwgY2hpbGRyZW4gZnJvbSBzdWJzZXF1ZW50IHVwZGF0ZXMuIEluIGZ1bGx5IGNsaWVudC1yZW5kZXJlZCByb290c1xuICAvLyAoY3JlYXRlUm9vdCBpbnN0ZWFkIG9mIGh5ZHJhdGVSb290KSwgYWxsIHRvcC1sZXZlbCByZW5kZXJzIGFyZSBtb2RlbGVkIGFzXG4gIC8vIHVwZGF0ZXMsIGJ1dCBoeWRyYXRpb24gcm9vdHMgYXJlIHNwZWNpYWwgYmVjYXVzZSB0aGUgaW5pdGlhbCByZW5kZXIgbXVzdFxuICAvLyBtYXRjaCB3aGF0IHdhcyByZW5kZXJlZCBvbiB0aGUgc2VydmVyLlxuICB2YXIgY3VycmVudCA9IHJvb3QuY3VycmVudDtcbiAgY3VycmVudC5sYW5lcyA9IGxhbmU7XG4gIG1hcmtSb290VXBkYXRlZChyb290LCBsYW5lLCBldmVudFRpbWUpO1xuICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgZXZlbnRUaW1lKTtcbn1cbmZ1bmN0aW9uIGlzVW5zYWZlQ2xhc3NSZW5kZXJQaGFzZVVwZGF0ZShmaWJlcikge1xuICAvLyBDaGVjayBpZiB0aGlzIGlzIGEgcmVuZGVyIHBoYXNlIHVwZGF0ZS4gT25seSBjYWxsZWQgYnkgY2xhc3MgY29tcG9uZW50cyxcbiAgLy8gd2hpY2ggc3BlY2lhbCAoZGVwcmVjYXRlZCkgYmVoYXZpb3IgZm9yIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZSBwcm9wcy5cbiAgcmV0dXJuICgvLyBUT0RPOiBSZW1vdmUgb3V0ZGF0ZWQgZGVmZXJSZW5kZXJQaGFzZVVwZGF0ZVRvTmV4dEJhdGNoIGV4cGVyaW1lbnQuIFdlXG4gICAgLy8gZGVjaWRlZCBub3QgdG8gZW5hYmxlIGl0LlxuICAgICAoZXhlY3V0aW9uQ29udGV4dCAmIFJlbmRlckNvbnRleHQpICE9PSBOb0NvbnRleHRcbiAgKTtcbn0gLy8gVXNlIHRoaXMgZnVuY3Rpb24gdG8gc2NoZWR1bGUgYSB0YXNrIGZvciBhIHJvb3QuIFRoZXJlJ3Mgb25seSBvbmUgdGFzayBwZXJcbi8vIHJvb3Q7IGlmIGEgdGFzayB3YXMgYWxyZWFkeSBzY2hlZHVsZWQsIHdlJ2xsIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgcHJpb3JpdHlcbi8vIG9mIHRoZSBleGlzdGluZyB0YXNrIGlzIHRoZSBzYW1lIGFzIHRoZSBwcmlvcml0eSBvZiB0aGUgbmV4dCBsZXZlbCB0aGF0IHRoZVxuLy8gcm9vdCBoYXMgd29yayBvbi4gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgb24gZXZlcnkgdXBkYXRlLCBhbmQgcmlnaHQgYmVmb3JlXG4vLyBleGl0aW5nIGEgdGFzay5cblxuZnVuY3Rpb24gZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QsIGN1cnJlbnRUaW1lKSB7XG4gIHZhciBleGlzdGluZ0NhbGxiYWNrTm9kZSA9IHJvb3QuY2FsbGJhY2tOb2RlOyAvLyBDaGVjayBpZiBhbnkgbGFuZXMgYXJlIGJlaW5nIHN0YXJ2ZWQgYnkgb3RoZXIgd29yay4gSWYgc28sIG1hcmsgdGhlbSBhc1xuICAvLyBleHBpcmVkIHNvIHdlIGtub3cgdG8gd29yayBvbiB0aG9zZSBuZXh0LlxuXG4gIG1hcmtTdGFydmVkTGFuZXNBc0V4cGlyZWQocm9vdCwgY3VycmVudFRpbWUpOyAvLyBEZXRlcm1pbmUgdGhlIG5leHQgbGFuZXMgdG8gd29yayBvbiwgYW5kIHRoZWlyIHByaW9yaXR5LlxuXG4gIHZhciBuZXh0TGFuZXMgPSBnZXROZXh0TGFuZXMocm9vdCwgcm9vdCA9PT0gd29ya0luUHJvZ3Jlc3NSb290ID8gd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgOiBOb0xhbmVzKTtcblxuICBpZiAobmV4dExhbmVzID09PSBOb0xhbmVzKSB7XG4gICAgLy8gU3BlY2lhbCBjYXNlOiBUaGVyZSdzIG5vdGhpbmcgdG8gd29yayBvbi5cbiAgICBpZiAoZXhpc3RpbmdDYWxsYmFja05vZGUgIT09IG51bGwpIHtcbiAgICAgIGNhbmNlbENhbGxiYWNrJDEoZXhpc3RpbmdDYWxsYmFja05vZGUpO1xuICAgIH1cblxuICAgIHJvb3QuY2FsbGJhY2tOb2RlID0gbnVsbDtcbiAgICByb290LmNhbGxiYWNrUHJpb3JpdHkgPSBOb0xhbmU7XG4gICAgcmV0dXJuO1xuICB9IC8vIFdlIHVzZSB0aGUgaGlnaGVzdCBwcmlvcml0eSBsYW5lIHRvIHJlcHJlc2VudCB0aGUgcHJpb3JpdHkgb2YgdGhlIGNhbGxiYWNrLlxuXG5cbiAgdmFyIG5ld0NhbGxiYWNrUHJpb3JpdHkgPSBnZXRIaWdoZXN0UHJpb3JpdHlMYW5lKG5leHRMYW5lcyk7IC8vIENoZWNrIGlmIHRoZXJlJ3MgYW4gZXhpc3RpbmcgdGFzay4gV2UgbWF5IGJlIGFibGUgdG8gcmV1c2UgaXQuXG5cbiAgdmFyIGV4aXN0aW5nQ2FsbGJhY2tQcmlvcml0eSA9IHJvb3QuY2FsbGJhY2tQcmlvcml0eTtcblxuICBpZiAoZXhpc3RpbmdDYWxsYmFja1ByaW9yaXR5ID09PSBuZXdDYWxsYmFja1ByaW9yaXR5ICYmIC8vIFNwZWNpYWwgY2FzZSByZWxhdGVkIHRvIGBhY3RgLiBJZiB0aGUgY3VycmVudGx5IHNjaGVkdWxlZCB0YXNrIGlzIGFcbiAgLy8gU2NoZWR1bGVyIHRhc2ssIHJhdGhlciB0aGFuIGFuIGBhY3RgIHRhc2ssIGNhbmNlbCBpdCBhbmQgcmUtc2NoZWR1bGVkXG4gIC8vIG9uIHRoZSBgYWN0YCBxdWV1ZS5cbiAgISggUmVhY3RDdXJyZW50QWN0UXVldWUkMS5jdXJyZW50ICE9PSBudWxsICYmIGV4aXN0aW5nQ2FsbGJhY2tOb2RlICE9PSBmYWtlQWN0Q2FsbGJhY2tOb2RlKSkge1xuICAgIHtcbiAgICAgIC8vIElmIHdlJ3JlIGdvaW5nIHRvIHJlLXVzZSBhbiBleGlzdGluZyB0YXNrLCBpdCBuZWVkcyB0byBleGlzdC5cbiAgICAgIC8vIEFzc3VtZSB0aGF0IGRpc2NyZXRlIHVwZGF0ZSBtaWNyb3Rhc2tzIGFyZSBub24tY2FuY2VsbGFibGUgYW5kIG51bGwuXG4gICAgICAvLyBUT0RPOiBUZW1wb3JhcnkgdW50aWwgd2UgY29uZmlybSB0aGlzIHdhcm5pbmcgaXMgbm90IGZpcmVkLlxuICAgICAgaWYgKGV4aXN0aW5nQ2FsbGJhY2tOb2RlID09IG51bGwgJiYgZXhpc3RpbmdDYWxsYmFja1ByaW9yaXR5ICE9PSBTeW5jTGFuZSkge1xuICAgICAgICBlcnJvcignRXhwZWN0ZWQgc2NoZWR1bGVkIGNhbGxiYWNrIHRvIGV4aXN0LiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgICAgfVxuICAgIH0gLy8gVGhlIHByaW9yaXR5IGhhc24ndCBjaGFuZ2VkLiBXZSBjYW4gcmV1c2UgdGhlIGV4aXN0aW5nIHRhc2suIEV4aXQuXG5cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChleGlzdGluZ0NhbGxiYWNrTm9kZSAhPSBudWxsKSB7XG4gICAgLy8gQ2FuY2VsIHRoZSBleGlzdGluZyBjYWxsYmFjay4gV2UnbGwgc2NoZWR1bGUgYSBuZXcgb25lIGJlbG93LlxuICAgIGNhbmNlbENhbGxiYWNrJDEoZXhpc3RpbmdDYWxsYmFja05vZGUpO1xuICB9IC8vIFNjaGVkdWxlIGEgbmV3IGNhbGxiYWNrLlxuXG5cbiAgdmFyIG5ld0NhbGxiYWNrTm9kZTtcblxuICBpZiAobmV3Q2FsbGJhY2tQcmlvcml0eSA9PT0gU3luY0xhbmUpIHtcbiAgICAvLyBTcGVjaWFsIGNhc2U6IFN5bmMgUmVhY3QgY2FsbGJhY2tzIGFyZSBzY2hlZHVsZWQgb24gYSBzcGVjaWFsXG4gICAgLy8gaW50ZXJuYWwgcXVldWVcbiAgICBpZiAocm9vdC50YWcgPT09IExlZ2FjeVJvb3QpIHtcbiAgICAgIGlmICggUmVhY3RDdXJyZW50QWN0UXVldWUkMS5pc0JhdGNoaW5nTGVnYWN5ICE9PSBudWxsKSB7XG4gICAgICAgIFJlYWN0Q3VycmVudEFjdFF1ZXVlJDEuZGlkU2NoZWR1bGVMZWdhY3lVcGRhdGUgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBzY2hlZHVsZUxlZ2FjeVN5bmNDYWxsYmFjayhwZXJmb3JtU3luY1dvcmtPblJvb3QuYmluZChudWxsLCByb290KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNjaGVkdWxlU3luY0NhbGxiYWNrKHBlcmZvcm1TeW5jV29ya09uUm9vdC5iaW5kKG51bGwsIHJvb3QpKTtcbiAgICB9XG5cbiAgICB7XG4gICAgICAvLyBGbHVzaCB0aGUgcXVldWUgaW4gYSBtaWNyb3Rhc2suXG4gICAgICBpZiAoIFJlYWN0Q3VycmVudEFjdFF1ZXVlJDEuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICAvLyBJbnNpZGUgYGFjdGAsIHVzZSBvdXIgaW50ZXJuYWwgYGFjdGAgcXVldWUgc28gdGhhdCB0aGVzZSBnZXQgZmx1c2hlZFxuICAgICAgICAvLyBhdCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IHNjb3BlIGV2ZW4gd2hlbiB1c2luZyB0aGUgc3luYyB2ZXJzaW9uXG4gICAgICAgIC8vIG9mIGBhY3RgLlxuICAgICAgICBSZWFjdEN1cnJlbnRBY3RRdWV1ZSQxLmN1cnJlbnQucHVzaChmbHVzaFN5bmNDYWxsYmFja3MpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2NoZWR1bGVNaWNyb3Rhc2soZnVuY3Rpb24gKCkge1xuICAgICAgICAgIC8vIEluIFNhZmFyaSwgYXBwZW5kaW5nIGFuIGlmcmFtZSBmb3JjZXMgbWljcm90YXNrcyB0byBydW4uXG4gICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8yMjQ1OVxuICAgICAgICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgcnVubmluZyBjYWxsYmFja3MgaW4gdGhlIG1pZGRsZSBvZiByZW5kZXJcbiAgICAgICAgICAvLyBvciBjb21taXQgc28gd2UgbmVlZCB0byBjaGVjayBhZ2FpbnN0IHRoYXQuXG4gICAgICAgICAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgKFJlbmRlckNvbnRleHQgfCBDb21taXRDb250ZXh0KSkgPT09IE5vQ29udGV4dCkge1xuICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHRoaXMgd291bGQgc3RpbGwgcHJlbWF0dXJlbHkgZmx1c2ggdGhlIGNhbGxiYWNrc1xuICAgICAgICAgICAgLy8gaWYgdGhpcyBoYXBwZW5zIG91dHNpZGUgcmVuZGVyIG9yIGNvbW1pdCBwaGFzZSAoZS5nLiBpbiBhbiBldmVudCkuXG4gICAgICAgICAgICBmbHVzaFN5bmNDYWxsYmFja3MoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5ld0NhbGxiYWNrTm9kZSA9IG51bGw7XG4gIH0gZWxzZSB7XG4gICAgdmFyIHNjaGVkdWxlclByaW9yaXR5TGV2ZWw7XG5cbiAgICBzd2l0Y2ggKGxhbmVzVG9FdmVudFByaW9yaXR5KG5leHRMYW5lcykpIHtcbiAgICAgIGNhc2UgRGlzY3JldGVFdmVudFByaW9yaXR5OlxuICAgICAgICBzY2hlZHVsZXJQcmlvcml0eUxldmVsID0gSW1tZWRpYXRlUHJpb3JpdHk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIENvbnRpbnVvdXNFdmVudFByaW9yaXR5OlxuICAgICAgICBzY2hlZHVsZXJQcmlvcml0eUxldmVsID0gVXNlckJsb2NraW5nUHJpb3JpdHk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIERlZmF1bHRFdmVudFByaW9yaXR5OlxuICAgICAgICBzY2hlZHVsZXJQcmlvcml0eUxldmVsID0gTm9ybWFsUHJpb3JpdHk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIElkbGVFdmVudFByaW9yaXR5OlxuICAgICAgICBzY2hlZHVsZXJQcmlvcml0eUxldmVsID0gSWRsZVByaW9yaXR5O1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgc2NoZWR1bGVyUHJpb3JpdHlMZXZlbCA9IE5vcm1hbFByaW9yaXR5O1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBuZXdDYWxsYmFja05vZGUgPSBzY2hlZHVsZUNhbGxiYWNrJDEoc2NoZWR1bGVyUHJpb3JpdHlMZXZlbCwgcGVyZm9ybUNvbmN1cnJlbnRXb3JrT25Sb290LmJpbmQobnVsbCwgcm9vdCkpO1xuICB9XG5cbiAgcm9vdC5jYWxsYmFja1ByaW9yaXR5ID0gbmV3Q2FsbGJhY2tQcmlvcml0eTtcbiAgcm9vdC5jYWxsYmFja05vZGUgPSBuZXdDYWxsYmFja05vZGU7XG59IC8vIFRoaXMgaXMgdGhlIGVudHJ5IHBvaW50IGZvciBldmVyeSBjb25jdXJyZW50IHRhc2ssIGkuZS4gYW55dGhpbmcgdGhhdFxuLy8gZ29lcyB0aHJvdWdoIFNjaGVkdWxlci5cblxuXG5mdW5jdGlvbiBwZXJmb3JtQ29uY3VycmVudFdvcmtPblJvb3Qocm9vdCwgZGlkVGltZW91dCkge1xuICB7XG4gICAgcmVzZXROZXN0ZWRVcGRhdGVGbGFnKCk7XG4gIH0gLy8gU2luY2Ugd2Uga25vdyB3ZSdyZSBpbiBhIFJlYWN0IGV2ZW50LCB3ZSBjYW4gY2xlYXIgdGhlIGN1cnJlbnRcbiAgLy8gZXZlbnQgdGltZS4gVGhlIG5leHQgdXBkYXRlIHdpbGwgY29tcHV0ZSBhIG5ldyBldmVudCB0aW1lLlxuXG5cbiAgY3VycmVudEV2ZW50VGltZSA9IE5vVGltZXN0YW1wO1xuICBjdXJyZW50RXZlbnRUcmFuc2l0aW9uTGFuZSA9IE5vTGFuZXM7XG5cbiAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgKFJlbmRlckNvbnRleHQgfCBDb21taXRDb250ZXh0KSkgIT09IE5vQ29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIG5vdCBhbHJlYWR5IGJlIHdvcmtpbmcuJyk7XG4gIH0gLy8gRmx1c2ggYW55IHBlbmRpbmcgcGFzc2l2ZSBlZmZlY3RzIGJlZm9yZSBkZWNpZGluZyB3aGljaCBsYW5lcyB0byB3b3JrIG9uLFxuICAvLyBpbiBjYXNlIHRoZXkgc2NoZWR1bGUgYWRkaXRpb25hbCB3b3JrLlxuXG5cbiAgdmFyIG9yaWdpbmFsQ2FsbGJhY2tOb2RlID0gcm9vdC5jYWxsYmFja05vZGU7XG4gIHZhciBkaWRGbHVzaFBhc3NpdmVFZmZlY3RzID0gZmx1c2hQYXNzaXZlRWZmZWN0cygpO1xuXG4gIGlmIChkaWRGbHVzaFBhc3NpdmVFZmZlY3RzKSB7XG4gICAgLy8gU29tZXRoaW5nIGluIHRoZSBwYXNzaXZlIGVmZmVjdCBwaGFzZSBtYXkgaGF2ZSBjYW5jZWxlZCB0aGUgY3VycmVudCB0YXNrLlxuICAgIC8vIENoZWNrIGlmIHRoZSB0YXNrIG5vZGUgZm9yIHRoaXMgcm9vdCB3YXMgY2hhbmdlZC5cbiAgICBpZiAocm9vdC5jYWxsYmFja05vZGUgIT09IG9yaWdpbmFsQ2FsbGJhY2tOb2RlKSB7XG4gICAgICAvLyBUaGUgY3VycmVudCB0YXNrIHdhcyBjYW5jZWxlZC4gRXhpdC4gV2UgZG9uJ3QgbmVlZCB0byBjYWxsXG4gICAgICAvLyBgZW5zdXJlUm9vdElzU2NoZWR1bGVkYCBiZWNhdXNlIHRoZSBjaGVjayBhYm92ZSBpbXBsaWVzIGVpdGhlciB0aGF0XG4gICAgICAvLyB0aGVyZSdzIGEgbmV3IHRhc2ssIG9yIHRoYXQgdGhlcmUncyBubyByZW1haW5pbmcgd29yayBvbiB0aGlzIHJvb3QuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH0gLy8gRGV0ZXJtaW5lIHRoZSBuZXh0IGxhbmVzIHRvIHdvcmsgb24sIHVzaW5nIHRoZSBmaWVsZHMgc3RvcmVkXG4gIC8vIG9uIHRoZSByb290LlxuXG5cbiAgdmFyIGxhbmVzID0gZ2V0TmV4dExhbmVzKHJvb3QsIHJvb3QgPT09IHdvcmtJblByb2dyZXNzUm9vdCA/IHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzIDogTm9MYW5lcyk7XG5cbiAgaWYgKGxhbmVzID09PSBOb0xhbmVzKSB7XG4gICAgLy8gRGVmZW5zaXZlIGNvZGluZy4gVGhpcyBpcyBuZXZlciBleHBlY3RlZCB0byBoYXBwZW4uXG4gICAgcmV0dXJuIG51bGw7XG4gIH0gLy8gV2UgZGlzYWJsZSB0aW1lLXNsaWNpbmcgaW4gc29tZSBjYXNlczogaWYgdGhlIHdvcmsgaGFzIGJlZW4gQ1BVLWJvdW5kXG4gIC8vIGZvciB0b28gbG9uZyAoXCJleHBpcmVkXCIgd29yaywgdG8gcHJldmVudCBzdGFydmF0aW9uKSwgb3Igd2UncmUgaW5cbiAgLy8gc3luYy11cGRhdGVzLWJ5LWRlZmF1bHQgbW9kZS5cbiAgLy8gVE9ETzogV2Ugb25seSBjaGVjayBgZGlkVGltZW91dGAgZGVmZW5zaXZlbHksIHRvIGFjY291bnQgZm9yIGEgU2NoZWR1bGVyXG4gIC8vIGJ1ZyB3ZSdyZSBzdGlsbCBpbnZlc3RpZ2F0aW5nLiBPbmNlIHRoZSBidWcgaW4gU2NoZWR1bGVyIGlzIGZpeGVkLFxuICAvLyB3ZSBjYW4gcmVtb3ZlIHRoaXMsIHNpbmNlIHdlIHRyYWNrIGV4cGlyYXRpb24gb3Vyc2VsdmVzLlxuXG5cbiAgdmFyIHNob3VsZFRpbWVTbGljZSA9ICFpbmNsdWRlc0Jsb2NraW5nTGFuZShyb290LCBsYW5lcykgJiYgIWluY2x1ZGVzRXhwaXJlZExhbmUocm9vdCwgbGFuZXMpICYmICggIWRpZFRpbWVvdXQpO1xuICB2YXIgZXhpdFN0YXR1cyA9IHNob3VsZFRpbWVTbGljZSA/IHJlbmRlclJvb3RDb25jdXJyZW50KHJvb3QsIGxhbmVzKSA6IHJlbmRlclJvb3RTeW5jKHJvb3QsIGxhbmVzKTtcblxuICBpZiAoZXhpdFN0YXR1cyAhPT0gUm9vdEluUHJvZ3Jlc3MpIHtcbiAgICBpZiAoZXhpdFN0YXR1cyA9PT0gUm9vdEVycm9yZWQpIHtcbiAgICAgIC8vIElmIHNvbWV0aGluZyB0aHJldyBhbiBlcnJvciwgdHJ5IHJlbmRlcmluZyBvbmUgbW9yZSB0aW1lLiBXZSdsbFxuICAgICAgLy8gcmVuZGVyIHN5bmNocm9ub3VzbHkgdG8gYmxvY2sgY29uY3VycmVudCBkYXRhIG11dGF0aW9ucywgYW5kIHdlJ2xsXG4gICAgICAvLyBpbmNsdWRlcyBhbGwgcGVuZGluZyB1cGRhdGVzIGFyZSBpbmNsdWRlZC4gSWYgaXQgc3RpbGwgZmFpbHMgYWZ0ZXJcbiAgICAgIC8vIHRoZSBzZWNvbmQgYXR0ZW1wdCwgd2UnbGwgZ2l2ZSB1cCBhbmQgY29tbWl0IHRoZSByZXN1bHRpbmcgdHJlZS5cbiAgICAgIHZhciBlcnJvclJldHJ5TGFuZXMgPSBnZXRMYW5lc1RvUmV0cnlTeW5jaHJvbm91c2x5T25FcnJvcihyb290KTtcblxuICAgICAgaWYgKGVycm9yUmV0cnlMYW5lcyAhPT0gTm9MYW5lcykge1xuICAgICAgICBsYW5lcyA9IGVycm9yUmV0cnlMYW5lcztcbiAgICAgICAgZXhpdFN0YXR1cyA9IHJlY292ZXJGcm9tQ29uY3VycmVudEVycm9yKHJvb3QsIGVycm9yUmV0cnlMYW5lcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGV4aXRTdGF0dXMgPT09IFJvb3RGYXRhbEVycm9yZWQpIHtcbiAgICAgIHZhciBmYXRhbEVycm9yID0gd29ya0luUHJvZ3Jlc3NSb290RmF0YWxFcnJvcjtcbiAgICAgIHByZXBhcmVGcmVzaFN0YWNrKHJvb3QsIE5vTGFuZXMpO1xuICAgICAgbWFya1Jvb3RTdXNwZW5kZWQkMShyb290LCBsYW5lcyk7XG4gICAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgbm93KCkpO1xuICAgICAgdGhyb3cgZmF0YWxFcnJvcjtcbiAgICB9XG5cbiAgICBpZiAoZXhpdFN0YXR1cyA9PT0gUm9vdERpZE5vdENvbXBsZXRlKSB7XG4gICAgICAvLyBUaGUgcmVuZGVyIHVud291bmQgd2l0aG91dCBjb21wbGV0aW5nIHRoZSB0cmVlLiBUaGlzIGhhcHBlbnMgaW4gc3BlY2lhbFxuICAgICAgLy8gY2FzZXMgd2hlcmUgbmVlZCB0byBleGl0IHRoZSBjdXJyZW50IHJlbmRlciB3aXRob3V0IHByb2R1Y2luZyBhXG4gICAgICAvLyBjb25zaXN0ZW50IHRyZWUgb3IgY29tbWl0dGluZy5cbiAgICAgIC8vXG4gICAgICAvLyBUaGlzIHNob3VsZCBvbmx5IGhhcHBlbiBkdXJpbmcgYSBjb25jdXJyZW50IHJlbmRlciwgbm90IGEgZGlzY3JldGUgb3JcbiAgICAgIC8vIHN5bmNocm9ub3VzIHVwZGF0ZS4gV2Ugc2hvdWxkIGhhdmUgYWxyZWFkeSBjaGVja2VkIGZvciB0aGlzIHdoZW4gd2VcbiAgICAgIC8vIHVud291bmQgdGhlIHN0YWNrLlxuICAgICAgbWFya1Jvb3RTdXNwZW5kZWQkMShyb290LCBsYW5lcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoZSByZW5kZXIgY29tcGxldGVkLlxuICAgICAgLy8gQ2hlY2sgaWYgdGhpcyByZW5kZXIgbWF5IGhhdmUgeWllbGRlZCB0byBhIGNvbmN1cnJlbnQgZXZlbnQsIGFuZCBpZiBzbyxcbiAgICAgIC8vIGNvbmZpcm0gdGhhdCBhbnkgbmV3bHkgcmVuZGVyZWQgc3RvcmVzIGFyZSBjb25zaXN0ZW50LlxuICAgICAgLy8gVE9ETzogSXQncyBwb3NzaWJsZSB0aGF0IGV2ZW4gYSBjb25jdXJyZW50IHJlbmRlciBtYXkgbmV2ZXIgaGF2ZSB5aWVsZGVkXG4gICAgICAvLyB0byB0aGUgbWFpbiB0aHJlYWQsIGlmIGl0IHdhcyBmYXN0IGVub3VnaCwgb3IgaWYgaXQgZXhwaXJlZC4gV2UgY291bGRcbiAgICAgIC8vIHNraXAgdGhlIGNvbnNpc3RlbmN5IGNoZWNrIGluIHRoYXQgY2FzZSwgdG9vLlxuICAgICAgdmFyIHJlbmRlcldhc0NvbmN1cnJlbnQgPSAhaW5jbHVkZXNCbG9ja2luZ0xhbmUocm9vdCwgbGFuZXMpO1xuICAgICAgdmFyIGZpbmlzaGVkV29yayA9IHJvb3QuY3VycmVudC5hbHRlcm5hdGU7XG5cbiAgICAgIGlmIChyZW5kZXJXYXNDb25jdXJyZW50ICYmICFpc1JlbmRlckNvbnNpc3RlbnRXaXRoRXh0ZXJuYWxTdG9yZXMoZmluaXNoZWRXb3JrKSkge1xuICAgICAgICAvLyBBIHN0b3JlIHdhcyBtdXRhdGVkIGluIGFuIGludGVybGVhdmVkIGV2ZW50LiBSZW5kZXIgYWdhaW4sXG4gICAgICAgIC8vIHN5bmNocm9ub3VzbHksIHRvIGJsb2NrIGZ1cnRoZXIgbXV0YXRpb25zLlxuICAgICAgICBleGl0U3RhdHVzID0gcmVuZGVyUm9vdFN5bmMocm9vdCwgbGFuZXMpOyAvLyBXZSBuZWVkIHRvIGNoZWNrIGFnYWluIGlmIHNvbWV0aGluZyB0aHJld1xuXG4gICAgICAgIGlmIChleGl0U3RhdHVzID09PSBSb290RXJyb3JlZCkge1xuICAgICAgICAgIHZhciBfZXJyb3JSZXRyeUxhbmVzID0gZ2V0TGFuZXNUb1JldHJ5U3luY2hyb25vdXNseU9uRXJyb3Iocm9vdCk7XG5cbiAgICAgICAgICBpZiAoX2Vycm9yUmV0cnlMYW5lcyAhPT0gTm9MYW5lcykge1xuICAgICAgICAgICAgbGFuZXMgPSBfZXJyb3JSZXRyeUxhbmVzO1xuICAgICAgICAgICAgZXhpdFN0YXR1cyA9IHJlY292ZXJGcm9tQ29uY3VycmVudEVycm9yKHJvb3QsIF9lcnJvclJldHJ5TGFuZXMpOyAvLyBXZSBhc3N1bWUgdGhlIHRyZWUgaXMgbm93IGNvbnNpc3RlbnQgYmVjYXVzZSB3ZSBkaWRuJ3QgeWllbGQgdG8gYW55XG4gICAgICAgICAgICAvLyBjb25jdXJyZW50IGV2ZW50cy5cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXhpdFN0YXR1cyA9PT0gUm9vdEZhdGFsRXJyb3JlZCkge1xuICAgICAgICAgIHZhciBfZmF0YWxFcnJvciA9IHdvcmtJblByb2dyZXNzUm9vdEZhdGFsRXJyb3I7XG4gICAgICAgICAgcHJlcGFyZUZyZXNoU3RhY2socm9vdCwgTm9MYW5lcyk7XG4gICAgICAgICAgbWFya1Jvb3RTdXNwZW5kZWQkMShyb290LCBsYW5lcyk7XG4gICAgICAgICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QsIG5vdygpKTtcbiAgICAgICAgICB0aHJvdyBfZmF0YWxFcnJvcjtcbiAgICAgICAgfVxuICAgICAgfSAvLyBXZSBub3cgaGF2ZSBhIGNvbnNpc3RlbnQgdHJlZS4gVGhlIG5leHQgc3RlcCBpcyBlaXRoZXIgdG8gY29tbWl0IGl0LFxuICAgICAgLy8gb3IsIGlmIHNvbWV0aGluZyBzdXNwZW5kZWQsIHdhaXQgdG8gY29tbWl0IGl0IGFmdGVyIGEgdGltZW91dC5cblxuXG4gICAgICByb290LmZpbmlzaGVkV29yayA9IGZpbmlzaGVkV29yaztcbiAgICAgIHJvb3QuZmluaXNoZWRMYW5lcyA9IGxhbmVzO1xuICAgICAgZmluaXNoQ29uY3VycmVudFJlbmRlcihyb290LCBleGl0U3RhdHVzLCBsYW5lcyk7XG4gICAgfVxuICB9XG5cbiAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QsIG5vdygpKTtcblxuICBpZiAocm9vdC5jYWxsYmFja05vZGUgPT09IG9yaWdpbmFsQ2FsbGJhY2tOb2RlKSB7XG4gICAgLy8gVGhlIHRhc2sgbm9kZSBzY2hlZHVsZWQgZm9yIHRoaXMgcm9vdCBpcyB0aGUgc2FtZSBvbmUgdGhhdCdzXG4gICAgLy8gY3VycmVudGx5IGV4ZWN1dGVkLiBOZWVkIHRvIHJldHVybiBhIGNvbnRpbnVhdGlvbi5cbiAgICByZXR1cm4gcGVyZm9ybUNvbmN1cnJlbnRXb3JrT25Sb290LmJpbmQobnVsbCwgcm9vdCk7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gcmVjb3ZlckZyb21Db25jdXJyZW50RXJyb3Iocm9vdCwgZXJyb3JSZXRyeUxhbmVzKSB7XG4gIC8vIElmIGFuIGVycm9yIG9jY3VycmVkIGR1cmluZyBoeWRyYXRpb24sIGRpc2NhcmQgc2VydmVyIHJlc3BvbnNlIGFuZCBmYWxsXG4gIC8vIGJhY2sgdG8gY2xpZW50IHNpZGUgcmVuZGVyLlxuICAvLyBCZWZvcmUgcmVuZGVyaW5nIGFnYWluLCBzYXZlIHRoZSBlcnJvcnMgZnJvbSB0aGUgcHJldmlvdXMgYXR0ZW1wdC5cbiAgdmFyIGVycm9yc0Zyb21GaXJzdEF0dGVtcHQgPSB3b3JrSW5Qcm9ncmVzc1Jvb3RDb25jdXJyZW50RXJyb3JzO1xuXG4gIGlmIChpc1Jvb3REZWh5ZHJhdGVkKHJvb3QpKSB7XG4gICAgLy8gVGhlIHNoZWxsIGZhaWxlZCB0byBoeWRyYXRlLiBTZXQgYSBmbGFnIHRvIGZvcmNlIGEgY2xpZW50IHJlbmRlcmluZ1xuICAgIC8vIGR1cmluZyB0aGUgbmV4dCBhdHRlbXB0LiBUbyBkbyB0aGlzLCB3ZSBjYWxsIHByZXBhcmVGcmVzaFN0YWNrIG5vd1xuICAgIC8vIHRvIGNyZWF0ZSB0aGUgcm9vdCB3b3JrLWluLXByb2dyZXNzIGZpYmVyLiBUaGlzIGlzIGEgYml0IHdlaXJkIGluIHRlcm1zXG4gICAgLy8gb2YgZmFjdG9yaW5nLCBiZWNhdXNlIGl0IHJlbGllcyBvbiByZW5kZXJSb290U3luYyBub3QgY2FsbGluZ1xuICAgIC8vIHByZXBhcmVGcmVzaFN0YWNrIGFnYWluIGluIHRoZSBjYWxsIGJlbG93LCB3aGljaCBoYXBwZW5zIGJlY2F1c2UgdGhlXG4gICAgLy8gcm9vdCBhbmQgbGFuZXMgaGF2ZW4ndCBjaGFuZ2VkLlxuICAgIC8vXG4gICAgLy8gVE9ETzogSSB0aGluayB3aGF0IHdlIHNob3VsZCBkbyBpcyBzZXQgRm9yY2VDbGllbnRSZW5kZXIgaW5zaWRlXG4gICAgLy8gdGhyb3dFeGNlcHRpb24sIGxpa2Ugd2UgZG8gZm9yIG5lc3RlZCBTdXNwZW5zZSBib3VuZGFyaWVzLiBUaGUgcmVhc29uXG4gICAgLy8gaXQncyBoZXJlIGluc3RlYWQgaXMgc28gd2UgY2FuIHN3aXRjaCB0byB0aGUgc3luY2hyb25vdXMgd29yayBsb29wLCB0b28uXG4gICAgLy8gU29tZXRoaW5nIHRvIGNvbnNpZGVyIGZvciBhIGZ1dHVyZSByZWZhY3Rvci5cbiAgICB2YXIgcm9vdFdvcmtJblByb2dyZXNzID0gcHJlcGFyZUZyZXNoU3RhY2socm9vdCwgZXJyb3JSZXRyeUxhbmVzKTtcbiAgICByb290V29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gRm9yY2VDbGllbnRSZW5kZXI7XG5cbiAgICB7XG4gICAgICBlcnJvckh5ZHJhdGluZ0NvbnRhaW5lcihyb290LmNvbnRhaW5lckluZm8pO1xuICAgIH1cbiAgfVxuXG4gIHZhciBleGl0U3RhdHVzID0gcmVuZGVyUm9vdFN5bmMocm9vdCwgZXJyb3JSZXRyeUxhbmVzKTtcblxuICBpZiAoZXhpdFN0YXR1cyAhPT0gUm9vdEVycm9yZWQpIHtcbiAgICAvLyBTdWNjZXNzZnVsbHkgZmluaXNoZWQgcmVuZGVyaW5nIG9uIHJldHJ5XG4gICAgLy8gVGhlIGVycm9ycyBmcm9tIHRoZSBmYWlsZWQgZmlyc3QgYXR0ZW1wdCBoYXZlIGJlZW4gcmVjb3ZlcmVkLiBBZGRcbiAgICAvLyB0aGVtIHRvIHRoZSBjb2xsZWN0aW9uIG9mIHJlY292ZXJhYmxlIGVycm9ycy4gV2UnbGwgbG9nIHRoZW0gaW4gdGhlXG4gICAgLy8gY29tbWl0IHBoYXNlLlxuICAgIHZhciBlcnJvcnNGcm9tU2Vjb25kQXR0ZW1wdCA9IHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzO1xuICAgIHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzID0gZXJyb3JzRnJvbUZpcnN0QXR0ZW1wdDsgLy8gVGhlIGVycm9ycyBmcm9tIHRoZSBzZWNvbmQgYXR0ZW1wdCBzaG91bGQgYmUgcXVldWVkIGFmdGVyIHRoZSBlcnJvcnNcbiAgICAvLyBmcm9tIHRoZSBmaXJzdCBhdHRlbXB0LCB0byBwcmVzZXJ2ZSB0aGUgY2F1c2FsIHNlcXVlbmNlLlxuXG4gICAgaWYgKGVycm9yc0Zyb21TZWNvbmRBdHRlbXB0ICE9PSBudWxsKSB7XG4gICAgICBxdWV1ZVJlY292ZXJhYmxlRXJyb3JzKGVycm9yc0Zyb21TZWNvbmRBdHRlbXB0KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZXhpdFN0YXR1cztcbn1cblxuZnVuY3Rpb24gcXVldWVSZWNvdmVyYWJsZUVycm9ycyhlcnJvcnMpIHtcbiAgaWYgKHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzID09PSBudWxsKSB7XG4gICAgd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMgPSBlcnJvcnM7XG4gIH0gZWxzZSB7XG4gICAgd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMucHVzaC5hcHBseSh3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycywgZXJyb3JzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmaW5pc2hDb25jdXJyZW50UmVuZGVyKHJvb3QsIGV4aXRTdGF0dXMsIGxhbmVzKSB7XG4gIHN3aXRjaCAoZXhpdFN0YXR1cykge1xuICAgIGNhc2UgUm9vdEluUHJvZ3Jlc3M6XG4gICAgY2FzZSBSb290RmF0YWxFcnJvcmVkOlxuICAgICAge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Jvb3QgZGlkIG5vdCBjb21wbGV0ZS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4nKTtcbiAgICAgIH1cbiAgICAvLyBGbG93IGtub3dzIGFib3V0IGludmFyaWFudCwgc28gaXQgY29tcGxhaW5zIGlmIEkgYWRkIGEgYnJlYWtcbiAgICAvLyBzdGF0ZW1lbnQsIGJ1dCBlc2xpbnQgZG9lc24ndCBrbm93IGFib3V0IGludmFyaWFudCwgc28gaXQgY29tcGxhaW5zXG4gICAgLy8gaWYgSSBkby4gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWZhbGx0aHJvdWdoXG5cbiAgICBjYXNlIFJvb3RFcnJvcmVkOlxuICAgICAge1xuICAgICAgICAvLyBXZSBzaG91bGQgaGF2ZSBhbHJlYWR5IGF0dGVtcHRlZCB0byByZXRyeSB0aGlzIHRyZWUuIElmIHdlIHJlYWNoZWRcbiAgICAgICAgLy8gdGhpcyBwb2ludCwgaXQgZXJyb3JlZCBhZ2Fpbi4gQ29tbWl0IGl0LlxuICAgICAgICBjb21taXRSb290KHJvb3QsIHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzLCB3b3JrSW5Qcm9ncmVzc1RyYW5zaXRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIFJvb3RTdXNwZW5kZWQ6XG4gICAgICB7XG4gICAgICAgIG1hcmtSb290U3VzcGVuZGVkJDEocm9vdCwgbGFuZXMpOyAvLyBXZSBoYXZlIGFuIGFjY2VwdGFibGUgbG9hZGluZyBzdGF0ZS4gV2UgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHdlXG4gICAgICAgIC8vIHNob3VsZCBpbW1lZGlhdGVseSBjb21taXQgaXQgb3Igd2FpdCBhIGJpdC5cblxuICAgICAgICBpZiAoaW5jbHVkZXNPbmx5UmV0cmllcyhsYW5lcykgJiYgLy8gZG8gbm90IGRlbGF5IGlmIHdlJ3JlIGluc2lkZSBhbiBhY3QoKSBzY29wZVxuICAgICAgICAhc2hvdWxkRm9yY2VGbHVzaEZhbGxiYWNrc0luREVWKCkpIHtcbiAgICAgICAgICAvLyBUaGlzIHJlbmRlciBvbmx5IGluY2x1ZGVkIHJldHJpZXMsIG5vIHVwZGF0ZXMuIFRocm90dGxlIGNvbW1pdHRpbmdcbiAgICAgICAgICAvLyByZXRyaWVzIHNvIHRoYXQgd2UgZG9uJ3Qgc2hvdyB0b28gbWFueSBsb2FkaW5nIHN0YXRlcyB0b28gcXVpY2tseS5cbiAgICAgICAgICB2YXIgbXNVbnRpbFRpbWVvdXQgPSBnbG9iYWxNb3N0UmVjZW50RmFsbGJhY2tUaW1lICsgRkFMTEJBQ0tfVEhST1RUTEVfTVMgLSBub3coKTsgLy8gRG9uJ3QgYm90aGVyIHdpdGggYSB2ZXJ5IHNob3J0IHN1c3BlbnNlIHRpbWUuXG5cbiAgICAgICAgICBpZiAobXNVbnRpbFRpbWVvdXQgPiAxMCkge1xuICAgICAgICAgICAgdmFyIG5leHRMYW5lcyA9IGdldE5leHRMYW5lcyhyb290LCBOb0xhbmVzKTtcblxuICAgICAgICAgICAgaWYgKG5leHRMYW5lcyAhPT0gTm9MYW5lcykge1xuICAgICAgICAgICAgICAvLyBUaGVyZSdzIGFkZGl0aW9uYWwgd29yayBvbiB0aGlzIHJvb3QuXG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgc3VzcGVuZGVkTGFuZXMgPSByb290LnN1c3BlbmRlZExhbmVzO1xuXG4gICAgICAgICAgICBpZiAoIWlzU3Vic2V0T2ZMYW5lcyhzdXNwZW5kZWRMYW5lcywgbGFuZXMpKSB7XG4gICAgICAgICAgICAgIC8vIFdlIHNob3VsZCBwcmVmZXIgdG8gcmVuZGVyIHRoZSBmYWxsYmFjayBvZiBhdCB0aGUgbGFzdFxuICAgICAgICAgICAgICAvLyBzdXNwZW5kZWQgbGV2ZWwuIFBpbmcgdGhlIGxhc3Qgc3VzcGVuZGVkIGxldmVsIHRvIHRyeVxuICAgICAgICAgICAgICAvLyByZW5kZXJpbmcgaXQgYWdhaW4uXG4gICAgICAgICAgICAgIC8vIEZJWE1FOiBXaGF0IGlmIHRoZSBzdXNwZW5kZWQgbGFuZXMgYXJlIElkbGU/IFNob3VsZCBub3QgcmVzdGFydC5cbiAgICAgICAgICAgICAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgICAgICAgICAgICAgbWFya1Jvb3RQaW5nZWQocm9vdCwgc3VzcGVuZGVkTGFuZXMpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH0gLy8gVGhlIHJlbmRlciBpcyBzdXNwZW5kZWQsIGl0IGhhc24ndCB0aW1lZCBvdXQsIGFuZCB0aGVyZSdzIG5vXG4gICAgICAgICAgICAvLyBsb3dlciBwcmlvcml0eSB3b3JrIHRvIGRvLiBJbnN0ZWFkIG9mIGNvbW1pdHRpbmcgdGhlIGZhbGxiYWNrXG4gICAgICAgICAgICAvLyBpbW1lZGlhdGVseSwgd2FpdCBmb3IgbW9yZSBkYXRhIHRvIGFycml2ZS5cblxuXG4gICAgICAgICAgICByb290LnRpbWVvdXRIYW5kbGUgPSBzY2hlZHVsZVRpbWVvdXQoY29tbWl0Um9vdC5iaW5kKG51bGwsIHJvb3QsIHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzLCB3b3JrSW5Qcm9ncmVzc1RyYW5zaXRpb25zKSwgbXNVbnRpbFRpbWVvdXQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9IC8vIFRoZSB3b3JrIGV4cGlyZWQuIENvbW1pdCBpbW1lZGlhdGVseS5cblxuXG4gICAgICAgIGNvbW1pdFJvb3Qocm9vdCwgd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMsIHdvcmtJblByb2dyZXNzVHJhbnNpdGlvbnMpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIGNhc2UgUm9vdFN1c3BlbmRlZFdpdGhEZWxheTpcbiAgICAgIHtcbiAgICAgICAgbWFya1Jvb3RTdXNwZW5kZWQkMShyb290LCBsYW5lcyk7XG5cbiAgICAgICAgaWYgKGluY2x1ZGVzT25seVRyYW5zaXRpb25zKGxhbmVzKSkge1xuICAgICAgICAgIC8vIFRoaXMgaXMgYSB0cmFuc2l0aW9uLCBzbyB3ZSBzaG91bGQgZXhpdCB3aXRob3V0IGNvbW1pdHRpbmcgYVxuICAgICAgICAgIC8vIHBsYWNlaG9sZGVyIGFuZCB3aXRob3V0IHNjaGVkdWxpbmcgYSB0aW1lb3V0LiBEZWxheSBpbmRlZmluaXRlbHlcbiAgICAgICAgICAvLyB1bnRpbCB3ZSByZWNlaXZlIG1vcmUgZGF0YS5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghc2hvdWxkRm9yY2VGbHVzaEZhbGxiYWNrc0luREVWKCkpIHtcbiAgICAgICAgICAvLyBUaGlzIGlzIG5vdCBhIHRyYW5zaXRpb24sIGJ1dCB3ZSBkaWQgdHJpZ2dlciBhbiBhdm9pZGVkIHN0YXRlLlxuICAgICAgICAgIC8vIFNjaGVkdWxlIGEgcGxhY2Vob2xkZXIgdG8gZGlzcGxheSBhZnRlciBhIHNob3J0IGRlbGF5LCB1c2luZyB0aGUgSnVzdFxuICAgICAgICAgIC8vIE5vdGljZWFibGUgRGlmZmVyZW5jZS5cbiAgICAgICAgICAvLyBUT0RPOiBJcyB0aGUgSk5EIG9wdGltaXphdGlvbiB3b3J0aCB0aGUgYWRkZWQgY29tcGxleGl0eT8gSWYgdGhpcyBpc1xuICAgICAgICAgIC8vIHRoZSBvbmx5IHJlYXNvbiB3ZSB0cmFjayB0aGUgZXZlbnQgdGltZSwgdGhlbiBwcm9iYWJseSBub3QuXG4gICAgICAgICAgLy8gQ29uc2lkZXIgcmVtb3ZpbmcuXG4gICAgICAgICAgdmFyIG1vc3RSZWNlbnRFdmVudFRpbWUgPSBnZXRNb3N0UmVjZW50RXZlbnRUaW1lKHJvb3QsIGxhbmVzKTtcbiAgICAgICAgICB2YXIgZXZlbnRUaW1lTXMgPSBtb3N0UmVjZW50RXZlbnRUaW1lO1xuICAgICAgICAgIHZhciB0aW1lRWxhcHNlZE1zID0gbm93KCkgLSBldmVudFRpbWVNcztcblxuICAgICAgICAgIHZhciBfbXNVbnRpbFRpbWVvdXQgPSBqbmQodGltZUVsYXBzZWRNcykgLSB0aW1lRWxhcHNlZE1zOyAvLyBEb24ndCBib3RoZXIgd2l0aCBhIHZlcnkgc2hvcnQgc3VzcGVuc2UgdGltZS5cblxuXG4gICAgICAgICAgaWYgKF9tc1VudGlsVGltZW91dCA+IDEwKSB7XG4gICAgICAgICAgICAvLyBJbnN0ZWFkIG9mIGNvbW1pdHRpbmcgdGhlIGZhbGxiYWNrIGltbWVkaWF0ZWx5LCB3YWl0IGZvciBtb3JlIGRhdGFcbiAgICAgICAgICAgIC8vIHRvIGFycml2ZS5cbiAgICAgICAgICAgIHJvb3QudGltZW91dEhhbmRsZSA9IHNjaGVkdWxlVGltZW91dChjb21taXRSb290LmJpbmQobnVsbCwgcm9vdCwgd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMsIHdvcmtJblByb2dyZXNzVHJhbnNpdGlvbnMpLCBfbXNVbnRpbFRpbWVvdXQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9IC8vIENvbW1pdCB0aGUgcGxhY2Vob2xkZXIuXG5cblxuICAgICAgICBjb21taXRSb290KHJvb3QsIHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzLCB3b3JrSW5Qcm9ncmVzc1RyYW5zaXRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIFJvb3RDb21wbGV0ZWQ6XG4gICAgICB7XG4gICAgICAgIC8vIFRoZSB3b3JrIGNvbXBsZXRlZC4gUmVhZHkgdG8gY29tbWl0LlxuICAgICAgICBjb21taXRSb290KHJvb3QsIHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzLCB3b3JrSW5Qcm9ncmVzc1RyYW5zaXRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBkZWZhdWx0OlxuICAgICAge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gcm9vdCBleGl0IHN0YXR1cy4nKTtcbiAgICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBpc1JlbmRlckNvbnNpc3RlbnRXaXRoRXh0ZXJuYWxTdG9yZXMoZmluaXNoZWRXb3JrKSB7XG4gIC8vIFNlYXJjaCB0aGUgcmVuZGVyZWQgdHJlZSBmb3IgZXh0ZXJuYWwgc3RvcmUgcmVhZHMsIGFuZCBjaGVjayB3aGV0aGVyIHRoZVxuICAvLyBzdG9yZXMgd2VyZSBtdXRhdGVkIGluIGEgY29uY3VycmVudCBldmVudC4gSW50ZW50aW9uYWxseSB1c2luZyBhbiBpdGVyYXRpdmVcbiAgLy8gbG9vcCBpbnN0ZWFkIG9mIHJlY3Vyc2lvbiBzbyB3ZSBjYW4gZXhpdCBlYXJseS5cbiAgdmFyIG5vZGUgPSBmaW5pc2hlZFdvcms7XG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBpZiAobm9kZS5mbGFncyAmIFN0b3JlQ29uc2lzdGVuY3kpIHtcbiAgICAgIHZhciB1cGRhdGVRdWV1ZSA9IG5vZGUudXBkYXRlUXVldWU7XG5cbiAgICAgIGlmICh1cGRhdGVRdWV1ZSAhPT0gbnVsbCkge1xuICAgICAgICB2YXIgY2hlY2tzID0gdXBkYXRlUXVldWUuc3RvcmVzO1xuXG4gICAgICAgIGlmIChjaGVja3MgIT09IG51bGwpIHtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoZWNrcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIGNoZWNrID0gY2hlY2tzW2ldO1xuICAgICAgICAgICAgdmFyIGdldFNuYXBzaG90ID0gY2hlY2suZ2V0U25hcHNob3Q7XG4gICAgICAgICAgICB2YXIgcmVuZGVyZWRWYWx1ZSA9IGNoZWNrLnZhbHVlO1xuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBpZiAoIW9iamVjdElzKGdldFNuYXBzaG90KCksIHJlbmRlcmVkVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgLy8gRm91bmQgYW4gaW5jb25zaXN0ZW50IHN0b3JlLlxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgLy8gSWYgYGdldFNuYXBzaG90YCB0aHJvd3MsIHJldHVybiBgZmFsc2VgLiBUaGlzIHdpbGwgc2NoZWR1bGVcbiAgICAgICAgICAgICAgLy8gYSByZS1yZW5kZXIsIGFuZCB0aGUgZXJyb3Igd2lsbCBiZSByZXRocm93biBkdXJpbmcgcmVuZGVyLlxuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGNoaWxkID0gbm9kZS5jaGlsZDtcblxuICAgIGlmIChub2RlLnN1YnRyZWVGbGFncyAmIFN0b3JlQ29uc2lzdGVuY3kgJiYgY2hpbGQgIT09IG51bGwpIHtcbiAgICAgIGNoaWxkLnJldHVybiA9IG5vZGU7XG4gICAgICBub2RlID0gY2hpbGQ7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAobm9kZSA9PT0gZmluaXNoZWRXb3JrKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB3aGlsZSAobm9kZS5zaWJsaW5nID09PSBudWxsKSB7XG4gICAgICBpZiAobm9kZS5yZXR1cm4gPT09IG51bGwgfHwgbm9kZS5yZXR1cm4gPT09IGZpbmlzaGVkV29yaykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgbm9kZSA9IG5vZGUucmV0dXJuO1xuICAgIH1cblxuICAgIG5vZGUuc2libGluZy5yZXR1cm4gPSBub2RlLnJldHVybjtcbiAgICBub2RlID0gbm9kZS5zaWJsaW5nO1xuICB9IC8vIEZsb3cgZG9lc24ndCBrbm93IHRoaXMgaXMgdW5yZWFjaGFibGUsIGJ1dCBlc2xpbnQgZG9lc1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5yZWFjaGFibGVcblxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBtYXJrUm9vdFN1c3BlbmRlZCQxKHJvb3QsIHN1c3BlbmRlZExhbmVzKSB7XG4gIC8vIFdoZW4gc3VzcGVuZGluZywgd2Ugc2hvdWxkIGFsd2F5cyBleGNsdWRlIGxhbmVzIHRoYXQgd2VyZSBwaW5nZWQgb3IgKG1vcmVcbiAgLy8gcmFyZWx5LCBzaW5jZSB3ZSB0cnkgdG8gYXZvaWQgaXQpIHVwZGF0ZWQgZHVyaW5nIHRoZSByZW5kZXIgcGhhc2UuXG4gIC8vIFRPRE86IExvbCBtYXliZSB0aGVyZSdzIGEgYmV0dGVyIHdheSB0byBmYWN0b3IgdGhpcyBiZXNpZGVzIHRoaXNcbiAgLy8gb2Jub3hpb3VzbHkgbmFtZWQgZnVuY3Rpb24gOilcbiAgc3VzcGVuZGVkTGFuZXMgPSByZW1vdmVMYW5lcyhzdXNwZW5kZWRMYW5lcywgd29ya0luUHJvZ3Jlc3NSb290UGluZ2VkTGFuZXMpO1xuICBzdXNwZW5kZWRMYW5lcyA9IHJlbW92ZUxhbmVzKHN1c3BlbmRlZExhbmVzLCB3b3JrSW5Qcm9ncmVzc1Jvb3RJbnRlcmxlYXZlZFVwZGF0ZWRMYW5lcyk7XG4gIG1hcmtSb290U3VzcGVuZGVkKHJvb3QsIHN1c3BlbmRlZExhbmVzKTtcbn0gLy8gVGhpcyBpcyB0aGUgZW50cnkgcG9pbnQgZm9yIHN5bmNocm9ub3VzIHRhc2tzIHRoYXQgZG9uJ3QgZ29cbi8vIHRocm91Z2ggU2NoZWR1bGVyXG5cblxuZnVuY3Rpb24gcGVyZm9ybVN5bmNXb3JrT25Sb290KHJvb3QpIHtcbiAge1xuICAgIHN5bmNOZXN0ZWRVcGRhdGVGbGFnKCk7XG4gIH1cblxuICBpZiAoKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSAhPT0gTm9Db250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgbm90IGFscmVhZHkgYmUgd29ya2luZy4nKTtcbiAgfVxuXG4gIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKTtcbiAgdmFyIGxhbmVzID0gZ2V0TmV4dExhbmVzKHJvb3QsIE5vTGFuZXMpO1xuXG4gIGlmICghaW5jbHVkZXNTb21lTGFuZShsYW5lcywgU3luY0xhbmUpKSB7XG4gICAgLy8gVGhlcmUncyBubyByZW1haW5pbmcgc3luYyB3b3JrIGxlZnQuXG4gICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QsIG5vdygpKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHZhciBleGl0U3RhdHVzID0gcmVuZGVyUm9vdFN5bmMocm9vdCwgbGFuZXMpO1xuXG4gIGlmIChyb290LnRhZyAhPT0gTGVnYWN5Um9vdCAmJiBleGl0U3RhdHVzID09PSBSb290RXJyb3JlZCkge1xuICAgIC8vIElmIHNvbWV0aGluZyB0aHJldyBhbiBlcnJvciwgdHJ5IHJlbmRlcmluZyBvbmUgbW9yZSB0aW1lLiBXZSdsbCByZW5kZXJcbiAgICAvLyBzeW5jaHJvbm91c2x5IHRvIGJsb2NrIGNvbmN1cnJlbnQgZGF0YSBtdXRhdGlvbnMsIGFuZCB3ZSdsbCBpbmNsdWRlc1xuICAgIC8vIGFsbCBwZW5kaW5nIHVwZGF0ZXMgYXJlIGluY2x1ZGVkLiBJZiBpdCBzdGlsbCBmYWlscyBhZnRlciB0aGUgc2Vjb25kXG4gICAgLy8gYXR0ZW1wdCwgd2UnbGwgZ2l2ZSB1cCBhbmQgY29tbWl0IHRoZSByZXN1bHRpbmcgdHJlZS5cbiAgICB2YXIgZXJyb3JSZXRyeUxhbmVzID0gZ2V0TGFuZXNUb1JldHJ5U3luY2hyb25vdXNseU9uRXJyb3Iocm9vdCk7XG5cbiAgICBpZiAoZXJyb3JSZXRyeUxhbmVzICE9PSBOb0xhbmVzKSB7XG4gICAgICBsYW5lcyA9IGVycm9yUmV0cnlMYW5lcztcbiAgICAgIGV4aXRTdGF0dXMgPSByZWNvdmVyRnJvbUNvbmN1cnJlbnRFcnJvcihyb290LCBlcnJvclJldHJ5TGFuZXMpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChleGl0U3RhdHVzID09PSBSb290RmF0YWxFcnJvcmVkKSB7XG4gICAgdmFyIGZhdGFsRXJyb3IgPSB3b3JrSW5Qcm9ncmVzc1Jvb3RGYXRhbEVycm9yO1xuICAgIHByZXBhcmVGcmVzaFN0YWNrKHJvb3QsIE5vTGFuZXMpO1xuICAgIG1hcmtSb290U3VzcGVuZGVkJDEocm9vdCwgbGFuZXMpO1xuICAgIGVuc3VyZVJvb3RJc1NjaGVkdWxlZChyb290LCBub3coKSk7XG4gICAgdGhyb3cgZmF0YWxFcnJvcjtcbiAgfVxuXG4gIGlmIChleGl0U3RhdHVzID09PSBSb290RGlkTm90Q29tcGxldGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1Jvb3QgZGlkIG5vdCBjb21wbGV0ZS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4nKTtcbiAgfSAvLyBXZSBub3cgaGF2ZSBhIGNvbnNpc3RlbnQgdHJlZS4gQmVjYXVzZSB0aGlzIGlzIGEgc3luYyByZW5kZXIsIHdlXG4gIC8vIHdpbGwgY29tbWl0IGl0IGV2ZW4gaWYgc29tZXRoaW5nIHN1c3BlbmRlZC5cblxuXG4gIHZhciBmaW5pc2hlZFdvcmsgPSByb290LmN1cnJlbnQuYWx0ZXJuYXRlO1xuICByb290LmZpbmlzaGVkV29yayA9IGZpbmlzaGVkV29yaztcbiAgcm9vdC5maW5pc2hlZExhbmVzID0gbGFuZXM7XG4gIGNvbW1pdFJvb3Qocm9vdCwgd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMsIHdvcmtJblByb2dyZXNzVHJhbnNpdGlvbnMpOyAvLyBCZWZvcmUgZXhpdGluZywgbWFrZSBzdXJlIHRoZXJlJ3MgYSBjYWxsYmFjayBzY2hlZHVsZWQgZm9yIHRoZSBuZXh0XG4gIC8vIHBlbmRpbmcgbGV2ZWwuXG5cbiAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QsIG5vdygpKTtcbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGZsdXNoUm9vdChyb290LCBsYW5lcykge1xuICBpZiAobGFuZXMgIT09IE5vTGFuZXMpIHtcbiAgICBtYXJrUm9vdEVudGFuZ2xlZChyb290LCBtZXJnZUxhbmVzKGxhbmVzLCBTeW5jTGFuZSkpO1xuICAgIGVuc3VyZVJvb3RJc1NjaGVkdWxlZChyb290LCBub3coKSk7XG5cbiAgICBpZiAoKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSA9PT0gTm9Db250ZXh0KSB7XG4gICAgICByZXNldFJlbmRlclRpbWVyKCk7XG4gICAgICBmbHVzaFN5bmNDYWxsYmFja3MoKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGJhdGNoZWRVcGRhdGVzJDEoZm4sIGEpIHtcbiAgdmFyIHByZXZFeGVjdXRpb25Db250ZXh0ID0gZXhlY3V0aW9uQ29udGV4dDtcbiAgZXhlY3V0aW9uQ29udGV4dCB8PSBCYXRjaGVkQ29udGV4dDtcblxuICB0cnkge1xuICAgIHJldHVybiBmbihhKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBleGVjdXRpb25Db250ZXh0ID0gcHJldkV4ZWN1dGlvbkNvbnRleHQ7IC8vIElmIHRoZXJlIHdlcmUgbGVnYWN5IHN5bmMgdXBkYXRlcywgZmx1c2ggdGhlbSBhdCB0aGUgZW5kIG9mIHRoZSBvdXRlclxuICAgIC8vIG1vc3QgYmF0Y2hlZFVwZGF0ZXMtbGlrZSBtZXRob2QuXG5cbiAgICBpZiAoZXhlY3V0aW9uQ29udGV4dCA9PT0gTm9Db250ZXh0ICYmIC8vIFRyZWF0IGBhY3RgIGFzIGlmIGl0J3MgaW5zaWRlIGBiYXRjaGVkVXBkYXRlc2AsIGV2ZW4gaW4gbGVnYWN5IG1vZGUuXG4gICAgISggUmVhY3RDdXJyZW50QWN0UXVldWUkMS5pc0JhdGNoaW5nTGVnYWN5KSkge1xuICAgICAgcmVzZXRSZW5kZXJUaW1lcigpO1xuICAgICAgZmx1c2hTeW5jQ2FsbGJhY2tzT25seUluTGVnYWN5TW9kZSgpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gZGlzY3JldGVVcGRhdGVzKGZuLCBhLCBiLCBjLCBkKSB7XG4gIHZhciBwcmV2aW91c1ByaW9yaXR5ID0gZ2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KCk7XG4gIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDMudHJhbnNpdGlvbjtcblxuICB0cnkge1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDMudHJhbnNpdGlvbiA9IG51bGw7XG4gICAgc2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KERpc2NyZXRlRXZlbnRQcmlvcml0eSk7XG4gICAgcmV0dXJuIGZuKGEsIGIsIGMsIGQpO1xuICB9IGZpbmFsbHkge1xuICAgIHNldEN1cnJlbnRVcGRhdGVQcmlvcml0eShwcmV2aW91c1ByaW9yaXR5KTtcbiAgICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQzLnRyYW5zaXRpb24gPSBwcmV2VHJhbnNpdGlvbjtcblxuICAgIGlmIChleGVjdXRpb25Db250ZXh0ID09PSBOb0NvbnRleHQpIHtcbiAgICAgIHJlc2V0UmVuZGVyVGltZXIoKTtcbiAgICB9XG4gIH1cbn0gLy8gT3ZlcmxvYWQgdGhlIGRlZmluaXRpb24gdG8gdGhlIHR3byB2YWxpZCBzaWduYXR1cmVzLlxuLy8gV2FybmluZywgdGhpcyBvcHRzLW91dCBvZiBjaGVja2luZyB0aGUgZnVuY3Rpb24gYm9keS5cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlZGVjbGFyZVxuZnVuY3Rpb24gZmx1c2hTeW5jKGZuKSB7XG4gIC8vIEluIGxlZ2FjeSBtb2RlLCB3ZSBmbHVzaCBwZW5kaW5nIHBhc3NpdmUgZWZmZWN0cyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZVxuICAvLyBuZXh0IGV2ZW50LCBub3QgYXQgdGhlIGVuZCBvZiB0aGUgcHJldmlvdXMgb25lLlxuICBpZiAocm9vdFdpdGhQZW5kaW5nUGFzc2l2ZUVmZmVjdHMgIT09IG51bGwgJiYgcm9vdFdpdGhQZW5kaW5nUGFzc2l2ZUVmZmVjdHMudGFnID09PSBMZWdhY3lSb290ICYmIChleGVjdXRpb25Db250ZXh0ICYgKFJlbmRlckNvbnRleHQgfCBDb21taXRDb250ZXh0KSkgPT09IE5vQ29udGV4dCkge1xuICAgIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKTtcbiAgfVxuXG4gIHZhciBwcmV2RXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQ7XG4gIGV4ZWN1dGlvbkNvbnRleHQgfD0gQmF0Y2hlZENvbnRleHQ7XG4gIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDMudHJhbnNpdGlvbjtcbiAgdmFyIHByZXZpb3VzUHJpb3JpdHkgPSBnZXRDdXJyZW50VXBkYXRlUHJpb3JpdHkoKTtcblxuICB0cnkge1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDMudHJhbnNpdGlvbiA9IG51bGw7XG4gICAgc2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KERpc2NyZXRlRXZlbnRQcmlvcml0eSk7XG5cbiAgICBpZiAoZm4pIHtcbiAgICAgIHJldHVybiBmbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICBzZXRDdXJyZW50VXBkYXRlUHJpb3JpdHkocHJldmlvdXNQcmlvcml0eSk7XG4gICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMy50cmFuc2l0aW9uID0gcHJldlRyYW5zaXRpb247XG4gICAgZXhlY3V0aW9uQ29udGV4dCA9IHByZXZFeGVjdXRpb25Db250ZXh0OyAvLyBGbHVzaCB0aGUgaW1tZWRpYXRlIGNhbGxiYWNrcyB0aGF0IHdlcmUgc2NoZWR1bGVkIGR1cmluZyB0aGlzIGJhdGNoLlxuICAgIC8vIE5vdGUgdGhhdCB0aGlzIHdpbGwgaGFwcGVuIGV2ZW4gaWYgYmF0Y2hlZFVwZGF0ZXMgaXMgaGlnaGVyIHVwXG4gICAgLy8gdGhlIHN0YWNrLlxuXG4gICAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgKFJlbmRlckNvbnRleHQgfCBDb21taXRDb250ZXh0KSkgPT09IE5vQ29udGV4dCkge1xuICAgICAgZmx1c2hTeW5jQ2FsbGJhY2tzKCk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBpc0FscmVhZHlSZW5kZXJpbmcoKSB7XG4gIC8vIFVzZWQgYnkgdGhlIHJlbmRlcmVyIHRvIHByaW50IGEgd2FybmluZyBpZiBjZXJ0YWluIEFQSXMgYXJlIGNhbGxlZCBmcm9tXG4gIC8vIHRoZSB3cm9uZyBjb250ZXh0LlxuICByZXR1cm4gIChleGVjdXRpb25Db250ZXh0ICYgKFJlbmRlckNvbnRleHQgfCBDb21taXRDb250ZXh0KSkgIT09IE5vQ29udGV4dDtcbn1cbmZ1bmN0aW9uIHB1c2hSZW5kZXJMYW5lcyhmaWJlciwgbGFuZXMpIHtcbiAgcHVzaChzdWJ0cmVlUmVuZGVyTGFuZXNDdXJzb3IsIHN1YnRyZWVSZW5kZXJMYW5lcywgZmliZXIpO1xuICBzdWJ0cmVlUmVuZGVyTGFuZXMgPSBtZXJnZUxhbmVzKHN1YnRyZWVSZW5kZXJMYW5lcywgbGFuZXMpO1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RJbmNsdWRlZExhbmVzID0gbWVyZ2VMYW5lcyh3b3JrSW5Qcm9ncmVzc1Jvb3RJbmNsdWRlZExhbmVzLCBsYW5lcyk7XG59XG5mdW5jdGlvbiBwb3BSZW5kZXJMYW5lcyhmaWJlcikge1xuICBzdWJ0cmVlUmVuZGVyTGFuZXMgPSBzdWJ0cmVlUmVuZGVyTGFuZXNDdXJzb3IuY3VycmVudDtcbiAgcG9wKHN1YnRyZWVSZW5kZXJMYW5lc0N1cnNvciwgZmliZXIpO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlRnJlc2hTdGFjayhyb290LCBsYW5lcykge1xuICByb290LmZpbmlzaGVkV29yayA9IG51bGw7XG4gIHJvb3QuZmluaXNoZWRMYW5lcyA9IE5vTGFuZXM7XG4gIHZhciB0aW1lb3V0SGFuZGxlID0gcm9vdC50aW1lb3V0SGFuZGxlO1xuXG4gIGlmICh0aW1lb3V0SGFuZGxlICE9PSBub1RpbWVvdXQpIHtcbiAgICAvLyBUaGUgcm9vdCBwcmV2aW91cyBzdXNwZW5kZWQgYW5kIHNjaGVkdWxlZCBhIHRpbWVvdXQgdG8gY29tbWl0IGEgZmFsbGJhY2tcbiAgICAvLyBzdGF0ZS4gTm93IHRoYXQgd2UgaGF2ZSBhZGRpdGlvbmFsIHdvcmssIGNhbmNlbCB0aGUgdGltZW91dC5cbiAgICByb290LnRpbWVvdXRIYW5kbGUgPSBub1RpbWVvdXQ7IC8vICRGbG93Rml4TWUgQ29tcGxhaW5zIG5vVGltZW91dCBpcyBub3QgYSBUaW1lb3V0SUQsIGRlc3BpdGUgdGhlIGNoZWNrIGFib3ZlXG5cbiAgICBjYW5jZWxUaW1lb3V0KHRpbWVvdXRIYW5kbGUpO1xuICB9XG5cbiAgaWYgKHdvcmtJblByb2dyZXNzICE9PSBudWxsKSB7XG4gICAgdmFyIGludGVycnVwdGVkV29yayA9IHdvcmtJblByb2dyZXNzLnJldHVybjtcblxuICAgIHdoaWxlIChpbnRlcnJ1cHRlZFdvcmsgIT09IG51bGwpIHtcbiAgICAgIHZhciBjdXJyZW50ID0gaW50ZXJydXB0ZWRXb3JrLmFsdGVybmF0ZTtcbiAgICAgIHVud2luZEludGVycnVwdGVkV29yayhjdXJyZW50LCBpbnRlcnJ1cHRlZFdvcmspO1xuICAgICAgaW50ZXJydXB0ZWRXb3JrID0gaW50ZXJydXB0ZWRXb3JrLnJldHVybjtcbiAgICB9XG4gIH1cblxuICB3b3JrSW5Qcm9ncmVzc1Jvb3QgPSByb290O1xuICB2YXIgcm9vdFdvcmtJblByb2dyZXNzID0gY3JlYXRlV29ya0luUHJvZ3Jlc3Mocm9vdC5jdXJyZW50LCBudWxsKTtcbiAgd29ya0luUHJvZ3Jlc3MgPSByb290V29ya0luUHJvZ3Jlc3M7XG4gIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzID0gc3VidHJlZVJlbmRlckxhbmVzID0gd29ya0luUHJvZ3Jlc3NSb290SW5jbHVkZWRMYW5lcyA9IGxhbmVzO1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdEluUHJvZ3Jlc3M7XG4gIHdvcmtJblByb2dyZXNzUm9vdEZhdGFsRXJyb3IgPSBudWxsO1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RTa2lwcGVkTGFuZXMgPSBOb0xhbmVzO1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RJbnRlcmxlYXZlZFVwZGF0ZWRMYW5lcyA9IE5vTGFuZXM7XG4gIHdvcmtJblByb2dyZXNzUm9vdFBpbmdlZExhbmVzID0gTm9MYW5lcztcbiAgd29ya0luUHJvZ3Jlc3NSb290Q29uY3VycmVudEVycm9ycyA9IG51bGw7XG4gIHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzID0gbnVsbDtcbiAgZmluaXNoUXVldWVpbmdDb25jdXJyZW50VXBkYXRlcygpO1xuXG4gIHtcbiAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5kaXNjYXJkUGVuZGluZ1dhcm5pbmdzKCk7XG4gIH1cblxuICByZXR1cm4gcm9vdFdvcmtJblByb2dyZXNzO1xufVxuXG5mdW5jdGlvbiBoYW5kbGVFcnJvcihyb290LCB0aHJvd25WYWx1ZSkge1xuICBkbyB7XG4gICAgdmFyIGVycm9yZWRXb3JrID0gd29ya0luUHJvZ3Jlc3M7XG5cbiAgICB0cnkge1xuICAgICAgLy8gUmVzZXQgbW9kdWxlLWxldmVsIHN0YXRlIHRoYXQgd2FzIHNldCBkdXJpbmcgdGhlIHJlbmRlciBwaGFzZS5cbiAgICAgIHJlc2V0Q29udGV4dERlcGVuZGVuY2llcygpO1xuICAgICAgcmVzZXRIb29rc0FmdGVyVGhyb3coKTtcbiAgICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7IC8vIFRPRE86IEkgZm91bmQgYW5kIGFkZGVkIHRoaXMgbWlzc2luZyBsaW5lIHdoaWxlIGludmVzdGlnYXRpbmcgYVxuICAgICAgLy8gc2VwYXJhdGUgaXNzdWUuIFdyaXRlIGEgcmVncmVzc2lvbiB0ZXN0IHVzaW5nIHN0cmluZyByZWZzLlxuXG4gICAgICBSZWFjdEN1cnJlbnRPd25lciQyLmN1cnJlbnQgPSBudWxsO1xuXG4gICAgICBpZiAoZXJyb3JlZFdvcmsgPT09IG51bGwgfHwgZXJyb3JlZFdvcmsucmV0dXJuID09PSBudWxsKSB7XG4gICAgICAgIC8vIEV4cGVjdGVkIHRvIGJlIHdvcmtpbmcgb24gYSBub24tcm9vdCBmaWJlci4gVGhpcyBpcyBhIGZhdGFsIGVycm9yXG4gICAgICAgIC8vIGJlY2F1c2UgdGhlcmUncyBubyBhbmNlc3RvciB0aGF0IGNhbiBoYW5kbGUgaXQ7IHRoZSByb290IGlzXG4gICAgICAgIC8vIHN1cHBvc2VkIHRvIGNhcHR1cmUgYWxsIGVycm9ycyB0aGF0IHdlcmVuJ3QgY2F1Z2h0IGJ5IGFuIGVycm9yXG4gICAgICAgIC8vIGJvdW5kYXJ5LlxuICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdEZhdGFsRXJyb3JlZDtcbiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RmF0YWxFcnJvciA9IHRocm93blZhbHVlOyAvLyBTZXQgYHdvcmtJblByb2dyZXNzYCB0byBudWxsLiBUaGlzIHJlcHJlc2VudHMgYWR2YW5jaW5nIHRvIHRoZSBuZXh0XG4gICAgICAgIC8vIHNpYmxpbmcsIG9yIHRoZSBwYXJlbnQgaWYgdGhlcmUgYXJlIG5vIHNpYmxpbmdzLiBCdXQgc2luY2UgdGhlIHJvb3RcbiAgICAgICAgLy8gaGFzIG5vIHNpYmxpbmdzIG5vciBhIHBhcmVudCwgd2Ugc2V0IGl0IHRvIG51bGwuIFVzdWFsbHkgdGhpcyBpc1xuICAgICAgICAvLyBoYW5kbGVkIGJ5IGBjb21wbGV0ZVVuaXRPZldvcmtgIG9yIGB1bndpbmRXb3JrYCwgYnV0IHNpbmNlIHdlJ3JlXG4gICAgICAgIC8vIGludGVudGlvbmFsbHkgbm90IGNhbGxpbmcgdGhvc2UsIHdlIG5lZWQgc2V0IGl0IGhlcmUuXG4gICAgICAgIC8vIFRPRE86IENvbnNpZGVyIGNhbGxpbmcgYHVud2luZFdvcmtgIHRvIHBvcCB0aGUgY29udGV4dHMuXG5cbiAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSBudWxsO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChlbmFibGVQcm9maWxlclRpbWVyICYmIGVycm9yZWRXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkge1xuICAgICAgICAvLyBSZWNvcmQgdGhlIHRpbWUgc3BlbnQgcmVuZGVyaW5nIGJlZm9yZSBhbiBlcnJvciB3YXMgdGhyb3duLiBUaGlzXG4gICAgICAgIC8vIGF2b2lkcyBpbmFjY3VyYXRlIFByb2ZpbGVyIGR1cmF0aW9ucyBpbiB0aGUgY2FzZSBvZiBhXG4gICAgICAgIC8vIHN1c3BlbmRlZCByZW5kZXIuXG4gICAgICAgIHN0b3BQcm9maWxlclRpbWVySWZSdW5uaW5nQW5kUmVjb3JkRGVsdGEoZXJyb3JlZFdvcmssIHRydWUpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZW5hYmxlU2NoZWR1bGluZ1Byb2ZpbGVyKSB7XG4gICAgICAgIG1hcmtDb21wb25lbnRSZW5kZXJTdG9wcGVkKCk7XG5cbiAgICAgICAgaWYgKHRocm93blZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB0aHJvd25WYWx1ZSA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIHRocm93blZhbHVlLnRoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICB2YXIgd2FrZWFibGUgPSB0aHJvd25WYWx1ZTtcbiAgICAgICAgICBtYXJrQ29tcG9uZW50U3VzcGVuZGVkKGVycm9yZWRXb3JrLCB3YWtlYWJsZSwgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG1hcmtDb21wb25lbnRFcnJvcmVkKGVycm9yZWRXb3JrLCB0aHJvd25WYWx1ZSwgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRocm93RXhjZXB0aW9uKHJvb3QsIGVycm9yZWRXb3JrLnJldHVybiwgZXJyb3JlZFdvcmssIHRocm93blZhbHVlLCB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyk7XG4gICAgICBjb21wbGV0ZVVuaXRPZldvcmsoZXJyb3JlZFdvcmspO1xuICAgIH0gY2F0Y2ggKHlldEFub3RoZXJUaHJvd25WYWx1ZSkge1xuICAgICAgLy8gU29tZXRoaW5nIGluIHRoZSByZXR1cm4gcGF0aCBhbHNvIHRocmV3LlxuICAgICAgdGhyb3duVmFsdWUgPSB5ZXRBbm90aGVyVGhyb3duVmFsdWU7XG5cbiAgICAgIGlmICh3b3JrSW5Qcm9ncmVzcyA9PT0gZXJyb3JlZFdvcmsgJiYgZXJyb3JlZFdvcmsgIT09IG51bGwpIHtcbiAgICAgICAgLy8gSWYgdGhpcyBib3VuZGFyeSBoYXMgYWxyZWFkeSBlcnJvcmVkLCB0aGVuIHdlIGhhZCB0cm91YmxlIHByb2Nlc3NpbmdcbiAgICAgICAgLy8gdGhlIGVycm9yLiBCdWJibGUgaXQgdG8gdGhlIG5leHQgYm91bmRhcnkuXG4gICAgICAgIGVycm9yZWRXb3JrID0gZXJyb3JlZFdvcmsucmV0dXJuO1xuICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IGVycm9yZWRXb3JrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXJyb3JlZFdvcmsgPSB3b3JrSW5Qcm9ncmVzcztcbiAgICAgIH1cblxuICAgICAgY29udGludWU7XG4gICAgfSAvLyBSZXR1cm4gdG8gdGhlIG5vcm1hbCB3b3JrIGxvb3AuXG5cblxuICAgIHJldHVybjtcbiAgfSB3aGlsZSAodHJ1ZSk7XG59XG5cbmZ1bmN0aW9uIHB1c2hEaXNwYXRjaGVyKCkge1xuICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDIuY3VycmVudDtcbiAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQyLmN1cnJlbnQgPSBDb250ZXh0T25seURpc3BhdGNoZXI7XG5cbiAgaWYgKHByZXZEaXNwYXRjaGVyID09PSBudWxsKSB7XG4gICAgLy8gVGhlIFJlYWN0IGlzb21vcnBoaWMgcGFja2FnZSBkb2VzIG5vdCBpbmNsdWRlIGEgZGVmYXVsdCBkaXNwYXRjaGVyLlxuICAgIC8vIEluc3RlYWQgdGhlIGZpcnN0IHJlbmRlcmVyIHdpbGwgbGF6aWx5IGF0dGFjaCBvbmUsIGluIG9yZGVyIHRvIGdpdmVcbiAgICAvLyBuaWNlciBlcnJvciBtZXNzYWdlcy5cbiAgICByZXR1cm4gQ29udGV4dE9ubHlEaXNwYXRjaGVyO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBwcmV2RGlzcGF0Y2hlcjtcbiAgfVxufVxuXG5mdW5jdGlvbiBwb3BEaXNwYXRjaGVyKHByZXZEaXNwYXRjaGVyKSB7XG4gIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMi5jdXJyZW50ID0gcHJldkRpc3BhdGNoZXI7XG59XG5cbmZ1bmN0aW9uIG1hcmtDb21taXRUaW1lT2ZGYWxsYmFjaygpIHtcbiAgZ2xvYmFsTW9zdFJlY2VudEZhbGxiYWNrVGltZSA9IG5vdygpO1xufVxuZnVuY3Rpb24gbWFya1NraXBwZWRVcGRhdGVMYW5lcyhsYW5lKSB7XG4gIHdvcmtJblByb2dyZXNzUm9vdFNraXBwZWRMYW5lcyA9IG1lcmdlTGFuZXMobGFuZSwgd29ya0luUHJvZ3Jlc3NSb290U2tpcHBlZExhbmVzKTtcbn1cbmZ1bmN0aW9uIHJlbmRlckRpZFN1c3BlbmQoKSB7XG4gIGlmICh3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID09PSBSb290SW5Qcm9ncmVzcykge1xuICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290U3VzcGVuZGVkO1xuICB9XG59XG5mdW5jdGlvbiByZW5kZXJEaWRTdXNwZW5kRGVsYXlJZlBvc3NpYmxlKCkge1xuICBpZiAod29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9PT0gUm9vdEluUHJvZ3Jlc3MgfHwgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9PT0gUm9vdFN1c3BlbmRlZCB8fCB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID09PSBSb290RXJyb3JlZCkge1xuICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290U3VzcGVuZGVkV2l0aERlbGF5O1xuICB9IC8vIENoZWNrIGlmIHRoZXJlIGFyZSB1cGRhdGVzIHRoYXQgd2Ugc2tpcHBlZCB0cmVlIHRoYXQgbWlnaHQgaGF2ZSB1bmJsb2NrZWRcbiAgLy8gdGhpcyByZW5kZXIuXG5cblxuICBpZiAod29ya0luUHJvZ3Jlc3NSb290ICE9PSBudWxsICYmIChpbmNsdWRlc05vbklkbGVXb3JrKHdvcmtJblByb2dyZXNzUm9vdFNraXBwZWRMYW5lcykgfHwgaW5jbHVkZXNOb25JZGxlV29yayh3b3JrSW5Qcm9ncmVzc1Jvb3RJbnRlcmxlYXZlZFVwZGF0ZWRMYW5lcykpKSB7XG4gICAgLy8gTWFyayB0aGUgY3VycmVudCByZW5kZXIgYXMgc3VzcGVuZGVkIHNvIHRoYXQgd2Ugc3dpdGNoIHRvIHdvcmtpbmcgb25cbiAgICAvLyB0aGUgdXBkYXRlcyB0aGF0IHdlcmUgc2tpcHBlZC4gVXN1YWxseSB3ZSBvbmx5IHN1c3BlbmQgYXQgdGhlIGVuZCBvZlxuICAgIC8vIHRoZSByZW5kZXIgcGhhc2UuXG4gICAgLy8gVE9ETzogV2Ugc2hvdWxkIHByb2JhYmx5IGFsd2F5cyBtYXJrIHRoZSByb290IGFzIHN1c3BlbmRlZCBpbW1lZGlhdGVseVxuICAgIC8vIChpbnNpZGUgdGhpcyBmdW5jdGlvbiksIHNpbmNlIGJ5IHN1c3BlbmRpbmcgYXQgdGhlIGVuZCBvZiB0aGUgcmVuZGVyXG4gICAgLy8gcGhhc2UgaW50cm9kdWNlcyBhIHBvdGVudGlhbCBtaXN0YWtlIHdoZXJlIHdlIHN1c3BlbmQgbGFuZXMgdGhhdCB3ZXJlXG4gICAgLy8gcGluZ2VkIG9yIHVwZGF0ZWQgd2hpbGUgd2Ugd2VyZSByZW5kZXJpbmcuXG4gICAgbWFya1Jvb3RTdXNwZW5kZWQkMSh3b3JrSW5Qcm9ncmVzc1Jvb3QsIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzKTtcbiAgfVxufVxuZnVuY3Rpb24gcmVuZGVyRGlkRXJyb3IoZXJyb3IpIHtcbiAgaWYgKHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgIT09IFJvb3RTdXNwZW5kZWRXaXRoRGVsYXkpIHtcbiAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdEVycm9yZWQ7XG4gIH1cblxuICBpZiAod29ya0luUHJvZ3Jlc3NSb290Q29uY3VycmVudEVycm9ycyA9PT0gbnVsbCkge1xuICAgIHdvcmtJblByb2dyZXNzUm9vdENvbmN1cnJlbnRFcnJvcnMgPSBbZXJyb3JdO1xuICB9IGVsc2Uge1xuICAgIHdvcmtJblByb2dyZXNzUm9vdENvbmN1cnJlbnRFcnJvcnMucHVzaChlcnJvcik7XG4gIH1cbn0gLy8gQ2FsbGVkIGR1cmluZyByZW5kZXIgdG8gZGV0ZXJtaW5lIGlmIGFueXRoaW5nIGhhcyBzdXNwZW5kZWQuXG4vLyBSZXR1cm5zIGZhbHNlIGlmIHdlJ3JlIG5vdCBzdXJlLlxuXG5mdW5jdGlvbiByZW5kZXJIYXNOb3RTdXNwZW5kZWRZZXQoKSB7XG4gIC8vIElmIHNvbWV0aGluZyBlcnJvcmVkIG9yIGNvbXBsZXRlZCwgd2UgY2FuJ3QgcmVhbGx5IGJlIHN1cmUsXG4gIC8vIHNvIHRob3NlIGFyZSBmYWxzZS5cbiAgcmV0dXJuIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPT09IFJvb3RJblByb2dyZXNzO1xufVxuXG5mdW5jdGlvbiByZW5kZXJSb290U3luYyhyb290LCBsYW5lcykge1xuICB2YXIgcHJldkV4ZWN1dGlvbkNvbnRleHQgPSBleGVjdXRpb25Db250ZXh0O1xuICBleGVjdXRpb25Db250ZXh0IHw9IFJlbmRlckNvbnRleHQ7XG4gIHZhciBwcmV2RGlzcGF0Y2hlciA9IHB1c2hEaXNwYXRjaGVyKCk7IC8vIElmIHRoZSByb290IG9yIGxhbmVzIGhhdmUgY2hhbmdlZCwgdGhyb3cgb3V0IHRoZSBleGlzdGluZyBzdGFja1xuICAvLyBhbmQgcHJlcGFyZSBhIGZyZXNoIG9uZS4gT3RoZXJ3aXNlIHdlJ2xsIGNvbnRpbnVlIHdoZXJlIHdlIGxlZnQgb2ZmLlxuXG4gIGlmICh3b3JrSW5Qcm9ncmVzc1Jvb3QgIT09IHJvb3QgfHwgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgIT09IGxhbmVzKSB7XG4gICAge1xuICAgICAgaWYgKGlzRGV2VG9vbHNQcmVzZW50KSB7XG4gICAgICAgIHZhciBtZW1vaXplZFVwZGF0ZXJzID0gcm9vdC5tZW1vaXplZFVwZGF0ZXJzO1xuXG4gICAgICAgIGlmIChtZW1vaXplZFVwZGF0ZXJzLnNpemUgPiAwKSB7XG4gICAgICAgICAgcmVzdG9yZVBlbmRpbmdVcGRhdGVycyhyb290LCB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyk7XG4gICAgICAgICAgbWVtb2l6ZWRVcGRhdGVycy5jbGVhcigpO1xuICAgICAgICB9IC8vIEF0IHRoaXMgcG9pbnQsIG1vdmUgRmliZXJzIHRoYXQgc2NoZWR1bGVkIHRoZSB1cGNvbWluZyB3b3JrIGZyb20gdGhlIE1hcCB0byB0aGUgU2V0LlxuICAgICAgICAvLyBJZiB3ZSBiYWlsb3V0IG9uIHRoaXMgd29yaywgd2UnbGwgbW92ZSB0aGVtIGJhY2sgKGxpa2UgYWJvdmUpLlxuICAgICAgICAvLyBJdCdzIGltcG9ydGFudCB0byBtb3ZlIHRoZW0gbm93IGluIGNhc2UgdGhlIHdvcmsgc3Bhd25zIG1vcmUgd29yayBhdCB0aGUgc2FtZSBwcmlvcml0eSB3aXRoIGRpZmZlcmVudCB1cGRhdGVycy5cbiAgICAgICAgLy8gVGhhdCB3YXkgd2UgY2FuIGtlZXAgdGhlIGN1cnJlbnQgdXBkYXRlIGFuZCBmdXR1cmUgdXBkYXRlcyBzZXBhcmF0ZS5cblxuXG4gICAgICAgIG1vdmVQZW5kaW5nRmliZXJzVG9NZW1vaXplZChyb290LCBsYW5lcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgd29ya0luUHJvZ3Jlc3NUcmFuc2l0aW9ucyA9IGdldFRyYW5zaXRpb25zRm9yTGFuZXMoKTtcbiAgICBwcmVwYXJlRnJlc2hTdGFjayhyb290LCBsYW5lcyk7XG4gIH1cblxuICB7XG4gICAgbWFya1JlbmRlclN0YXJ0ZWQobGFuZXMpO1xuICB9XG5cbiAgZG8ge1xuICAgIHRyeSB7XG4gICAgICB3b3JrTG9vcFN5bmMoKTtcbiAgICAgIGJyZWFrO1xuICAgIH0gY2F0Y2ggKHRocm93blZhbHVlKSB7XG4gICAgICBoYW5kbGVFcnJvcihyb290LCB0aHJvd25WYWx1ZSk7XG4gICAgfVxuICB9IHdoaWxlICh0cnVlKTtcblxuICByZXNldENvbnRleHREZXBlbmRlbmNpZXMoKTtcbiAgZXhlY3V0aW9uQ29udGV4dCA9IHByZXZFeGVjdXRpb25Db250ZXh0O1xuICBwb3BEaXNwYXRjaGVyKHByZXZEaXNwYXRjaGVyKTtcblxuICBpZiAod29ya0luUHJvZ3Jlc3MgIT09IG51bGwpIHtcbiAgICAvLyBUaGlzIGlzIGEgc3luYyByZW5kZXIsIHNvIHdlIHNob3VsZCBoYXZlIGZpbmlzaGVkIHRoZSB3aG9sZSB0cmVlLlxuICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNvbW1pdCBhbiBpbmNvbXBsZXRlIHJvb3QuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhICcgKyAnYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgfVxuXG4gIHtcbiAgICBtYXJrUmVuZGVyU3RvcHBlZCgpO1xuICB9IC8vIFNldCB0aGlzIHRvIG51bGwgdG8gaW5kaWNhdGUgdGhlcmUncyBubyBpbi1wcm9ncmVzcyByZW5kZXIuXG5cblxuICB3b3JrSW5Qcm9ncmVzc1Jvb3QgPSBudWxsO1xuICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyA9IE5vTGFuZXM7XG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzO1xufSAvLyBUaGUgd29yayBsb29wIGlzIGFuIGV4dHJlbWVseSBob3QgcGF0aC4gVGVsbCBDbG9zdXJlIG5vdCB0byBpbmxpbmUgaXQuXG5cbi8qKiBAbm9pbmxpbmUgKi9cblxuXG5mdW5jdGlvbiB3b3JrTG9vcFN5bmMoKSB7XG4gIC8vIEFscmVhZHkgdGltZWQgb3V0LCBzbyBwZXJmb3JtIHdvcmsgd2l0aG91dCBjaGVja2luZyBpZiB3ZSBuZWVkIHRvIHlpZWxkLlxuICB3aGlsZSAod29ya0luUHJvZ3Jlc3MgIT09IG51bGwpIHtcbiAgICBwZXJmb3JtVW5pdE9mV29yayh3b3JrSW5Qcm9ncmVzcyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVuZGVyUm9vdENvbmN1cnJlbnQocm9vdCwgbGFuZXMpIHtcbiAgdmFyIHByZXZFeGVjdXRpb25Db250ZXh0ID0gZXhlY3V0aW9uQ29udGV4dDtcbiAgZXhlY3V0aW9uQ29udGV4dCB8PSBSZW5kZXJDb250ZXh0O1xuICB2YXIgcHJldkRpc3BhdGNoZXIgPSBwdXNoRGlzcGF0Y2hlcigpOyAvLyBJZiB0aGUgcm9vdCBvciBsYW5lcyBoYXZlIGNoYW5nZWQsIHRocm93IG91dCB0aGUgZXhpc3Rpbmcgc3RhY2tcbiAgLy8gYW5kIHByZXBhcmUgYSBmcmVzaCBvbmUuIE90aGVyd2lzZSB3ZSdsbCBjb250aW51ZSB3aGVyZSB3ZSBsZWZ0IG9mZi5cblxuICBpZiAod29ya0luUHJvZ3Jlc3NSb290ICE9PSByb290IHx8IHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzICE9PSBsYW5lcykge1xuICAgIHtcbiAgICAgIGlmIChpc0RldlRvb2xzUHJlc2VudCkge1xuICAgICAgICB2YXIgbWVtb2l6ZWRVcGRhdGVycyA9IHJvb3QubWVtb2l6ZWRVcGRhdGVycztcblxuICAgICAgICBpZiAobWVtb2l6ZWRVcGRhdGVycy5zaXplID4gMCkge1xuICAgICAgICAgIHJlc3RvcmVQZW5kaW5nVXBkYXRlcnMocm9vdCwgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMpO1xuICAgICAgICAgIG1lbW9pemVkVXBkYXRlcnMuY2xlYXIoKTtcbiAgICAgICAgfSAvLyBBdCB0aGlzIHBvaW50LCBtb3ZlIEZpYmVycyB0aGF0IHNjaGVkdWxlZCB0aGUgdXBjb21pbmcgd29yayBmcm9tIHRoZSBNYXAgdG8gdGhlIFNldC5cbiAgICAgICAgLy8gSWYgd2UgYmFpbG91dCBvbiB0aGlzIHdvcmssIHdlJ2xsIG1vdmUgdGhlbSBiYWNrIChsaWtlIGFib3ZlKS5cbiAgICAgICAgLy8gSXQncyBpbXBvcnRhbnQgdG8gbW92ZSB0aGVtIG5vdyBpbiBjYXNlIHRoZSB3b3JrIHNwYXducyBtb3JlIHdvcmsgYXQgdGhlIHNhbWUgcHJpb3JpdHkgd2l0aCBkaWZmZXJlbnQgdXBkYXRlcnMuXG4gICAgICAgIC8vIFRoYXQgd2F5IHdlIGNhbiBrZWVwIHRoZSBjdXJyZW50IHVwZGF0ZSBhbmQgZnV0dXJlIHVwZGF0ZXMgc2VwYXJhdGUuXG5cblxuICAgICAgICBtb3ZlUGVuZGluZ0ZpYmVyc1RvTWVtb2l6ZWQocm9vdCwgbGFuZXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHdvcmtJblByb2dyZXNzVHJhbnNpdGlvbnMgPSBnZXRUcmFuc2l0aW9uc0ZvckxhbmVzKCk7XG4gICAgcmVzZXRSZW5kZXJUaW1lcigpO1xuICAgIHByZXBhcmVGcmVzaFN0YWNrKHJvb3QsIGxhbmVzKTtcbiAgfVxuXG4gIHtcbiAgICBtYXJrUmVuZGVyU3RhcnRlZChsYW5lcyk7XG4gIH1cblxuICBkbyB7XG4gICAgdHJ5IHtcbiAgICAgIHdvcmtMb29wQ29uY3VycmVudCgpO1xuICAgICAgYnJlYWs7XG4gICAgfSBjYXRjaCAodGhyb3duVmFsdWUpIHtcbiAgICAgIGhhbmRsZUVycm9yKHJvb3QsIHRocm93blZhbHVlKTtcbiAgICB9XG4gIH0gd2hpbGUgKHRydWUpO1xuXG4gIHJlc2V0Q29udGV4dERlcGVuZGVuY2llcygpO1xuICBwb3BEaXNwYXRjaGVyKHByZXZEaXNwYXRjaGVyKTtcbiAgZXhlY3V0aW9uQ29udGV4dCA9IHByZXZFeGVjdXRpb25Db250ZXh0O1xuXG5cbiAgaWYgKHdvcmtJblByb2dyZXNzICE9PSBudWxsKSB7XG4gICAgLy8gU3RpbGwgd29yayByZW1haW5pbmcuXG4gICAge1xuICAgICAgbWFya1JlbmRlcllpZWxkZWQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gUm9vdEluUHJvZ3Jlc3M7XG4gIH0gZWxzZSB7XG4gICAgLy8gQ29tcGxldGVkIHRoZSB0cmVlLlxuICAgIHtcbiAgICAgIG1hcmtSZW5kZXJTdG9wcGVkKCk7XG4gICAgfSAvLyBTZXQgdGhpcyB0byBudWxsIHRvIGluZGljYXRlIHRoZXJlJ3Mgbm8gaW4tcHJvZ3Jlc3MgcmVuZGVyLlxuXG5cbiAgICB3b3JrSW5Qcm9ncmVzc1Jvb3QgPSBudWxsO1xuICAgIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzID0gTm9MYW5lczsgLy8gUmV0dXJuIHRoZSBmaW5hbCBleGl0IHN0YXR1cy5cblxuICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzO1xuICB9XG59XG4vKiogQG5vaW5saW5lICovXG5cblxuZnVuY3Rpb24gd29ya0xvb3BDb25jdXJyZW50KCkge1xuICAvLyBQZXJmb3JtIHdvcmsgdW50aWwgU2NoZWR1bGVyIGFza3MgdXMgdG8geWllbGRcbiAgd2hpbGUgKHdvcmtJblByb2dyZXNzICE9PSBudWxsICYmICFzaG91bGRZaWVsZCgpKSB7XG4gICAgcGVyZm9ybVVuaXRPZldvcmsod29ya0luUHJvZ3Jlc3MpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBlcmZvcm1Vbml0T2ZXb3JrKHVuaXRPZldvcmspIHtcbiAgLy8gVGhlIGN1cnJlbnQsIGZsdXNoZWQsIHN0YXRlIG9mIHRoaXMgZmliZXIgaXMgdGhlIGFsdGVybmF0ZS4gSWRlYWxseVxuICAvLyBub3RoaW5nIHNob3VsZCByZWx5IG9uIHRoaXMsIGJ1dCByZWx5aW5nIG9uIGl0IGhlcmUgbWVhbnMgdGhhdCB3ZSBkb24ndFxuICAvLyBuZWVkIGFuIGFkZGl0aW9uYWwgZmllbGQgb24gdGhlIHdvcmsgaW4gcHJvZ3Jlc3MuXG4gIHZhciBjdXJyZW50ID0gdW5pdE9mV29yay5hbHRlcm5hdGU7XG4gIHNldEN1cnJlbnRGaWJlcih1bml0T2ZXb3JrKTtcbiAgdmFyIG5leHQ7XG5cbiAgaWYgKCAodW5pdE9mV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICBzdGFydFByb2ZpbGVyVGltZXIodW5pdE9mV29yayk7XG4gICAgbmV4dCA9IGJlZ2luV29yayQxKGN1cnJlbnQsIHVuaXRPZldvcmssIHN1YnRyZWVSZW5kZXJMYW5lcyk7XG4gICAgc3RvcFByb2ZpbGVyVGltZXJJZlJ1bm5pbmdBbmRSZWNvcmREZWx0YSh1bml0T2ZXb3JrLCB0cnVlKTtcbiAgfSBlbHNlIHtcbiAgICBuZXh0ID0gYmVnaW5Xb3JrJDEoY3VycmVudCwgdW5pdE9mV29yaywgc3VidHJlZVJlbmRlckxhbmVzKTtcbiAgfVxuXG4gIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gIHVuaXRPZldvcmsubWVtb2l6ZWRQcm9wcyA9IHVuaXRPZldvcmsucGVuZGluZ1Byb3BzO1xuXG4gIGlmIChuZXh0ID09PSBudWxsKSB7XG4gICAgLy8gSWYgdGhpcyBkb2Vzbid0IHNwYXduIG5ldyB3b3JrLCBjb21wbGV0ZSB0aGUgY3VycmVudCB3b3JrLlxuICAgIGNvbXBsZXRlVW5pdE9mV29yayh1bml0T2ZXb3JrKTtcbiAgfSBlbHNlIHtcbiAgICB3b3JrSW5Qcm9ncmVzcyA9IG5leHQ7XG4gIH1cblxuICBSZWFjdEN1cnJlbnRPd25lciQyLmN1cnJlbnQgPSBudWxsO1xufVxuXG5mdW5jdGlvbiBjb21wbGV0ZVVuaXRPZldvcmsodW5pdE9mV29yaykge1xuICAvLyBBdHRlbXB0IHRvIGNvbXBsZXRlIHRoZSBjdXJyZW50IHVuaXQgb2Ygd29yaywgdGhlbiBtb3ZlIHRvIHRoZSBuZXh0XG4gIC8vIHNpYmxpbmcuIElmIHRoZXJlIGFyZSBubyBtb3JlIHNpYmxpbmdzLCByZXR1cm4gdG8gdGhlIHBhcmVudCBmaWJlci5cbiAgdmFyIGNvbXBsZXRlZFdvcmsgPSB1bml0T2ZXb3JrO1xuXG4gIGRvIHtcbiAgICAvLyBUaGUgY3VycmVudCwgZmx1c2hlZCwgc3RhdGUgb2YgdGhpcyBmaWJlciBpcyB0aGUgYWx0ZXJuYXRlLiBJZGVhbGx5XG4gICAgLy8gbm90aGluZyBzaG91bGQgcmVseSBvbiB0aGlzLCBidXQgcmVseWluZyBvbiBpdCBoZXJlIG1lYW5zIHRoYXQgd2UgZG9uJ3RcbiAgICAvLyBuZWVkIGFuIGFkZGl0aW9uYWwgZmllbGQgb24gdGhlIHdvcmsgaW4gcHJvZ3Jlc3MuXG4gICAgdmFyIGN1cnJlbnQgPSBjb21wbGV0ZWRXb3JrLmFsdGVybmF0ZTtcbiAgICB2YXIgcmV0dXJuRmliZXIgPSBjb21wbGV0ZWRXb3JrLnJldHVybjsgLy8gQ2hlY2sgaWYgdGhlIHdvcmsgY29tcGxldGVkIG9yIGlmIHNvbWV0aGluZyB0aHJldy5cblxuICAgIGlmICgoY29tcGxldGVkV29yay5mbGFncyAmIEluY29tcGxldGUpID09PSBOb0ZsYWdzKSB7XG4gICAgICBzZXRDdXJyZW50RmliZXIoY29tcGxldGVkV29yayk7XG4gICAgICB2YXIgbmV4dCA9IHZvaWQgMDtcblxuICAgICAgaWYgKCAoY29tcGxldGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpID09PSBOb01vZGUpIHtcbiAgICAgICAgbmV4dCA9IGNvbXBsZXRlV29yayhjdXJyZW50LCBjb21wbGV0ZWRXb3JrLCBzdWJ0cmVlUmVuZGVyTGFuZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhcnRQcm9maWxlclRpbWVyKGNvbXBsZXRlZFdvcmspO1xuICAgICAgICBuZXh0ID0gY29tcGxldGVXb3JrKGN1cnJlbnQsIGNvbXBsZXRlZFdvcmssIHN1YnRyZWVSZW5kZXJMYW5lcyk7IC8vIFVwZGF0ZSByZW5kZXIgZHVyYXRpb24gYXNzdW1pbmcgd2UgZGlkbid0IGVycm9yLlxuXG4gICAgICAgIHN0b3BQcm9maWxlclRpbWVySWZSdW5uaW5nQW5kUmVjb3JkRGVsdGEoY29tcGxldGVkV29yaywgZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICByZXNldEN1cnJlbnRGaWJlcigpO1xuXG4gICAgICBpZiAobmV4dCAhPT0gbnVsbCkge1xuICAgICAgICAvLyBDb21wbGV0aW5nIHRoaXMgZmliZXIgc3Bhd25lZCBuZXcgd29yay4gV29yayBvbiB0aGF0IG5leHQuXG4gICAgICAgIHdvcmtJblByb2dyZXNzID0gbmV4dDtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGlzIGZpYmVyIGRpZCBub3QgY29tcGxldGUgYmVjYXVzZSBzb21ldGhpbmcgdGhyZXcuIFBvcCB2YWx1ZXMgb2ZmXG4gICAgICAvLyB0aGUgc3RhY2sgd2l0aG91dCBlbnRlcmluZyB0aGUgY29tcGxldGUgcGhhc2UuIElmIHRoaXMgaXMgYSBib3VuZGFyeSxcbiAgICAgIC8vIGNhcHR1cmUgdmFsdWVzIGlmIHBvc3NpYmxlLlxuICAgICAgdmFyIF9uZXh0ID0gdW53aW5kV29yayhjdXJyZW50LCBjb21wbGV0ZWRXb3JrKTsgLy8gQmVjYXVzZSB0aGlzIGZpYmVyIGRpZCBub3QgY29tcGxldGUsIGRvbid0IHJlc2V0IGl0cyBsYW5lcy5cblxuXG4gICAgICBpZiAoX25leHQgIT09IG51bGwpIHtcbiAgICAgICAgLy8gSWYgY29tcGxldGluZyB0aGlzIHdvcmsgc3Bhd25lZCBuZXcgd29yaywgZG8gdGhhdCBuZXh0LiBXZSdsbCBjb21lXG4gICAgICAgIC8vIGJhY2sgaGVyZSBhZ2Fpbi5cbiAgICAgICAgLy8gU2luY2Ugd2UncmUgcmVzdGFydGluZywgcmVtb3ZlIGFueXRoaW5nIHRoYXQgaXMgbm90IGEgaG9zdCBlZmZlY3RcbiAgICAgICAgLy8gZnJvbSB0aGUgZWZmZWN0IHRhZy5cbiAgICAgICAgX25leHQuZmxhZ3MgJj0gSG9zdEVmZmVjdE1hc2s7XG4gICAgICAgIHdvcmtJblByb2dyZXNzID0gX25leHQ7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCAoY29tcGxldGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgLy8gUmVjb3JkIHRoZSByZW5kZXIgZHVyYXRpb24gZm9yIHRoZSBmaWJlciB0aGF0IGVycm9yZWQuXG4gICAgICAgIHN0b3BQcm9maWxlclRpbWVySWZSdW5uaW5nQW5kUmVjb3JkRGVsdGEoY29tcGxldGVkV29yaywgZmFsc2UpOyAvLyBJbmNsdWRlIHRoZSB0aW1lIHNwZW50IHdvcmtpbmcgb24gZmFpbGVkIGNoaWxkcmVuIGJlZm9yZSBjb250aW51aW5nLlxuXG4gICAgICAgIHZhciBhY3R1YWxEdXJhdGlvbiA9IGNvbXBsZXRlZFdvcmsuYWN0dWFsRHVyYXRpb247XG4gICAgICAgIHZhciBjaGlsZCA9IGNvbXBsZXRlZFdvcmsuY2hpbGQ7XG5cbiAgICAgICAgd2hpbGUgKGNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgICAgYWN0dWFsRHVyYXRpb24gKz0gY2hpbGQuYWN0dWFsRHVyYXRpb247XG4gICAgICAgICAgY2hpbGQgPSBjaGlsZC5zaWJsaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgY29tcGxldGVkV29yay5hY3R1YWxEdXJhdGlvbiA9IGFjdHVhbER1cmF0aW9uO1xuICAgICAgfVxuXG4gICAgICBpZiAocmV0dXJuRmliZXIgIT09IG51bGwpIHtcbiAgICAgICAgLy8gTWFyayB0aGUgcGFyZW50IGZpYmVyIGFzIGluY29tcGxldGUgYW5kIGNsZWFyIGl0cyBzdWJ0cmVlIGZsYWdzLlxuICAgICAgICByZXR1cm5GaWJlci5mbGFncyB8PSBJbmNvbXBsZXRlO1xuICAgICAgICByZXR1cm5GaWJlci5zdWJ0cmVlRmxhZ3MgPSBOb0ZsYWdzO1xuICAgICAgICByZXR1cm5GaWJlci5kZWxldGlvbnMgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gV2UndmUgdW53b3VuZCBhbGwgdGhlIHdheSB0byB0aGUgcm9vdC5cbiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9IFJvb3REaWROb3RDb21wbGV0ZTtcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSBudWxsO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHNpYmxpbmdGaWJlciA9IGNvbXBsZXRlZFdvcmsuc2libGluZztcblxuICAgIGlmIChzaWJsaW5nRmliZXIgIT09IG51bGwpIHtcbiAgICAgIC8vIElmIHRoZXJlIGlzIG1vcmUgd29yayB0byBkbyBpbiB0aGlzIHJldHVybkZpYmVyLCBkbyB0aGF0IG5leHQuXG4gICAgICB3b3JrSW5Qcm9ncmVzcyA9IHNpYmxpbmdGaWJlcjtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIE90aGVyd2lzZSwgcmV0dXJuIHRvIHRoZSBwYXJlbnRcblxuXG4gICAgY29tcGxldGVkV29yayA9IHJldHVybkZpYmVyOyAvLyBVcGRhdGUgdGhlIG5leHQgdGhpbmcgd2UncmUgd29ya2luZyBvbiBpbiBjYXNlIHNvbWV0aGluZyB0aHJvd3MuXG5cbiAgICB3b3JrSW5Qcm9ncmVzcyA9IGNvbXBsZXRlZFdvcms7XG4gIH0gd2hpbGUgKGNvbXBsZXRlZFdvcmsgIT09IG51bGwpOyAvLyBXZSd2ZSByZWFjaGVkIHRoZSByb290LlxuXG5cbiAgaWYgKHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPT09IFJvb3RJblByb2dyZXNzKSB7XG4gICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9IFJvb3RDb21wbGV0ZWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29tbWl0Um9vdChyb290LCByZWNvdmVyYWJsZUVycm9ycywgdHJhbnNpdGlvbnMpIHtcbiAgLy8gVE9ETzogVGhpcyBubyBsb25nZXIgbWFrZXMgYW55IHNlbnNlLiBXZSBhbHJlYWR5IHdyYXAgdGhlIG11dGF0aW9uIGFuZFxuICAvLyBsYXlvdXQgcGhhc2VzLiBTaG91bGQgYmUgYWJsZSB0byByZW1vdmUuXG4gIHZhciBwcmV2aW91c1VwZGF0ZUxhbmVQcmlvcml0eSA9IGdldEN1cnJlbnRVcGRhdGVQcmlvcml0eSgpO1xuICB2YXIgcHJldlRyYW5zaXRpb24gPSBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQzLnRyYW5zaXRpb247XG5cbiAgdHJ5IHtcbiAgICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQzLnRyYW5zaXRpb24gPSBudWxsO1xuICAgIHNldEN1cnJlbnRVcGRhdGVQcmlvcml0eShEaXNjcmV0ZUV2ZW50UHJpb3JpdHkpO1xuICAgIGNvbW1pdFJvb3RJbXBsKHJvb3QsIHJlY292ZXJhYmxlRXJyb3JzLCB0cmFuc2l0aW9ucywgcHJldmlvdXNVcGRhdGVMYW5lUHJpb3JpdHkpO1xuICB9IGZpbmFsbHkge1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDMudHJhbnNpdGlvbiA9IHByZXZUcmFuc2l0aW9uO1xuICAgIHNldEN1cnJlbnRVcGRhdGVQcmlvcml0eShwcmV2aW91c1VwZGF0ZUxhbmVQcmlvcml0eSk7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gY29tbWl0Um9vdEltcGwocm9vdCwgcmVjb3ZlcmFibGVFcnJvcnMsIHRyYW5zaXRpb25zLCByZW5kZXJQcmlvcml0eUxldmVsKSB7XG4gIGRvIHtcbiAgICAvLyBgZmx1c2hQYXNzaXZlRWZmZWN0c2Agd2lsbCBjYWxsIGBmbHVzaFN5bmNVcGRhdGVRdWV1ZWAgYXQgdGhlIGVuZCwgd2hpY2hcbiAgICAvLyBtZWFucyBgZmx1c2hQYXNzaXZlRWZmZWN0c2Agd2lsbCBzb21ldGltZXMgcmVzdWx0IGluIGFkZGl0aW9uYWxcbiAgICAvLyBwYXNzaXZlIGVmZmVjdHMuIFNvIHdlIG5lZWQgdG8ga2VlcCBmbHVzaGluZyBpbiBhIGxvb3AgdW50aWwgdGhlcmUgYXJlXG4gICAgLy8gbm8gbW9yZSBwZW5kaW5nIGVmZmVjdHMuXG4gICAgLy8gVE9ETzogTWlnaHQgYmUgYmV0dGVyIGlmIGBmbHVzaFBhc3NpdmVFZmZlY3RzYCBkaWQgbm90IGF1dG9tYXRpY2FsbHlcbiAgICAvLyBmbHVzaCBzeW5jaHJvbm91cyB3b3JrIGF0IHRoZSBlbmQsIHRvIGF2b2lkIGZhY3RvcmluZyBoYXphcmRzIGxpa2UgdGhpcy5cbiAgICBmbHVzaFBhc3NpdmVFZmZlY3RzKCk7XG4gIH0gd2hpbGUgKHJvb3RXaXRoUGVuZGluZ1Bhc3NpdmVFZmZlY3RzICE9PSBudWxsKTtcblxuICBmbHVzaFJlbmRlclBoYXNlU3RyaWN0TW9kZVdhcm5pbmdzSW5ERVYoKTtcblxuICBpZiAoKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSAhPT0gTm9Db250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgbm90IGFscmVhZHkgYmUgd29ya2luZy4nKTtcbiAgfVxuXG4gIHZhciBmaW5pc2hlZFdvcmsgPSByb290LmZpbmlzaGVkV29yaztcbiAgdmFyIGxhbmVzID0gcm9vdC5maW5pc2hlZExhbmVzO1xuXG4gIHtcbiAgICBtYXJrQ29tbWl0U3RhcnRlZChsYW5lcyk7XG4gIH1cblxuICBpZiAoZmluaXNoZWRXb3JrID09PSBudWxsKSB7XG5cbiAgICB7XG4gICAgICBtYXJrQ29tbWl0U3RvcHBlZCgpO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9IGVsc2Uge1xuICAgIHtcbiAgICAgIGlmIChsYW5lcyA9PT0gTm9MYW5lcykge1xuICAgICAgICBlcnJvcigncm9vdC5maW5pc2hlZExhbmVzIHNob3VsZCBub3QgYmUgZW1wdHkgZHVyaW5nIGEgY29tbWl0LiBUaGlzIGlzIGEgJyArICdidWcgaW4gUmVhY3QuJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcm9vdC5maW5pc2hlZFdvcmsgPSBudWxsO1xuICByb290LmZpbmlzaGVkTGFuZXMgPSBOb0xhbmVzO1xuXG4gIGlmIChmaW5pc2hlZFdvcmsgPT09IHJvb3QuY3VycmVudCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNvbW1pdCB0aGUgc2FtZSB0cmVlIGFzIGJlZm9yZS4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5ICcgKyAnYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICB9IC8vIGNvbW1pdFJvb3QgbmV2ZXIgcmV0dXJucyBhIGNvbnRpbnVhdGlvbjsgaXQgYWx3YXlzIGZpbmlzaGVzIHN5bmNocm9ub3VzbHkuXG4gIC8vIFNvIHdlIGNhbiBjbGVhciB0aGVzZSBub3cgdG8gYWxsb3cgYSBuZXcgY2FsbGJhY2sgdG8gYmUgc2NoZWR1bGVkLlxuXG5cbiAgcm9vdC5jYWxsYmFja05vZGUgPSBudWxsO1xuICByb290LmNhbGxiYWNrUHJpb3JpdHkgPSBOb0xhbmU7IC8vIFVwZGF0ZSB0aGUgZmlyc3QgYW5kIGxhc3QgcGVuZGluZyB0aW1lcyBvbiB0aGlzIHJvb3QuIFRoZSBuZXcgZmlyc3RcbiAgLy8gcGVuZGluZyB0aW1lIGlzIHdoYXRldmVyIGlzIGxlZnQgb24gdGhlIHJvb3QgZmliZXIuXG5cbiAgdmFyIHJlbWFpbmluZ0xhbmVzID0gbWVyZ2VMYW5lcyhmaW5pc2hlZFdvcmsubGFuZXMsIGZpbmlzaGVkV29yay5jaGlsZExhbmVzKTtcbiAgbWFya1Jvb3RGaW5pc2hlZChyb290LCByZW1haW5pbmdMYW5lcyk7XG5cbiAgaWYgKHJvb3QgPT09IHdvcmtJblByb2dyZXNzUm9vdCkge1xuICAgIC8vIFdlIGNhbiByZXNldCB0aGVzZSBub3cgdGhhdCB0aGV5IGFyZSBmaW5pc2hlZC5cbiAgICB3b3JrSW5Qcm9ncmVzc1Jvb3QgPSBudWxsO1xuICAgIHdvcmtJblByb2dyZXNzID0gbnVsbDtcbiAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyA9IE5vTGFuZXM7XG4gIH0gLy8gSWYgdGhlcmUgYXJlIHBlbmRpbmcgcGFzc2l2ZSBlZmZlY3RzLCBzY2hlZHVsZSBhIGNhbGxiYWNrIHRvIHByb2Nlc3MgdGhlbS5cbiAgLy8gRG8gdGhpcyBhcyBlYXJseSBhcyBwb3NzaWJsZSwgc28gaXQgaXMgcXVldWVkIGJlZm9yZSBhbnl0aGluZyBlbHNlIHRoYXRcbiAgLy8gbWlnaHQgZ2V0IHNjaGVkdWxlZCBpbiB0aGUgY29tbWl0IHBoYXNlLiAoU2VlICMxNjcxNC4pXG4gIC8vIFRPRE86IERlbGV0ZSBhbGwgb3RoZXIgcGxhY2VzIHRoYXQgc2NoZWR1bGUgdGhlIHBhc3NpdmUgZWZmZWN0IGNhbGxiYWNrXG4gIC8vIFRoZXkncmUgcmVkdW5kYW50LlxuXG5cbiAgaWYgKChmaW5pc2hlZFdvcmsuc3VidHJlZUZsYWdzICYgUGFzc2l2ZU1hc2spICE9PSBOb0ZsYWdzIHx8IChmaW5pc2hlZFdvcmsuZmxhZ3MgJiBQYXNzaXZlTWFzaykgIT09IE5vRmxhZ3MpIHtcbiAgICBpZiAoIXJvb3REb2VzSGF2ZVBhc3NpdmVFZmZlY3RzKSB7XG4gICAgICByb290RG9lc0hhdmVQYXNzaXZlRWZmZWN0cyA9IHRydWU7XG4gICAgICAvLyB0byBzdG9yZSBpdCBpbiBwZW5kaW5nUGFzc2l2ZVRyYW5zaXRpb25zIHVudGlsIHRoZXkgZ2V0IHByb2Nlc3NlZFxuICAgICAgLy8gV2UgbmVlZCB0byBwYXNzIHRoaXMgdGhyb3VnaCBhcyBhbiBhcmd1bWVudCB0byBjb21taXRSb290XG4gICAgICAvLyBiZWNhdXNlIHdvcmtJblByb2dyZXNzVHJhbnNpdGlvbnMgbWlnaHQgaGF2ZSBjaGFuZ2VkIGJldHdlZW5cbiAgICAgIC8vIHRoZSBwcmV2aW91cyByZW5kZXIgYW5kIGNvbW1pdCBpZiB3ZSB0aHJvdHRsZSB0aGUgY29tbWl0XG4gICAgICAvLyB3aXRoIHNldFRpbWVvdXRcblxuICAgICAgcGVuZGluZ1Bhc3NpdmVUcmFuc2l0aW9ucyA9IHRyYW5zaXRpb25zO1xuICAgICAgc2NoZWR1bGVDYWxsYmFjayQxKE5vcm1hbFByaW9yaXR5LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKTsgLy8gVGhpcyByZW5kZXIgdHJpZ2dlcmVkIHBhc3NpdmUgZWZmZWN0czogcmVsZWFzZSB0aGUgcm9vdCBjYWNoZSBwb29sXG4gICAgICAgIC8vICphZnRlciogcGFzc2l2ZSBlZmZlY3RzIGZpcmUgdG8gYXZvaWQgZnJlZWluZyBhIGNhY2hlIHBvb2wgdGhhdCBtYXlcbiAgICAgICAgLy8gYmUgcmVmZXJlbmNlZCBieSBhIG5vZGUgaW4gdGhlIHRyZWUgKEhvc3RSb290LCBDYWNoZSBib3VuZGFyeSBldGMpXG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9KTtcbiAgICB9XG4gIH0gLy8gQ2hlY2sgaWYgdGhlcmUgYXJlIGFueSBlZmZlY3RzIGluIHRoZSB3aG9sZSB0cmVlLlxuICAvLyBUT0RPOiBUaGlzIGlzIGxlZnQgb3ZlciBmcm9tIHRoZSBlZmZlY3QgbGlzdCBpbXBsZW1lbnRhdGlvbiwgd2hlcmUgd2UgaGFkXG4gIC8vIHRvIGNoZWNrIGZvciB0aGUgZXhpc3RlbmNlIG9mIGBmaXJzdEVmZmVjdGAgdG8gc2F0aXNmeSBGbG93LiBJIHRoaW5rIHRoZVxuICAvLyBvbmx5IG90aGVyIHJlYXNvbiB0aGlzIG9wdGltaXphdGlvbiBleGlzdHMgaXMgYmVjYXVzZSBpdCBhZmZlY3RzIHByb2ZpbGluZy5cbiAgLy8gUmVjb25zaWRlciB3aGV0aGVyIHRoaXMgaXMgbmVjZXNzYXJ5LlxuXG5cbiAgdmFyIHN1YnRyZWVIYXNFZmZlY3RzID0gKGZpbmlzaGVkV29yay5zdWJ0cmVlRmxhZ3MgJiAoQmVmb3JlTXV0YXRpb25NYXNrIHwgTXV0YXRpb25NYXNrIHwgTGF5b3V0TWFzayB8IFBhc3NpdmVNYXNrKSkgIT09IE5vRmxhZ3M7XG4gIHZhciByb290SGFzRWZmZWN0ID0gKGZpbmlzaGVkV29yay5mbGFncyAmIChCZWZvcmVNdXRhdGlvbk1hc2sgfCBNdXRhdGlvbk1hc2sgfCBMYXlvdXRNYXNrIHwgUGFzc2l2ZU1hc2spKSAhPT0gTm9GbGFncztcblxuICBpZiAoc3VidHJlZUhhc0VmZmVjdHMgfHwgcm9vdEhhc0VmZmVjdCkge1xuICAgIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnJDMudHJhbnNpdGlvbjtcbiAgICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQzLnRyYW5zaXRpb24gPSBudWxsO1xuICAgIHZhciBwcmV2aW91c1ByaW9yaXR5ID0gZ2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KCk7XG4gICAgc2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KERpc2NyZXRlRXZlbnRQcmlvcml0eSk7XG4gICAgdmFyIHByZXZFeGVjdXRpb25Db250ZXh0ID0gZXhlY3V0aW9uQ29udGV4dDtcbiAgICBleGVjdXRpb25Db250ZXh0IHw9IENvbW1pdENvbnRleHQ7IC8vIFJlc2V0IHRoaXMgdG8gbnVsbCBiZWZvcmUgY2FsbGluZyBsaWZlY3ljbGVzXG5cbiAgICBSZWFjdEN1cnJlbnRPd25lciQyLmN1cnJlbnQgPSBudWxsOyAvLyBUaGUgY29tbWl0IHBoYXNlIGlzIGJyb2tlbiBpbnRvIHNldmVyYWwgc3ViLXBoYXNlcy4gV2UgZG8gYSBzZXBhcmF0ZSBwYXNzXG4gICAgLy8gb2YgdGhlIGVmZmVjdCBsaXN0IGZvciBlYWNoIHBoYXNlOiBhbGwgbXV0YXRpb24gZWZmZWN0cyBjb21lIGJlZm9yZSBhbGxcbiAgICAvLyBsYXlvdXQgZWZmZWN0cywgYW5kIHNvIG9uLlxuICAgIC8vIFRoZSBmaXJzdCBwaGFzZSBhIFwiYmVmb3JlIG11dGF0aW9uXCIgcGhhc2UuIFdlIHVzZSB0aGlzIHBoYXNlIHRvIHJlYWQgdGhlXG4gICAgLy8gc3RhdGUgb2YgdGhlIGhvc3QgdHJlZSByaWdodCBiZWZvcmUgd2UgbXV0YXRlIGl0LiBUaGlzIGlzIHdoZXJlXG4gICAgLy8gZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgaXMgY2FsbGVkLlxuXG4gICAgdmFyIHNob3VsZEZpcmVBZnRlckFjdGl2ZUluc3RhbmNlQmx1ciA9IGNvbW1pdEJlZm9yZU11dGF0aW9uRWZmZWN0cyhyb290LCBmaW5pc2hlZFdvcmspO1xuXG4gICAge1xuICAgICAgLy8gTWFyayB0aGUgY3VycmVudCBjb21taXQgdGltZSB0byBiZSBzaGFyZWQgYnkgYWxsIFByb2ZpbGVycyBpbiB0aGlzXG4gICAgICAvLyBiYXRjaC4gVGhpcyBlbmFibGVzIHRoZW0gdG8gYmUgZ3JvdXBlZCBsYXRlci5cbiAgICAgIHJlY29yZENvbW1pdFRpbWUoKTtcbiAgICB9XG5cblxuICAgIGNvbW1pdE11dGF0aW9uRWZmZWN0cyhyb290LCBmaW5pc2hlZFdvcmssIGxhbmVzKTtcblxuICAgIHJlc2V0QWZ0ZXJDb21taXQocm9vdC5jb250YWluZXJJbmZvKTsgLy8gVGhlIHdvcmstaW4tcHJvZ3Jlc3MgdHJlZSBpcyBub3cgdGhlIGN1cnJlbnQgdHJlZS4gVGhpcyBtdXN0IGNvbWUgYWZ0ZXJcbiAgICAvLyB0aGUgbXV0YXRpb24gcGhhc2UsIHNvIHRoYXQgdGhlIHByZXZpb3VzIHRyZWUgaXMgc3RpbGwgY3VycmVudCBkdXJpbmdcbiAgICAvLyBjb21wb25lbnRXaWxsVW5tb3VudCwgYnV0IGJlZm9yZSB0aGUgbGF5b3V0IHBoYXNlLCBzbyB0aGF0IHRoZSBmaW5pc2hlZFxuICAgIC8vIHdvcmsgaXMgY3VycmVudCBkdXJpbmcgY29tcG9uZW50RGlkTW91bnQvVXBkYXRlLlxuXG4gICAgcm9vdC5jdXJyZW50ID0gZmluaXNoZWRXb3JrOyAvLyBUaGUgbmV4dCBwaGFzZSBpcyB0aGUgbGF5b3V0IHBoYXNlLCB3aGVyZSB3ZSBjYWxsIGVmZmVjdHMgdGhhdCByZWFkXG5cbiAgICB7XG4gICAgICBtYXJrTGF5b3V0RWZmZWN0c1N0YXJ0ZWQobGFuZXMpO1xuICAgIH1cblxuICAgIGNvbW1pdExheW91dEVmZmVjdHMoZmluaXNoZWRXb3JrLCByb290LCBsYW5lcyk7XG5cbiAgICB7XG4gICAgICBtYXJrTGF5b3V0RWZmZWN0c1N0b3BwZWQoKTtcbiAgICB9XG4gICAgLy8gb3Bwb3J0dW5pdHkgdG8gcGFpbnQuXG5cblxuICAgIHJlcXVlc3RQYWludCgpO1xuICAgIGV4ZWN1dGlvbkNvbnRleHQgPSBwcmV2RXhlY3V0aW9uQ29udGV4dDsgLy8gUmVzZXQgdGhlIHByaW9yaXR5IHRvIHRoZSBwcmV2aW91cyBub24tc3luYyB2YWx1ZS5cblxuICAgIHNldEN1cnJlbnRVcGRhdGVQcmlvcml0eShwcmV2aW91c1ByaW9yaXR5KTtcbiAgICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZyQzLnRyYW5zaXRpb24gPSBwcmV2VHJhbnNpdGlvbjtcbiAgfSBlbHNlIHtcbiAgICAvLyBObyBlZmZlY3RzLlxuICAgIHJvb3QuY3VycmVudCA9IGZpbmlzaGVkV29yazsgLy8gTWVhc3VyZSB0aGVzZSBhbnl3YXkgc28gdGhlIGZsYW1lZ3JhcGggZXhwbGljaXRseSBzaG93cyB0aGF0IHRoZXJlIHdlcmVcbiAgICAvLyBubyBlZmZlY3RzLlxuICAgIC8vIFRPRE86IE1heWJlIHRoZXJlJ3MgYSBiZXR0ZXIgd2F5IHRvIHJlcG9ydCB0aGlzLlxuXG4gICAge1xuICAgICAgcmVjb3JkQ29tbWl0VGltZSgpO1xuICAgIH1cbiAgfVxuXG4gIHZhciByb290RGlkSGF2ZVBhc3NpdmVFZmZlY3RzID0gcm9vdERvZXNIYXZlUGFzc2l2ZUVmZmVjdHM7XG5cbiAgaWYgKHJvb3REb2VzSGF2ZVBhc3NpdmVFZmZlY3RzKSB7XG4gICAgLy8gVGhpcyBjb21taXQgaGFzIHBhc3NpdmUgZWZmZWN0cy4gU3Rhc2ggYSByZWZlcmVuY2UgdG8gdGhlbS4gQnV0IGRvbid0XG4gICAgLy8gc2NoZWR1bGUgYSBjYWxsYmFjayB1bnRpbCBhZnRlciBmbHVzaGluZyBsYXlvdXQgd29yay5cbiAgICByb290RG9lc0hhdmVQYXNzaXZlRWZmZWN0cyA9IGZhbHNlO1xuICAgIHJvb3RXaXRoUGVuZGluZ1Bhc3NpdmVFZmZlY3RzID0gcm9vdDtcbiAgICBwZW5kaW5nUGFzc2l2ZUVmZmVjdHNMYW5lcyA9IGxhbmVzO1xuICB9IGVsc2Uge1xuXG4gICAge1xuICAgICAgbmVzdGVkUGFzc2l2ZVVwZGF0ZUNvdW50ID0gMDtcbiAgICAgIHJvb3RXaXRoUGFzc2l2ZU5lc3RlZFVwZGF0ZXMgPSBudWxsO1xuICAgIH1cbiAgfSAvLyBSZWFkIHRoaXMgYWdhaW4sIHNpbmNlIGFuIGVmZmVjdCBtaWdodCBoYXZlIHVwZGF0ZWQgaXRcblxuXG4gIHJlbWFpbmluZ0xhbmVzID0gcm9vdC5wZW5kaW5nTGFuZXM7IC8vIENoZWNrIGlmIHRoZXJlJ3MgcmVtYWluaW5nIHdvcmsgb24gdGhpcyByb290XG4gIC8vIFRPRE86IFRoaXMgaXMgcGFydCBvZiB0aGUgYGNvbXBvbmVudERpZENhdGNoYCBpbXBsZW1lbnRhdGlvbi4gSXRzIHB1cnBvc2VcbiAgLy8gaXMgdG8gZGV0ZWN0IHdoZXRoZXIgc29tZXRoaW5nIG1pZ2h0IGhhdmUgY2FsbGVkIHNldFN0YXRlIGluc2lkZVxuICAvLyBgY29tcG9uZW50RGlkQ2F0Y2hgLiBUaGUgbWVjaGFuaXNtIGlzIGtub3duIHRvIGJlIGZsYXdlZCBiZWNhdXNlIGBzZXRTdGF0ZWBcbiAgLy8gaW5zaWRlIGBjb21wb25lbnREaWRDYXRjaGAgaXMgaXRzZWxmIGZsYXdlZCDigJQgdGhhdCdzIHdoeSB3ZSByZWNvbW1lbmRcbiAgLy8gYGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcmAgaW5zdGVhZC4gSG93ZXZlciwgaXQgY291bGQgYmUgaW1wcm92ZWQgYnlcbiAgLy8gY2hlY2tpbmcgaWYgcmVtYWluaW5nTGFuZXMgaW5jbHVkZXMgU3luYyB3b3JrLCBpbnN0ZWFkIG9mIHdoZXRoZXIgdGhlcmUnc1xuICAvLyBhbnkgd29yayByZW1haW5pbmcgYXQgYWxsICh3aGljaCB3b3VsZCBhbHNvIGluY2x1ZGUgc3R1ZmYgbGlrZSBTdXNwZW5zZVxuICAvLyByZXRyaWVzIG9yIHRyYW5zaXRpb25zKS4gSXQncyBiZWVuIGxpa2UgdGhpcyBmb3IgYSB3aGlsZSwgdGhvdWdoLCBzbyBmaXhpbmdcbiAgLy8gaXQgcHJvYmFibHkgaXNuJ3QgdGhhdCB1cmdlbnQuXG5cbiAgaWYgKHJlbWFpbmluZ0xhbmVzID09PSBOb0xhbmVzKSB7XG4gICAgLy8gSWYgdGhlcmUncyBubyByZW1haW5pbmcgd29yaywgd2UgY2FuIGNsZWFyIHRoZSBzZXQgb2YgYWxyZWFkeSBmYWlsZWRcbiAgICAvLyBlcnJvciBib3VuZGFyaWVzLlxuICAgIGxlZ2FjeUVycm9yQm91bmRhcmllc1RoYXRBbHJlYWR5RmFpbGVkID0gbnVsbDtcbiAgfVxuXG4gIHtcbiAgICBpZiAoIXJvb3REaWRIYXZlUGFzc2l2ZUVmZmVjdHMpIHtcbiAgICAgIGNvbW1pdERvdWJsZUludm9rZUVmZmVjdHNJbkRFVihyb290LmN1cnJlbnQsIGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBvbkNvbW1pdFJvb3QoZmluaXNoZWRXb3JrLnN0YXRlTm9kZSwgcmVuZGVyUHJpb3JpdHlMZXZlbCk7XG5cbiAge1xuICAgIGlmIChpc0RldlRvb2xzUHJlc2VudCkge1xuICAgICAgcm9vdC5tZW1vaXplZFVwZGF0ZXJzLmNsZWFyKCk7XG4gICAgfVxuICB9XG5cbiAge1xuICAgIG9uQ29tbWl0Um9vdCQxKCk7XG4gIH0gLy8gQWx3YXlzIGNhbGwgdGhpcyBiZWZvcmUgZXhpdGluZyBgY29tbWl0Um9vdGAsIHRvIGVuc3VyZSB0aGF0IGFueVxuICAvLyBhZGRpdGlvbmFsIHdvcmsgb24gdGhpcyByb290IGlzIHNjaGVkdWxlZC5cblxuXG4gIGVuc3VyZVJvb3RJc1NjaGVkdWxlZChyb290LCBub3coKSk7XG5cbiAgaWYgKHJlY292ZXJhYmxlRXJyb3JzICE9PSBudWxsKSB7XG4gICAgLy8gVGhlcmUgd2VyZSBlcnJvcnMgZHVyaW5nIHRoaXMgcmVuZGVyLCBidXQgcmVjb3ZlcmVkIGZyb20gdGhlbSB3aXRob3V0XG4gICAgLy8gbmVlZGluZyB0byBzdXJmYWNlIGl0IHRvIHRoZSBVSS4gV2UgbG9nIHRoZW0gaGVyZS5cbiAgICB2YXIgb25SZWNvdmVyYWJsZUVycm9yID0gcm9vdC5vblJlY292ZXJhYmxlRXJyb3I7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY292ZXJhYmxlRXJyb3JzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgcmVjb3ZlcmFibGVFcnJvciA9IHJlY292ZXJhYmxlRXJyb3JzW2ldO1xuICAgICAgdmFyIGNvbXBvbmVudFN0YWNrID0gcmVjb3ZlcmFibGVFcnJvci5zdGFjaztcbiAgICAgIHZhciBkaWdlc3QgPSByZWNvdmVyYWJsZUVycm9yLmRpZ2VzdDtcbiAgICAgIG9uUmVjb3ZlcmFibGVFcnJvcihyZWNvdmVyYWJsZUVycm9yLnZhbHVlLCB7XG4gICAgICAgIGNvbXBvbmVudFN0YWNrOiBjb21wb25lbnRTdGFjayxcbiAgICAgICAgZGlnZXN0OiBkaWdlc3RcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGlmIChoYXNVbmNhdWdodEVycm9yKSB7XG4gICAgaGFzVW5jYXVnaHRFcnJvciA9IGZhbHNlO1xuICAgIHZhciBlcnJvciQxID0gZmlyc3RVbmNhdWdodEVycm9yO1xuICAgIGZpcnN0VW5jYXVnaHRFcnJvciA9IG51bGw7XG4gICAgdGhyb3cgZXJyb3IkMTtcbiAgfSAvLyBJZiB0aGUgcGFzc2l2ZSBlZmZlY3RzIGFyZSB0aGUgcmVzdWx0IG9mIGEgZGlzY3JldGUgcmVuZGVyLCBmbHVzaCB0aGVtXG4gIC8vIHN5bmNocm9ub3VzbHkgYXQgdGhlIGVuZCBvZiB0aGUgY3VycmVudCB0YXNrIHNvIHRoYXQgdGhlIHJlc3VsdCBpc1xuICAvLyBpbW1lZGlhdGVseSBvYnNlcnZhYmxlLiBPdGhlcndpc2UsIHdlIGFzc3VtZSB0aGF0IHRoZXkgYXJlIG5vdFxuICAvLyBvcmRlci1kZXBlbmRlbnQgYW5kIGRvIG5vdCBuZWVkIHRvIGJlIG9ic2VydmVkIGJ5IGV4dGVybmFsIHN5c3RlbXMsIHNvIHdlXG4gIC8vIGNhbiB3YWl0IHVudGlsIGFmdGVyIHBhaW50LlxuICAvLyBUT0RPOiBXZSBjYW4gb3B0aW1pemUgdGhpcyBieSBub3Qgc2NoZWR1bGluZyB0aGUgY2FsbGJhY2sgZWFybGllci4gU2luY2Ugd2VcbiAgLy8gY3VycmVudGx5IHNjaGVkdWxlIHRoZSBjYWxsYmFjayBpbiBtdWx0aXBsZSBwbGFjZXMsIHdpbGwgd2FpdCB1bnRpbCB0aG9zZVxuICAvLyBhcmUgY29uc29saWRhdGVkLlxuXG5cbiAgaWYgKGluY2x1ZGVzU29tZUxhbmUocGVuZGluZ1Bhc3NpdmVFZmZlY3RzTGFuZXMsIFN5bmNMYW5lKSAmJiByb290LnRhZyAhPT0gTGVnYWN5Um9vdCkge1xuICAgIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKTtcbiAgfSAvLyBSZWFkIHRoaXMgYWdhaW4sIHNpbmNlIGEgcGFzc2l2ZSBlZmZlY3QgbWlnaHQgaGF2ZSB1cGRhdGVkIGl0XG5cblxuICByZW1haW5pbmdMYW5lcyA9IHJvb3QucGVuZGluZ0xhbmVzO1xuXG4gIGlmIChpbmNsdWRlc1NvbWVMYW5lKHJlbWFpbmluZ0xhbmVzLCBTeW5jTGFuZSkpIHtcbiAgICB7XG4gICAgICBtYXJrTmVzdGVkVXBkYXRlU2NoZWR1bGVkKCk7XG4gICAgfSAvLyBDb3VudCB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSByb290IHN5bmNocm9ub3VzbHkgcmUtcmVuZGVycyB3aXRob3V0XG4gICAgLy8gZmluaXNoaW5nLiBJZiB0aGVyZSBhcmUgdG9vIG1hbnksIGl0IGluZGljYXRlcyBhbiBpbmZpbml0ZSB1cGRhdGUgbG9vcC5cblxuXG4gICAgaWYgKHJvb3QgPT09IHJvb3RXaXRoTmVzdGVkVXBkYXRlcykge1xuICAgICAgbmVzdGVkVXBkYXRlQ291bnQrKztcbiAgICB9IGVsc2Uge1xuICAgICAgbmVzdGVkVXBkYXRlQ291bnQgPSAwO1xuICAgICAgcm9vdFdpdGhOZXN0ZWRVcGRhdGVzID0gcm9vdDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbmVzdGVkVXBkYXRlQ291bnQgPSAwO1xuICB9IC8vIElmIGxheW91dCB3b3JrIHdhcyBzY2hlZHVsZWQsIGZsdXNoIGl0IG5vdy5cblxuXG4gIGZsdXNoU3luY0NhbGxiYWNrcygpO1xuXG4gIHtcbiAgICBtYXJrQ29tbWl0U3RvcHBlZCgpO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKSB7XG4gIC8vIFJldHVybnMgd2hldGhlciBwYXNzaXZlIGVmZmVjdHMgd2VyZSBmbHVzaGVkLlxuICAvLyBUT0RPOiBDb21iaW5lIHRoaXMgY2hlY2sgd2l0aCB0aGUgb25lIGluIGZsdXNoUGFzc2l2ZUVGZmVjdHNJbXBsLiBXZSBzaG91bGRcbiAgLy8gcHJvYmFibHkganVzdCBjb21iaW5lIHRoZSB0d28gZnVuY3Rpb25zLiBJIGJlbGlldmUgdGhleSB3ZXJlIG9ubHkgc2VwYXJhdGVcbiAgLy8gaW4gdGhlIGZpcnN0IHBsYWNlIGJlY2F1c2Ugd2UgdXNlZCB0byB3cmFwIGl0IHdpdGhcbiAgLy8gYFNjaGVkdWxlci5ydW5XaXRoUHJpb3JpdHlgLCB3aGljaCBhY2NlcHRzIGEgZnVuY3Rpb24uIEJ1dCBub3cgd2UgdHJhY2sgdGhlXG4gIC8vIHByaW9yaXR5IHdpdGhpbiBSZWFjdCBpdHNlbGYsIHNvIHdlIGNhbiBtdXRhdGUgdGhlIHZhcmlhYmxlIGRpcmVjdGx5LlxuICBpZiAocm9vdFdpdGhQZW5kaW5nUGFzc2l2ZUVmZmVjdHMgIT09IG51bGwpIHtcbiAgICB2YXIgcmVuZGVyUHJpb3JpdHkgPSBsYW5lc1RvRXZlbnRQcmlvcml0eShwZW5kaW5nUGFzc2l2ZUVmZmVjdHNMYW5lcyk7XG4gICAgdmFyIHByaW9yaXR5ID0gbG93ZXJFdmVudFByaW9yaXR5KERlZmF1bHRFdmVudFByaW9yaXR5LCByZW5kZXJQcmlvcml0eSk7XG4gICAgdmFyIHByZXZUcmFuc2l0aW9uID0gUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMy50cmFuc2l0aW9uO1xuICAgIHZhciBwcmV2aW91c1ByaW9yaXR5ID0gZ2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KCk7XG5cbiAgICB0cnkge1xuICAgICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMy50cmFuc2l0aW9uID0gbnVsbDtcbiAgICAgIHNldEN1cnJlbnRVcGRhdGVQcmlvcml0eShwcmlvcml0eSk7XG4gICAgICByZXR1cm4gZmx1c2hQYXNzaXZlRWZmZWN0c0ltcGwoKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KHByZXZpb3VzUHJpb3JpdHkpO1xuICAgICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWckMy50cmFuc2l0aW9uID0gcHJldlRyYW5zaXRpb247IC8vIE9uY2UgcGFzc2l2ZSBlZmZlY3RzIGhhdmUgcnVuIGZvciB0aGUgdHJlZSAtIGdpdmluZyBjb21wb25lbnRzIGFcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5mdW5jdGlvbiBlbnF1ZXVlUGVuZGluZ1Bhc3NpdmVQcm9maWxlckVmZmVjdChmaWJlcikge1xuICB7XG4gICAgcGVuZGluZ1Bhc3NpdmVQcm9maWxlckVmZmVjdHMucHVzaChmaWJlcik7XG5cbiAgICBpZiAoIXJvb3REb2VzSGF2ZVBhc3NpdmVFZmZlY3RzKSB7XG4gICAgICByb290RG9lc0hhdmVQYXNzaXZlRWZmZWN0cyA9IHRydWU7XG4gICAgICBzY2hlZHVsZUNhbGxiYWNrJDEoTm9ybWFsUHJpb3JpdHksIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZmx1c2hQYXNzaXZlRWZmZWN0cygpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmbHVzaFBhc3NpdmVFZmZlY3RzSW1wbCgpIHtcbiAgaWYgKHJvb3RXaXRoUGVuZGluZ1Bhc3NpdmVFZmZlY3RzID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IC8vIENhY2hlIGFuZCBjbGVhciB0aGUgdHJhbnNpdGlvbnMgZmxhZ1xuXG5cbiAgdmFyIHRyYW5zaXRpb25zID0gcGVuZGluZ1Bhc3NpdmVUcmFuc2l0aW9ucztcbiAgcGVuZGluZ1Bhc3NpdmVUcmFuc2l0aW9ucyA9IG51bGw7XG4gIHZhciByb290ID0gcm9vdFdpdGhQZW5kaW5nUGFzc2l2ZUVmZmVjdHM7XG4gIHZhciBsYW5lcyA9IHBlbmRpbmdQYXNzaXZlRWZmZWN0c0xhbmVzO1xuICByb290V2l0aFBlbmRpbmdQYXNzaXZlRWZmZWN0cyA9IG51bGw7IC8vIFRPRE86IFRoaXMgaXMgc29tZXRpbWVzIG91dCBvZiBzeW5jIHdpdGggcm9vdFdpdGhQZW5kaW5nUGFzc2l2ZUVmZmVjdHMuXG4gIC8vIEZpZ3VyZSBvdXQgd2h5IGFuZCBmaXggaXQuIEl0J3Mgbm90IGNhdXNpbmcgYW55IGtub3duIGlzc3VlcyAocHJvYmFibHlcbiAgLy8gYmVjYXVzZSBpdCdzIG9ubHkgdXNlZCBmb3IgcHJvZmlsaW5nKSwgYnV0IGl0J3MgYSByZWZhY3RvciBoYXphcmQuXG5cbiAgcGVuZGluZ1Bhc3NpdmVFZmZlY3RzTGFuZXMgPSBOb0xhbmVzO1xuXG4gIGlmICgoZXhlY3V0aW9uQ29udGV4dCAmIChSZW5kZXJDb250ZXh0IHwgQ29tbWl0Q29udGV4dCkpICE9PSBOb0NvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBmbHVzaCBwYXNzaXZlIGVmZmVjdHMgd2hpbGUgYWxyZWFkeSByZW5kZXJpbmcuJyk7XG4gIH1cblxuICB7XG4gICAgaXNGbHVzaGluZ1Bhc3NpdmVFZmZlY3RzID0gdHJ1ZTtcbiAgICBkaWRTY2hlZHVsZVVwZGF0ZUR1cmluZ1Bhc3NpdmVFZmZlY3RzID0gZmFsc2U7XG4gIH1cblxuICB7XG4gICAgbWFya1Bhc3NpdmVFZmZlY3RzU3RhcnRlZChsYW5lcyk7XG4gIH1cblxuICB2YXIgcHJldkV4ZWN1dGlvbkNvbnRleHQgPSBleGVjdXRpb25Db250ZXh0O1xuICBleGVjdXRpb25Db250ZXh0IHw9IENvbW1pdENvbnRleHQ7XG4gIGNvbW1pdFBhc3NpdmVVbm1vdW50RWZmZWN0cyhyb290LmN1cnJlbnQpO1xuICBjb21taXRQYXNzaXZlTW91bnRFZmZlY3RzKHJvb3QsIHJvb3QuY3VycmVudCwgbGFuZXMsIHRyYW5zaXRpb25zKTsgLy8gVE9ETzogTW92ZSB0byBjb21taXRQYXNzaXZlTW91bnRFZmZlY3RzXG5cbiAge1xuICAgIHZhciBwcm9maWxlckVmZmVjdHMgPSBwZW5kaW5nUGFzc2l2ZVByb2ZpbGVyRWZmZWN0cztcbiAgICBwZW5kaW5nUGFzc2l2ZVByb2ZpbGVyRWZmZWN0cyA9IFtdO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9maWxlckVmZmVjdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBfZmliZXIgPSBwcm9maWxlckVmZmVjdHNbaV07XG4gICAgICBjb21taXRQYXNzaXZlRWZmZWN0RHVyYXRpb25zKHJvb3QsIF9maWJlcik7XG4gICAgfVxuICB9XG5cbiAge1xuICAgIG1hcmtQYXNzaXZlRWZmZWN0c1N0b3BwZWQoKTtcbiAgfVxuXG4gIHtcbiAgICBjb21taXREb3VibGVJbnZva2VFZmZlY3RzSW5ERVYocm9vdC5jdXJyZW50LCB0cnVlKTtcbiAgfVxuXG4gIGV4ZWN1dGlvbkNvbnRleHQgPSBwcmV2RXhlY3V0aW9uQ29udGV4dDtcbiAgZmx1c2hTeW5jQ2FsbGJhY2tzKCk7XG5cbiAge1xuICAgIC8vIElmIGFkZGl0aW9uYWwgcGFzc2l2ZSBlZmZlY3RzIHdlcmUgc2NoZWR1bGVkLCBpbmNyZW1lbnQgYSBjb3VudGVyLiBJZiB0aGlzXG4gICAgLy8gZXhjZWVkcyB0aGUgbGltaXQsIHdlJ2xsIGZpcmUgYSB3YXJuaW5nLlxuICAgIGlmIChkaWRTY2hlZHVsZVVwZGF0ZUR1cmluZ1Bhc3NpdmVFZmZlY3RzKSB7XG4gICAgICBpZiAocm9vdCA9PT0gcm9vdFdpdGhQYXNzaXZlTmVzdGVkVXBkYXRlcykge1xuICAgICAgICBuZXN0ZWRQYXNzaXZlVXBkYXRlQ291bnQrKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCA9IDA7XG4gICAgICAgIHJvb3RXaXRoUGFzc2l2ZU5lc3RlZFVwZGF0ZXMgPSByb290O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBuZXN0ZWRQYXNzaXZlVXBkYXRlQ291bnQgPSAwO1xuICAgIH1cblxuICAgIGlzRmx1c2hpbmdQYXNzaXZlRWZmZWN0cyA9IGZhbHNlO1xuICAgIGRpZFNjaGVkdWxlVXBkYXRlRHVyaW5nUGFzc2l2ZUVmZmVjdHMgPSBmYWxzZTtcbiAgfSAvLyBUT0RPOiBNb3ZlIHRvIGNvbW1pdFBhc3NpdmVNb3VudEVmZmVjdHNcblxuXG4gIG9uUG9zdENvbW1pdFJvb3Qocm9vdCk7XG5cbiAge1xuICAgIHZhciBzdGF0ZU5vZGUgPSByb290LmN1cnJlbnQuc3RhdGVOb2RlO1xuICAgIHN0YXRlTm9kZS5lZmZlY3REdXJhdGlvbiA9IDA7XG4gICAgc3RhdGVOb2RlLnBhc3NpdmVFZmZlY3REdXJhdGlvbiA9IDA7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gaXNBbHJlYWR5RmFpbGVkTGVnYWN5RXJyb3JCb3VuZGFyeShpbnN0YW5jZSkge1xuICByZXR1cm4gbGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQgIT09IG51bGwgJiYgbGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQuaGFzKGluc3RhbmNlKTtcbn1cbmZ1bmN0aW9uIG1hcmtMZWdhY3lFcnJvckJvdW5kYXJ5QXNGYWlsZWQoaW5zdGFuY2UpIHtcbiAgaWYgKGxlZ2FjeUVycm9yQm91bmRhcmllc1RoYXRBbHJlYWR5RmFpbGVkID09PSBudWxsKSB7XG4gICAgbGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQgPSBuZXcgU2V0KFtpbnN0YW5jZV0pO1xuICB9IGVsc2Uge1xuICAgIGxlZ2FjeUVycm9yQm91bmRhcmllc1RoYXRBbHJlYWR5RmFpbGVkLmFkZChpbnN0YW5jZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJlcGFyZVRvVGhyb3dVbmNhdWdodEVycm9yKGVycm9yKSB7XG4gIGlmICghaGFzVW5jYXVnaHRFcnJvcikge1xuICAgIGhhc1VuY2F1Z2h0RXJyb3IgPSB0cnVlO1xuICAgIGZpcnN0VW5jYXVnaHRFcnJvciA9IGVycm9yO1xuICB9XG59XG5cbnZhciBvblVuY2F1Z2h0RXJyb3IgPSBwcmVwYXJlVG9UaHJvd1VuY2F1Z2h0RXJyb3I7XG5cbmZ1bmN0aW9uIGNhcHR1cmVDb21taXRQaGFzZUVycm9yT25Sb290KHJvb3RGaWJlciwgc291cmNlRmliZXIsIGVycm9yKSB7XG4gIHZhciBlcnJvckluZm8gPSBjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcihlcnJvciwgc291cmNlRmliZXIpO1xuICB2YXIgdXBkYXRlID0gY3JlYXRlUm9vdEVycm9yVXBkYXRlKHJvb3RGaWJlciwgZXJyb3JJbmZvLCBTeW5jTGFuZSk7XG4gIHZhciByb290ID0gZW5xdWV1ZVVwZGF0ZShyb290RmliZXIsIHVwZGF0ZSwgU3luY0xhbmUpO1xuICB2YXIgZXZlbnRUaW1lID0gcmVxdWVzdEV2ZW50VGltZSgpO1xuXG4gIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgbWFya1Jvb3RVcGRhdGVkKHJvb3QsIFN5bmNMYW5lLCBldmVudFRpbWUpO1xuICAgIGVuc3VyZVJvb3RJc1NjaGVkdWxlZChyb290LCBldmVudFRpbWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKHNvdXJjZUZpYmVyLCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLCBlcnJvciQxKSB7XG4gIHtcbiAgICByZXBvcnRVbmNhdWdodEVycm9ySW5ERVYoZXJyb3IkMSk7XG4gICAgc2V0SXNSdW5uaW5nSW5zZXJ0aW9uRWZmZWN0KGZhbHNlKTtcbiAgfVxuXG4gIGlmIChzb3VyY2VGaWJlci50YWcgPT09IEhvc3RSb290KSB7XG4gICAgLy8gRXJyb3Igd2FzIHRocm93biBhdCB0aGUgcm9vdC4gVGhlcmUgaXMgbm8gcGFyZW50LCBzbyB0aGUgcm9vdFxuICAgIC8vIGl0c2VsZiBzaG91bGQgY2FwdHVyZSBpdC5cbiAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvck9uUm9vdChzb3VyY2VGaWJlciwgc291cmNlRmliZXIsIGVycm9yJDEpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBmaWJlciA9IG51bGw7XG5cbiAge1xuICAgIGZpYmVyID0gbmVhcmVzdE1vdW50ZWRBbmNlc3RvcjtcbiAgfVxuXG4gIHdoaWxlIChmaWJlciAhPT0gbnVsbCkge1xuICAgIGlmIChmaWJlci50YWcgPT09IEhvc3RSb290KSB7XG4gICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvck9uUm9vdChmaWJlciwgc291cmNlRmliZXIsIGVycm9yJDEpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSBpZiAoZmliZXIudGFnID09PSBDbGFzc0NvbXBvbmVudCkge1xuICAgICAgdmFyIGN0b3IgPSBmaWJlci50eXBlO1xuICAgICAgdmFyIGluc3RhbmNlID0gZmliZXIuc3RhdGVOb2RlO1xuXG4gICAgICBpZiAodHlwZW9mIGN0b3IuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yID09PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnREaWRDYXRjaCA9PT0gJ2Z1bmN0aW9uJyAmJiAhaXNBbHJlYWR5RmFpbGVkTGVnYWN5RXJyb3JCb3VuZGFyeShpbnN0YW5jZSkpIHtcbiAgICAgICAgdmFyIGVycm9ySW5mbyA9IGNyZWF0ZUNhcHR1cmVkVmFsdWVBdEZpYmVyKGVycm9yJDEsIHNvdXJjZUZpYmVyKTtcbiAgICAgICAgdmFyIHVwZGF0ZSA9IGNyZWF0ZUNsYXNzRXJyb3JVcGRhdGUoZmliZXIsIGVycm9ySW5mbywgU3luY0xhbmUpO1xuICAgICAgICB2YXIgcm9vdCA9IGVucXVldWVVcGRhdGUoZmliZXIsIHVwZGF0ZSwgU3luY0xhbmUpO1xuICAgICAgICB2YXIgZXZlbnRUaW1lID0gcmVxdWVzdEV2ZW50VGltZSgpO1xuXG4gICAgICAgIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgICAgICAgbWFya1Jvb3RVcGRhdGVkKHJvb3QsIFN5bmNMYW5lLCBldmVudFRpbWUpO1xuICAgICAgICAgIGVuc3VyZVJvb3RJc1NjaGVkdWxlZChyb290LCBldmVudFRpbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZpYmVyID0gZmliZXIucmV0dXJuO1xuICB9XG5cbiAge1xuICAgIC8vIFRPRE86IFVudGlsIHdlIHJlLWxhbmQgc2tpcFVubW91bnRlZEJvdW5kYXJpZXMgKHNlZSAjMjAxNDcpLCB0aGlzIHdhcm5pbmdcbiAgICAvLyB3aWxsIGZpcmUgZm9yIGVycm9ycyB0aGF0IGFyZSB0aHJvd24gYnkgZGVzdHJveSBmdW5jdGlvbnMgaW5zaWRlIGRlbGV0ZWRcbiAgICAvLyB0cmVlcy4gV2hhdCBpdCBzaG91bGQgaW5zdGVhZCBkbyBpcyBwcm9wYWdhdGUgdGhlIGVycm9yIHRvIHRoZSBwYXJlbnQgb2ZcbiAgICAvLyB0aGUgZGVsZXRlZCB0cmVlLiBJbiB0aGUgbWVhbnRpbWUsIGRvIG5vdCBhZGQgdGhpcyB3YXJuaW5nIHRvIHRoZVxuICAgIC8vIGFsbG93bGlzdDsgdGhpcyBpcyBvbmx5IGZvciBvdXIgaW50ZXJuYWwgdXNlLlxuICAgIGVycm9yKCdJbnRlcm5hbCBSZWFjdCBlcnJvcjogQXR0ZW1wdGVkIHRvIGNhcHR1cmUgYSBjb21taXQgcGhhc2UgZXJyb3IgJyArICdpbnNpZGUgYSBkZXRhY2hlZCB0cmVlLiBUaGlzIGluZGljYXRlcyBhIGJ1ZyBpbiBSZWFjdC4gTGlrZWx5ICcgKyAnY2F1c2VzIGluY2x1ZGUgZGVsZXRpbmcgdGhlIHNhbWUgZmliZXIgbW9yZSB0aGFuIG9uY2UsIGNvbW1pdHRpbmcgYW4gJyArICdhbHJlYWR5LWZpbmlzaGVkIHRyZWUsIG9yIGFuIGluY29uc2lzdGVudCByZXR1cm4gcG9pbnRlci5cXG5cXG4nICsgJ0Vycm9yIG1lc3NhZ2U6XFxuXFxuJXMnLCBlcnJvciQxKTtcbiAgfVxufVxuZnVuY3Rpb24gcGluZ1N1c3BlbmRlZFJvb3Qocm9vdCwgd2FrZWFibGUsIHBpbmdlZExhbmVzKSB7XG4gIHZhciBwaW5nQ2FjaGUgPSByb290LnBpbmdDYWNoZTtcblxuICBpZiAocGluZ0NhY2hlICE9PSBudWxsKSB7XG4gICAgLy8gVGhlIHdha2VhYmxlIHJlc29sdmVkLCBzbyB3ZSBubyBsb25nZXIgbmVlZCB0byBtZW1vaXplLCBiZWNhdXNlIGl0IHdpbGxcbiAgICAvLyBuZXZlciBiZSB0aHJvd24gYWdhaW4uXG4gICAgcGluZ0NhY2hlLmRlbGV0ZSh3YWtlYWJsZSk7XG4gIH1cblxuICB2YXIgZXZlbnRUaW1lID0gcmVxdWVzdEV2ZW50VGltZSgpO1xuICBtYXJrUm9vdFBpbmdlZChyb290LCBwaW5nZWRMYW5lcyk7XG4gIHdhcm5JZlN1c3BlbnNlUmVzb2x1dGlvbk5vdFdyYXBwZWRXaXRoQWN0REVWKHJvb3QpO1xuXG4gIGlmICh3b3JrSW5Qcm9ncmVzc1Jvb3QgPT09IHJvb3QgJiYgaXNTdWJzZXRPZkxhbmVzKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzLCBwaW5nZWRMYW5lcykpIHtcbiAgICAvLyBSZWNlaXZlZCBhIHBpbmcgYXQgdGhlIHNhbWUgcHJpb3JpdHkgbGV2ZWwgYXQgd2hpY2ggd2UncmUgY3VycmVudGx5XG4gICAgLy8gcmVuZGVyaW5nLiBXZSBtaWdodCB3YW50IHRvIHJlc3RhcnQgdGhpcyByZW5kZXIuIFRoaXMgc2hvdWxkIG1pcnJvclxuICAgIC8vIHRoZSBsb2dpYyBvZiB3aGV0aGVyIG9yIG5vdCBhIHJvb3Qgc3VzcGVuZHMgb25jZSBpdCBjb21wbGV0ZXMuXG4gICAgLy8gVE9ETzogSWYgd2UncmUgcmVuZGVyaW5nIHN5bmMgZWl0aGVyIGR1ZSB0byBTeW5jLCBCYXRjaGVkIG9yIGV4cGlyZWQsXG4gICAgLy8gd2Ugc2hvdWxkIHByb2JhYmx5IG5ldmVyIHJlc3RhcnQuXG4gICAgLy8gSWYgd2UncmUgc3VzcGVuZGVkIHdpdGggZGVsYXksIG9yIGlmIGl0J3MgYSByZXRyeSwgd2UnbGwgYWx3YXlzIHN1c3BlbmRcbiAgICAvLyBzbyB3ZSBjYW4gYWx3YXlzIHJlc3RhcnQuXG4gICAgaWYgKHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPT09IFJvb3RTdXNwZW5kZWRXaXRoRGVsYXkgfHwgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9PT0gUm9vdFN1c3BlbmRlZCAmJiBpbmNsdWRlc09ubHlSZXRyaWVzKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzKSAmJiBub3coKSAtIGdsb2JhbE1vc3RSZWNlbnRGYWxsYmFja1RpbWUgPCBGQUxMQkFDS19USFJPVFRMRV9NUykge1xuICAgICAgLy8gUmVzdGFydCBmcm9tIHRoZSByb290LlxuICAgICAgcHJlcGFyZUZyZXNoU3RhY2socm9vdCwgTm9MYW5lcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEV2ZW4gdGhvdWdoIHdlIGNhbid0IHJlc3RhcnQgcmlnaHQgbm93LCB3ZSBtaWdodCBnZXQgYW5cbiAgICAgIC8vIG9wcG9ydHVuaXR5IGxhdGVyLiBTbyB3ZSBtYXJrIHRoaXMgcmVuZGVyIGFzIGhhdmluZyBhIHBpbmcuXG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RQaW5nZWRMYW5lcyA9IG1lcmdlTGFuZXMod29ya0luUHJvZ3Jlc3NSb290UGluZ2VkTGFuZXMsIHBpbmdlZExhbmVzKTtcbiAgICB9XG4gIH1cblxuICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCwgZXZlbnRUaW1lKTtcbn1cblxuZnVuY3Rpb24gcmV0cnlUaW1lZE91dEJvdW5kYXJ5KGJvdW5kYXJ5RmliZXIsIHJldHJ5TGFuZSkge1xuICAvLyBUaGUgYm91bmRhcnkgZmliZXIgKGEgU3VzcGVuc2UgY29tcG9uZW50IG9yIFN1c3BlbnNlTGlzdCBjb21wb25lbnQpXG4gIC8vIHByZXZpb3VzbHkgd2FzIHJlbmRlcmVkIGluIGl0cyBmYWxsYmFjayBzdGF0ZS4gT25lIG9mIHRoZSBwcm9taXNlcyB0aGF0XG4gIC8vIHN1c3BlbmRlZCBpdCBoYXMgcmVzb2x2ZWQsIHdoaWNoIG1lYW5zIGF0IGxlYXN0IHBhcnQgb2YgdGhlIHRyZWUgd2FzXG4gIC8vIGxpa2VseSB1bmJsb2NrZWQuIFRyeSByZW5kZXJpbmcgYWdhaW4sIGF0IGEgbmV3IGxhbmVzLlxuICBpZiAocmV0cnlMYW5lID09PSBOb0xhbmUpIHtcbiAgICAvLyBUT0RPOiBBc3NpZ24gdGhpcyB0byBgc3VzcGVuc2VTdGF0ZS5yZXRyeUxhbmVgPyB0byBhdm9pZFxuICAgIC8vIHVubmVjZXNzYXJ5IGVudGFuZ2xlbWVudD9cbiAgICByZXRyeUxhbmUgPSByZXF1ZXN0UmV0cnlMYW5lKGJvdW5kYXJ5RmliZXIpO1xuICB9IC8vIFRPRE86IFNwZWNpYWwgY2FzZSBpZGxlIHByaW9yaXR5P1xuXG5cbiAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgdmFyIHJvb3QgPSBlbnF1ZXVlQ29uY3VycmVudFJlbmRlckZvckxhbmUoYm91bmRhcnlGaWJlciwgcmV0cnlMYW5lKTtcblxuICBpZiAocm9vdCAhPT0gbnVsbCkge1xuICAgIG1hcmtSb290VXBkYXRlZChyb290LCByZXRyeUxhbmUsIGV2ZW50VGltZSk7XG4gICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QsIGV2ZW50VGltZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmV0cnlEZWh5ZHJhdGVkU3VzcGVuc2VCb3VuZGFyeShib3VuZGFyeUZpYmVyKSB7XG4gIHZhciBzdXNwZW5zZVN0YXRlID0gYm91bmRhcnlGaWJlci5tZW1vaXplZFN0YXRlO1xuICB2YXIgcmV0cnlMYW5lID0gTm9MYW5lO1xuXG4gIGlmIChzdXNwZW5zZVN0YXRlICE9PSBudWxsKSB7XG4gICAgcmV0cnlMYW5lID0gc3VzcGVuc2VTdGF0ZS5yZXRyeUxhbmU7XG4gIH1cblxuICByZXRyeVRpbWVkT3V0Qm91bmRhcnkoYm91bmRhcnlGaWJlciwgcmV0cnlMYW5lKTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVSZXRyeVdha2VhYmxlKGJvdW5kYXJ5RmliZXIsIHdha2VhYmxlKSB7XG4gIHZhciByZXRyeUxhbmUgPSBOb0xhbmU7IC8vIERlZmF1bHRcblxuICB2YXIgcmV0cnlDYWNoZTtcblxuICBzd2l0Y2ggKGJvdW5kYXJ5RmliZXIudGFnKSB7XG4gICAgY2FzZSBTdXNwZW5zZUNvbXBvbmVudDpcbiAgICAgIHJldHJ5Q2FjaGUgPSBib3VuZGFyeUZpYmVyLnN0YXRlTm9kZTtcbiAgICAgIHZhciBzdXNwZW5zZVN0YXRlID0gYm91bmRhcnlGaWJlci5tZW1vaXplZFN0YXRlO1xuXG4gICAgICBpZiAoc3VzcGVuc2VTdGF0ZSAhPT0gbnVsbCkge1xuICAgICAgICByZXRyeUxhbmUgPSBzdXNwZW5zZVN0YXRlLnJldHJ5TGFuZTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIFN1c3BlbnNlTGlzdENvbXBvbmVudDpcbiAgICAgIHJldHJ5Q2FjaGUgPSBib3VuZGFyeUZpYmVyLnN0YXRlTm9kZTtcbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcignUGluZ2VkIHVua25vd24gc3VzcGVuc2UgYm91bmRhcnkgdHlwZS4gJyArICdUaGlzIGlzIHByb2JhYmx5IGEgYnVnIGluIFJlYWN0LicpO1xuICB9XG5cbiAgaWYgKHJldHJ5Q2FjaGUgIT09IG51bGwpIHtcbiAgICAvLyBUaGUgd2FrZWFibGUgcmVzb2x2ZWQsIHNvIHdlIG5vIGxvbmdlciBuZWVkIHRvIG1lbW9pemUsIGJlY2F1c2UgaXQgd2lsbFxuICAgIC8vIG5ldmVyIGJlIHRocm93biBhZ2Fpbi5cbiAgICByZXRyeUNhY2hlLmRlbGV0ZSh3YWtlYWJsZSk7XG4gIH1cblxuICByZXRyeVRpbWVkT3V0Qm91bmRhcnkoYm91bmRhcnlGaWJlciwgcmV0cnlMYW5lKTtcbn0gLy8gQ29tcHV0ZXMgdGhlIG5leHQgSnVzdCBOb3RpY2VhYmxlIERpZmZlcmVuY2UgKEpORCkgYm91bmRhcnkuXG4vLyBUaGUgdGhlb3J5IGlzIHRoYXQgYSBwZXJzb24gY2FuJ3QgdGVsbCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHNtYWxsIGRpZmZlcmVuY2VzIGluIHRpbWUuXG4vLyBUaGVyZWZvcmUsIGlmIHdlIHdhaXQgYSBiaXQgbG9uZ2VyIHRoYW4gbmVjZXNzYXJ5IHRoYXQgd29uJ3QgdHJhbnNsYXRlIHRvIGEgbm90aWNlYWJsZVxuLy8gZGlmZmVyZW5jZSBpbiB0aGUgZXhwZXJpZW5jZS4gSG93ZXZlciwgd2FpdGluZyBmb3IgbG9uZ2VyIG1pZ2h0IG1lYW4gdGhhdCB3ZSBjYW4gYXZvaWRcbi8vIHNob3dpbmcgYW4gaW50ZXJtZWRpYXRlIGxvYWRpbmcgc3RhdGUuIFRoZSBsb25nZXIgd2UgaGF2ZSBhbHJlYWR5IHdhaXRlZCwgdGhlIGhhcmRlciBpdFxuLy8gaXMgdG8gdGVsbCBzbWFsbCBkaWZmZXJlbmNlcyBpbiB0aW1lLiBUaGVyZWZvcmUsIHRoZSBsb25nZXIgd2UndmUgYWxyZWFkeSB3YWl0ZWQsXG4vLyB0aGUgbG9uZ2VyIHdlIGNhbiB3YWl0IGFkZGl0aW9uYWxseS4gQXQgc29tZSBwb2ludCB3ZSBoYXZlIHRvIGdpdmUgdXAgdGhvdWdoLlxuLy8gV2UgcGljayBhIHRyYWluIG1vZGVsIHdoZXJlIHRoZSBuZXh0IGJvdW5kYXJ5IGNvbW1pdHMgYXQgYSBjb25zaXN0ZW50IHNjaGVkdWxlLlxuLy8gVGhlc2UgcGFydGljdWxhciBudW1iZXJzIGFyZSB2YWd1ZSBlc3RpbWF0ZXMuIFdlIGV4cGVjdCB0byBhZGp1c3QgdGhlbSBiYXNlZCBvbiByZXNlYXJjaC5cblxuZnVuY3Rpb24gam5kKHRpbWVFbGFwc2VkKSB7XG4gIHJldHVybiB0aW1lRWxhcHNlZCA8IDEyMCA/IDEyMCA6IHRpbWVFbGFwc2VkIDwgNDgwID8gNDgwIDogdGltZUVsYXBzZWQgPCAxMDgwID8gMTA4MCA6IHRpbWVFbGFwc2VkIDwgMTkyMCA/IDE5MjAgOiB0aW1lRWxhcHNlZCA8IDMwMDAgPyAzMDAwIDogdGltZUVsYXBzZWQgPCA0MzIwID8gNDMyMCA6IGNlaWwodGltZUVsYXBzZWQgLyAxOTYwKSAqIDE5NjA7XG59XG5cbmZ1bmN0aW9uIGNoZWNrRm9yTmVzdGVkVXBkYXRlcygpIHtcbiAgaWYgKG5lc3RlZFVwZGF0ZUNvdW50ID4gTkVTVEVEX1VQREFURV9MSU1JVCkge1xuICAgIG5lc3RlZFVwZGF0ZUNvdW50ID0gMDtcbiAgICByb290V2l0aE5lc3RlZFVwZGF0ZXMgPSBudWxsO1xuICAgIHRocm93IG5ldyBFcnJvcignTWF4aW11bSB1cGRhdGUgZGVwdGggZXhjZWVkZWQuIFRoaXMgY2FuIGhhcHBlbiB3aGVuIGEgY29tcG9uZW50ICcgKyAncmVwZWF0ZWRseSBjYWxscyBzZXRTdGF0ZSBpbnNpZGUgY29tcG9uZW50V2lsbFVwZGF0ZSBvciAnICsgJ2NvbXBvbmVudERpZFVwZGF0ZS4gUmVhY3QgbGltaXRzIHRoZSBudW1iZXIgb2YgbmVzdGVkIHVwZGF0ZXMgdG8gJyArICdwcmV2ZW50IGluZmluaXRlIGxvb3BzLicpO1xuICB9XG5cbiAge1xuICAgIGlmIChuZXN0ZWRQYXNzaXZlVXBkYXRlQ291bnQgPiBORVNURURfUEFTU0lWRV9VUERBVEVfTElNSVQpIHtcbiAgICAgIG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCA9IDA7XG4gICAgICByb290V2l0aFBhc3NpdmVOZXN0ZWRVcGRhdGVzID0gbnVsbDtcblxuICAgICAgZXJyb3IoJ01heGltdW0gdXBkYXRlIGRlcHRoIGV4Y2VlZGVkLiBUaGlzIGNhbiBoYXBwZW4gd2hlbiBhIGNvbXBvbmVudCAnICsgXCJjYWxscyBzZXRTdGF0ZSBpbnNpZGUgdXNlRWZmZWN0LCBidXQgdXNlRWZmZWN0IGVpdGhlciBkb2Vzbid0IFwiICsgJ2hhdmUgYSBkZXBlbmRlbmN5IGFycmF5LCBvciBvbmUgb2YgdGhlIGRlcGVuZGVuY2llcyBjaGFuZ2VzIG9uICcgKyAnZXZlcnkgcmVuZGVyLicpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBmbHVzaFJlbmRlclBoYXNlU3RyaWN0TW9kZVdhcm5pbmdzSW5ERVYoKSB7XG4gIHtcbiAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5mbHVzaExlZ2FjeUNvbnRleHRXYXJuaW5nKCk7XG5cbiAgICB7XG4gICAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5mbHVzaFBlbmRpbmdVbnNhZmVMaWZlY3ljbGVXYXJuaW5ncygpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjb21taXREb3VibGVJbnZva2VFZmZlY3RzSW5ERVYoZmliZXIsIGhhc1Bhc3NpdmVFZmZlY3RzKSB7XG4gIHtcbiAgICAvLyBUT0RPIChTdHJpY3RFZmZlY3RzKSBTaG91bGQgd2Ugc2V0IGEgbWFya2VyIG9uIHRoZSByb290IGlmIGl0IGNvbnRhaW5zIHN0cmljdCBlZmZlY3RzXG4gICAgLy8gc28gd2UgZG9uJ3QgdHJhdmVyc2UgdW5uZWNlc3NhcmlseT8gc2ltaWxhciB0byBzdWJ0cmVlRmxhZ3MgYnV0IGp1c3QgYXQgdGhlIHJvb3QgbGV2ZWwuXG4gICAgLy8gTWF5YmUgbm90IGEgYmlnIGRlYWwgc2luY2UgdGhpcyBpcyBERVYgb25seSBiZWhhdmlvci5cbiAgICBzZXRDdXJyZW50RmliZXIoZmliZXIpO1xuICAgIGludm9rZUVmZmVjdHNJbkRldihmaWJlciwgTW91bnRMYXlvdXREZXYsIGludm9rZUxheW91dEVmZmVjdFVubW91bnRJbkRFVik7XG5cbiAgICBpZiAoaGFzUGFzc2l2ZUVmZmVjdHMpIHtcbiAgICAgIGludm9rZUVmZmVjdHNJbkRldihmaWJlciwgTW91bnRQYXNzaXZlRGV2LCBpbnZva2VQYXNzaXZlRWZmZWN0VW5tb3VudEluREVWKTtcbiAgICB9XG5cbiAgICBpbnZva2VFZmZlY3RzSW5EZXYoZmliZXIsIE1vdW50TGF5b3V0RGV2LCBpbnZva2VMYXlvdXRFZmZlY3RNb3VudEluREVWKTtcblxuICAgIGlmIChoYXNQYXNzaXZlRWZmZWN0cykge1xuICAgICAgaW52b2tlRWZmZWN0c0luRGV2KGZpYmVyLCBNb3VudFBhc3NpdmVEZXYsIGludm9rZVBhc3NpdmVFZmZlY3RNb3VudEluREVWKTtcbiAgICB9XG5cbiAgICByZXNldEN1cnJlbnRGaWJlcigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGludm9rZUVmZmVjdHNJbkRldihmaXJzdENoaWxkLCBmaWJlckZsYWdzLCBpbnZva2VFZmZlY3RGbikge1xuICB7XG4gICAgLy8gV2UgZG9uJ3QgbmVlZCB0byByZS1jaGVjayBTdHJpY3RFZmZlY3RzTW9kZSBoZXJlLlxuICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgaWYgdGhhdCBjaGVjayBoYXMgYWxyZWFkeSBwYXNzZWQuXG4gICAgdmFyIGN1cnJlbnQgPSBmaXJzdENoaWxkO1xuICAgIHZhciBzdWJ0cmVlUm9vdCA9IG51bGw7XG5cbiAgICB3aGlsZSAoY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgdmFyIHByaW1hcnlTdWJ0cmVlRmxhZyA9IGN1cnJlbnQuc3VidHJlZUZsYWdzICYgZmliZXJGbGFncztcblxuICAgICAgaWYgKGN1cnJlbnQgIT09IHN1YnRyZWVSb290ICYmIGN1cnJlbnQuY2hpbGQgIT09IG51bGwgJiYgcHJpbWFyeVN1YnRyZWVGbGFnICE9PSBOb0ZsYWdzKSB7XG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LmNoaWxkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKChjdXJyZW50LmZsYWdzICYgZmliZXJGbGFncykgIT09IE5vRmxhZ3MpIHtcbiAgICAgICAgICBpbnZva2VFZmZlY3RGbihjdXJyZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjdXJyZW50LnNpYmxpbmcgIT09IG51bGwpIHtcbiAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5zaWJsaW5nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGN1cnJlbnQgPSBzdWJ0cmVlUm9vdCA9IGN1cnJlbnQucmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBkaWRXYXJuU3RhdGVVcGRhdGVGb3JOb3RZZXRNb3VudGVkQ29tcG9uZW50ID0gbnVsbDtcbmZ1bmN0aW9uIHdhcm5BYm91dFVwZGF0ZU9uTm90WWV0TW91bnRlZEZpYmVySW5ERVYoZmliZXIpIHtcbiAge1xuICAgIGlmICgoZXhlY3V0aW9uQ29udGV4dCAmIFJlbmRlckNvbnRleHQpICE9PSBOb0NvbnRleHQpIHtcbiAgICAgIC8vIFdlIGxldCB0aGUgb3RoZXIgd2FybmluZyBhYm91dCByZW5kZXIgcGhhc2UgdXBkYXRlcyBkZWFsIHdpdGggdGhpcyBvbmUuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCEoZmliZXIubW9kZSAmIENvbmN1cnJlbnRNb2RlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciB0YWcgPSBmaWJlci50YWc7XG5cbiAgICBpZiAodGFnICE9PSBJbmRldGVybWluYXRlQ29tcG9uZW50ICYmIHRhZyAhPT0gSG9zdFJvb3QgJiYgdGFnICE9PSBDbGFzc0NvbXBvbmVudCAmJiB0YWcgIT09IEZ1bmN0aW9uQ29tcG9uZW50ICYmIHRhZyAhPT0gRm9yd2FyZFJlZiAmJiB0YWcgIT09IE1lbW9Db21wb25lbnQgJiYgdGFnICE9PSBTaW1wbGVNZW1vQ29tcG9uZW50KSB7XG4gICAgICAvLyBPbmx5IHdhcm4gZm9yIHVzZXItZGVmaW5lZCBjb21wb25lbnRzLCBub3QgaW50ZXJuYWwgb25lcyBsaWtlIFN1c3BlbnNlLlxuICAgICAgcmV0dXJuO1xuICAgIH0gLy8gV2Ugc2hvdyB0aGUgd2hvbGUgc3RhY2sgYnV0IGRlZHVwZSBvbiB0aGUgdG9wIGNvbXBvbmVudCdzIG5hbWUgYmVjYXVzZVxuICAgIC8vIHRoZSBwcm9ibGVtYXRpYyBjb2RlIGFsbW9zdCBhbHdheXMgbGllcyBpbnNpZGUgdGhhdCBjb21wb25lbnQuXG5cblxuICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikgfHwgJ1JlYWN0Q29tcG9uZW50JztcblxuICAgIGlmIChkaWRXYXJuU3RhdGVVcGRhdGVGb3JOb3RZZXRNb3VudGVkQ29tcG9uZW50ICE9PSBudWxsKSB7XG4gICAgICBpZiAoZGlkV2FyblN0YXRlVXBkYXRlRm9yTm90WWV0TW91bnRlZENvbXBvbmVudC5oYXMoY29tcG9uZW50TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBkaWRXYXJuU3RhdGVVcGRhdGVGb3JOb3RZZXRNb3VudGVkQ29tcG9uZW50LmFkZChjb21wb25lbnROYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlkV2FyblN0YXRlVXBkYXRlRm9yTm90WWV0TW91bnRlZENvbXBvbmVudCA9IG5ldyBTZXQoW2NvbXBvbmVudE5hbWVdKTtcbiAgICB9XG5cbiAgICB2YXIgcHJldmlvdXNGaWJlciA9IGN1cnJlbnQ7XG5cbiAgICB0cnkge1xuICAgICAgc2V0Q3VycmVudEZpYmVyKGZpYmVyKTtcblxuICAgICAgZXJyb3IoXCJDYW4ndCBwZXJmb3JtIGEgUmVhY3Qgc3RhdGUgdXBkYXRlIG9uIGEgY29tcG9uZW50IHRoYXQgaGFzbid0IG1vdW50ZWQgeWV0LiBcIiArICdUaGlzIGluZGljYXRlcyB0aGF0IHlvdSBoYXZlIGEgc2lkZS1lZmZlY3QgaW4geW91ciByZW5kZXIgZnVuY3Rpb24gdGhhdCAnICsgJ2FzeW5jaHJvbm91c2x5IGxhdGVyIGNhbGxzIHRyaWVzIHRvIHVwZGF0ZSB0aGUgY29tcG9uZW50LiBNb3ZlIHRoaXMgd29yayB0byAnICsgJ3VzZUVmZmVjdCBpbnN0ZWFkLicpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAocHJldmlvdXNGaWJlcikge1xuICAgICAgICBzZXRDdXJyZW50RmliZXIoZmliZXIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzZXRDdXJyZW50RmliZXIoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbnZhciBiZWdpbldvcmskMTtcblxue1xuICB2YXIgZHVtbXlGaWJlciA9IG51bGw7XG5cbiAgYmVnaW5Xb3JrJDEgPSBmdW5jdGlvbiAoY3VycmVudCwgdW5pdE9mV29yaywgbGFuZXMpIHtcbiAgICAvLyBJZiBhIGNvbXBvbmVudCB0aHJvd3MgYW4gZXJyb3IsIHdlIHJlcGxheSBpdCBhZ2FpbiBpbiBhIHN5bmNocm9ub3VzbHlcbiAgICAvLyBkaXNwYXRjaGVkIGV2ZW50LCBzbyB0aGF0IHRoZSBkZWJ1Z2dlciB3aWxsIHRyZWF0IGl0IGFzIGFuIHVuY2F1Z2h0XG4gICAgLy8gZXJyb3IgU2VlIFJlYWN0RXJyb3JVdGlscyBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICAvLyBCZWZvcmUgZW50ZXJpbmcgdGhlIGJlZ2luIHBoYXNlLCBjb3B5IHRoZSB3b3JrLWluLXByb2dyZXNzIG9udG8gYSBkdW1teVxuICAgIC8vIGZpYmVyLiBJZiBiZWdpbldvcmsgdGhyb3dzLCB3ZSdsbCB1c2UgdGhpcyB0byByZXNldCB0aGUgc3RhdGUuXG4gICAgdmFyIG9yaWdpbmFsV29ya0luUHJvZ3Jlc3NDb3B5ID0gYXNzaWduRmliZXJQcm9wZXJ0aWVzSW5ERVYoZHVtbXlGaWJlciwgdW5pdE9mV29yayk7XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGJlZ2luV29yayhjdXJyZW50LCB1bml0T2ZXb3JrLCBsYW5lcyk7XG4gICAgfSBjYXRjaCAob3JpZ2luYWxFcnJvcikge1xuICAgICAgaWYgKGRpZFN1c3BlbmRPckVycm9yV2hpbGVIeWRyYXRpbmdERVYoKSB8fCBvcmlnaW5hbEVycm9yICE9PSBudWxsICYmIHR5cGVvZiBvcmlnaW5hbEVycm9yID09PSAnb2JqZWN0JyAmJiB0eXBlb2Ygb3JpZ2luYWxFcnJvci50aGVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIC8vIERvbid0IHJlcGxheSBwcm9taXNlcy5cbiAgICAgICAgLy8gRG9uJ3QgcmVwbGF5IGVycm9ycyBpZiB3ZSBhcmUgaHlkcmF0aW5nIGFuZCBoYXZlIGFscmVhZHkgc3VzcGVuZGVkIG9yIGhhbmRsZWQgYW4gZXJyb3JcbiAgICAgICAgdGhyb3cgb3JpZ2luYWxFcnJvcjtcbiAgICAgIH0gLy8gS2VlcCB0aGlzIGNvZGUgaW4gc3luYyB3aXRoIGhhbmRsZUVycm9yOyBhbnkgY2hhbmdlcyBoZXJlIG11c3QgaGF2ZVxuICAgICAgLy8gY29ycmVzcG9uZGluZyBjaGFuZ2VzIHRoZXJlLlxuXG5cbiAgICAgIHJlc2V0Q29udGV4dERlcGVuZGVuY2llcygpO1xuICAgICAgcmVzZXRIb29rc0FmdGVyVGhyb3coKTsgLy8gRG9uJ3QgcmVzZXQgY3VycmVudCBkZWJ1ZyBmaWJlciwgc2luY2Ugd2UncmUgYWJvdXQgdG8gd29yayBvbiB0aGVcbiAgICAgIC8vIHNhbWUgZmliZXIgYWdhaW4uXG4gICAgICAvLyBVbndpbmQgdGhlIGZhaWxlZCBzdGFjayBmcmFtZVxuXG4gICAgICB1bndpbmRJbnRlcnJ1cHRlZFdvcmsoY3VycmVudCwgdW5pdE9mV29yayk7IC8vIFJlc3RvcmUgdGhlIG9yaWdpbmFsIHByb3BlcnRpZXMgb2YgdGhlIGZpYmVyLlxuXG4gICAgICBhc3NpZ25GaWJlclByb3BlcnRpZXNJbkRFVih1bml0T2ZXb3JrLCBvcmlnaW5hbFdvcmtJblByb2dyZXNzQ29weSk7XG5cbiAgICAgIGlmICggdW5pdE9mV29yay5tb2RlICYgUHJvZmlsZU1vZGUpIHtcbiAgICAgICAgLy8gUmVzZXQgdGhlIHByb2ZpbGVyIHRpbWVyLlxuICAgICAgICBzdGFydFByb2ZpbGVyVGltZXIodW5pdE9mV29yayk7XG4gICAgICB9IC8vIFJ1biBiZWdpbldvcmsgYWdhaW4uXG5cblxuICAgICAgaW52b2tlR3VhcmRlZENhbGxiYWNrKG51bGwsIGJlZ2luV29yaywgbnVsbCwgY3VycmVudCwgdW5pdE9mV29yaywgbGFuZXMpO1xuXG4gICAgICBpZiAoaGFzQ2F1Z2h0RXJyb3IoKSkge1xuICAgICAgICB2YXIgcmVwbGF5RXJyb3IgPSBjbGVhckNhdWdodEVycm9yKCk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiByZXBsYXlFcnJvciA9PT0gJ29iamVjdCcgJiYgcmVwbGF5RXJyb3IgIT09IG51bGwgJiYgcmVwbGF5RXJyb3IuX3N1cHByZXNzTG9nZ2luZyAmJiB0eXBlb2Ygb3JpZ2luYWxFcnJvciA9PT0gJ29iamVjdCcgJiYgb3JpZ2luYWxFcnJvciAhPT0gbnVsbCAmJiAhb3JpZ2luYWxFcnJvci5fc3VwcHJlc3NMb2dnaW5nKSB7XG4gICAgICAgICAgLy8gSWYgc3VwcHJlc3NlZCwgbGV0IHRoZSBmbGFnIGNhcnJ5IG92ZXIgdG8gdGhlIG9yaWdpbmFsIGVycm9yIHdoaWNoIGlzIHRoZSBvbmUgd2UnbGwgcmV0aHJvdy5cbiAgICAgICAgICBvcmlnaW5hbEVycm9yLl9zdXBwcmVzc0xvZ2dpbmcgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IC8vIFdlIGFsd2F5cyB0aHJvdyB0aGUgb3JpZ2luYWwgZXJyb3IgaW4gY2FzZSB0aGUgc2Vjb25kIHJlbmRlciBwYXNzIGlzIG5vdCBpZGVtcG90ZW50LlxuICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIGEgbWVtb2l6ZWQgZnVuY3Rpb24gb3IgQ29tbW9uSlMgbW9kdWxlIGRvZXNuJ3QgdGhyb3cgYWZ0ZXIgZmlyc3QgaW52b2NhdGlvbi5cblxuXG4gICAgICB0aHJvdyBvcmlnaW5hbEVycm9yO1xuICAgIH1cbiAgfTtcbn1cblxudmFyIGRpZFdhcm5BYm91dFVwZGF0ZUluUmVuZGVyID0gZmFsc2U7XG52YXIgZGlkV2FybkFib3V0VXBkYXRlSW5SZW5kZXJGb3JBbm90aGVyQ29tcG9uZW50O1xuXG57XG4gIGRpZFdhcm5BYm91dFVwZGF0ZUluUmVuZGVyRm9yQW5vdGhlckNvbXBvbmVudCA9IG5ldyBTZXQoKTtcbn1cblxuZnVuY3Rpb24gd2FybkFib3V0UmVuZGVyUGhhc2VVcGRhdGVzSW5ERVYoZmliZXIpIHtcbiAge1xuICAgIGlmIChpc1JlbmRlcmluZyAmJiAhZ2V0SXNVcGRhdGluZ09wYXF1ZVZhbHVlSW5SZW5kZXJQaGFzZUluREVWKCkpIHtcbiAgICAgIHN3aXRjaCAoZmliZXIudGFnKSB7XG4gICAgICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHZhciByZW5kZXJpbmdDb21wb25lbnROYW1lID0gd29ya0luUHJvZ3Jlc3MgJiYgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcih3b3JrSW5Qcm9ncmVzcykgfHwgJ1Vua25vd24nOyAvLyBEZWR1cGUgYnkgdGhlIHJlbmRlcmluZyBjb21wb25lbnQgYmVjYXVzZSBpdCdzIHRoZSBvbmUgdGhhdCBuZWVkcyB0byBiZSBmaXhlZC5cblxuICAgICAgICAgICAgdmFyIGRlZHVwZUtleSA9IHJlbmRlcmluZ0NvbXBvbmVudE5hbWU7XG5cbiAgICAgICAgICAgIGlmICghZGlkV2FybkFib3V0VXBkYXRlSW5SZW5kZXJGb3JBbm90aGVyQ29tcG9uZW50LmhhcyhkZWR1cGVLZXkpKSB7XG4gICAgICAgICAgICAgIGRpZFdhcm5BYm91dFVwZGF0ZUluUmVuZGVyRm9yQW5vdGhlckNvbXBvbmVudC5hZGQoZGVkdXBlS2V5KTtcbiAgICAgICAgICAgICAgdmFyIHNldFN0YXRlQ29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8ICdVbmtub3duJztcblxuICAgICAgICAgICAgICBlcnJvcignQ2Fubm90IHVwZGF0ZSBhIGNvbXBvbmVudCAoYCVzYCkgd2hpbGUgcmVuZGVyaW5nIGEgJyArICdkaWZmZXJlbnQgY29tcG9uZW50IChgJXNgKS4gVG8gbG9jYXRlIHRoZSBiYWQgc2V0U3RhdGUoKSBjYWxsIGluc2lkZSBgJXNgLCAnICsgJ2ZvbGxvdyB0aGUgc3RhY2sgdHJhY2UgYXMgZGVzY3JpYmVkIGluIGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zZXRzdGF0ZS1pbi1yZW5kZXInLCBzZXRTdGF0ZUNvbXBvbmVudE5hbWUsIHJlbmRlcmluZ0NvbXBvbmVudE5hbWUsIHJlbmRlcmluZ0NvbXBvbmVudE5hbWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZiAoIWRpZFdhcm5BYm91dFVwZGF0ZUluUmVuZGVyKSB7XG4gICAgICAgICAgICAgIGVycm9yKCdDYW5ub3QgdXBkYXRlIGR1cmluZyBhbiBleGlzdGluZyBzdGF0ZSB0cmFuc2l0aW9uIChzdWNoIGFzICcgKyAnd2l0aGluIGByZW5kZXJgKS4gUmVuZGVyIG1ldGhvZHMgc2hvdWxkIGJlIGEgcHVyZSAnICsgJ2Z1bmN0aW9uIG9mIHByb3BzIGFuZCBzdGF0ZS4nKTtcblxuICAgICAgICAgICAgICBkaWRXYXJuQWJvdXRVcGRhdGVJblJlbmRlciA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzdG9yZVBlbmRpbmdVcGRhdGVycyhyb290LCBsYW5lcykge1xuICB7XG4gICAgaWYgKGlzRGV2VG9vbHNQcmVzZW50KSB7XG4gICAgICB2YXIgbWVtb2l6ZWRVcGRhdGVycyA9IHJvb3QubWVtb2l6ZWRVcGRhdGVycztcbiAgICAgIG1lbW9pemVkVXBkYXRlcnMuZm9yRWFjaChmdW5jdGlvbiAoc2NoZWR1bGluZ0ZpYmVyKSB7XG4gICAgICAgIGFkZEZpYmVyVG9MYW5lc01hcChyb290LCBzY2hlZHVsaW5nRmliZXIsIGxhbmVzKTtcbiAgICAgIH0pOyAvLyBUaGlzIGZ1bmN0aW9uIGludGVudGlvbmFsbHkgZG9lcyBub3QgY2xlYXIgbWVtb2l6ZWQgdXBkYXRlcnMuXG4gICAgICAvLyBUaG9zZSBtYXkgc3RpbGwgYmUgcmVsZXZhbnQgdG8gdGhlIGN1cnJlbnQgY29tbWl0XG4gICAgICAvLyBhbmQgYSBmdXR1cmUgb25lIChlLmcuIFN1c3BlbnNlKS5cbiAgICB9XG4gIH1cbn1cbnZhciBmYWtlQWN0Q2FsbGJhY2tOb2RlID0ge307XG5cbmZ1bmN0aW9uIHNjaGVkdWxlQ2FsbGJhY2skMShwcmlvcml0eUxldmVsLCBjYWxsYmFjaykge1xuICB7XG4gICAgLy8gSWYgd2UncmUgY3VycmVudGx5IGluc2lkZSBhbiBgYWN0YCBzY29wZSwgYnlwYXNzIFNjaGVkdWxlciBhbmQgcHVzaCB0b1xuICAgIC8vIHRoZSBgYWN0YCBxdWV1ZSBpbnN0ZWFkLlxuICAgIHZhciBhY3RRdWV1ZSA9IFJlYWN0Q3VycmVudEFjdFF1ZXVlJDEuY3VycmVudDtcblxuICAgIGlmIChhY3RRdWV1ZSAhPT0gbnVsbCkge1xuICAgICAgYWN0UXVldWUucHVzaChjYWxsYmFjayk7XG4gICAgICByZXR1cm4gZmFrZUFjdENhbGxiYWNrTm9kZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHNjaGVkdWxlQ2FsbGJhY2socHJpb3JpdHlMZXZlbCwgY2FsbGJhY2spO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjYW5jZWxDYWxsYmFjayQxKGNhbGxiYWNrTm9kZSkge1xuICBpZiAoIGNhbGxiYWNrTm9kZSA9PT0gZmFrZUFjdENhbGxiYWNrTm9kZSkge1xuICAgIHJldHVybjtcbiAgfSAvLyBJbiBwcm9kdWN0aW9uLCBhbHdheXMgY2FsbCBTY2hlZHVsZXIuIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBzdHJpcHBlZCBvdXQuXG5cblxuICByZXR1cm4gY2FuY2VsQ2FsbGJhY2soY2FsbGJhY2tOb2RlKTtcbn1cblxuZnVuY3Rpb24gc2hvdWxkRm9yY2VGbHVzaEZhbGxiYWNrc0luREVWKCkge1xuICAvLyBOZXZlciBmb3JjZSBmbHVzaCBpbiBwcm9kdWN0aW9uLiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBnZXQgc3RyaXBwZWQgb3V0LlxuICByZXR1cm4gIFJlYWN0Q3VycmVudEFjdFF1ZXVlJDEuY3VycmVudCAhPT0gbnVsbDtcbn1cblxuZnVuY3Rpb24gd2FybklmVXBkYXRlc05vdFdyYXBwZWRXaXRoQWN0REVWKGZpYmVyKSB7XG4gIHtcbiAgICBpZiAoZmliZXIubW9kZSAmIENvbmN1cnJlbnRNb2RlKSB7XG4gICAgICBpZiAoIWlzQ29uY3VycmVudEFjdEVudmlyb25tZW50KCkpIHtcbiAgICAgICAgLy8gTm90IGluIGFuIGFjdCBlbnZpcm9ubWVudC4gTm8gbmVlZCB0byB3YXJuLlxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIExlZ2FjeSBtb2RlIGhhcyBhZGRpdGlvbmFsIGNhc2VzIHdoZXJlIHdlIHN1cHByZXNzIGEgd2FybmluZy5cbiAgICAgIGlmICghaXNMZWdhY3lBY3RFbnZpcm9ubWVudCgpKSB7XG4gICAgICAgIC8vIE5vdCBpbiBhbiBhY3QgZW52aXJvbm1lbnQuIE5vIG5lZWQgdG8gd2Fybi5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXhlY3V0aW9uQ29udGV4dCAhPT0gTm9Db250ZXh0KSB7XG4gICAgICAgIC8vIExlZ2FjeSBtb2RlIGRvZXNuJ3Qgd2FybiBpZiB0aGUgdXBkYXRlIGlzIGJhdGNoZWQsIGkuZS5cbiAgICAgICAgLy8gYmF0Y2hlZFVwZGF0ZXMgb3IgZmx1c2hTeW5jLlxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChmaWJlci50YWcgIT09IEZ1bmN0aW9uQ29tcG9uZW50ICYmIGZpYmVyLnRhZyAhPT0gRm9yd2FyZFJlZiAmJiBmaWJlci50YWcgIT09IFNpbXBsZU1lbW9Db21wb25lbnQpIHtcbiAgICAgICAgLy8gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggcHJlLWhvb2tzIGNvZGUsIGxlZ2FjeSBtb2RlIG9ubHlcbiAgICAgICAgLy8gd2FybnMgZm9yIHVwZGF0ZXMgdGhhdCBvcmlnaW5hdGUgZnJvbSBhIGhvb2suXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoUmVhY3RDdXJyZW50QWN0UXVldWUkMS5jdXJyZW50ID09PSBudWxsKSB7XG4gICAgICB2YXIgcHJldmlvdXNGaWJlciA9IGN1cnJlbnQ7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHNldEN1cnJlbnRGaWJlcihmaWJlcik7XG5cbiAgICAgICAgZXJyb3IoJ0FuIHVwZGF0ZSB0byAlcyBpbnNpZGUgYSB0ZXN0IHdhcyBub3Qgd3JhcHBlZCBpbiBhY3QoLi4uKS5cXG5cXG4nICsgJ1doZW4gdGVzdGluZywgY29kZSB0aGF0IGNhdXNlcyBSZWFjdCBzdGF0ZSB1cGRhdGVzIHNob3VsZCBiZSAnICsgJ3dyYXBwZWQgaW50byBhY3QoLi4uKTpcXG5cXG4nICsgJ2FjdCgoKSA9PiB7XFxuJyArICcgIC8qIGZpcmUgZXZlbnRzIHRoYXQgdXBkYXRlIHN0YXRlICovXFxuJyArICd9KTtcXG4nICsgJy8qIGFzc2VydCBvbiB0aGUgb3V0cHV0ICovXFxuXFxuJyArIFwiVGhpcyBlbnN1cmVzIHRoYXQgeW91J3JlIHRlc3RpbmcgdGhlIGJlaGF2aW9yIHRoZSB1c2VyIHdvdWxkIHNlZSBcIiArICdpbiB0aGUgYnJvd3Nlci4nICsgJyBMZWFybiBtb3JlIGF0IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay93cmFwLXRlc3RzLXdpdGgtYWN0JywgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKHByZXZpb3VzRmliZXIpIHtcbiAgICAgICAgICBzZXRDdXJyZW50RmliZXIoZmliZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gd2FybklmU3VzcGVuc2VSZXNvbHV0aW9uTm90V3JhcHBlZFdpdGhBY3RERVYocm9vdCkge1xuICB7XG4gICAgaWYgKHJvb3QudGFnICE9PSBMZWdhY3lSb290ICYmIGlzQ29uY3VycmVudEFjdEVudmlyb25tZW50KCkgJiYgUmVhY3RDdXJyZW50QWN0UXVldWUkMS5jdXJyZW50ID09PSBudWxsKSB7XG4gICAgICBlcnJvcignQSBzdXNwZW5kZWQgcmVzb3VyY2UgZmluaXNoZWQgbG9hZGluZyBpbnNpZGUgYSB0ZXN0LCBidXQgdGhlIGV2ZW50ICcgKyAnd2FzIG5vdCB3cmFwcGVkIGluIGFjdCguLi4pLlxcblxcbicgKyAnV2hlbiB0ZXN0aW5nLCBjb2RlIHRoYXQgcmVzb2x2ZXMgc3VzcGVuZGVkIGRhdGEgc2hvdWxkIGJlIHdyYXBwZWQgJyArICdpbnRvIGFjdCguLi4pOlxcblxcbicgKyAnYWN0KCgpID0+IHtcXG4nICsgJyAgLyogZmluaXNoIGxvYWRpbmcgc3VzcGVuZGVkIGRhdGEgKi9cXG4nICsgJ30pO1xcbicgKyAnLyogYXNzZXJ0IG9uIHRoZSBvdXRwdXQgKi9cXG5cXG4nICsgXCJUaGlzIGVuc3VyZXMgdGhhdCB5b3UncmUgdGVzdGluZyB0aGUgYmVoYXZpb3IgdGhlIHVzZXIgd291bGQgc2VlIFwiICsgJ2luIHRoZSBicm93c2VyLicgKyAnIExlYXJuIG1vcmUgYXQgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3dyYXAtdGVzdHMtd2l0aC1hY3QnKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc2V0SXNSdW5uaW5nSW5zZXJ0aW9uRWZmZWN0KGlzUnVubmluZykge1xuICB7XG4gICAgaXNSdW5uaW5nSW5zZXJ0aW9uRWZmZWN0ID0gaXNSdW5uaW5nO1xuICB9XG59XG5cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWludGVybmFsL3Byb2QtZXJyb3ItY29kZXMgKi9cbnZhciByZXNvbHZlRmFtaWx5ID0gbnVsbDsgLy8gJEZsb3dGaXhNZSBGbG93IGdldHMgY29uZnVzZWQgYnkgYSBXZWFrU2V0IGZlYXR1cmUgY2hlY2sgYmVsb3cuXG5cbnZhciBmYWlsZWRCb3VuZGFyaWVzID0gbnVsbDtcbnZhciBzZXRSZWZyZXNoSGFuZGxlciA9IGZ1bmN0aW9uIChoYW5kbGVyKSB7XG4gIHtcbiAgICByZXNvbHZlRmFtaWx5ID0gaGFuZGxlcjtcbiAgfVxufTtcbmZ1bmN0aW9uIHJlc29sdmVGdW5jdGlvbkZvckhvdFJlbG9hZGluZyh0eXBlKSB7XG4gIHtcbiAgICBpZiAocmVzb2x2ZUZhbWlseSA9PT0gbnVsbCkge1xuICAgICAgLy8gSG90IHJlbG9hZGluZyBpcyBkaXNhYmxlZC5cbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cblxuICAgIHZhciBmYW1pbHkgPSByZXNvbHZlRmFtaWx5KHR5cGUpO1xuXG4gICAgaWYgKGZhbWlseSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHlwZTtcbiAgICB9IC8vIFVzZSB0aGUgbGF0ZXN0IGtub3duIGltcGxlbWVudGF0aW9uLlxuXG5cbiAgICByZXR1cm4gZmFtaWx5LmN1cnJlbnQ7XG4gIH1cbn1cbmZ1bmN0aW9uIHJlc29sdmVDbGFzc0ZvckhvdFJlbG9hZGluZyh0eXBlKSB7XG4gIC8vIE5vIGltcGxlbWVudGF0aW9uIGRpZmZlcmVuY2VzLlxuICByZXR1cm4gcmVzb2x2ZUZ1bmN0aW9uRm9ySG90UmVsb2FkaW5nKHR5cGUpO1xufVxuZnVuY3Rpb24gcmVzb2x2ZUZvcndhcmRSZWZGb3JIb3RSZWxvYWRpbmcodHlwZSkge1xuICB7XG4gICAgaWYgKHJlc29sdmVGYW1pbHkgPT09IG51bGwpIHtcbiAgICAgIC8vIEhvdCByZWxvYWRpbmcgaXMgZGlzYWJsZWQuXG4gICAgICByZXR1cm4gdHlwZTtcbiAgICB9XG5cbiAgICB2YXIgZmFtaWx5ID0gcmVzb2x2ZUZhbWlseSh0eXBlKTtcblxuICAgIGlmIChmYW1pbHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gQ2hlY2sgaWYgd2UncmUgZGVhbGluZyB3aXRoIGEgcmVhbCBmb3J3YXJkUmVmLiBEb24ndCB3YW50IHRvIGNyYXNoIGVhcmx5LlxuICAgICAgaWYgKHR5cGUgIT09IG51bGwgJiYgdHlwZSAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiB0eXBlLnJlbmRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBGb3J3YXJkUmVmIGlzIHNwZWNpYWwgYmVjYXVzZSBpdHMgcmVzb2x2ZWQgLnR5cGUgaXMgYW4gb2JqZWN0LFxuICAgICAgICAvLyBidXQgaXQncyBwb3NzaWJsZSB0aGF0IHdlIG9ubHkgaGF2ZSBpdHMgaW5uZXIgcmVuZGVyIGZ1bmN0aW9uIGluIHRoZSBtYXAuXG4gICAgICAgIC8vIElmIHRoYXQgaW5uZXIgcmVuZGVyIGZ1bmN0aW9uIGlzIGRpZmZlcmVudCwgd2UnbGwgYnVpbGQgYSBuZXcgZm9yd2FyZFJlZiB0eXBlLlxuICAgICAgICB2YXIgY3VycmVudFJlbmRlciA9IHJlc29sdmVGdW5jdGlvbkZvckhvdFJlbG9hZGluZyh0eXBlLnJlbmRlcik7XG5cbiAgICAgICAgaWYgKHR5cGUucmVuZGVyICE9PSBjdXJyZW50UmVuZGVyKSB7XG4gICAgICAgICAgdmFyIHN5bnRoZXRpY1R5cGUgPSB7XG4gICAgICAgICAgICAkJHR5cGVvZjogUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSxcbiAgICAgICAgICAgIHJlbmRlcjogY3VycmVudFJlbmRlclxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpZiAodHlwZS5kaXNwbGF5TmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzeW50aGV0aWNUeXBlLmRpc3BsYXlOYW1lID0gdHlwZS5kaXNwbGF5TmFtZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gc3ludGhldGljVHlwZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHlwZTtcbiAgICB9IC8vIFVzZSB0aGUgbGF0ZXN0IGtub3duIGltcGxlbWVudGF0aW9uLlxuXG5cbiAgICByZXR1cm4gZmFtaWx5LmN1cnJlbnQ7XG4gIH1cbn1cbmZ1bmN0aW9uIGlzQ29tcGF0aWJsZUZhbWlseUZvckhvdFJlbG9hZGluZyhmaWJlciwgZWxlbWVudCkge1xuICB7XG4gICAgaWYgKHJlc29sdmVGYW1pbHkgPT09IG51bGwpIHtcbiAgICAgIC8vIEhvdCByZWxvYWRpbmcgaXMgZGlzYWJsZWQuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgdmFyIHByZXZUeXBlID0gZmliZXIuZWxlbWVudFR5cGU7XG4gICAgdmFyIG5leHRUeXBlID0gZWxlbWVudC50eXBlOyAvLyBJZiB3ZSBnb3QgaGVyZSwgd2Uga25vdyB0eXBlcyBhcmVuJ3QgPT09IGVxdWFsLlxuXG4gICAgdmFyIG5lZWRzQ29tcGFyZUZhbWlsaWVzID0gZmFsc2U7XG4gICAgdmFyICQkdHlwZW9mTmV4dFR5cGUgPSB0eXBlb2YgbmV4dFR5cGUgPT09ICdvYmplY3QnICYmIG5leHRUeXBlICE9PSBudWxsID8gbmV4dFR5cGUuJCR0eXBlb2YgOiBudWxsO1xuXG4gICAgc3dpdGNoIChmaWJlci50YWcpIHtcbiAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgIHtcbiAgICAgICAgICBpZiAodHlwZW9mIG5leHRUeXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBuZWVkc0NvbXBhcmVGYW1pbGllcyA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBGdW5jdGlvbkNvbXBvbmVudDpcbiAgICAgICAge1xuICAgICAgICAgIGlmICh0eXBlb2YgbmV4dFR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIG5lZWRzQ29tcGFyZUZhbWlsaWVzID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKCQkdHlwZW9mTmV4dFR5cGUgPT09IFJFQUNUX0xBWllfVFlQRSkge1xuICAgICAgICAgICAgLy8gV2UgZG9uJ3Qga25vdyB0aGUgaW5uZXIgdHlwZSB5ZXQuXG4gICAgICAgICAgICAvLyBXZSdyZSBnb2luZyB0byBhc3N1bWUgdGhhdCB0aGUgbGF6eSBpbm5lciB0eXBlIGlzIHN0YWJsZSxcbiAgICAgICAgICAgIC8vIGFuZCBzbyBpdCBpcyBzdWZmaWNpZW50IHRvIGF2b2lkIHJlY29uY2lsaW5nIGl0IGF3YXkuXG4gICAgICAgICAgICAvLyBXZSdyZSBub3QgZ29pbmcgdG8gdW53cmFwIG9yIGFjdHVhbGx5IHVzZSB0aGUgbmV3IGxhenkgdHlwZS5cbiAgICAgICAgICAgIG5lZWRzQ29tcGFyZUZhbWlsaWVzID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIEZvcndhcmRSZWY6XG4gICAgICAgIHtcbiAgICAgICAgICBpZiAoJCR0eXBlb2ZOZXh0VHlwZSA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSkge1xuICAgICAgICAgICAgbmVlZHNDb21wYXJlRmFtaWxpZXMgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSBpZiAoJCR0eXBlb2ZOZXh0VHlwZSA9PT0gUkVBQ1RfTEFaWV9UWVBFKSB7XG4gICAgICAgICAgICBuZWVkc0NvbXBhcmVGYW1pbGllcyA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBNZW1vQ29tcG9uZW50OlxuICAgICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgICAgICB7XG4gICAgICAgICAgaWYgKCQkdHlwZW9mTmV4dFR5cGUgPT09IFJFQUNUX01FTU9fVFlQRSkge1xuICAgICAgICAgICAgLy8gVE9ETzogaWYgaXQgd2FzIGJ1dCBjYW4gbm8gbG9uZ2VyIGJlIHNpbXBsZSxcbiAgICAgICAgICAgIC8vIHdlIHNob3VsZG4ndCBzZXQgdGhpcy5cbiAgICAgICAgICAgIG5lZWRzQ29tcGFyZUZhbWlsaWVzID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKCQkdHlwZW9mTmV4dFR5cGUgPT09IFJFQUNUX0xBWllfVFlQRSkge1xuICAgICAgICAgICAgbmVlZHNDb21wYXJlRmFtaWxpZXMgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IC8vIENoZWNrIGlmIGJvdGggdHlwZXMgaGF2ZSBhIGZhbWlseSBhbmQgaXQncyB0aGUgc2FtZSBvbmUuXG5cblxuICAgIGlmIChuZWVkc0NvbXBhcmVGYW1pbGllcykge1xuICAgICAgLy8gTm90ZTogbWVtbygpIGFuZCBmb3J3YXJkUmVmKCkgd2UnbGwgY29tcGFyZSBvdXRlciByYXRoZXIgdGhhbiBpbm5lciB0eXBlLlxuICAgICAgLy8gVGhpcyBtZWFucyBib3RoIG9mIHRoZW0gbmVlZCB0byBiZSByZWdpc3RlcmVkIHRvIHByZXNlcnZlIHN0YXRlLlxuICAgICAgLy8gSWYgd2UgdW53cmFwcGVkIGFuZCBjb21wYXJlZCB0aGUgaW5uZXIgdHlwZXMgZm9yIHdyYXBwZXJzIGluc3RlYWQsXG4gICAgICAvLyB0aGVuIHdlIHdvdWxkIHJpc2sgZmFsc2VseSBzYXlpbmcgdHdvIHNlcGFyYXRlIG1lbW8oRm9vKVxuICAgICAgLy8gY2FsbHMgYXJlIGVxdWl2YWxlbnQgYmVjYXVzZSB0aGV5IHdyYXAgdGhlIHNhbWUgRm9vIGZ1bmN0aW9uLlxuICAgICAgdmFyIHByZXZGYW1pbHkgPSByZXNvbHZlRmFtaWx5KHByZXZUeXBlKTtcblxuICAgICAgaWYgKHByZXZGYW1pbHkgIT09IHVuZGVmaW5lZCAmJiBwcmV2RmFtaWx5ID09PSByZXNvbHZlRmFtaWx5KG5leHRUeXBlKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbmZ1bmN0aW9uIG1hcmtGYWlsZWRFcnJvckJvdW5kYXJ5Rm9ySG90UmVsb2FkaW5nKGZpYmVyKSB7XG4gIHtcbiAgICBpZiAocmVzb2x2ZUZhbWlseSA9PT0gbnVsbCkge1xuICAgICAgLy8gSG90IHJlbG9hZGluZyBpcyBkaXNhYmxlZC5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIFdlYWtTZXQgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZmFpbGVkQm91bmRhcmllcyA9PT0gbnVsbCkge1xuICAgICAgZmFpbGVkQm91bmRhcmllcyA9IG5ldyBXZWFrU2V0KCk7XG4gICAgfVxuXG4gICAgZmFpbGVkQm91bmRhcmllcy5hZGQoZmliZXIpO1xuICB9XG59XG52YXIgc2NoZWR1bGVSZWZyZXNoID0gZnVuY3Rpb24gKHJvb3QsIHVwZGF0ZSkge1xuICB7XG4gICAgaWYgKHJlc29sdmVGYW1pbHkgPT09IG51bGwpIHtcbiAgICAgIC8vIEhvdCByZWxvYWRpbmcgaXMgZGlzYWJsZWQuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIHN0YWxlRmFtaWxpZXMgPSB1cGRhdGUuc3RhbGVGYW1pbGllcyxcbiAgICAgICAgdXBkYXRlZEZhbWlsaWVzID0gdXBkYXRlLnVwZGF0ZWRGYW1pbGllcztcbiAgICBmbHVzaFBhc3NpdmVFZmZlY3RzKCk7XG4gICAgZmx1c2hTeW5jKGZ1bmN0aW9uICgpIHtcbiAgICAgIHNjaGVkdWxlRmliZXJzV2l0aEZhbWlsaWVzUmVjdXJzaXZlbHkocm9vdC5jdXJyZW50LCB1cGRhdGVkRmFtaWxpZXMsIHN0YWxlRmFtaWxpZXMpO1xuICAgIH0pO1xuICB9XG59O1xudmFyIHNjaGVkdWxlUm9vdCA9IGZ1bmN0aW9uIChyb290LCBlbGVtZW50KSB7XG4gIHtcbiAgICBpZiAocm9vdC5jb250ZXh0ICE9PSBlbXB0eUNvbnRleHRPYmplY3QpIHtcbiAgICAgIC8vIFN1cGVyIGVkZ2UgY2FzZTogcm9vdCBoYXMgYSBsZWdhY3kgX3JlbmRlclN1YnRyZWUgY29udGV4dFxuICAgICAgLy8gYnV0IHdlIGRvbid0IGtub3cgdGhlIHBhcmVudENvbXBvbmVudCBzbyB3ZSBjYW4ndCBwYXNzIGl0LlxuICAgICAgLy8gSnVzdCBpZ25vcmUuIFdlJ2xsIGRlbGV0ZSB0aGlzIHdpdGggX3JlbmRlclN1YnRyZWUgY29kZSBwYXRoIGxhdGVyLlxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKTtcbiAgICBmbHVzaFN5bmMoZnVuY3Rpb24gKCkge1xuICAgICAgdXBkYXRlQ29udGFpbmVyKGVsZW1lbnQsIHJvb3QsIG51bGwsIG51bGwpO1xuICAgIH0pO1xuICB9XG59O1xuXG5mdW5jdGlvbiBzY2hlZHVsZUZpYmVyc1dpdGhGYW1pbGllc1JlY3Vyc2l2ZWx5KGZpYmVyLCB1cGRhdGVkRmFtaWxpZXMsIHN0YWxlRmFtaWxpZXMpIHtcbiAge1xuICAgIHZhciBhbHRlcm5hdGUgPSBmaWJlci5hbHRlcm5hdGUsXG4gICAgICAgIGNoaWxkID0gZmliZXIuY2hpbGQsXG4gICAgICAgIHNpYmxpbmcgPSBmaWJlci5zaWJsaW5nLFxuICAgICAgICB0YWcgPSBmaWJlci50YWcsXG4gICAgICAgIHR5cGUgPSBmaWJlci50eXBlO1xuICAgIHZhciBjYW5kaWRhdGVUeXBlID0gbnVsbDtcblxuICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICBjYXNlIEZ1bmN0aW9uQ29tcG9uZW50OlxuICAgICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgICAgY2FuZGlkYXRlVHlwZSA9IHR5cGU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIEZvcndhcmRSZWY6XG4gICAgICAgIGNhbmRpZGF0ZVR5cGUgPSB0eXBlLnJlbmRlcjtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKHJlc29sdmVGYW1pbHkgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgcmVzb2x2ZUZhbWlseSB0byBiZSBzZXQgZHVyaW5nIGhvdCByZWxvYWQuJyk7XG4gICAgfVxuXG4gICAgdmFyIG5lZWRzUmVuZGVyID0gZmFsc2U7XG4gICAgdmFyIG5lZWRzUmVtb3VudCA9IGZhbHNlO1xuXG4gICAgaWYgKGNhbmRpZGF0ZVR5cGUgIT09IG51bGwpIHtcbiAgICAgIHZhciBmYW1pbHkgPSByZXNvbHZlRmFtaWx5KGNhbmRpZGF0ZVR5cGUpO1xuXG4gICAgICBpZiAoZmFtaWx5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHN0YWxlRmFtaWxpZXMuaGFzKGZhbWlseSkpIHtcbiAgICAgICAgICBuZWVkc1JlbW91bnQgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHVwZGF0ZWRGYW1pbGllcy5oYXMoZmFtaWx5KSkge1xuICAgICAgICAgIGlmICh0YWcgPT09IENsYXNzQ29tcG9uZW50KSB7XG4gICAgICAgICAgICBuZWVkc1JlbW91bnQgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZWVkc1JlbmRlciA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZhaWxlZEJvdW5kYXJpZXMgIT09IG51bGwpIHtcbiAgICAgIGlmIChmYWlsZWRCb3VuZGFyaWVzLmhhcyhmaWJlcikgfHwgYWx0ZXJuYXRlICE9PSBudWxsICYmIGZhaWxlZEJvdW5kYXJpZXMuaGFzKGFsdGVybmF0ZSkpIHtcbiAgICAgICAgbmVlZHNSZW1vdW50ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobmVlZHNSZW1vdW50KSB7XG4gICAgICBmaWJlci5fZGVidWdOZWVkc1JlbW91bnQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChuZWVkc1JlbW91bnQgfHwgbmVlZHNSZW5kZXIpIHtcbiAgICAgIHZhciBfcm9vdCA9IGVucXVldWVDb25jdXJyZW50UmVuZGVyRm9yTGFuZShmaWJlciwgU3luY0xhbmUpO1xuXG4gICAgICBpZiAoX3Jvb3QgIT09IG51bGwpIHtcbiAgICAgICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKF9yb290LCBmaWJlciwgU3luY0xhbmUsIE5vVGltZXN0YW1wKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hpbGQgIT09IG51bGwgJiYgIW5lZWRzUmVtb3VudCkge1xuICAgICAgc2NoZWR1bGVGaWJlcnNXaXRoRmFtaWxpZXNSZWN1cnNpdmVseShjaGlsZCwgdXBkYXRlZEZhbWlsaWVzLCBzdGFsZUZhbWlsaWVzKTtcbiAgICB9XG5cbiAgICBpZiAoc2libGluZyAhPT0gbnVsbCkge1xuICAgICAgc2NoZWR1bGVGaWJlcnNXaXRoRmFtaWxpZXNSZWN1cnNpdmVseShzaWJsaW5nLCB1cGRhdGVkRmFtaWxpZXMsIHN0YWxlRmFtaWxpZXMpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgZmluZEhvc3RJbnN0YW5jZXNGb3JSZWZyZXNoID0gZnVuY3Rpb24gKHJvb3QsIGZhbWlsaWVzKSB7XG4gIHtcbiAgICB2YXIgaG9zdEluc3RhbmNlcyA9IG5ldyBTZXQoKTtcbiAgICB2YXIgdHlwZXMgPSBuZXcgU2V0KGZhbWlsaWVzLm1hcChmdW5jdGlvbiAoZmFtaWx5KSB7XG4gICAgICByZXR1cm4gZmFtaWx5LmN1cnJlbnQ7XG4gICAgfSkpO1xuICAgIGZpbmRIb3N0SW5zdGFuY2VzRm9yTWF0Y2hpbmdGaWJlcnNSZWN1cnNpdmVseShyb290LmN1cnJlbnQsIHR5cGVzLCBob3N0SW5zdGFuY2VzKTtcbiAgICByZXR1cm4gaG9zdEluc3RhbmNlcztcbiAgfVxufTtcblxuZnVuY3Rpb24gZmluZEhvc3RJbnN0YW5jZXNGb3JNYXRjaGluZ0ZpYmVyc1JlY3Vyc2l2ZWx5KGZpYmVyLCB0eXBlcywgaG9zdEluc3RhbmNlcykge1xuICB7XG4gICAgdmFyIGNoaWxkID0gZmliZXIuY2hpbGQsXG4gICAgICAgIHNpYmxpbmcgPSBmaWJlci5zaWJsaW5nLFxuICAgICAgICB0YWcgPSBmaWJlci50YWcsXG4gICAgICAgIHR5cGUgPSBmaWJlci50eXBlO1xuICAgIHZhciBjYW5kaWRhdGVUeXBlID0gbnVsbDtcblxuICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICBjYXNlIEZ1bmN0aW9uQ29tcG9uZW50OlxuICAgICAgY2FzZSBTaW1wbGVNZW1vQ29tcG9uZW50OlxuICAgICAgY2FzZSBDbGFzc0NvbXBvbmVudDpcbiAgICAgICAgY2FuZGlkYXRlVHlwZSA9IHR5cGU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIEZvcndhcmRSZWY6XG4gICAgICAgIGNhbmRpZGF0ZVR5cGUgPSB0eXBlLnJlbmRlcjtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgdmFyIGRpZE1hdGNoID0gZmFsc2U7XG5cbiAgICBpZiAoY2FuZGlkYXRlVHlwZSAhPT0gbnVsbCkge1xuICAgICAgaWYgKHR5cGVzLmhhcyhjYW5kaWRhdGVUeXBlKSkge1xuICAgICAgICBkaWRNYXRjaCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRpZE1hdGNoKSB7XG4gICAgICAvLyBXZSBoYXZlIGEgbWF0Y2guIFRoaXMgb25seSBkcmlsbHMgZG93biB0byB0aGUgY2xvc2VzdCBob3N0IGNvbXBvbmVudHMuXG4gICAgICAvLyBUaGVyZSdzIG5vIG5lZWQgdG8gc2VhcmNoIGRlZXBlciBiZWNhdXNlIGZvciB0aGUgcHVycG9zZSBvZiBnaXZpbmdcbiAgICAgIC8vIHZpc3VhbCBmZWVkYmFjaywgXCJmbGFzaGluZ1wiIG91dGVybW9zdCBwYXJlbnQgcmVjdGFuZ2xlcyBpcyBzdWZmaWNpZW50LlxuICAgICAgZmluZEhvc3RJbnN0YW5jZXNGb3JGaWJlclNoYWxsb3dseShmaWJlciwgaG9zdEluc3RhbmNlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gbWF0Y2gsIG1heWJlIHRoZXJlIHdpbGwgYmUgb25lIGZ1cnRoZXIgZG93biBpbiB0aGUgY2hpbGQgdHJlZS5cbiAgICAgIGlmIChjaGlsZCAhPT0gbnVsbCkge1xuICAgICAgICBmaW5kSG9zdEluc3RhbmNlc0Zvck1hdGNoaW5nRmliZXJzUmVjdXJzaXZlbHkoY2hpbGQsIHR5cGVzLCBob3N0SW5zdGFuY2VzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc2libGluZyAhPT0gbnVsbCkge1xuICAgICAgZmluZEhvc3RJbnN0YW5jZXNGb3JNYXRjaGluZ0ZpYmVyc1JlY3Vyc2l2ZWx5KHNpYmxpbmcsIHR5cGVzLCBob3N0SW5zdGFuY2VzKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZEhvc3RJbnN0YW5jZXNGb3JGaWJlclNoYWxsb3dseShmaWJlciwgaG9zdEluc3RhbmNlcykge1xuICB7XG4gICAgdmFyIGZvdW5kSG9zdEluc3RhbmNlcyA9IGZpbmRDaGlsZEhvc3RJbnN0YW5jZXNGb3JGaWJlclNoYWxsb3dseShmaWJlciwgaG9zdEluc3RhbmNlcyk7XG5cbiAgICBpZiAoZm91bmRIb3N0SW5zdGFuY2VzKSB7XG4gICAgICByZXR1cm47XG4gICAgfSAvLyBJZiB3ZSBkaWRuJ3QgZmluZCBhbnkgaG9zdCBjaGlsZHJlbiwgZmFsbGJhY2sgdG8gY2xvc2VzdCBob3N0IHBhcmVudC5cblxuXG4gICAgdmFyIG5vZGUgPSBmaWJlcjtcblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBzd2l0Y2ggKG5vZGUudGFnKSB7XG4gICAgICAgIGNhc2UgSG9zdENvbXBvbmVudDpcbiAgICAgICAgICBob3N0SW5zdGFuY2VzLmFkZChub2RlLnN0YXRlTm9kZSk7XG4gICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGNhc2UgSG9zdFBvcnRhbDpcbiAgICAgICAgICBob3N0SW5zdGFuY2VzLmFkZChub2RlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTtcbiAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgY2FzZSBIb3N0Um9vdDpcbiAgICAgICAgICBob3N0SW5zdGFuY2VzLmFkZChub2RlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlLnJldHVybiA9PT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIHRvIHJlYWNoIHJvb3QgZmlyc3QuJyk7XG4gICAgICB9XG5cbiAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZmluZENoaWxkSG9zdEluc3RhbmNlc0ZvckZpYmVyU2hhbGxvd2x5KGZpYmVyLCBob3N0SW5zdGFuY2VzKSB7XG4gIHtcbiAgICB2YXIgbm9kZSA9IGZpYmVyO1xuICAgIHZhciBmb3VuZEhvc3RJbnN0YW5jZXMgPSBmYWxzZTtcblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICBpZiAobm9kZS50YWcgPT09IEhvc3RDb21wb25lbnQpIHtcbiAgICAgICAgLy8gV2UgZ290IGEgbWF0Y2guXG4gICAgICAgIGZvdW5kSG9zdEluc3RhbmNlcyA9IHRydWU7XG4gICAgICAgIGhvc3RJbnN0YW5jZXMuYWRkKG5vZGUuc3RhdGVOb2RlKTsgLy8gVGhlcmUgbWF5IHN0aWxsIGJlIG1vcmUsIHNvIGtlZXAgc2VhcmNoaW5nLlxuICAgICAgfSBlbHNlIGlmIChub2RlLmNoaWxkICE9PSBudWxsKSB7XG4gICAgICAgIG5vZGUuY2hpbGQucmV0dXJuID0gbm9kZTtcbiAgICAgICAgbm9kZSA9IG5vZGUuY2hpbGQ7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAobm9kZSA9PT0gZmliZXIpIHtcbiAgICAgICAgcmV0dXJuIGZvdW5kSG9zdEluc3RhbmNlcztcbiAgICAgIH1cblxuICAgICAgd2hpbGUgKG5vZGUuc2libGluZyA9PT0gbnVsbCkge1xuICAgICAgICBpZiAobm9kZS5yZXR1cm4gPT09IG51bGwgfHwgbm9kZS5yZXR1cm4gPT09IGZpYmVyKSB7XG4gICAgICAgICAgcmV0dXJuIGZvdW5kSG9zdEluc3RhbmNlcztcbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICAgIH1cblxuICAgICAgbm9kZS5zaWJsaW5nLnJldHVybiA9IG5vZGUucmV0dXJuO1xuICAgICAgbm9kZSA9IG5vZGUuc2libGluZztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbnZhciBoYXNCYWRNYXBQb2x5ZmlsbDtcblxue1xuICBoYXNCYWRNYXBQb2x5ZmlsbCA9IGZhbHNlO1xuXG4gIHRyeSB7XG4gICAgdmFyIG5vbkV4dGVuc2libGVPYmplY3QgPSBPYmplY3QucHJldmVudEV4dGVuc2lvbnMoe30pO1xuICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLW5ldyAqL1xuXG4gICAgbmV3IE1hcChbW25vbkV4dGVuc2libGVPYmplY3QsIG51bGxdXSk7XG4gICAgbmV3IFNldChbbm9uRXh0ZW5zaWJsZU9iamVjdF0pO1xuICAgIC8qIGVzbGludC1lbmFibGUgbm8tbmV3ICovXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvLyBUT0RPOiBDb25zaWRlciB3YXJuaW5nIGFib3V0IGJhZCBwb2x5ZmlsbHNcbiAgICBoYXNCYWRNYXBQb2x5ZmlsbCA9IHRydWU7XG4gIH1cbn1cblxuZnVuY3Rpb24gRmliZXJOb2RlKHRhZywgcGVuZGluZ1Byb3BzLCBrZXksIG1vZGUpIHtcbiAgLy8gSW5zdGFuY2VcbiAgdGhpcy50YWcgPSB0YWc7XG4gIHRoaXMua2V5ID0ga2V5O1xuICB0aGlzLmVsZW1lbnRUeXBlID0gbnVsbDtcbiAgdGhpcy50eXBlID0gbnVsbDtcbiAgdGhpcy5zdGF0ZU5vZGUgPSBudWxsOyAvLyBGaWJlclxuXG4gIHRoaXMucmV0dXJuID0gbnVsbDtcbiAgdGhpcy5jaGlsZCA9IG51bGw7XG4gIHRoaXMuc2libGluZyA9IG51bGw7XG4gIHRoaXMuaW5kZXggPSAwO1xuICB0aGlzLnJlZiA9IG51bGw7XG4gIHRoaXMucGVuZGluZ1Byb3BzID0gcGVuZGluZ1Byb3BzO1xuICB0aGlzLm1lbW9pemVkUHJvcHMgPSBudWxsO1xuICB0aGlzLnVwZGF0ZVF1ZXVlID0gbnVsbDtcbiAgdGhpcy5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgdGhpcy5kZXBlbmRlbmNpZXMgPSBudWxsO1xuICB0aGlzLm1vZGUgPSBtb2RlOyAvLyBFZmZlY3RzXG5cbiAgdGhpcy5mbGFncyA9IE5vRmxhZ3M7XG4gIHRoaXMuc3VidHJlZUZsYWdzID0gTm9GbGFncztcbiAgdGhpcy5kZWxldGlvbnMgPSBudWxsO1xuICB0aGlzLmxhbmVzID0gTm9MYW5lcztcbiAgdGhpcy5jaGlsZExhbmVzID0gTm9MYW5lcztcbiAgdGhpcy5hbHRlcm5hdGUgPSBudWxsO1xuXG4gIHtcbiAgICAvLyBOb3RlOiBUaGUgZm9sbG93aW5nIGlzIGRvbmUgdG8gYXZvaWQgYSB2OCBwZXJmb3JtYW5jZSBjbGlmZi5cbiAgICAvL1xuICAgIC8vIEluaXRpYWxpemluZyB0aGUgZmllbGRzIGJlbG93IHRvIHNtaXMgYW5kIGxhdGVyIHVwZGF0aW5nIHRoZW0gd2l0aFxuICAgIC8vIGRvdWJsZSB2YWx1ZXMgd2lsbCBjYXVzZSBGaWJlcnMgdG8gZW5kIHVwIGhhdmluZyBzZXBhcmF0ZSBzaGFwZXMuXG4gICAgLy8gVGhpcyBiZWhhdmlvci9idWcgaGFzIHNvbWV0aGluZyB0byBkbyB3aXRoIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9uKCkuXG4gICAgLy8gRm9ydHVuYXRlbHkgdGhpcyBvbmx5IGltcGFjdHMgREVWIGJ1aWxkcy5cbiAgICAvLyBVbmZvcnR1bmF0ZWx5IGl0IG1ha2VzIFJlYWN0IHVudXNhYmx5IHNsb3cgZm9yIHNvbWUgYXBwbGljYXRpb25zLlxuICAgIC8vIFRvIHdvcmsgYXJvdW5kIHRoaXMsIGluaXRpYWxpemUgdGhlIGZpZWxkcyBiZWxvdyB3aXRoIGRvdWJsZXMuXG4gICAgLy9cbiAgICAvLyBMZWFybiBtb3JlIGFib3V0IHRoaXMgaGVyZTpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzE0MzY1XG4gICAgLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9ODUzOFxuICAgIHRoaXMuYWN0dWFsRHVyYXRpb24gPSBOdW1iZXIuTmFOO1xuICAgIHRoaXMuYWN0dWFsU3RhcnRUaW1lID0gTnVtYmVyLk5hTjtcbiAgICB0aGlzLnNlbGZCYXNlRHVyYXRpb24gPSBOdW1iZXIuTmFOO1xuICAgIHRoaXMudHJlZUJhc2VEdXJhdGlvbiA9IE51bWJlci5OYU47IC8vIEl0J3Mgb2theSB0byByZXBsYWNlIHRoZSBpbml0aWFsIGRvdWJsZXMgd2l0aCBzbWlzIGFmdGVyIGluaXRpYWxpemF0aW9uLlxuICAgIC8vIFRoaXMgd29uJ3QgdHJpZ2dlciB0aGUgcGVyZm9ybWFuY2UgY2xpZmYgbWVudGlvbmVkIGFib3ZlLFxuICAgIC8vIGFuZCBpdCBzaW1wbGlmaWVzIG90aGVyIHByb2ZpbGVyIGNvZGUgKGluY2x1ZGluZyBEZXZUb29scykuXG5cbiAgICB0aGlzLmFjdHVhbER1cmF0aW9uID0gMDtcbiAgICB0aGlzLmFjdHVhbFN0YXJ0VGltZSA9IC0xO1xuICAgIHRoaXMuc2VsZkJhc2VEdXJhdGlvbiA9IDA7XG4gICAgdGhpcy50cmVlQmFzZUR1cmF0aW9uID0gMDtcbiAgfVxuXG4gIHtcbiAgICAvLyBUaGlzIGlzbid0IGRpcmVjdGx5IHVzZWQgYnV0IGlzIGhhbmR5IGZvciBkZWJ1Z2dpbmcgaW50ZXJuYWxzOlxuICAgIHRoaXMuX2RlYnVnU291cmNlID0gbnVsbDtcbiAgICB0aGlzLl9kZWJ1Z093bmVyID0gbnVsbDtcbiAgICB0aGlzLl9kZWJ1Z05lZWRzUmVtb3VudCA9IGZhbHNlO1xuICAgIHRoaXMuX2RlYnVnSG9va1R5cGVzID0gbnVsbDtcblxuICAgIGlmICghaGFzQmFkTWFwUG9seWZpbGwgJiYgdHlwZW9mIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHRoaXMpO1xuICAgIH1cbiAgfVxufSAvLyBUaGlzIGlzIGEgY29uc3RydWN0b3IgZnVuY3Rpb24sIHJhdGhlciB0aGFuIGEgUE9KTyBjb25zdHJ1Y3Rvciwgc3RpbGxcbi8vIHBsZWFzZSBlbnN1cmUgd2UgZG8gdGhlIGZvbGxvd2luZzpcbi8vIDEpIE5vYm9keSBzaG91bGQgYWRkIGFueSBpbnN0YW5jZSBtZXRob2RzIG9uIHRoaXMuIEluc3RhbmNlIG1ldGhvZHMgY2FuIGJlXG4vLyAgICBtb3JlIGRpZmZpY3VsdCB0byBwcmVkaWN0IHdoZW4gdGhleSBnZXQgb3B0aW1pemVkIGFuZCB0aGV5IGFyZSBhbG1vc3Rcbi8vICAgIG5ldmVyIGlubGluZWQgcHJvcGVybHkgaW4gc3RhdGljIGNvbXBpbGVycy5cbi8vIDIpIE5vYm9keSBzaG91bGQgcmVseSBvbiBgaW5zdGFuY2VvZiBGaWJlcmAgZm9yIHR5cGUgdGVzdGluZy4gV2Ugc2hvdWxkXG4vLyAgICBhbHdheXMga25vdyB3aGVuIGl0IGlzIGEgZmliZXIuXG4vLyAzKSBXZSBtaWdodCB3YW50IHRvIGV4cGVyaW1lbnQgd2l0aCB1c2luZyBudW1lcmljIGtleXMgc2luY2UgdGhleSBhcmUgZWFzaWVyXG4vLyAgICB0byBvcHRpbWl6ZSBpbiBhIG5vbi1KSVQgZW52aXJvbm1lbnQuXG4vLyA0KSBXZSBjYW4gZWFzaWx5IGdvIGZyb20gYSBjb25zdHJ1Y3RvciB0byBhIGNyZWF0ZUZpYmVyIG9iamVjdCBsaXRlcmFsIGlmIHRoYXRcbi8vICAgIGlzIGZhc3Rlci5cbi8vIDUpIEl0IHNob3VsZCBiZSBlYXN5IHRvIHBvcnQgdGhpcyB0byBhIEMgc3RydWN0IGFuZCBrZWVwIGEgQyBpbXBsZW1lbnRhdGlvblxuLy8gICAgY29tcGF0aWJsZS5cblxuXG52YXIgY3JlYXRlRmliZXIgPSBmdW5jdGlvbiAodGFnLCBwZW5kaW5nUHJvcHMsIGtleSwgbW9kZSkge1xuICAvLyAkRmxvd0ZpeE1lOiB0aGUgc2hhcGVzIGFyZSBleGFjdCBoZXJlIGJ1dCBGbG93IGRvZXNuJ3QgbGlrZSBjb25zdHJ1Y3RvcnNcbiAgcmV0dXJuIG5ldyBGaWJlck5vZGUodGFnLCBwZW5kaW5nUHJvcHMsIGtleSwgbW9kZSk7XG59O1xuXG5mdW5jdGlvbiBzaG91bGRDb25zdHJ1Y3QkMShDb21wb25lbnQpIHtcbiAgdmFyIHByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7XG4gIHJldHVybiAhIShwcm90b3R5cGUgJiYgcHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQpO1xufVxuXG5mdW5jdGlvbiBpc1NpbXBsZUZ1bmN0aW9uQ29tcG9uZW50KHR5cGUpIHtcbiAgcmV0dXJuIHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nICYmICFzaG91bGRDb25zdHJ1Y3QkMSh0eXBlKSAmJiB0eXBlLmRlZmF1bHRQcm9wcyA9PT0gdW5kZWZpbmVkO1xufVxuZnVuY3Rpb24gcmVzb2x2ZUxhenlDb21wb25lbnRUYWcoQ29tcG9uZW50KSB7XG4gIGlmICh0eXBlb2YgQ29tcG9uZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHNob3VsZENvbnN0cnVjdCQxKENvbXBvbmVudCkgPyBDbGFzc0NvbXBvbmVudCA6IEZ1bmN0aW9uQ29tcG9uZW50O1xuICB9IGVsc2UgaWYgKENvbXBvbmVudCAhPT0gdW5kZWZpbmVkICYmIENvbXBvbmVudCAhPT0gbnVsbCkge1xuICAgIHZhciAkJHR5cGVvZiA9IENvbXBvbmVudC4kJHR5cGVvZjtcblxuICAgIGlmICgkJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSkge1xuICAgICAgcmV0dXJuIEZvcndhcmRSZWY7XG4gICAgfVxuXG4gICAgaWYgKCQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUpIHtcbiAgICAgIHJldHVybiBNZW1vQ29tcG9uZW50O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBJbmRldGVybWluYXRlQ29tcG9uZW50O1xufSAvLyBUaGlzIGlzIHVzZWQgdG8gY3JlYXRlIGFuIGFsdGVybmF0ZSBmaWJlciB0byBkbyB3b3JrIG9uLlxuXG5mdW5jdGlvbiBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhjdXJyZW50LCBwZW5kaW5nUHJvcHMpIHtcbiAgdmFyIHdvcmtJblByb2dyZXNzID0gY3VycmVudC5hbHRlcm5hdGU7XG5cbiAgaWYgKHdvcmtJblByb2dyZXNzID09PSBudWxsKSB7XG4gICAgLy8gV2UgdXNlIGEgZG91YmxlIGJ1ZmZlcmluZyBwb29saW5nIHRlY2huaXF1ZSBiZWNhdXNlIHdlIGtub3cgdGhhdCB3ZSdsbFxuICAgIC8vIG9ubHkgZXZlciBuZWVkIGF0IG1vc3QgdHdvIHZlcnNpb25zIG9mIGEgdHJlZS4gV2UgcG9vbCB0aGUgXCJvdGhlclwiIHVudXNlZFxuICAgIC8vIG5vZGUgdGhhdCB3ZSdyZSBmcmVlIHRvIHJldXNlLiBUaGlzIGlzIGxhemlseSBjcmVhdGVkIHRvIGF2b2lkIGFsbG9jYXRpbmdcbiAgICAvLyBleHRyYSBvYmplY3RzIGZvciB0aGluZ3MgdGhhdCBhcmUgbmV2ZXIgdXBkYXRlZC4gSXQgYWxzbyBhbGxvdyB1cyB0b1xuICAgIC8vIHJlY2xhaW0gdGhlIGV4dHJhIG1lbW9yeSBpZiBuZWVkZWQuXG4gICAgd29ya0luUHJvZ3Jlc3MgPSBjcmVhdGVGaWJlcihjdXJyZW50LnRhZywgcGVuZGluZ1Byb3BzLCBjdXJyZW50LmtleSwgY3VycmVudC5tb2RlKTtcbiAgICB3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSA9IGN1cnJlbnQuZWxlbWVudFR5cGU7XG4gICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IGN1cnJlbnQudHlwZTtcbiAgICB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPSBjdXJyZW50LnN0YXRlTm9kZTtcblxuICAgIHtcbiAgICAgIC8vIERFVi1vbmx5IGZpZWxkc1xuICAgICAgd29ya0luUHJvZ3Jlc3MuX2RlYnVnU291cmNlID0gY3VycmVudC5fZGVidWdTb3VyY2U7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5fZGVidWdPd25lciA9IGN1cnJlbnQuX2RlYnVnT3duZXI7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5fZGVidWdIb29rVHlwZXMgPSBjdXJyZW50Ll9kZWJ1Z0hvb2tUeXBlcztcbiAgICB9XG5cbiAgICB3b3JrSW5Qcm9ncmVzcy5hbHRlcm5hdGUgPSBjdXJyZW50O1xuICAgIGN1cnJlbnQuYWx0ZXJuYXRlID0gd29ya0luUHJvZ3Jlc3M7XG4gIH0gZWxzZSB7XG4gICAgd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzID0gcGVuZGluZ1Byb3BzOyAvLyBOZWVkZWQgYmVjYXVzZSBCbG9ja3Mgc3RvcmUgZGF0YSBvbiB0eXBlLlxuXG4gICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IGN1cnJlbnQudHlwZTsgLy8gV2UgYWxyZWFkeSBoYXZlIGFuIGFsdGVybmF0ZS5cbiAgICAvLyBSZXNldCB0aGUgZWZmZWN0IHRhZy5cblxuICAgIHdvcmtJblByb2dyZXNzLmZsYWdzID0gTm9GbGFnczsgLy8gVGhlIGVmZmVjdHMgYXJlIG5vIGxvbmdlciB2YWxpZC5cblxuICAgIHdvcmtJblByb2dyZXNzLnN1YnRyZWVGbGFncyA9IE5vRmxhZ3M7XG4gICAgd29ya0luUHJvZ3Jlc3MuZGVsZXRpb25zID0gbnVsbDtcblxuICAgIHtcbiAgICAgIC8vIFdlIGludGVudGlvbmFsbHkgcmVzZXQsIHJhdGhlciB0aGFuIGNvcHksIGFjdHVhbER1cmF0aW9uICYgYWN0dWFsU3RhcnRUaW1lLlxuICAgICAgLy8gVGhpcyBwcmV2ZW50cyB0aW1lIGZyb20gZW5kbGVzc2x5IGFjY3VtdWxhdGluZyBpbiBuZXcgY29tbWl0cy5cbiAgICAgIC8vIFRoaXMgaGFzIHRoZSBkb3duc2lkZSBvZiByZXNldHRpbmcgdmFsdWVzIGZvciBkaWZmZXJlbnQgcHJpb3JpdHkgcmVuZGVycyxcbiAgICAgIC8vIEJ1dCB3b3JrcyBmb3IgeWllbGRpbmcgKHRoZSBjb21tb24gY2FzZSkgYW5kIHNob3VsZCBzdXBwb3J0IHJlc3VtaW5nLlxuICAgICAgd29ya0luUHJvZ3Jlc3MuYWN0dWFsRHVyYXRpb24gPSAwO1xuICAgICAgd29ya0luUHJvZ3Jlc3MuYWN0dWFsU3RhcnRUaW1lID0gLTE7XG4gICAgfVxuICB9IC8vIFJlc2V0IGFsbCBlZmZlY3RzIGV4Y2VwdCBzdGF0aWMgb25lcy5cbiAgLy8gU3RhdGljIGVmZmVjdHMgYXJlIG5vdCBzcGVjaWZpYyB0byBhIHJlbmRlci5cblxuXG4gIHdvcmtJblByb2dyZXNzLmZsYWdzID0gY3VycmVudC5mbGFncyAmIFN0YXRpY01hc2s7XG4gIHdvcmtJblByb2dyZXNzLmNoaWxkTGFuZXMgPSBjdXJyZW50LmNoaWxkTGFuZXM7XG4gIHdvcmtJblByb2dyZXNzLmxhbmVzID0gY3VycmVudC5sYW5lcztcbiAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBjdXJyZW50LmNoaWxkO1xuICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzID0gY3VycmVudC5tZW1vaXplZFByb3BzO1xuICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlO1xuICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IGN1cnJlbnQudXBkYXRlUXVldWU7IC8vIENsb25lIHRoZSBkZXBlbmRlbmNpZXMgb2JqZWN0LiBUaGlzIGlzIG11dGF0ZWQgZHVyaW5nIHRoZSByZW5kZXIgcGhhc2UsIHNvXG4gIC8vIGl0IGNhbm5vdCBiZSBzaGFyZWQgd2l0aCB0aGUgY3VycmVudCBmaWJlci5cblxuICB2YXIgY3VycmVudERlcGVuZGVuY2llcyA9IGN1cnJlbnQuZGVwZW5kZW5jaWVzO1xuICB3b3JrSW5Qcm9ncmVzcy5kZXBlbmRlbmNpZXMgPSBjdXJyZW50RGVwZW5kZW5jaWVzID09PSBudWxsID8gbnVsbCA6IHtcbiAgICBsYW5lczogY3VycmVudERlcGVuZGVuY2llcy5sYW5lcyxcbiAgICBmaXJzdENvbnRleHQ6IGN1cnJlbnREZXBlbmRlbmNpZXMuZmlyc3RDb250ZXh0XG4gIH07IC8vIFRoZXNlIHdpbGwgYmUgb3ZlcnJpZGRlbiBkdXJpbmcgdGhlIHBhcmVudCdzIHJlY29uY2lsaWF0aW9uXG5cbiAgd29ya0luUHJvZ3Jlc3Muc2libGluZyA9IGN1cnJlbnQuc2libGluZztcbiAgd29ya0luUHJvZ3Jlc3MuaW5kZXggPSBjdXJyZW50LmluZGV4O1xuICB3b3JrSW5Qcm9ncmVzcy5yZWYgPSBjdXJyZW50LnJlZjtcblxuICB7XG4gICAgd29ya0luUHJvZ3Jlc3Muc2VsZkJhc2VEdXJhdGlvbiA9IGN1cnJlbnQuc2VsZkJhc2VEdXJhdGlvbjtcbiAgICB3b3JrSW5Qcm9ncmVzcy50cmVlQmFzZUR1cmF0aW9uID0gY3VycmVudC50cmVlQmFzZUR1cmF0aW9uO1xuICB9XG5cbiAge1xuICAgIHdvcmtJblByb2dyZXNzLl9kZWJ1Z05lZWRzUmVtb3VudCA9IGN1cnJlbnQuX2RlYnVnTmVlZHNSZW1vdW50O1xuXG4gICAgc3dpdGNoICh3b3JrSW5Qcm9ncmVzcy50YWcpIHtcbiAgICAgIGNhc2UgSW5kZXRlcm1pbmF0ZUNvbXBvbmVudDpcbiAgICAgIGNhc2UgRnVuY3Rpb25Db21wb25lbnQ6XG4gICAgICBjYXNlIFNpbXBsZU1lbW9Db21wb25lbnQ6XG4gICAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUgPSByZXNvbHZlRnVuY3Rpb25Gb3JIb3RSZWxvYWRpbmcoY3VycmVudC50eXBlKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgQ2xhc3NDb21wb25lbnQ6XG4gICAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUgPSByZXNvbHZlQ2xhc3NGb3JIb3RSZWxvYWRpbmcoY3VycmVudC50eXBlKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgRm9yd2FyZFJlZjpcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IHJlc29sdmVGb3J3YXJkUmVmRm9ySG90UmVsb2FkaW5nKGN1cnJlbnQudHlwZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzcztcbn0gLy8gVXNlZCB0byByZXVzZSBhIEZpYmVyIGZvciBhIHNlY29uZCBwYXNzLlxuXG5mdW5jdGlvbiByZXNldFdvcmtJblByb2dyZXNzKHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICAvLyBUaGlzIHJlc2V0cyB0aGUgRmliZXIgdG8gd2hhdCBjcmVhdGVGaWJlciBvciBjcmVhdGVXb3JrSW5Qcm9ncmVzcyB3b3VsZFxuICAvLyBoYXZlIHNldCB0aGUgdmFsdWVzIHRvIGJlZm9yZSBkdXJpbmcgdGhlIGZpcnN0IHBhc3MuIElkZWFsbHkgdGhpcyB3b3VsZG4ndFxuICAvLyBiZSBuZWNlc3NhcnkgYnV0IHVuZm9ydHVuYXRlbHkgbWFueSBjb2RlIHBhdGhzIHJlYWRzIGZyb20gdGhlIHdvcmtJblByb2dyZXNzXG4gIC8vIHdoZW4gdGhleSBzaG91bGQgYmUgcmVhZGluZyBmcm9tIGN1cnJlbnQgYW5kIHdyaXRpbmcgdG8gd29ya0luUHJvZ3Jlc3MuXG4gIC8vIFdlIGFzc3VtZSBwZW5kaW5nUHJvcHMsIGluZGV4LCBrZXksIHJlZiwgcmV0dXJuIGFyZSBzdGlsbCB1bnRvdWNoZWQgdG9cbiAgLy8gYXZvaWQgZG9pbmcgYW5vdGhlciByZWNvbmNpbGlhdGlvbi5cbiAgLy8gUmVzZXQgdGhlIGVmZmVjdCBmbGFncyBidXQga2VlcCBhbnkgUGxhY2VtZW50IHRhZ3MsIHNpbmNlIHRoYXQncyBzb21ldGhpbmdcbiAgLy8gdGhhdCBjaGlsZCBmaWJlciBpcyBzZXR0aW5nLCBub3QgdGhlIHJlY29uY2lsaWF0aW9uLlxuICB3b3JrSW5Qcm9ncmVzcy5mbGFncyAmPSBTdGF0aWNNYXNrIHwgUGxhY2VtZW50OyAvLyBUaGUgZWZmZWN0cyBhcmUgbm8gbG9uZ2VyIHZhbGlkLlxuXG4gIHZhciBjdXJyZW50ID0gd29ya0luUHJvZ3Jlc3MuYWx0ZXJuYXRlO1xuXG4gIGlmIChjdXJyZW50ID09PSBudWxsKSB7XG4gICAgLy8gUmVzZXQgdG8gY3JlYXRlRmliZXIncyBpbml0aWFsIHZhbHVlcy5cbiAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZExhbmVzID0gTm9MYW5lcztcbiAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IHJlbmRlckxhbmVzO1xuICAgIHdvcmtJblByb2dyZXNzLmNoaWxkID0gbnVsbDtcbiAgICB3b3JrSW5Qcm9ncmVzcy5zdWJ0cmVlRmxhZ3MgPSBOb0ZsYWdzO1xuICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkUHJvcHMgPSBudWxsO1xuICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gbnVsbDtcbiAgICB3b3JrSW5Qcm9ncmVzcy5kZXBlbmRlbmNpZXMgPSBudWxsO1xuICAgIHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZSA9IG51bGw7XG5cbiAgICB7XG4gICAgICAvLyBOb3RlOiBXZSBkb24ndCByZXNldCB0aGUgYWN0dWFsVGltZSBjb3VudHMuIEl0J3MgdXNlZnVsIHRvIGFjY3VtdWxhdGVcbiAgICAgIC8vIGFjdHVhbCB0aW1lIGFjcm9zcyBtdWx0aXBsZSByZW5kZXIgcGFzc2VzLlxuICAgICAgd29ya0luUHJvZ3Jlc3Muc2VsZkJhc2VEdXJhdGlvbiA9IDA7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy50cmVlQmFzZUR1cmF0aW9uID0gMDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gUmVzZXQgdG8gdGhlIGNsb25lZCB2YWx1ZXMgdGhhdCBjcmVhdGVXb3JrSW5Qcm9ncmVzcyB3b3VsZCd2ZS5cbiAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZExhbmVzID0gY3VycmVudC5jaGlsZExhbmVzO1xuICAgIHdvcmtJblByb2dyZXNzLmxhbmVzID0gY3VycmVudC5sYW5lcztcbiAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IGN1cnJlbnQuY2hpbGQ7XG4gICAgd29ya0luUHJvZ3Jlc3Muc3VidHJlZUZsYWdzID0gTm9GbGFncztcbiAgICB3b3JrSW5Qcm9ncmVzcy5kZWxldGlvbnMgPSBudWxsO1xuICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkUHJvcHMgPSBjdXJyZW50Lm1lbW9pemVkUHJvcHM7XG4gICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcbiAgICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IGN1cnJlbnQudXBkYXRlUXVldWU7IC8vIE5lZWRlZCBiZWNhdXNlIEJsb2NrcyBzdG9yZSBkYXRhIG9uIHR5cGUuXG5cbiAgICB3b3JrSW5Qcm9ncmVzcy50eXBlID0gY3VycmVudC50eXBlOyAvLyBDbG9uZSB0aGUgZGVwZW5kZW5jaWVzIG9iamVjdC4gVGhpcyBpcyBtdXRhdGVkIGR1cmluZyB0aGUgcmVuZGVyIHBoYXNlLCBzb1xuICAgIC8vIGl0IGNhbm5vdCBiZSBzaGFyZWQgd2l0aCB0aGUgY3VycmVudCBmaWJlci5cblxuICAgIHZhciBjdXJyZW50RGVwZW5kZW5jaWVzID0gY3VycmVudC5kZXBlbmRlbmNpZXM7XG4gICAgd29ya0luUHJvZ3Jlc3MuZGVwZW5kZW5jaWVzID0gY3VycmVudERlcGVuZGVuY2llcyA9PT0gbnVsbCA/IG51bGwgOiB7XG4gICAgICBsYW5lczogY3VycmVudERlcGVuZGVuY2llcy5sYW5lcyxcbiAgICAgIGZpcnN0Q29udGV4dDogY3VycmVudERlcGVuZGVuY2llcy5maXJzdENvbnRleHRcbiAgICB9O1xuXG4gICAge1xuICAgICAgLy8gTm90ZTogV2UgZG9uJ3QgcmVzZXQgdGhlIGFjdHVhbFRpbWUgY291bnRzLiBJdCdzIHVzZWZ1bCB0byBhY2N1bXVsYXRlXG4gICAgICAvLyBhY3R1YWwgdGltZSBhY3Jvc3MgbXVsdGlwbGUgcmVuZGVyIHBhc3Nlcy5cbiAgICAgIHdvcmtJblByb2dyZXNzLnNlbGZCYXNlRHVyYXRpb24gPSBjdXJyZW50LnNlbGZCYXNlRHVyYXRpb247XG4gICAgICB3b3JrSW5Qcm9ncmVzcy50cmVlQmFzZUR1cmF0aW9uID0gY3VycmVudC50cmVlQmFzZUR1cmF0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB3b3JrSW5Qcm9ncmVzcztcbn1cbmZ1bmN0aW9uIGNyZWF0ZUhvc3RSb290RmliZXIodGFnLCBpc1N0cmljdE1vZGUsIGNvbmN1cnJlbnRVcGRhdGVzQnlEZWZhdWx0T3ZlcnJpZGUpIHtcbiAgdmFyIG1vZGU7XG5cbiAgaWYgKHRhZyA9PT0gQ29uY3VycmVudFJvb3QpIHtcbiAgICBtb2RlID0gQ29uY3VycmVudE1vZGU7XG5cbiAgICBpZiAoaXNTdHJpY3RNb2RlID09PSB0cnVlKSB7XG4gICAgICBtb2RlIHw9IFN0cmljdExlZ2FjeU1vZGU7XG5cbiAgICAgIHtcbiAgICAgICAgbW9kZSB8PSBTdHJpY3RFZmZlY3RzTW9kZTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbW9kZSA9IE5vTW9kZTtcbiAgfVxuXG4gIGlmICggaXNEZXZUb29sc1ByZXNlbnQpIHtcbiAgICAvLyBBbHdheXMgY29sbGVjdCBwcm9maWxlIHRpbWluZ3Mgd2hlbiBEZXZUb29scyBhcmUgcHJlc2VudC5cbiAgICAvLyBUaGlzIGVuYWJsZXMgRGV2VG9vbHMgdG8gc3RhcnQgY2FwdHVyaW5nIHRpbWluZyBhdCBhbnkgcG9pbnTigJNcbiAgICAvLyBXaXRob3V0IHNvbWUgbm9kZXMgaW4gdGhlIHRyZWUgaGF2aW5nIGVtcHR5IGJhc2UgdGltZXMuXG4gICAgbW9kZSB8PSBQcm9maWxlTW9kZTtcbiAgfVxuXG4gIHJldHVybiBjcmVhdGVGaWJlcihIb3N0Um9vdCwgbnVsbCwgbnVsbCwgbW9kZSk7XG59XG5mdW5jdGlvbiBjcmVhdGVGaWJlckZyb21UeXBlQW5kUHJvcHModHlwZSwgLy8gUmVhY3QkRWxlbWVudFR5cGVcbmtleSwgcGVuZGluZ1Byb3BzLCBvd25lciwgbW9kZSwgbGFuZXMpIHtcbiAgdmFyIGZpYmVyVGFnID0gSW5kZXRlcm1pbmF0ZUNvbXBvbmVudDsgLy8gVGhlIHJlc29sdmVkIHR5cGUgaXMgc2V0IGlmIHdlIGtub3cgd2hhdCB0aGUgZmluYWwgdHlwZSB3aWxsIGJlLiBJLmUuIGl0J3Mgbm90IGxhenkuXG5cbiAgdmFyIHJlc29sdmVkVHlwZSA9IHR5cGU7XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKHNob3VsZENvbnN0cnVjdCQxKHR5cGUpKSB7XG4gICAgICBmaWJlclRhZyA9IENsYXNzQ29tcG9uZW50O1xuXG4gICAgICB7XG4gICAgICAgIHJlc29sdmVkVHlwZSA9IHJlc29sdmVDbGFzc0ZvckhvdFJlbG9hZGluZyhyZXNvbHZlZFR5cGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB7XG4gICAgICAgIHJlc29sdmVkVHlwZSA9IHJlc29sdmVGdW5jdGlvbkZvckhvdFJlbG9hZGluZyhyZXNvbHZlZFR5cGUpO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICBmaWJlclRhZyA9IEhvc3RDb21wb25lbnQ7XG4gIH0gZWxzZSB7XG4gICAgZ2V0VGFnOiBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRlJBR01FTlRfVFlQRTpcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUZpYmVyRnJvbUZyYWdtZW50KHBlbmRpbmdQcm9wcy5jaGlsZHJlbiwgbW9kZSwgbGFuZXMsIGtleSk7XG5cbiAgICAgIGNhc2UgUkVBQ1RfU1RSSUNUX01PREVfVFlQRTpcbiAgICAgICAgZmliZXJUYWcgPSBNb2RlO1xuICAgICAgICBtb2RlIHw9IFN0cmljdExlZ2FjeU1vZGU7XG5cbiAgICAgICAgaWYgKCAobW9kZSAmIENvbmN1cnJlbnRNb2RlKSAhPT0gTm9Nb2RlKSB7XG4gICAgICAgICAgLy8gU3RyaWN0IGVmZmVjdHMgc2hvdWxkIG5ldmVyIHJ1biBvbiBsZWdhY3kgcm9vdHNcbiAgICAgICAgICBtb2RlIHw9IFN0cmljdEVmZmVjdHNNb2RlO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUZpYmVyRnJvbVByb2ZpbGVyKHBlbmRpbmdQcm9wcywgbW9kZSwgbGFuZXMsIGtleSk7XG5cbiAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUZpYmVyRnJvbVN1c3BlbnNlKHBlbmRpbmdQcm9wcywgbW9kZSwgbGFuZXMsIGtleSk7XG5cbiAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgICByZXR1cm4gY3JlYXRlRmliZXJGcm9tU3VzcGVuc2VMaXN0KHBlbmRpbmdQcm9wcywgbW9kZSwgbGFuZXMsIGtleSk7XG5cbiAgICAgIGNhc2UgUkVBQ1RfT0ZGU0NSRUVOX1RZUEU6XG4gICAgICAgIHJldHVybiBjcmVhdGVGaWJlckZyb21PZmZzY3JlZW4ocGVuZGluZ1Byb3BzLCBtb2RlLCBsYW5lcywga2V5KTtcblxuICAgICAgY2FzZSBSRUFDVF9MRUdBQ1lfSElEREVOX1RZUEU6XG5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuXG4gICAgICBjYXNlIFJFQUNUX1NDT1BFX1RZUEU6XG5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuXG4gICAgICBjYXNlIFJFQUNUX0NBQ0hFX1RZUEU6XG5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuXG4gICAgICBjYXNlIFJFQUNUX1RSQUNJTkdfTUFSS0VSX1RZUEU6XG5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuXG4gICAgICBjYXNlIFJFQUNUX0RFQlVHX1RSQUNJTkdfTU9ERV9UWVBFOlxuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAge1xuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgc3dpdGNoICh0eXBlLiQkdHlwZW9mKSB7XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPVklERVJfVFlQRTpcbiAgICAgICAgICAgICAgICBmaWJlclRhZyA9IENvbnRleHRQcm92aWRlcjtcbiAgICAgICAgICAgICAgICBicmVhayBnZXRUYWc7XG5cbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBhIGNvbnN1bWVyXG4gICAgICAgICAgICAgICAgZmliZXJUYWcgPSBDb250ZXh0Q29uc3VtZXI7XG4gICAgICAgICAgICAgICAgYnJlYWsgZ2V0VGFnO1xuXG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgICAgICBmaWJlclRhZyA9IEZvcndhcmRSZWY7XG5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICByZXNvbHZlZFR5cGUgPSByZXNvbHZlRm9yd2FyZFJlZkZvckhvdFJlbG9hZGluZyhyZXNvbHZlZFR5cGUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJyZWFrIGdldFRhZztcblxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgICAgICAgICBmaWJlclRhZyA9IE1lbW9Db21wb25lbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWsgZ2V0VGFnO1xuXG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgICAgICAgIGZpYmVyVGFnID0gTGF6eUNvbXBvbmVudDtcbiAgICAgICAgICAgICAgICByZXNvbHZlZFR5cGUgPSBudWxsO1xuICAgICAgICAgICAgICAgIGJyZWFrIGdldFRhZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgaW5mbyA9ICcnO1xuXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyh0eXBlKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgaW5mbyArPSAnIFlvdSBsaWtlbHkgZm9yZ290IHRvIGV4cG9ydCB5b3VyIGNvbXBvbmVudCBmcm9tIHRoZSBmaWxlICcgKyBcIml0J3MgZGVmaW5lZCBpbiwgb3IgeW91IG1pZ2h0IGhhdmUgbWl4ZWQgdXAgZGVmYXVsdCBhbmQgXCIgKyAnbmFtZWQgaW1wb3J0cy4nO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgb3duZXJOYW1lID0gb3duZXIgPyBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKG93bmVyKSA6IG51bGw7XG5cbiAgICAgICAgICAgIGlmIChvd25lck5hbWUpIHtcbiAgICAgICAgICAgICAgaW5mbyArPSAnXFxuXFxuQ2hlY2sgdGhlIHJlbmRlciBtZXRob2Qgb2YgYCcgKyBvd25lck5hbWUgKyAnYC4nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRWxlbWVudCB0eXBlIGlzIGludmFsaWQ6IGV4cGVjdGVkIGEgc3RyaW5nIChmb3IgYnVpbHQtaW4gJyArICdjb21wb25lbnRzKSBvciBhIGNsYXNzL2Z1bmN0aW9uIChmb3IgY29tcG9zaXRlIGNvbXBvbmVudHMpICcgKyAoXCJidXQgZ290OiBcIiArICh0eXBlID09IG51bGwgPyB0eXBlIDogdHlwZW9mIHR5cGUpICsgXCIuXCIgKyBpbmZvKSk7XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgZmliZXIgPSBjcmVhdGVGaWJlcihmaWJlclRhZywgcGVuZGluZ1Byb3BzLCBrZXksIG1vZGUpO1xuICBmaWJlci5lbGVtZW50VHlwZSA9IHR5cGU7XG4gIGZpYmVyLnR5cGUgPSByZXNvbHZlZFR5cGU7XG4gIGZpYmVyLmxhbmVzID0gbGFuZXM7XG5cbiAge1xuICAgIGZpYmVyLl9kZWJ1Z093bmVyID0gb3duZXI7XG4gIH1cblxuICByZXR1cm4gZmliZXI7XG59XG5mdW5jdGlvbiBjcmVhdGVGaWJlckZyb21FbGVtZW50KGVsZW1lbnQsIG1vZGUsIGxhbmVzKSB7XG4gIHZhciBvd25lciA9IG51bGw7XG5cbiAge1xuICAgIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gIH1cblxuICB2YXIgdHlwZSA9IGVsZW1lbnQudHlwZTtcbiAgdmFyIGtleSA9IGVsZW1lbnQua2V5O1xuICB2YXIgcGVuZGluZ1Byb3BzID0gZWxlbWVudC5wcm9wcztcbiAgdmFyIGZpYmVyID0gY3JlYXRlRmliZXJGcm9tVHlwZUFuZFByb3BzKHR5cGUsIGtleSwgcGVuZGluZ1Byb3BzLCBvd25lciwgbW9kZSwgbGFuZXMpO1xuXG4gIHtcbiAgICBmaWJlci5fZGVidWdTb3VyY2UgPSBlbGVtZW50Ll9zb3VyY2U7XG4gICAgZmliZXIuX2RlYnVnT3duZXIgPSBlbGVtZW50Ll9vd25lcjtcbiAgfVxuXG4gIHJldHVybiBmaWJlcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbUZyYWdtZW50KGVsZW1lbnRzLCBtb2RlLCBsYW5lcywga2V5KSB7XG4gIHZhciBmaWJlciA9IGNyZWF0ZUZpYmVyKEZyYWdtZW50LCBlbGVtZW50cywga2V5LCBtb2RlKTtcbiAgZmliZXIubGFuZXMgPSBsYW5lcztcbiAgcmV0dXJuIGZpYmVyO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVGaWJlckZyb21Qcm9maWxlcihwZW5kaW5nUHJvcHMsIG1vZGUsIGxhbmVzLCBrZXkpIHtcbiAge1xuICAgIGlmICh0eXBlb2YgcGVuZGluZ1Byb3BzLmlkICE9PSAnc3RyaW5nJykge1xuICAgICAgZXJyb3IoJ1Byb2ZpbGVyIG11c3Qgc3BlY2lmeSBhbiBcImlkXCIgb2YgdHlwZSBgc3RyaW5nYCBhcyBhIHByb3AuIFJlY2VpdmVkIHRoZSB0eXBlIGAlc2AgaW5zdGVhZC4nLCB0eXBlb2YgcGVuZGluZ1Byb3BzLmlkKTtcbiAgICB9XG4gIH1cblxuICB2YXIgZmliZXIgPSBjcmVhdGVGaWJlcihQcm9maWxlciwgcGVuZGluZ1Byb3BzLCBrZXksIG1vZGUgfCBQcm9maWxlTW9kZSk7XG4gIGZpYmVyLmVsZW1lbnRUeXBlID0gUkVBQ1RfUFJPRklMRVJfVFlQRTtcbiAgZmliZXIubGFuZXMgPSBsYW5lcztcblxuICB7XG4gICAgZmliZXIuc3RhdGVOb2RlID0ge1xuICAgICAgZWZmZWN0RHVyYXRpb246IDAsXG4gICAgICBwYXNzaXZlRWZmZWN0RHVyYXRpb246IDBcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGZpYmVyO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVGaWJlckZyb21TdXNwZW5zZShwZW5kaW5nUHJvcHMsIG1vZGUsIGxhbmVzLCBrZXkpIHtcbiAgdmFyIGZpYmVyID0gY3JlYXRlRmliZXIoU3VzcGVuc2VDb21wb25lbnQsIHBlbmRpbmdQcm9wcywga2V5LCBtb2RlKTtcbiAgZmliZXIuZWxlbWVudFR5cGUgPSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xuICBmaWJlci5sYW5lcyA9IGxhbmVzO1xuICByZXR1cm4gZmliZXI7XG59XG5mdW5jdGlvbiBjcmVhdGVGaWJlckZyb21TdXNwZW5zZUxpc3QocGVuZGluZ1Byb3BzLCBtb2RlLCBsYW5lcywga2V5KSB7XG4gIHZhciBmaWJlciA9IGNyZWF0ZUZpYmVyKFN1c3BlbnNlTGlzdENvbXBvbmVudCwgcGVuZGluZ1Byb3BzLCBrZXksIG1vZGUpO1xuICBmaWJlci5lbGVtZW50VHlwZSA9IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTtcbiAgZmliZXIubGFuZXMgPSBsYW5lcztcbiAgcmV0dXJuIGZpYmVyO1xufVxuZnVuY3Rpb24gY3JlYXRlRmliZXJGcm9tT2Zmc2NyZWVuKHBlbmRpbmdQcm9wcywgbW9kZSwgbGFuZXMsIGtleSkge1xuICB2YXIgZmliZXIgPSBjcmVhdGVGaWJlcihPZmZzY3JlZW5Db21wb25lbnQsIHBlbmRpbmdQcm9wcywga2V5LCBtb2RlKTtcbiAgZmliZXIuZWxlbWVudFR5cGUgPSBSRUFDVF9PRkZTQ1JFRU5fVFlQRTtcbiAgZmliZXIubGFuZXMgPSBsYW5lcztcbiAgdmFyIHByaW1hcnlDaGlsZEluc3RhbmNlID0ge1xuICAgIGlzSGlkZGVuOiBmYWxzZVxuICB9O1xuICBmaWJlci5zdGF0ZU5vZGUgPSBwcmltYXJ5Q2hpbGRJbnN0YW5jZTtcbiAgcmV0dXJuIGZpYmVyO1xufVxuZnVuY3Rpb24gY3JlYXRlRmliZXJGcm9tVGV4dChjb250ZW50LCBtb2RlLCBsYW5lcykge1xuICB2YXIgZmliZXIgPSBjcmVhdGVGaWJlcihIb3N0VGV4dCwgY29udGVudCwgbnVsbCwgbW9kZSk7XG4gIGZpYmVyLmxhbmVzID0gbGFuZXM7XG4gIHJldHVybiBmaWJlcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbUhvc3RJbnN0YW5jZUZvckRlbGV0aW9uKCkge1xuICB2YXIgZmliZXIgPSBjcmVhdGVGaWJlcihIb3N0Q29tcG9uZW50LCBudWxsLCBudWxsLCBOb01vZGUpO1xuICBmaWJlci5lbGVtZW50VHlwZSA9ICdERUxFVEVEJztcbiAgcmV0dXJuIGZpYmVyO1xufVxuZnVuY3Rpb24gY3JlYXRlRmliZXJGcm9tRGVoeWRyYXRlZEZyYWdtZW50KGRlaHlkcmF0ZWROb2RlKSB7XG4gIHZhciBmaWJlciA9IGNyZWF0ZUZpYmVyKERlaHlkcmF0ZWRGcmFnbWVudCwgbnVsbCwgbnVsbCwgTm9Nb2RlKTtcbiAgZmliZXIuc3RhdGVOb2RlID0gZGVoeWRyYXRlZE5vZGU7XG4gIHJldHVybiBmaWJlcjtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbVBvcnRhbChwb3J0YWwsIG1vZGUsIGxhbmVzKSB7XG4gIHZhciBwZW5kaW5nUHJvcHMgPSBwb3J0YWwuY2hpbGRyZW4gIT09IG51bGwgPyBwb3J0YWwuY2hpbGRyZW4gOiBbXTtcbiAgdmFyIGZpYmVyID0gY3JlYXRlRmliZXIoSG9zdFBvcnRhbCwgcGVuZGluZ1Byb3BzLCBwb3J0YWwua2V5LCBtb2RlKTtcbiAgZmliZXIubGFuZXMgPSBsYW5lcztcbiAgZmliZXIuc3RhdGVOb2RlID0ge1xuICAgIGNvbnRhaW5lckluZm86IHBvcnRhbC5jb250YWluZXJJbmZvLFxuICAgIHBlbmRpbmdDaGlsZHJlbjogbnVsbCxcbiAgICAvLyBVc2VkIGJ5IHBlcnNpc3RlbnQgdXBkYXRlc1xuICAgIGltcGxlbWVudGF0aW9uOiBwb3J0YWwuaW1wbGVtZW50YXRpb25cbiAgfTtcbiAgcmV0dXJuIGZpYmVyO1xufSAvLyBVc2VkIGZvciBzdGFzaGluZyBXSVAgcHJvcGVydGllcyB0byByZXBsYXkgZmFpbGVkIHdvcmsgaW4gREVWLlxuXG5mdW5jdGlvbiBhc3NpZ25GaWJlclByb3BlcnRpZXNJbkRFVih0YXJnZXQsIHNvdXJjZSkge1xuICBpZiAodGFyZ2V0ID09PSBudWxsKSB7XG4gICAgLy8gVGhpcyBGaWJlcidzIGluaXRpYWwgcHJvcGVydGllcyB3aWxsIGFsd2F5cyBiZSBvdmVyd3JpdHRlbi5cbiAgICAvLyBXZSBvbmx5IHVzZSBhIEZpYmVyIHRvIGVuc3VyZSB0aGUgc2FtZSBoaWRkZW4gY2xhc3Mgc28gREVWIGlzbid0IHNsb3cuXG4gICAgdGFyZ2V0ID0gY3JlYXRlRmliZXIoSW5kZXRlcm1pbmF0ZUNvbXBvbmVudCwgbnVsbCwgbnVsbCwgTm9Nb2RlKTtcbiAgfSAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgd3JpdHRlbiBhcyBhIGxpc3Qgb2YgYWxsIHByb3BlcnRpZXMuXG4gIC8vIFdlIHRyaWVkIHRvIHVzZSBPYmplY3QuYXNzaWduKCkgaW5zdGVhZCBidXQgdGhpcyBpcyBjYWxsZWQgaW5cbiAgLy8gdGhlIGhvdHRlc3QgcGF0aCwgYW5kIE9iamVjdC5hc3NpZ24oKSB3YXMgdG9vIHNsb3c6XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTI1MDJcbiAgLy8gVGhpcyBjb2RlIGlzIERFVi1vbmx5IHNvIHNpemUgaXMgbm90IGEgY29uY2Vybi5cblxuXG4gIHRhcmdldC50YWcgPSBzb3VyY2UudGFnO1xuICB0YXJnZXQua2V5ID0gc291cmNlLmtleTtcbiAgdGFyZ2V0LmVsZW1lbnRUeXBlID0gc291cmNlLmVsZW1lbnRUeXBlO1xuICB0YXJnZXQudHlwZSA9IHNvdXJjZS50eXBlO1xuICB0YXJnZXQuc3RhdGVOb2RlID0gc291cmNlLnN0YXRlTm9kZTtcbiAgdGFyZ2V0LnJldHVybiA9IHNvdXJjZS5yZXR1cm47XG4gIHRhcmdldC5jaGlsZCA9IHNvdXJjZS5jaGlsZDtcbiAgdGFyZ2V0LnNpYmxpbmcgPSBzb3VyY2Uuc2libGluZztcbiAgdGFyZ2V0LmluZGV4ID0gc291cmNlLmluZGV4O1xuICB0YXJnZXQucmVmID0gc291cmNlLnJlZjtcbiAgdGFyZ2V0LnBlbmRpbmdQcm9wcyA9IHNvdXJjZS5wZW5kaW5nUHJvcHM7XG4gIHRhcmdldC5tZW1vaXplZFByb3BzID0gc291cmNlLm1lbW9pemVkUHJvcHM7XG4gIHRhcmdldC51cGRhdGVRdWV1ZSA9IHNvdXJjZS51cGRhdGVRdWV1ZTtcbiAgdGFyZ2V0Lm1lbW9pemVkU3RhdGUgPSBzb3VyY2UubWVtb2l6ZWRTdGF0ZTtcbiAgdGFyZ2V0LmRlcGVuZGVuY2llcyA9IHNvdXJjZS5kZXBlbmRlbmNpZXM7XG4gIHRhcmdldC5tb2RlID0gc291cmNlLm1vZGU7XG4gIHRhcmdldC5mbGFncyA9IHNvdXJjZS5mbGFncztcbiAgdGFyZ2V0LnN1YnRyZWVGbGFncyA9IHNvdXJjZS5zdWJ0cmVlRmxhZ3M7XG4gIHRhcmdldC5kZWxldGlvbnMgPSBzb3VyY2UuZGVsZXRpb25zO1xuICB0YXJnZXQubGFuZXMgPSBzb3VyY2UubGFuZXM7XG4gIHRhcmdldC5jaGlsZExhbmVzID0gc291cmNlLmNoaWxkTGFuZXM7XG4gIHRhcmdldC5hbHRlcm5hdGUgPSBzb3VyY2UuYWx0ZXJuYXRlO1xuXG4gIHtcbiAgICB0YXJnZXQuYWN0dWFsRHVyYXRpb24gPSBzb3VyY2UuYWN0dWFsRHVyYXRpb247XG4gICAgdGFyZ2V0LmFjdHVhbFN0YXJ0VGltZSA9IHNvdXJjZS5hY3R1YWxTdGFydFRpbWU7XG4gICAgdGFyZ2V0LnNlbGZCYXNlRHVyYXRpb24gPSBzb3VyY2Uuc2VsZkJhc2VEdXJhdGlvbjtcbiAgICB0YXJnZXQudHJlZUJhc2VEdXJhdGlvbiA9IHNvdXJjZS50cmVlQmFzZUR1cmF0aW9uO1xuICB9XG5cbiAgdGFyZ2V0Ll9kZWJ1Z1NvdXJjZSA9IHNvdXJjZS5fZGVidWdTb3VyY2U7XG4gIHRhcmdldC5fZGVidWdPd25lciA9IHNvdXJjZS5fZGVidWdPd25lcjtcbiAgdGFyZ2V0Ll9kZWJ1Z05lZWRzUmVtb3VudCA9IHNvdXJjZS5fZGVidWdOZWVkc1JlbW91bnQ7XG4gIHRhcmdldC5fZGVidWdIb29rVHlwZXMgPSBzb3VyY2UuX2RlYnVnSG9va1R5cGVzO1xuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5mdW5jdGlvbiBGaWJlclJvb3ROb2RlKGNvbnRhaW5lckluZm8sIHRhZywgaHlkcmF0ZSwgaWRlbnRpZmllclByZWZpeCwgb25SZWNvdmVyYWJsZUVycm9yKSB7XG4gIHRoaXMudGFnID0gdGFnO1xuICB0aGlzLmNvbnRhaW5lckluZm8gPSBjb250YWluZXJJbmZvO1xuICB0aGlzLnBlbmRpbmdDaGlsZHJlbiA9IG51bGw7XG4gIHRoaXMuY3VycmVudCA9IG51bGw7XG4gIHRoaXMucGluZ0NhY2hlID0gbnVsbDtcbiAgdGhpcy5maW5pc2hlZFdvcmsgPSBudWxsO1xuICB0aGlzLnRpbWVvdXRIYW5kbGUgPSBub1RpbWVvdXQ7XG4gIHRoaXMuY29udGV4dCA9IG51bGw7XG4gIHRoaXMucGVuZGluZ0NvbnRleHQgPSBudWxsO1xuICB0aGlzLmNhbGxiYWNrTm9kZSA9IG51bGw7XG4gIHRoaXMuY2FsbGJhY2tQcmlvcml0eSA9IE5vTGFuZTtcbiAgdGhpcy5ldmVudFRpbWVzID0gY3JlYXRlTGFuZU1hcChOb0xhbmVzKTtcbiAgdGhpcy5leHBpcmF0aW9uVGltZXMgPSBjcmVhdGVMYW5lTWFwKE5vVGltZXN0YW1wKTtcbiAgdGhpcy5wZW5kaW5nTGFuZXMgPSBOb0xhbmVzO1xuICB0aGlzLnN1c3BlbmRlZExhbmVzID0gTm9MYW5lcztcbiAgdGhpcy5waW5nZWRMYW5lcyA9IE5vTGFuZXM7XG4gIHRoaXMuZXhwaXJlZExhbmVzID0gTm9MYW5lcztcbiAgdGhpcy5tdXRhYmxlUmVhZExhbmVzID0gTm9MYW5lcztcbiAgdGhpcy5maW5pc2hlZExhbmVzID0gTm9MYW5lcztcbiAgdGhpcy5lbnRhbmdsZWRMYW5lcyA9IE5vTGFuZXM7XG4gIHRoaXMuZW50YW5nbGVtZW50cyA9IGNyZWF0ZUxhbmVNYXAoTm9MYW5lcyk7XG4gIHRoaXMuaWRlbnRpZmllclByZWZpeCA9IGlkZW50aWZpZXJQcmVmaXg7XG4gIHRoaXMub25SZWNvdmVyYWJsZUVycm9yID0gb25SZWNvdmVyYWJsZUVycm9yO1xuXG4gIHtcbiAgICB0aGlzLm11dGFibGVTb3VyY2VFYWdlckh5ZHJhdGlvbkRhdGEgPSBudWxsO1xuICB9XG5cbiAge1xuICAgIHRoaXMuZWZmZWN0RHVyYXRpb24gPSAwO1xuICAgIHRoaXMucGFzc2l2ZUVmZmVjdER1cmF0aW9uID0gMDtcbiAgfVxuXG4gIHtcbiAgICB0aGlzLm1lbW9pemVkVXBkYXRlcnMgPSBuZXcgU2V0KCk7XG4gICAgdmFyIHBlbmRpbmdVcGRhdGVyc0xhbmVNYXAgPSB0aGlzLnBlbmRpbmdVcGRhdGVyc0xhbmVNYXAgPSBbXTtcblxuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBUb3RhbExhbmVzOyBfaSsrKSB7XG4gICAgICBwZW5kaW5nVXBkYXRlcnNMYW5lTWFwLnB1c2gobmV3IFNldCgpKTtcbiAgICB9XG4gIH1cblxuICB7XG4gICAgc3dpdGNoICh0YWcpIHtcbiAgICAgIGNhc2UgQ29uY3VycmVudFJvb3Q6XG4gICAgICAgIHRoaXMuX2RlYnVnUm9vdFR5cGUgPSBoeWRyYXRlID8gJ2h5ZHJhdGVSb290KCknIDogJ2NyZWF0ZVJvb3QoKSc7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIExlZ2FjeVJvb3Q6XG4gICAgICAgIHRoaXMuX2RlYnVnUm9vdFR5cGUgPSBoeWRyYXRlID8gJ2h5ZHJhdGUoKScgOiAncmVuZGVyKCknO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlRmliZXJSb290KGNvbnRhaW5lckluZm8sIHRhZywgaHlkcmF0ZSwgaW5pdGlhbENoaWxkcmVuLCBoeWRyYXRpb25DYWxsYmFja3MsIGlzU3RyaWN0TW9kZSwgY29uY3VycmVudFVwZGF0ZXNCeURlZmF1bHRPdmVycmlkZSwgLy8gVE9ETzogV2UgaGF2ZSBzZXZlcmFsIG9mIHRoZXNlIGFyZ3VtZW50cyB0aGF0IGFyZSBjb25jZXB0dWFsbHkgcGFydCBvZiB0aGVcbi8vIGhvc3QgY29uZmlnLCBidXQgYmVjYXVzZSB0aGV5IGFyZSBwYXNzZWQgaW4gYXQgcnVudGltZSwgd2UgaGF2ZSB0byB0aHJlYWRcbi8vIHRoZW0gdGhyb3VnaCB0aGUgcm9vdCBjb25zdHJ1Y3Rvci4gUGVyaGFwcyB3ZSBzaG91bGQgcHV0IHRoZW0gYWxsIGludG8gYVxuLy8gc2luZ2xlIHR5cGUsIGxpa2UgYSBEeW5hbWljSG9zdENvbmZpZyB0aGF0IGlzIGRlZmluZWQgYnkgdGhlIHJlbmRlcmVyLlxuaWRlbnRpZmllclByZWZpeCwgb25SZWNvdmVyYWJsZUVycm9yLCB0cmFuc2l0aW9uQ2FsbGJhY2tzKSB7XG4gIHZhciByb290ID0gbmV3IEZpYmVyUm9vdE5vZGUoY29udGFpbmVySW5mbywgdGFnLCBoeWRyYXRlLCBpZGVudGlmaWVyUHJlZml4LCBvblJlY292ZXJhYmxlRXJyb3IpO1xuICAvLyBzdGF0ZU5vZGUgaXMgYW55LlxuXG5cbiAgdmFyIHVuaW5pdGlhbGl6ZWRGaWJlciA9IGNyZWF0ZUhvc3RSb290RmliZXIodGFnLCBpc1N0cmljdE1vZGUpO1xuICByb290LmN1cnJlbnQgPSB1bmluaXRpYWxpemVkRmliZXI7XG4gIHVuaW5pdGlhbGl6ZWRGaWJlci5zdGF0ZU5vZGUgPSByb290O1xuXG4gIHtcbiAgICB2YXIgX2luaXRpYWxTdGF0ZSA9IHtcbiAgICAgIGVsZW1lbnQ6IGluaXRpYWxDaGlsZHJlbixcbiAgICAgIGlzRGVoeWRyYXRlZDogaHlkcmF0ZSxcbiAgICAgIGNhY2hlOiBudWxsLFxuICAgICAgLy8gbm90IGVuYWJsZWQgeWV0XG4gICAgICB0cmFuc2l0aW9uczogbnVsbCxcbiAgICAgIHBlbmRpbmdTdXNwZW5zZUJvdW5kYXJpZXM6IG51bGxcbiAgICB9O1xuICAgIHVuaW5pdGlhbGl6ZWRGaWJlci5tZW1vaXplZFN0YXRlID0gX2luaXRpYWxTdGF0ZTtcbiAgfVxuXG4gIGluaXRpYWxpemVVcGRhdGVRdWV1ZSh1bmluaXRpYWxpemVkRmliZXIpO1xuICByZXR1cm4gcm9vdDtcbn1cblxudmFyIFJlYWN0VmVyc2lvbiA9ICcxOC4yLjAnO1xuXG5mdW5jdGlvbiBjcmVhdGVQb3J0YWwoY2hpbGRyZW4sIGNvbnRhaW5lckluZm8sIC8vIFRPRE86IGZpZ3VyZSBvdXQgdGhlIEFQSSBmb3IgY3Jvc3MtcmVuZGVyZXIgaW1wbGVtZW50YXRpb24uXG5pbXBsZW1lbnRhdGlvbikge1xuICB2YXIga2V5ID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgJiYgYXJndW1lbnRzWzNdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbM10gOiBudWxsO1xuXG4gIHtcbiAgICBjaGVja0tleVN0cmluZ0NvZXJjaW9uKGtleSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC8vIFRoaXMgdGFnIGFsbG93IHVzIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoaXMgYXMgYSBSZWFjdCBQb3J0YWxcbiAgICAkJHR5cGVvZjogUkVBQ1RfUE9SVEFMX1RZUEUsXG4gICAga2V5OiBrZXkgPT0gbnVsbCA/IG51bGwgOiAnJyArIGtleSxcbiAgICBjaGlsZHJlbjogY2hpbGRyZW4sXG4gICAgY29udGFpbmVySW5mbzogY29udGFpbmVySW5mbyxcbiAgICBpbXBsZW1lbnRhdGlvbjogaW1wbGVtZW50YXRpb25cbiAgfTtcbn1cblxudmFyIGRpZFdhcm5BYm91dE5lc3RlZFVwZGF0ZXM7XG52YXIgZGlkV2FybkFib3V0RmluZE5vZGVJblN0cmljdE1vZGU7XG5cbntcbiAgZGlkV2FybkFib3V0TmVzdGVkVXBkYXRlcyA9IGZhbHNlO1xuICBkaWRXYXJuQWJvdXRGaW5kTm9kZUluU3RyaWN0TW9kZSA9IHt9O1xufVxuXG5mdW5jdGlvbiBnZXRDb250ZXh0Rm9yU3VidHJlZShwYXJlbnRDb21wb25lbnQpIHtcbiAgaWYgKCFwYXJlbnRDb21wb25lbnQpIHtcbiAgICByZXR1cm4gZW1wdHlDb250ZXh0T2JqZWN0O1xuICB9XG5cbiAgdmFyIGZpYmVyID0gZ2V0KHBhcmVudENvbXBvbmVudCk7XG4gIHZhciBwYXJlbnRDb250ZXh0ID0gZmluZEN1cnJlbnRVbm1hc2tlZENvbnRleHQoZmliZXIpO1xuXG4gIGlmIChmaWJlci50YWcgPT09IENsYXNzQ29tcG9uZW50KSB7XG4gICAgdmFyIENvbXBvbmVudCA9IGZpYmVyLnR5cGU7XG5cbiAgICBpZiAoaXNDb250ZXh0UHJvdmlkZXIoQ29tcG9uZW50KSkge1xuICAgICAgcmV0dXJuIHByb2Nlc3NDaGlsZENvbnRleHQoZmliZXIsIENvbXBvbmVudCwgcGFyZW50Q29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHBhcmVudENvbnRleHQ7XG59XG5cbmZ1bmN0aW9uIGZpbmRIb3N0SW5zdGFuY2VXaXRoV2FybmluZyhjb21wb25lbnQsIG1ldGhvZE5hbWUpIHtcbiAge1xuICAgIHZhciBmaWJlciA9IGdldChjb21wb25lbnQpO1xuXG4gICAgaWYgKGZpYmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0eXBlb2YgY29tcG9uZW50LnJlbmRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBmaW5kIG5vZGUgb24gYW4gdW5tb3VudGVkIGNvbXBvbmVudC4nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoY29tcG9uZW50KS5qb2luKCcsJyk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkFyZ3VtZW50IGFwcGVhcnMgdG8gbm90IGJlIGEgUmVhY3RDb21wb25lbnQuIEtleXM6IFwiICsga2V5cyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGhvc3RGaWJlciA9IGZpbmRDdXJyZW50SG9zdEZpYmVyKGZpYmVyKTtcblxuICAgIGlmIChob3N0RmliZXIgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChob3N0RmliZXIubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUpIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikgfHwgJ0NvbXBvbmVudCc7XG5cbiAgICAgIGlmICghZGlkV2FybkFib3V0RmluZE5vZGVJblN0cmljdE1vZGVbY29tcG9uZW50TmFtZV0pIHtcbiAgICAgICAgZGlkV2FybkFib3V0RmluZE5vZGVJblN0cmljdE1vZGVbY29tcG9uZW50TmFtZV0gPSB0cnVlO1xuICAgICAgICB2YXIgcHJldmlvdXNGaWJlciA9IGN1cnJlbnQ7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBzZXRDdXJyZW50RmliZXIoaG9zdEZpYmVyKTtcblxuICAgICAgICAgIGlmIChmaWJlci5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSkge1xuICAgICAgICAgICAgZXJyb3IoJyVzIGlzIGRlcHJlY2F0ZWQgaW4gU3RyaWN0TW9kZS4gJyArICclcyB3YXMgcGFzc2VkIGFuIGluc3RhbmNlIG9mICVzIHdoaWNoIGlzIGluc2lkZSBTdHJpY3RNb2RlLiAnICsgJ0luc3RlYWQsIGFkZCBhIHJlZiBkaXJlY3RseSB0byB0aGUgZWxlbWVudCB5b3Ugd2FudCB0byByZWZlcmVuY2UuICcgKyAnTGVhcm4gbW9yZSBhYm91dCB1c2luZyByZWZzIHNhZmVseSBoZXJlOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zdHJpY3QtbW9kZS1maW5kLW5vZGUnLCBtZXRob2ROYW1lLCBtZXRob2ROYW1lLCBjb21wb25lbnROYW1lKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3IoJyVzIGlzIGRlcHJlY2F0ZWQgaW4gU3RyaWN0TW9kZS4gJyArICclcyB3YXMgcGFzc2VkIGFuIGluc3RhbmNlIG9mICVzIHdoaWNoIHJlbmRlcnMgU3RyaWN0TW9kZSBjaGlsZHJlbi4gJyArICdJbnN0ZWFkLCBhZGQgYSByZWYgZGlyZWN0bHkgdG8gdGhlIGVsZW1lbnQgeW91IHdhbnQgdG8gcmVmZXJlbmNlLiAnICsgJ0xlYXJuIG1vcmUgYWJvdXQgdXNpbmcgcmVmcyBzYWZlbHkgaGVyZTogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3RyaWN0LW1vZGUtZmluZC1ub2RlJywgbWV0aG9kTmFtZSwgbWV0aG9kTmFtZSwgY29tcG9uZW50TmFtZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIC8vIElkZWFsbHkgdGhpcyBzaG91bGQgcmVzZXQgdG8gcHJldmlvdXMgYnV0IHRoaXMgc2hvdWxkbid0IGJlIGNhbGxlZCBpblxuICAgICAgICAgIC8vIHJlbmRlciBhbmQgdGhlcmUncyBhbm90aGVyIHdhcm5pbmcgZm9yIHRoYXQgYW55d2F5LlxuICAgICAgICAgIGlmIChwcmV2aW91c0ZpYmVyKSB7XG4gICAgICAgICAgICBzZXRDdXJyZW50RmliZXIocHJldmlvdXNGaWJlcik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc2V0Q3VycmVudEZpYmVyKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGhvc3RGaWJlci5zdGF0ZU5vZGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlQ29udGFpbmVyKGNvbnRhaW5lckluZm8sIHRhZywgaHlkcmF0aW9uQ2FsbGJhY2tzLCBpc1N0cmljdE1vZGUsIGNvbmN1cnJlbnRVcGRhdGVzQnlEZWZhdWx0T3ZlcnJpZGUsIGlkZW50aWZpZXJQcmVmaXgsIG9uUmVjb3ZlcmFibGVFcnJvciwgdHJhbnNpdGlvbkNhbGxiYWNrcykge1xuICB2YXIgaHlkcmF0ZSA9IGZhbHNlO1xuICB2YXIgaW5pdGlhbENoaWxkcmVuID0gbnVsbDtcbiAgcmV0dXJuIGNyZWF0ZUZpYmVyUm9vdChjb250YWluZXJJbmZvLCB0YWcsIGh5ZHJhdGUsIGluaXRpYWxDaGlsZHJlbiwgaHlkcmF0aW9uQ2FsbGJhY2tzLCBpc1N0cmljdE1vZGUsIGNvbmN1cnJlbnRVcGRhdGVzQnlEZWZhdWx0T3ZlcnJpZGUsIGlkZW50aWZpZXJQcmVmaXgsIG9uUmVjb3ZlcmFibGVFcnJvcik7XG59XG5mdW5jdGlvbiBjcmVhdGVIeWRyYXRpb25Db250YWluZXIoaW5pdGlhbENoaWxkcmVuLCAvLyBUT0RPOiBSZW1vdmUgYGNhbGxiYWNrYCB3aGVuIHdlIGRlbGV0ZSBsZWdhY3kgbW9kZS5cbmNhbGxiYWNrLCBjb250YWluZXJJbmZvLCB0YWcsIGh5ZHJhdGlvbkNhbGxiYWNrcywgaXNTdHJpY3RNb2RlLCBjb25jdXJyZW50VXBkYXRlc0J5RGVmYXVsdE92ZXJyaWRlLCBpZGVudGlmaWVyUHJlZml4LCBvblJlY292ZXJhYmxlRXJyb3IsIHRyYW5zaXRpb25DYWxsYmFja3MpIHtcbiAgdmFyIGh5ZHJhdGUgPSB0cnVlO1xuICB2YXIgcm9vdCA9IGNyZWF0ZUZpYmVyUm9vdChjb250YWluZXJJbmZvLCB0YWcsIGh5ZHJhdGUsIGluaXRpYWxDaGlsZHJlbiwgaHlkcmF0aW9uQ2FsbGJhY2tzLCBpc1N0cmljdE1vZGUsIGNvbmN1cnJlbnRVcGRhdGVzQnlEZWZhdWx0T3ZlcnJpZGUsIGlkZW50aWZpZXJQcmVmaXgsIG9uUmVjb3ZlcmFibGVFcnJvcik7IC8vIFRPRE86IE1vdmUgdGhpcyB0byBGaWJlclJvb3QgY29uc3RydWN0b3JcblxuICByb290LmNvbnRleHQgPSBnZXRDb250ZXh0Rm9yU3VidHJlZShudWxsKTsgLy8gU2NoZWR1bGUgdGhlIGluaXRpYWwgcmVuZGVyLiBJbiBhIGh5ZHJhdGlvbiByb290LCB0aGlzIGlzIGRpZmZlcmVudCBmcm9tXG4gIC8vIGEgcmVndWxhciB1cGRhdGUgYmVjYXVzZSB0aGUgaW5pdGlhbCByZW5kZXIgbXVzdCBtYXRjaCB3YXMgd2FzIHJlbmRlcmVkXG4gIC8vIG9uIHRoZSBzZXJ2ZXIuXG4gIC8vIE5PVEU6IFRoaXMgdXBkYXRlIGludGVudGlvbmFsbHkgZG9lc24ndCBoYXZlIGEgcGF5bG9hZC4gV2UncmUgb25seSB1c2luZ1xuICAvLyB0aGUgdXBkYXRlIHRvIHNjaGVkdWxlIHdvcmsgb24gdGhlIHJvb3QgZmliZXIgKGFuZCwgZm9yIGxlZ2FjeSByb290cywgdG9cbiAgLy8gZW5xdWV1ZSB0aGUgY2FsbGJhY2sgaWYgb25lIGlzIHByb3ZpZGVkKS5cblxuICB2YXIgY3VycmVudCA9IHJvb3QuY3VycmVudDtcbiAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgdmFyIGxhbmUgPSByZXF1ZXN0VXBkYXRlTGFuZShjdXJyZW50KTtcbiAgdmFyIHVwZGF0ZSA9IGNyZWF0ZVVwZGF0ZShldmVudFRpbWUsIGxhbmUpO1xuICB1cGRhdGUuY2FsbGJhY2sgPSBjYWxsYmFjayAhPT0gdW5kZWZpbmVkICYmIGNhbGxiYWNrICE9PSBudWxsID8gY2FsbGJhY2sgOiBudWxsO1xuICBlbnF1ZXVlVXBkYXRlKGN1cnJlbnQsIHVwZGF0ZSwgbGFuZSk7XG4gIHNjaGVkdWxlSW5pdGlhbEh5ZHJhdGlvbk9uUm9vdChyb290LCBsYW5lLCBldmVudFRpbWUpO1xuICByZXR1cm4gcm9vdDtcbn1cbmZ1bmN0aW9uIHVwZGF0ZUNvbnRhaW5lcihlbGVtZW50LCBjb250YWluZXIsIHBhcmVudENvbXBvbmVudCwgY2FsbGJhY2spIHtcbiAge1xuICAgIG9uU2NoZWR1bGVSb290KGNvbnRhaW5lciwgZWxlbWVudCk7XG4gIH1cblxuICB2YXIgY3VycmVudCQxID0gY29udGFpbmVyLmN1cnJlbnQ7XG4gIHZhciBldmVudFRpbWUgPSByZXF1ZXN0RXZlbnRUaW1lKCk7XG4gIHZhciBsYW5lID0gcmVxdWVzdFVwZGF0ZUxhbmUoY3VycmVudCQxKTtcblxuICB7XG4gICAgbWFya1JlbmRlclNjaGVkdWxlZChsYW5lKTtcbiAgfVxuXG4gIHZhciBjb250ZXh0ID0gZ2V0Q29udGV4dEZvclN1YnRyZWUocGFyZW50Q29tcG9uZW50KTtcblxuICBpZiAoY29udGFpbmVyLmNvbnRleHQgPT09IG51bGwpIHtcbiAgICBjb250YWluZXIuY29udGV4dCA9IGNvbnRleHQ7XG4gIH0gZWxzZSB7XG4gICAgY29udGFpbmVyLnBlbmRpbmdDb250ZXh0ID0gY29udGV4dDtcbiAgfVxuXG4gIHtcbiAgICBpZiAoaXNSZW5kZXJpbmcgJiYgY3VycmVudCAhPT0gbnVsbCAmJiAhZGlkV2FybkFib3V0TmVzdGVkVXBkYXRlcykge1xuICAgICAgZGlkV2FybkFib3V0TmVzdGVkVXBkYXRlcyA9IHRydWU7XG5cbiAgICAgIGVycm9yKCdSZW5kZXIgbWV0aG9kcyBzaG91bGQgYmUgYSBwdXJlIGZ1bmN0aW9uIG9mIHByb3BzIGFuZCBzdGF0ZTsgJyArICd0cmlnZ2VyaW5nIG5lc3RlZCBjb21wb25lbnQgdXBkYXRlcyBmcm9tIHJlbmRlciBpcyBub3QgYWxsb3dlZC4gJyArICdJZiBuZWNlc3NhcnksIHRyaWdnZXIgbmVzdGVkIHVwZGF0ZXMgaW4gY29tcG9uZW50RGlkVXBkYXRlLlxcblxcbicgKyAnQ2hlY2sgdGhlIHJlbmRlciBtZXRob2Qgb2YgJXMuJywgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihjdXJyZW50KSB8fCAnVW5rbm93bicpO1xuICAgIH1cbiAgfVxuXG4gIHZhciB1cGRhdGUgPSBjcmVhdGVVcGRhdGUoZXZlbnRUaW1lLCBsYW5lKTsgLy8gQ2F1dGlvbjogUmVhY3QgRGV2VG9vbHMgY3VycmVudGx5IGRlcGVuZHMgb24gdGhpcyBwcm9wZXJ0eVxuICAvLyBiZWluZyBjYWxsZWQgXCJlbGVtZW50XCIuXG5cbiAgdXBkYXRlLnBheWxvYWQgPSB7XG4gICAgZWxlbWVudDogZWxlbWVudFxuICB9O1xuICBjYWxsYmFjayA9IGNhbGxiYWNrID09PSB1bmRlZmluZWQgPyBudWxsIDogY2FsbGJhY2s7XG5cbiAgaWYgKGNhbGxiYWNrICE9PSBudWxsKSB7XG4gICAge1xuICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBlcnJvcigncmVuZGVyKC4uLik6IEV4cGVjdGVkIHRoZSBsYXN0IG9wdGlvbmFsIGBjYWxsYmFja2AgYXJndW1lbnQgdG8gYmUgYSAnICsgJ2Z1bmN0aW9uLiBJbnN0ZWFkIHJlY2VpdmVkOiAlcy4nLCBjYWxsYmFjayk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gIH1cblxuICB2YXIgcm9vdCA9IGVucXVldWVVcGRhdGUoY3VycmVudCQxLCB1cGRhdGUsIGxhbmUpO1xuXG4gIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHJvb3QsIGN1cnJlbnQkMSwgbGFuZSwgZXZlbnRUaW1lKTtcbiAgICBlbnRhbmdsZVRyYW5zaXRpb25zKHJvb3QsIGN1cnJlbnQkMSwgbGFuZSk7XG4gIH1cblxuICByZXR1cm4gbGFuZTtcbn1cbmZ1bmN0aW9uIGdldFB1YmxpY1Jvb3RJbnN0YW5jZShjb250YWluZXIpIHtcbiAgdmFyIGNvbnRhaW5lckZpYmVyID0gY29udGFpbmVyLmN1cnJlbnQ7XG5cbiAgaWYgKCFjb250YWluZXJGaWJlci5jaGlsZCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc3dpdGNoIChjb250YWluZXJGaWJlci5jaGlsZC50YWcpIHtcbiAgICBjYXNlIEhvc3RDb21wb25lbnQ6XG4gICAgICByZXR1cm4gZ2V0UHVibGljSW5zdGFuY2UoY29udGFpbmVyRmliZXIuY2hpbGQuc3RhdGVOb2RlKTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gY29udGFpbmVyRmliZXIuY2hpbGQuc3RhdGVOb2RlO1xuICB9XG59XG5mdW5jdGlvbiBhdHRlbXB0U3luY2hyb25vdXNIeWRyYXRpb24kMShmaWJlcikge1xuICBzd2l0Y2ggKGZpYmVyLnRhZykge1xuICAgIGNhc2UgSG9zdFJvb3Q6XG4gICAgICB7XG4gICAgICAgIHZhciByb290ID0gZmliZXIuc3RhdGVOb2RlO1xuXG4gICAgICAgIGlmIChpc1Jvb3REZWh5ZHJhdGVkKHJvb3QpKSB7XG4gICAgICAgICAgLy8gRmx1c2ggdGhlIGZpcnN0IHNjaGVkdWxlZCBcInVwZGF0ZVwiLlxuICAgICAgICAgIHZhciBsYW5lcyA9IGdldEhpZ2hlc3RQcmlvcml0eVBlbmRpbmdMYW5lcyhyb290KTtcbiAgICAgICAgICBmbHVzaFJvb3Qocm9vdCwgbGFuZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICBjYXNlIFN1c3BlbnNlQ29tcG9uZW50OlxuICAgICAge1xuICAgICAgICBmbHVzaFN5bmMoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHZhciByb290ID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCBTeW5jTGFuZSk7XG5cbiAgICAgICAgICBpZiAocm9vdCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgICAgICAgICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihyb290LCBmaWJlciwgU3luY0xhbmUsIGV2ZW50VGltZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTsgLy8gSWYgd2UncmUgc3RpbGwgYmxvY2tlZCBhZnRlciB0aGlzLCB3ZSBuZWVkIHRvIGluY3JlYXNlXG4gICAgICAgIC8vIHRoZSBwcmlvcml0eSBvZiBhbnkgcHJvbWlzZXMgcmVzb2x2aW5nIHdpdGhpbiB0aGlzXG4gICAgICAgIC8vIGJvdW5kYXJ5IHNvIHRoYXQgdGhleSBuZXh0IGF0dGVtcHQgYWxzbyBoYXMgaGlnaGVyIHByaS5cblxuICAgICAgICB2YXIgcmV0cnlMYW5lID0gU3luY0xhbmU7XG4gICAgICAgIG1hcmtSZXRyeUxhbmVJZk5vdEh5ZHJhdGVkKGZpYmVyLCByZXRyeUxhbmUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBtYXJrUmV0cnlMYW5lSW1wbChmaWJlciwgcmV0cnlMYW5lKSB7XG4gIHZhciBzdXNwZW5zZVN0YXRlID0gZmliZXIubWVtb2l6ZWRTdGF0ZTtcblxuICBpZiAoc3VzcGVuc2VTdGF0ZSAhPT0gbnVsbCAmJiBzdXNwZW5zZVN0YXRlLmRlaHlkcmF0ZWQgIT09IG51bGwpIHtcbiAgICBzdXNwZW5zZVN0YXRlLnJldHJ5TGFuZSA9IGhpZ2hlclByaW9yaXR5TGFuZShzdXNwZW5zZVN0YXRlLnJldHJ5TGFuZSwgcmV0cnlMYW5lKTtcbiAgfVxufSAvLyBJbmNyZWFzZXMgdGhlIHByaW9yaXR5IG9mIHRoZW5hYmxlcyB3aGVuIHRoZXkgcmVzb2x2ZSB3aXRoaW4gdGhpcyBib3VuZGFyeS5cblxuXG5mdW5jdGlvbiBtYXJrUmV0cnlMYW5lSWZOb3RIeWRyYXRlZChmaWJlciwgcmV0cnlMYW5lKSB7XG4gIG1hcmtSZXRyeUxhbmVJbXBsKGZpYmVyLCByZXRyeUxhbmUpO1xuICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlO1xuXG4gIGlmIChhbHRlcm5hdGUpIHtcbiAgICBtYXJrUmV0cnlMYW5lSW1wbChhbHRlcm5hdGUsIHJldHJ5TGFuZSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGF0dGVtcHRDb250aW51b3VzSHlkcmF0aW9uJDEoZmliZXIpIHtcbiAgaWYgKGZpYmVyLnRhZyAhPT0gU3VzcGVuc2VDb21wb25lbnQpIHtcbiAgICAvLyBXZSBpZ25vcmUgSG9zdFJvb3RzIGhlcmUgYmVjYXVzZSB3ZSBjYW4ndCBpbmNyZWFzZVxuICAgIC8vIHRoZWlyIHByaW9yaXR5IGFuZCB0aGV5IHNob3VsZCBub3Qgc3VzcGVuZCBvbiBJL08sXG4gICAgLy8gc2luY2UgeW91IGhhdmUgdG8gd3JhcCBhbnl0aGluZyB0aGF0IG1pZ2h0IHN1c3BlbmQgaW5cbiAgICAvLyBTdXNwZW5zZS5cbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgbGFuZSA9IFNlbGVjdGl2ZUh5ZHJhdGlvbkxhbmU7XG4gIHZhciByb290ID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCBsYW5lKTtcblxuICBpZiAocm9vdCAhPT0gbnVsbCkge1xuICAgIHZhciBldmVudFRpbWUgPSByZXF1ZXN0RXZlbnRUaW1lKCk7XG4gICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHJvb3QsIGZpYmVyLCBsYW5lLCBldmVudFRpbWUpO1xuICB9XG5cbiAgbWFya1JldHJ5TGFuZUlmTm90SHlkcmF0ZWQoZmliZXIsIGxhbmUpO1xufVxuZnVuY3Rpb24gYXR0ZW1wdEh5ZHJhdGlvbkF0Q3VycmVudFByaW9yaXR5JDEoZmliZXIpIHtcbiAgaWYgKGZpYmVyLnRhZyAhPT0gU3VzcGVuc2VDb21wb25lbnQpIHtcbiAgICAvLyBXZSBpZ25vcmUgSG9zdFJvb3RzIGhlcmUgYmVjYXVzZSB3ZSBjYW4ndCBpbmNyZWFzZVxuICAgIC8vIHRoZWlyIHByaW9yaXR5IG90aGVyIHRoYW4gc3luY2hyb25vdXNseSBmbHVzaCBpdC5cbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgbGFuZSA9IHJlcXVlc3RVcGRhdGVMYW5lKGZpYmVyKTtcbiAgdmFyIHJvb3QgPSBlbnF1ZXVlQ29uY3VycmVudFJlbmRlckZvckxhbmUoZmliZXIsIGxhbmUpO1xuXG4gIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgdmFyIGV2ZW50VGltZSA9IHJlcXVlc3RFdmVudFRpbWUoKTtcbiAgICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIocm9vdCwgZmliZXIsIGxhbmUsIGV2ZW50VGltZSk7XG4gIH1cblxuICBtYXJrUmV0cnlMYW5lSWZOb3RIeWRyYXRlZChmaWJlciwgbGFuZSk7XG59XG5mdW5jdGlvbiBmaW5kSG9zdEluc3RhbmNlV2l0aE5vUG9ydGFscyhmaWJlcikge1xuICB2YXIgaG9zdEZpYmVyID0gZmluZEN1cnJlbnRIb3N0RmliZXJXaXRoTm9Qb3J0YWxzKGZpYmVyKTtcblxuICBpZiAoaG9zdEZpYmVyID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gaG9zdEZpYmVyLnN0YXRlTm9kZTtcbn1cblxudmFyIHNob3VsZEVycm9ySW1wbCA9IGZ1bmN0aW9uIChmaWJlcikge1xuICByZXR1cm4gbnVsbDtcbn07XG5cbmZ1bmN0aW9uIHNob3VsZEVycm9yKGZpYmVyKSB7XG4gIHJldHVybiBzaG91bGRFcnJvckltcGwoZmliZXIpO1xufVxuXG52YXIgc2hvdWxkU3VzcGVuZEltcGwgPSBmdW5jdGlvbiAoZmliZXIpIHtcbiAgcmV0dXJuIGZhbHNlO1xufTtcblxuZnVuY3Rpb24gc2hvdWxkU3VzcGVuZChmaWJlcikge1xuICByZXR1cm4gc2hvdWxkU3VzcGVuZEltcGwoZmliZXIpO1xufVxudmFyIG92ZXJyaWRlSG9va1N0YXRlID0gbnVsbDtcbnZhciBvdmVycmlkZUhvb2tTdGF0ZURlbGV0ZVBhdGggPSBudWxsO1xudmFyIG92ZXJyaWRlSG9va1N0YXRlUmVuYW1lUGF0aCA9IG51bGw7XG52YXIgb3ZlcnJpZGVQcm9wcyA9IG51bGw7XG52YXIgb3ZlcnJpZGVQcm9wc0RlbGV0ZVBhdGggPSBudWxsO1xudmFyIG92ZXJyaWRlUHJvcHNSZW5hbWVQYXRoID0gbnVsbDtcbnZhciBzY2hlZHVsZVVwZGF0ZSA9IG51bGw7XG52YXIgc2V0RXJyb3JIYW5kbGVyID0gbnVsbDtcbnZhciBzZXRTdXNwZW5zZUhhbmRsZXIgPSBudWxsO1xuXG57XG4gIHZhciBjb3B5V2l0aERlbGV0ZUltcGwgPSBmdW5jdGlvbiAob2JqLCBwYXRoLCBpbmRleCkge1xuICAgIHZhciBrZXkgPSBwYXRoW2luZGV4XTtcbiAgICB2YXIgdXBkYXRlZCA9IGlzQXJyYXkob2JqKSA/IG9iai5zbGljZSgpIDogYXNzaWduKHt9LCBvYmopO1xuXG4gICAgaWYgKGluZGV4ICsgMSA9PT0gcGF0aC5sZW5ndGgpIHtcbiAgICAgIGlmIChpc0FycmF5KHVwZGF0ZWQpKSB7XG4gICAgICAgIHVwZGF0ZWQuc3BsaWNlKGtleSwgMSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWxldGUgdXBkYXRlZFtrZXldO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdXBkYXRlZDtcbiAgICB9IC8vICRGbG93Rml4TWUgbnVtYmVyIG9yIHN0cmluZyBpcyBmaW5lIGhlcmVcblxuXG4gICAgdXBkYXRlZFtrZXldID0gY29weVdpdGhEZWxldGVJbXBsKG9ialtrZXldLCBwYXRoLCBpbmRleCArIDEpO1xuICAgIHJldHVybiB1cGRhdGVkO1xuICB9O1xuXG4gIHZhciBjb3B5V2l0aERlbGV0ZSA9IGZ1bmN0aW9uIChvYmosIHBhdGgpIHtcbiAgICByZXR1cm4gY29weVdpdGhEZWxldGVJbXBsKG9iaiwgcGF0aCwgMCk7XG4gIH07XG5cbiAgdmFyIGNvcHlXaXRoUmVuYW1lSW1wbCA9IGZ1bmN0aW9uIChvYmosIG9sZFBhdGgsIG5ld1BhdGgsIGluZGV4KSB7XG4gICAgdmFyIG9sZEtleSA9IG9sZFBhdGhbaW5kZXhdO1xuICAgIHZhciB1cGRhdGVkID0gaXNBcnJheShvYmopID8gb2JqLnNsaWNlKCkgOiBhc3NpZ24oe30sIG9iaik7XG5cbiAgICBpZiAoaW5kZXggKyAxID09PSBvbGRQYXRoLmxlbmd0aCkge1xuICAgICAgdmFyIG5ld0tleSA9IG5ld1BhdGhbaW5kZXhdOyAvLyAkRmxvd0ZpeE1lIG51bWJlciBvciBzdHJpbmcgaXMgZmluZSBoZXJlXG5cbiAgICAgIHVwZGF0ZWRbbmV3S2V5XSA9IHVwZGF0ZWRbb2xkS2V5XTtcblxuICAgICAgaWYgKGlzQXJyYXkodXBkYXRlZCkpIHtcbiAgICAgICAgdXBkYXRlZC5zcGxpY2Uob2xkS2V5LCAxKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlbGV0ZSB1cGRhdGVkW29sZEtleV07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vICRGbG93Rml4TWUgbnVtYmVyIG9yIHN0cmluZyBpcyBmaW5lIGhlcmVcbiAgICAgIHVwZGF0ZWRbb2xkS2V5XSA9IGNvcHlXaXRoUmVuYW1lSW1wbCggLy8gJEZsb3dGaXhNZSBudW1iZXIgb3Igc3RyaW5nIGlzIGZpbmUgaGVyZVxuICAgICAgb2JqW29sZEtleV0sIG9sZFBhdGgsIG5ld1BhdGgsIGluZGV4ICsgMSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVwZGF0ZWQ7XG4gIH07XG5cbiAgdmFyIGNvcHlXaXRoUmVuYW1lID0gZnVuY3Rpb24gKG9iaiwgb2xkUGF0aCwgbmV3UGF0aCkge1xuICAgIGlmIChvbGRQYXRoLmxlbmd0aCAhPT0gbmV3UGF0aC5sZW5ndGgpIHtcbiAgICAgIHdhcm4oJ2NvcHlXaXRoUmVuYW1lKCkgZXhwZWN0cyBwYXRocyBvZiB0aGUgc2FtZSBsZW5ndGgnKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5ld1BhdGgubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICAgIGlmIChvbGRQYXRoW2ldICE9PSBuZXdQYXRoW2ldKSB7XG4gICAgICAgICAgd2FybignY29weVdpdGhSZW5hbWUoKSBleHBlY3RzIHBhdGhzIHRvIGJlIHRoZSBzYW1lIGV4Y2VwdCBmb3IgdGhlIGRlZXBlc3Qga2V5Jyk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY29weVdpdGhSZW5hbWVJbXBsKG9iaiwgb2xkUGF0aCwgbmV3UGF0aCwgMCk7XG4gIH07XG5cbiAgdmFyIGNvcHlXaXRoU2V0SW1wbCA9IGZ1bmN0aW9uIChvYmosIHBhdGgsIGluZGV4LCB2YWx1ZSkge1xuICAgIGlmIChpbmRleCA+PSBwYXRoLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHZhciBrZXkgPSBwYXRoW2luZGV4XTtcbiAgICB2YXIgdXBkYXRlZCA9IGlzQXJyYXkob2JqKSA/IG9iai5zbGljZSgpIDogYXNzaWduKHt9LCBvYmopOyAvLyAkRmxvd0ZpeE1lIG51bWJlciBvciBzdHJpbmcgaXMgZmluZSBoZXJlXG5cbiAgICB1cGRhdGVkW2tleV0gPSBjb3B5V2l0aFNldEltcGwob2JqW2tleV0sIHBhdGgsIGluZGV4ICsgMSwgdmFsdWUpO1xuICAgIHJldHVybiB1cGRhdGVkO1xuICB9O1xuXG4gIHZhciBjb3B5V2l0aFNldCA9IGZ1bmN0aW9uIChvYmosIHBhdGgsIHZhbHVlKSB7XG4gICAgcmV0dXJuIGNvcHlXaXRoU2V0SW1wbChvYmosIHBhdGgsIDAsIHZhbHVlKTtcbiAgfTtcblxuICB2YXIgZmluZEhvb2sgPSBmdW5jdGlvbiAoZmliZXIsIGlkKSB7XG4gICAgLy8gRm9yIG5vdywgdGhlIFwiaWRcIiBvZiBzdGF0ZWZ1bCBob29rcyBpcyBqdXN0IHRoZSBzdGF0ZWZ1bCBob29rIGluZGV4LlxuICAgIC8vIFRoaXMgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlIHdpdGggZS5nLiBuZXN0ZWQgaG9va3MuXG4gICAgdmFyIGN1cnJlbnRIb29rID0gZmliZXIubWVtb2l6ZWRTdGF0ZTtcblxuICAgIHdoaWxlIChjdXJyZW50SG9vayAhPT0gbnVsbCAmJiBpZCA+IDApIHtcbiAgICAgIGN1cnJlbnRIb29rID0gY3VycmVudEhvb2submV4dDtcbiAgICAgIGlkLS07XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1cnJlbnRIb29rO1xuICB9OyAvLyBTdXBwb3J0IERldlRvb2xzIGVkaXRhYmxlIHZhbHVlcyBmb3IgdXNlU3RhdGUgYW5kIHVzZVJlZHVjZXIuXG5cblxuICBvdmVycmlkZUhvb2tTdGF0ZSA9IGZ1bmN0aW9uIChmaWJlciwgaWQsIHBhdGgsIHZhbHVlKSB7XG4gICAgdmFyIGhvb2sgPSBmaW5kSG9vayhmaWJlciwgaWQpO1xuXG4gICAgaWYgKGhvb2sgIT09IG51bGwpIHtcbiAgICAgIHZhciBuZXdTdGF0ZSA9IGNvcHlXaXRoU2V0KGhvb2subWVtb2l6ZWRTdGF0ZSwgcGF0aCwgdmFsdWUpO1xuICAgICAgaG9vay5tZW1vaXplZFN0YXRlID0gbmV3U3RhdGU7XG4gICAgICBob29rLmJhc2VTdGF0ZSA9IG5ld1N0YXRlOyAvLyBXZSBhcmVuJ3QgYWN0dWFsbHkgYWRkaW5nIGFuIHVwZGF0ZSB0byB0aGUgcXVldWUsXG4gICAgICAvLyBiZWNhdXNlIHRoZXJlIGlzIG5vIHVwZGF0ZSB3ZSBjYW4gYWRkIGZvciB1c2VSZWR1Y2VyIGhvb2tzIHRoYXQgd29uJ3QgdHJpZ2dlciBhbiBlcnJvci5cbiAgICAgIC8vIChUaGVyZSdzIG5vIGFwcHJvcHJpYXRlIGFjdGlvbiB0eXBlIGZvciBEZXZUb29scyBvdmVycmlkZXMuKVxuICAgICAgLy8gQXMgYSByZXN1bHQgdGhvdWdoLCBSZWFjdCB3aWxsIHNlZSB0aGUgc2NoZWR1bGVkIHVwZGF0ZSBhcyBhIG5vb3AgYW5kIGJhaWxvdXQuXG4gICAgICAvLyBTaGFsbG93IGNsb25pbmcgcHJvcHMgd29ya3MgYXMgYSB3b3JrYXJvdW5kIGZvciBub3cgdG8gYnlwYXNzIHRoZSBiYWlsb3V0IGNoZWNrLlxuXG4gICAgICBmaWJlci5tZW1vaXplZFByb3BzID0gYXNzaWduKHt9LCBmaWJlci5tZW1vaXplZFByb3BzKTtcbiAgICAgIHZhciByb290ID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCBTeW5jTGFuZSk7XG5cbiAgICAgIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihyb290LCBmaWJlciwgU3luY0xhbmUsIE5vVGltZXN0YW1wKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgb3ZlcnJpZGVIb29rU3RhdGVEZWxldGVQYXRoID0gZnVuY3Rpb24gKGZpYmVyLCBpZCwgcGF0aCkge1xuICAgIHZhciBob29rID0gZmluZEhvb2soZmliZXIsIGlkKTtcblxuICAgIGlmIChob29rICE9PSBudWxsKSB7XG4gICAgICB2YXIgbmV3U3RhdGUgPSBjb3B5V2l0aERlbGV0ZShob29rLm1lbW9pemVkU3RhdGUsIHBhdGgpO1xuICAgICAgaG9vay5tZW1vaXplZFN0YXRlID0gbmV3U3RhdGU7XG4gICAgICBob29rLmJhc2VTdGF0ZSA9IG5ld1N0YXRlOyAvLyBXZSBhcmVuJ3QgYWN0dWFsbHkgYWRkaW5nIGFuIHVwZGF0ZSB0byB0aGUgcXVldWUsXG4gICAgICAvLyBiZWNhdXNlIHRoZXJlIGlzIG5vIHVwZGF0ZSB3ZSBjYW4gYWRkIGZvciB1c2VSZWR1Y2VyIGhvb2tzIHRoYXQgd29uJ3QgdHJpZ2dlciBhbiBlcnJvci5cbiAgICAgIC8vIChUaGVyZSdzIG5vIGFwcHJvcHJpYXRlIGFjdGlvbiB0eXBlIGZvciBEZXZUb29scyBvdmVycmlkZXMuKVxuICAgICAgLy8gQXMgYSByZXN1bHQgdGhvdWdoLCBSZWFjdCB3aWxsIHNlZSB0aGUgc2NoZWR1bGVkIHVwZGF0ZSBhcyBhIG5vb3AgYW5kIGJhaWxvdXQuXG4gICAgICAvLyBTaGFsbG93IGNsb25pbmcgcHJvcHMgd29ya3MgYXMgYSB3b3JrYXJvdW5kIGZvciBub3cgdG8gYnlwYXNzIHRoZSBiYWlsb3V0IGNoZWNrLlxuXG4gICAgICBmaWJlci5tZW1vaXplZFByb3BzID0gYXNzaWduKHt9LCBmaWJlci5tZW1vaXplZFByb3BzKTtcbiAgICAgIHZhciByb290ID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCBTeW5jTGFuZSk7XG5cbiAgICAgIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihyb290LCBmaWJlciwgU3luY0xhbmUsIE5vVGltZXN0YW1wKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgb3ZlcnJpZGVIb29rU3RhdGVSZW5hbWVQYXRoID0gZnVuY3Rpb24gKGZpYmVyLCBpZCwgb2xkUGF0aCwgbmV3UGF0aCkge1xuICAgIHZhciBob29rID0gZmluZEhvb2soZmliZXIsIGlkKTtcblxuICAgIGlmIChob29rICE9PSBudWxsKSB7XG4gICAgICB2YXIgbmV3U3RhdGUgPSBjb3B5V2l0aFJlbmFtZShob29rLm1lbW9pemVkU3RhdGUsIG9sZFBhdGgsIG5ld1BhdGgpO1xuICAgICAgaG9vay5tZW1vaXplZFN0YXRlID0gbmV3U3RhdGU7XG4gICAgICBob29rLmJhc2VTdGF0ZSA9IG5ld1N0YXRlOyAvLyBXZSBhcmVuJ3QgYWN0dWFsbHkgYWRkaW5nIGFuIHVwZGF0ZSB0byB0aGUgcXVldWUsXG4gICAgICAvLyBiZWNhdXNlIHRoZXJlIGlzIG5vIHVwZGF0ZSB3ZSBjYW4gYWRkIGZvciB1c2VSZWR1Y2VyIGhvb2tzIHRoYXQgd29uJ3QgdHJpZ2dlciBhbiBlcnJvci5cbiAgICAgIC8vIChUaGVyZSdzIG5vIGFwcHJvcHJpYXRlIGFjdGlvbiB0eXBlIGZvciBEZXZUb29scyBvdmVycmlkZXMuKVxuICAgICAgLy8gQXMgYSByZXN1bHQgdGhvdWdoLCBSZWFjdCB3aWxsIHNlZSB0aGUgc2NoZWR1bGVkIHVwZGF0ZSBhcyBhIG5vb3AgYW5kIGJhaWxvdXQuXG4gICAgICAvLyBTaGFsbG93IGNsb25pbmcgcHJvcHMgd29ya3MgYXMgYSB3b3JrYXJvdW5kIGZvciBub3cgdG8gYnlwYXNzIHRoZSBiYWlsb3V0IGNoZWNrLlxuXG4gICAgICBmaWJlci5tZW1vaXplZFByb3BzID0gYXNzaWduKHt9LCBmaWJlci5tZW1vaXplZFByb3BzKTtcbiAgICAgIHZhciByb290ID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCBTeW5jTGFuZSk7XG5cbiAgICAgIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihyb290LCBmaWJlciwgU3luY0xhbmUsIE5vVGltZXN0YW1wKTtcbiAgICAgIH1cbiAgICB9XG4gIH07IC8vIFN1cHBvcnQgRGV2VG9vbHMgcHJvcHMgZm9yIGZ1bmN0aW9uIGNvbXBvbmVudHMsIGZvcndhcmRSZWYsIG1lbW8sIGhvc3QgY29tcG9uZW50cywgZXRjLlxuXG5cbiAgb3ZlcnJpZGVQcm9wcyA9IGZ1bmN0aW9uIChmaWJlciwgcGF0aCwgdmFsdWUpIHtcbiAgICBmaWJlci5wZW5kaW5nUHJvcHMgPSBjb3B5V2l0aFNldChmaWJlci5tZW1vaXplZFByb3BzLCBwYXRoLCB2YWx1ZSk7XG5cbiAgICBpZiAoZmliZXIuYWx0ZXJuYXRlKSB7XG4gICAgICBmaWJlci5hbHRlcm5hdGUucGVuZGluZ1Byb3BzID0gZmliZXIucGVuZGluZ1Byb3BzO1xuICAgIH1cblxuICAgIHZhciByb290ID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCBTeW5jTGFuZSk7XG5cbiAgICBpZiAocm9vdCAhPT0gbnVsbCkge1xuICAgICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHJvb3QsIGZpYmVyLCBTeW5jTGFuZSwgTm9UaW1lc3RhbXApO1xuICAgIH1cbiAgfTtcblxuICBvdmVycmlkZVByb3BzRGVsZXRlUGF0aCA9IGZ1bmN0aW9uIChmaWJlciwgcGF0aCkge1xuICAgIGZpYmVyLnBlbmRpbmdQcm9wcyA9IGNvcHlXaXRoRGVsZXRlKGZpYmVyLm1lbW9pemVkUHJvcHMsIHBhdGgpO1xuXG4gICAgaWYgKGZpYmVyLmFsdGVybmF0ZSkge1xuICAgICAgZmliZXIuYWx0ZXJuYXRlLnBlbmRpbmdQcm9wcyA9IGZpYmVyLnBlbmRpbmdQcm9wcztcbiAgICB9XG5cbiAgICB2YXIgcm9vdCA9IGVucXVldWVDb25jdXJyZW50UmVuZGVyRm9yTGFuZShmaWJlciwgU3luY0xhbmUpO1xuXG4gICAgaWYgKHJvb3QgIT09IG51bGwpIHtcbiAgICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihyb290LCBmaWJlciwgU3luY0xhbmUsIE5vVGltZXN0YW1wKTtcbiAgICB9XG4gIH07XG5cbiAgb3ZlcnJpZGVQcm9wc1JlbmFtZVBhdGggPSBmdW5jdGlvbiAoZmliZXIsIG9sZFBhdGgsIG5ld1BhdGgpIHtcbiAgICBmaWJlci5wZW5kaW5nUHJvcHMgPSBjb3B5V2l0aFJlbmFtZShmaWJlci5tZW1vaXplZFByb3BzLCBvbGRQYXRoLCBuZXdQYXRoKTtcblxuICAgIGlmIChmaWJlci5hbHRlcm5hdGUpIHtcbiAgICAgIGZpYmVyLmFsdGVybmF0ZS5wZW5kaW5nUHJvcHMgPSBmaWJlci5wZW5kaW5nUHJvcHM7XG4gICAgfVxuXG4gICAgdmFyIHJvb3QgPSBlbnF1ZXVlQ29uY3VycmVudFJlbmRlckZvckxhbmUoZmliZXIsIFN5bmNMYW5lKTtcblxuICAgIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIocm9vdCwgZmliZXIsIFN5bmNMYW5lLCBOb1RpbWVzdGFtcCk7XG4gICAgfVxuICB9O1xuXG4gIHNjaGVkdWxlVXBkYXRlID0gZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgdmFyIHJvb3QgPSBlbnF1ZXVlQ29uY3VycmVudFJlbmRlckZvckxhbmUoZmliZXIsIFN5bmNMYW5lKTtcblxuICAgIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIocm9vdCwgZmliZXIsIFN5bmNMYW5lLCBOb1RpbWVzdGFtcCk7XG4gICAgfVxuICB9O1xuXG4gIHNldEVycm9ySGFuZGxlciA9IGZ1bmN0aW9uIChuZXdTaG91bGRFcnJvckltcGwpIHtcbiAgICBzaG91bGRFcnJvckltcGwgPSBuZXdTaG91bGRFcnJvckltcGw7XG4gIH07XG5cbiAgc2V0U3VzcGVuc2VIYW5kbGVyID0gZnVuY3Rpb24gKG5ld1Nob3VsZFN1c3BlbmRJbXBsKSB7XG4gICAgc2hvdWxkU3VzcGVuZEltcGwgPSBuZXdTaG91bGRTdXNwZW5kSW1wbDtcbiAgfTtcbn1cblxuZnVuY3Rpb24gZmluZEhvc3RJbnN0YW5jZUJ5RmliZXIoZmliZXIpIHtcbiAgdmFyIGhvc3RGaWJlciA9IGZpbmRDdXJyZW50SG9zdEZpYmVyKGZpYmVyKTtcblxuICBpZiAoaG9zdEZpYmVyID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gaG9zdEZpYmVyLnN0YXRlTm9kZTtcbn1cblxuZnVuY3Rpb24gZW1wdHlGaW5kRmliZXJCeUhvc3RJbnN0YW5jZShpbnN0YW5jZSkge1xuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gZ2V0Q3VycmVudEZpYmVyRm9yRGV2VG9vbHMoKSB7XG4gIHJldHVybiBjdXJyZW50O1xufVxuXG5mdW5jdGlvbiBpbmplY3RJbnRvRGV2VG9vbHMoZGV2VG9vbHNDb25maWcpIHtcbiAgdmFyIGZpbmRGaWJlckJ5SG9zdEluc3RhbmNlID0gZGV2VG9vbHNDb25maWcuZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U7XG4gIHZhciBSZWFjdEN1cnJlbnREaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50RGlzcGF0Y2hlcjtcbiAgcmV0dXJuIGluamVjdEludGVybmFscyh7XG4gICAgYnVuZGxlVHlwZTogZGV2VG9vbHNDb25maWcuYnVuZGxlVHlwZSxcbiAgICB2ZXJzaW9uOiBkZXZUb29sc0NvbmZpZy52ZXJzaW9uLFxuICAgIHJlbmRlcmVyUGFja2FnZU5hbWU6IGRldlRvb2xzQ29uZmlnLnJlbmRlcmVyUGFja2FnZU5hbWUsXG4gICAgcmVuZGVyZXJDb25maWc6IGRldlRvb2xzQ29uZmlnLnJlbmRlcmVyQ29uZmlnLFxuICAgIG92ZXJyaWRlSG9va1N0YXRlOiBvdmVycmlkZUhvb2tTdGF0ZSxcbiAgICBvdmVycmlkZUhvb2tTdGF0ZURlbGV0ZVBhdGg6IG92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aCxcbiAgICBvdmVycmlkZUhvb2tTdGF0ZVJlbmFtZVBhdGg6IG92ZXJyaWRlSG9va1N0YXRlUmVuYW1lUGF0aCxcbiAgICBvdmVycmlkZVByb3BzOiBvdmVycmlkZVByb3BzLFxuICAgIG92ZXJyaWRlUHJvcHNEZWxldGVQYXRoOiBvdmVycmlkZVByb3BzRGVsZXRlUGF0aCxcbiAgICBvdmVycmlkZVByb3BzUmVuYW1lUGF0aDogb3ZlcnJpZGVQcm9wc1JlbmFtZVBhdGgsXG4gICAgc2V0RXJyb3JIYW5kbGVyOiBzZXRFcnJvckhhbmRsZXIsXG4gICAgc2V0U3VzcGVuc2VIYW5kbGVyOiBzZXRTdXNwZW5zZUhhbmRsZXIsXG4gICAgc2NoZWR1bGVVcGRhdGU6IHNjaGVkdWxlVXBkYXRlLFxuICAgIGN1cnJlbnREaXNwYXRjaGVyUmVmOiBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLFxuICAgIGZpbmRIb3N0SW5zdGFuY2VCeUZpYmVyOiBmaW5kSG9zdEluc3RhbmNlQnlGaWJlcixcbiAgICBmaW5kRmliZXJCeUhvc3RJbnN0YW5jZTogZmluZEZpYmVyQnlIb3N0SW5zdGFuY2UgfHwgZW1wdHlGaW5kRmliZXJCeUhvc3RJbnN0YW5jZSxcbiAgICAvLyBSZWFjdCBSZWZyZXNoXG4gICAgZmluZEhvc3RJbnN0YW5jZXNGb3JSZWZyZXNoOiAgZmluZEhvc3RJbnN0YW5jZXNGb3JSZWZyZXNoICxcbiAgICBzY2hlZHVsZVJlZnJlc2g6ICBzY2hlZHVsZVJlZnJlc2ggLFxuICAgIHNjaGVkdWxlUm9vdDogIHNjaGVkdWxlUm9vdCAsXG4gICAgc2V0UmVmcmVzaEhhbmRsZXI6ICBzZXRSZWZyZXNoSGFuZGxlciAsXG4gICAgLy8gRW5hYmxlcyBEZXZUb29scyB0byBhcHBlbmQgb3duZXIgc3RhY2tzIHRvIGVycm9yIG1lc3NhZ2VzIGluIERFViBtb2RlLlxuICAgIGdldEN1cnJlbnRGaWJlcjogIGdldEN1cnJlbnRGaWJlckZvckRldlRvb2xzICxcbiAgICAvLyBFbmFibGVzIERldlRvb2xzIHRvIGRldGVjdCByZWNvbmNpbGVyIHZlcnNpb24gcmF0aGVyIHRoYW4gcmVuZGVyZXIgdmVyc2lvblxuICAgIC8vIHdoaWNoIG1heSBub3QgbWF0Y2ggZm9yIHRoaXJkIHBhcnR5IHJlbmRlcmVycy5cbiAgICByZWNvbmNpbGVyVmVyc2lvbjogUmVhY3RWZXJzaW9uXG4gIH0pO1xufVxuXG4vKiBnbG9iYWwgcmVwb3J0RXJyb3IgKi9cblxudmFyIGRlZmF1bHRPblJlY292ZXJhYmxlRXJyb3IgPSB0eXBlb2YgcmVwb3J0RXJyb3IgPT09ICdmdW5jdGlvbicgPyAvLyBJbiBtb2Rlcm4gYnJvd3NlcnMsIHJlcG9ydEVycm9yIHdpbGwgZGlzcGF0Y2ggYW4gZXJyb3IgZXZlbnQsXG4vLyBlbXVsYXRpbmcgYW4gdW5jYXVnaHQgSmF2YVNjcmlwdCBlcnJvci5cbnJlcG9ydEVycm9yIDogZnVuY3Rpb24gKGVycm9yKSB7XG4gIC8vIEluIG9sZGVyIGJyb3dzZXJzIGFuZCB0ZXN0IGVudmlyb25tZW50cywgZmFsbGJhY2sgdG8gY29uc29sZS5lcnJvci5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZ1xuICBjb25zb2xlWydlcnJvciddKGVycm9yKTtcbn07XG5cbmZ1bmN0aW9uIFJlYWN0RE9NUm9vdChpbnRlcm5hbFJvb3QpIHtcbiAgdGhpcy5faW50ZXJuYWxSb290ID0gaW50ZXJuYWxSb290O1xufVxuXG5SZWFjdERPTUh5ZHJhdGlvblJvb3QucHJvdG90eXBlLnJlbmRlciA9IFJlYWN0RE9NUm9vdC5wcm90b3R5cGUucmVuZGVyID0gZnVuY3Rpb24gKGNoaWxkcmVuKSB7XG4gIHZhciByb290ID0gdGhpcy5faW50ZXJuYWxSb290O1xuXG4gIGlmIChyb290ID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgdXBkYXRlIGFuIHVubW91bnRlZCByb290LicpO1xuICB9XG5cbiAge1xuICAgIGlmICh0eXBlb2YgYXJndW1lbnRzWzFdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBlcnJvcigncmVuZGVyKC4uLik6IGRvZXMgbm90IHN1cHBvcnQgdGhlIHNlY29uZCBjYWxsYmFjayBhcmd1bWVudC4gJyArICdUbyBleGVjdXRlIGEgc2lkZSBlZmZlY3QgYWZ0ZXIgcmVuZGVyaW5nLCBkZWNsYXJlIGl0IGluIGEgY29tcG9uZW50IGJvZHkgd2l0aCB1c2VFZmZlY3QoKS4nKTtcbiAgICB9IGVsc2UgaWYgKGlzVmFsaWRDb250YWluZXIoYXJndW1lbnRzWzFdKSkge1xuICAgICAgZXJyb3IoJ1lvdSBwYXNzZWQgYSBjb250YWluZXIgdG8gdGhlIHNlY29uZCBhcmd1bWVudCBvZiByb290LnJlbmRlciguLi4pLiAnICsgXCJZb3UgZG9uJ3QgbmVlZCB0byBwYXNzIGl0IGFnYWluIHNpbmNlIHlvdSBhbHJlYWR5IHBhc3NlZCBpdCB0byBjcmVhdGUgdGhlIHJvb3QuXCIpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGFyZ3VtZW50c1sxXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGVycm9yKCdZb3UgcGFzc2VkIGEgc2Vjb25kIGFyZ3VtZW50IHRvIHJvb3QucmVuZGVyKC4uLikgYnV0IGl0IG9ubHkgYWNjZXB0cyAnICsgJ29uZSBhcmd1bWVudC4nKTtcbiAgICB9XG5cbiAgICB2YXIgY29udGFpbmVyID0gcm9vdC5jb250YWluZXJJbmZvO1xuXG4gICAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSAhPT0gQ09NTUVOVF9OT0RFKSB7XG4gICAgICB2YXIgaG9zdEluc3RhbmNlID0gZmluZEhvc3RJbnN0YW5jZVdpdGhOb1BvcnRhbHMocm9vdC5jdXJyZW50KTtcblxuICAgICAgaWYgKGhvc3RJbnN0YW5jZSkge1xuICAgICAgICBpZiAoaG9zdEluc3RhbmNlLnBhcmVudE5vZGUgIT09IGNvbnRhaW5lcikge1xuICAgICAgICAgIGVycm9yKCdyZW5kZXIoLi4uKTogSXQgbG9va3MgbGlrZSB0aGUgUmVhY3QtcmVuZGVyZWQgY29udGVudCBvZiB0aGUgJyArICdyb290IGNvbnRhaW5lciB3YXMgcmVtb3ZlZCB3aXRob3V0IHVzaW5nIFJlYWN0LiBUaGlzIGlzIG5vdCAnICsgJ3N1cHBvcnRlZCBhbmQgd2lsbCBjYXVzZSBlcnJvcnMuIEluc3RlYWQsIGNhbGwgJyArIFwicm9vdC51bm1vdW50KCkgdG8gZW1wdHkgYSByb290J3MgY29udGFpbmVyLlwiKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUNvbnRhaW5lcihjaGlsZHJlbiwgcm9vdCwgbnVsbCwgbnVsbCk7XG59O1xuXG5SZWFjdERPTUh5ZHJhdGlvblJvb3QucHJvdG90eXBlLnVubW91bnQgPSBSZWFjdERPTVJvb3QucHJvdG90eXBlLnVubW91bnQgPSBmdW5jdGlvbiAoKSB7XG4gIHtcbiAgICBpZiAodHlwZW9mIGFyZ3VtZW50c1swXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZXJyb3IoJ3VubW91bnQoLi4uKTogZG9lcyBub3Qgc3VwcG9ydCBhIGNhbGxiYWNrIGFyZ3VtZW50LiAnICsgJ1RvIGV4ZWN1dGUgYSBzaWRlIGVmZmVjdCBhZnRlciByZW5kZXJpbmcsIGRlY2xhcmUgaXQgaW4gYSBjb21wb25lbnQgYm9keSB3aXRoIHVzZUVmZmVjdCgpLicpO1xuICAgIH1cbiAgfVxuXG4gIHZhciByb290ID0gdGhpcy5faW50ZXJuYWxSb290O1xuXG4gIGlmIChyb290ICE9PSBudWxsKSB7XG4gICAgdGhpcy5faW50ZXJuYWxSb290ID0gbnVsbDtcbiAgICB2YXIgY29udGFpbmVyID0gcm9vdC5jb250YWluZXJJbmZvO1xuXG4gICAge1xuICAgICAgaWYgKGlzQWxyZWFkeVJlbmRlcmluZygpKSB7XG4gICAgICAgIGVycm9yKCdBdHRlbXB0ZWQgdG8gc3luY2hyb25vdXNseSB1bm1vdW50IGEgcm9vdCB3aGlsZSBSZWFjdCB3YXMgYWxyZWFkeSAnICsgJ3JlbmRlcmluZy4gUmVhY3QgY2Fubm90IGZpbmlzaCB1bm1vdW50aW5nIHRoZSByb290IHVudGlsIHRoZSAnICsgJ2N1cnJlbnQgcmVuZGVyIGhhcyBjb21wbGV0ZWQsIHdoaWNoIG1heSBsZWFkIHRvIGEgcmFjZSBjb25kaXRpb24uJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZmx1c2hTeW5jKGZ1bmN0aW9uICgpIHtcbiAgICAgIHVwZGF0ZUNvbnRhaW5lcihudWxsLCByb290LCBudWxsLCBudWxsKTtcbiAgICB9KTtcbiAgICB1bm1hcmtDb250YWluZXJBc1Jvb3QoY29udGFpbmVyKTtcbiAgfVxufTtcblxuZnVuY3Rpb24gY3JlYXRlUm9vdChjb250YWluZXIsIG9wdGlvbnMpIHtcbiAgaWYgKCFpc1ZhbGlkQ29udGFpbmVyKGNvbnRhaW5lcikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NyZWF0ZVJvb3QoLi4uKTogVGFyZ2V0IGNvbnRhaW5lciBpcyBub3QgYSBET00gZWxlbWVudC4nKTtcbiAgfVxuXG4gIHdhcm5JZlJlYWN0RE9NQ29udGFpbmVySW5ERVYoY29udGFpbmVyKTtcbiAgdmFyIGlzU3RyaWN0TW9kZSA9IGZhbHNlO1xuICB2YXIgY29uY3VycmVudFVwZGF0ZXNCeURlZmF1bHRPdmVycmlkZSA9IGZhbHNlO1xuICB2YXIgaWRlbnRpZmllclByZWZpeCA9ICcnO1xuICB2YXIgb25SZWNvdmVyYWJsZUVycm9yID0gZGVmYXVsdE9uUmVjb3ZlcmFibGVFcnJvcjtcbiAgdmFyIHRyYW5zaXRpb25DYWxsYmFja3MgPSBudWxsO1xuXG4gIGlmIChvcHRpb25zICE9PSBudWxsICYmIG9wdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgIHtcbiAgICAgIGlmIChvcHRpb25zLmh5ZHJhdGUpIHtcbiAgICAgICAgd2FybignaHlkcmF0ZSB0aHJvdWdoIGNyZWF0ZVJvb3QgaXMgZGVwcmVjYXRlZC4gVXNlIFJlYWN0RE9NQ2xpZW50Lmh5ZHJhdGVSb290KGNvbnRhaW5lciwgPEFwcCAvPikgaW5zdGVhZC4nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ29iamVjdCcgJiYgb3B0aW9ucyAhPT0gbnVsbCAmJiBvcHRpb25zLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUpIHtcbiAgICAgICAgICBlcnJvcignWW91IHBhc3NlZCBhIEpTWCBlbGVtZW50IHRvIGNyZWF0ZVJvb3QuIFlvdSBwcm9iYWJseSBtZWFudCB0byAnICsgJ2NhbGwgcm9vdC5yZW5kZXIgaW5zdGVhZC4gJyArICdFeGFtcGxlIHVzYWdlOlxcblxcbicgKyAnICBsZXQgcm9vdCA9IGNyZWF0ZVJvb3QoZG9tQ29udGFpbmVyKTtcXG4nICsgJyAgcm9vdC5yZW5kZXIoPEFwcCAvPik7Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy51bnN0YWJsZV9zdHJpY3RNb2RlID09PSB0cnVlKSB7XG4gICAgICBpc1N0cmljdE1vZGUgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmlkZW50aWZpZXJQcmVmaXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWRlbnRpZmllclByZWZpeCA9IG9wdGlvbnMuaWRlbnRpZmllclByZWZpeDtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5vblJlY292ZXJhYmxlRXJyb3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb25SZWNvdmVyYWJsZUVycm9yID0gb3B0aW9ucy5vblJlY292ZXJhYmxlRXJyb3I7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMudHJhbnNpdGlvbkNhbGxiYWNrcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0cmFuc2l0aW9uQ2FsbGJhY2tzID0gb3B0aW9ucy50cmFuc2l0aW9uQ2FsbGJhY2tzO1xuICAgIH1cbiAgfVxuXG4gIHZhciByb290ID0gY3JlYXRlQ29udGFpbmVyKGNvbnRhaW5lciwgQ29uY3VycmVudFJvb3QsIG51bGwsIGlzU3RyaWN0TW9kZSwgY29uY3VycmVudFVwZGF0ZXNCeURlZmF1bHRPdmVycmlkZSwgaWRlbnRpZmllclByZWZpeCwgb25SZWNvdmVyYWJsZUVycm9yKTtcbiAgbWFya0NvbnRhaW5lckFzUm9vdChyb290LmN1cnJlbnQsIGNvbnRhaW5lcik7XG4gIHZhciByb290Q29udGFpbmVyRWxlbWVudCA9IGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFID8gY29udGFpbmVyLnBhcmVudE5vZGUgOiBjb250YWluZXI7XG4gIGxpc3RlblRvQWxsU3VwcG9ydGVkRXZlbnRzKHJvb3RDb250YWluZXJFbGVtZW50KTtcbiAgcmV0dXJuIG5ldyBSZWFjdERPTVJvb3Qocm9vdCk7XG59XG5cbmZ1bmN0aW9uIFJlYWN0RE9NSHlkcmF0aW9uUm9vdChpbnRlcm5hbFJvb3QpIHtcbiAgdGhpcy5faW50ZXJuYWxSb290ID0gaW50ZXJuYWxSb290O1xufVxuXG5mdW5jdGlvbiBzY2hlZHVsZUh5ZHJhdGlvbih0YXJnZXQpIHtcbiAgaWYgKHRhcmdldCkge1xuICAgIHF1ZXVlRXhwbGljaXRIeWRyYXRpb25UYXJnZXQodGFyZ2V0KTtcbiAgfVxufVxuXG5SZWFjdERPTUh5ZHJhdGlvblJvb3QucHJvdG90eXBlLnVuc3RhYmxlX3NjaGVkdWxlSHlkcmF0aW9uID0gc2NoZWR1bGVIeWRyYXRpb247XG5mdW5jdGlvbiBoeWRyYXRlUm9vdChjb250YWluZXIsIGluaXRpYWxDaGlsZHJlbiwgb3B0aW9ucykge1xuICBpZiAoIWlzVmFsaWRDb250YWluZXIoY29udGFpbmVyKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignaHlkcmF0ZVJvb3QoLi4uKTogVGFyZ2V0IGNvbnRhaW5lciBpcyBub3QgYSBET00gZWxlbWVudC4nKTtcbiAgfVxuXG4gIHdhcm5JZlJlYWN0RE9NQ29udGFpbmVySW5ERVYoY29udGFpbmVyKTtcblxuICB7XG4gICAgaWYgKGluaXRpYWxDaGlsZHJlbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBlcnJvcignTXVzdCBwcm92aWRlIGluaXRpYWwgY2hpbGRyZW4gYXMgc2Vjb25kIGFyZ3VtZW50IHRvIGh5ZHJhdGVSb290LiAnICsgJ0V4YW1wbGUgdXNhZ2U6IGh5ZHJhdGVSb290KGRvbUNvbnRhaW5lciwgPEFwcCAvPiknKTtcbiAgICB9XG4gIH0gLy8gRm9yIG5vdyB3ZSByZXVzZSB0aGUgd2hvbGUgYmFnIG9mIG9wdGlvbnMgc2luY2UgdGhleSBjb250YWluXG4gIC8vIHRoZSBoeWRyYXRpb24gY2FsbGJhY2tzLlxuXG5cbiAgdmFyIGh5ZHJhdGlvbkNhbGxiYWNrcyA9IG9wdGlvbnMgIT0gbnVsbCA/IG9wdGlvbnMgOiBudWxsOyAvLyBUT0RPOiBEZWxldGUgdGhpcyBvcHRpb25cblxuICB2YXIgbXV0YWJsZVNvdXJjZXMgPSBvcHRpb25zICE9IG51bGwgJiYgb3B0aW9ucy5oeWRyYXRlZFNvdXJjZXMgfHwgbnVsbDtcbiAgdmFyIGlzU3RyaWN0TW9kZSA9IGZhbHNlO1xuICB2YXIgY29uY3VycmVudFVwZGF0ZXNCeURlZmF1bHRPdmVycmlkZSA9IGZhbHNlO1xuICB2YXIgaWRlbnRpZmllclByZWZpeCA9ICcnO1xuICB2YXIgb25SZWNvdmVyYWJsZUVycm9yID0gZGVmYXVsdE9uUmVjb3ZlcmFibGVFcnJvcjtcblxuICBpZiAob3B0aW9ucyAhPT0gbnVsbCAmJiBvcHRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAob3B0aW9ucy51bnN0YWJsZV9zdHJpY3RNb2RlID09PSB0cnVlKSB7XG4gICAgICBpc1N0cmljdE1vZGUgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmlkZW50aWZpZXJQcmVmaXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWRlbnRpZmllclByZWZpeCA9IG9wdGlvbnMuaWRlbnRpZmllclByZWZpeDtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5vblJlY292ZXJhYmxlRXJyb3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb25SZWNvdmVyYWJsZUVycm9yID0gb3B0aW9ucy5vblJlY292ZXJhYmxlRXJyb3I7XG4gICAgfVxuICB9XG5cbiAgdmFyIHJvb3QgPSBjcmVhdGVIeWRyYXRpb25Db250YWluZXIoaW5pdGlhbENoaWxkcmVuLCBudWxsLCBjb250YWluZXIsIENvbmN1cnJlbnRSb290LCBoeWRyYXRpb25DYWxsYmFja3MsIGlzU3RyaWN0TW9kZSwgY29uY3VycmVudFVwZGF0ZXNCeURlZmF1bHRPdmVycmlkZSwgaWRlbnRpZmllclByZWZpeCwgb25SZWNvdmVyYWJsZUVycm9yKTtcbiAgbWFya0NvbnRhaW5lckFzUm9vdChyb290LmN1cnJlbnQsIGNvbnRhaW5lcik7IC8vIFRoaXMgY2FuJ3QgYmUgYSBjb21tZW50IG5vZGUgc2luY2UgaHlkcmF0aW9uIGRvZXNuJ3Qgd29yayBvbiBjb21tZW50IG5vZGVzIGFueXdheS5cblxuICBsaXN0ZW5Ub0FsbFN1cHBvcnRlZEV2ZW50cyhjb250YWluZXIpO1xuXG4gIGlmIChtdXRhYmxlU291cmNlcykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbXV0YWJsZVNvdXJjZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBtdXRhYmxlU291cmNlID0gbXV0YWJsZVNvdXJjZXNbaV07XG4gICAgICByZWdpc3Rlck11dGFibGVTb3VyY2VGb3JIeWRyYXRpb24ocm9vdCwgbXV0YWJsZVNvdXJjZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBSZWFjdERPTUh5ZHJhdGlvblJvb3Qocm9vdCk7XG59XG5mdW5jdGlvbiBpc1ZhbGlkQ29udGFpbmVyKG5vZGUpIHtcbiAgcmV0dXJuICEhKG5vZGUgJiYgKG5vZGUubm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERSB8fCBub2RlLm5vZGVUeXBlID09PSBET0NVTUVOVF9OT0RFIHx8IG5vZGUubm9kZVR5cGUgPT09IERPQ1VNRU5UX0ZSQUdNRU5UX05PREUgfHwgIWRpc2FibGVDb21tZW50c0FzRE9NQ29udGFpbmVycyAgKSk7XG59IC8vIFRPRE86IFJlbW92ZSB0aGlzIGZ1bmN0aW9uIHdoaWNoIGFsc28gaW5jbHVkZXMgY29tbWVudCBub2Rlcy5cbi8vIFdlIG9ubHkgdXNlIGl0IGluIHBsYWNlcyB0aGF0IGFyZSBjdXJyZW50bHkgbW9yZSByZWxheGVkLlxuXG5mdW5jdGlvbiBpc1ZhbGlkQ29udGFpbmVyTGVnYWN5KG5vZGUpIHtcbiAgcmV0dXJuICEhKG5vZGUgJiYgKG5vZGUubm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERSB8fCBub2RlLm5vZGVUeXBlID09PSBET0NVTUVOVF9OT0RFIHx8IG5vZGUubm9kZVR5cGUgPT09IERPQ1VNRU5UX0ZSQUdNRU5UX05PREUgfHwgbm9kZS5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFICYmIG5vZGUubm9kZVZhbHVlID09PSAnIHJlYWN0LW1vdW50LXBvaW50LXVuc3RhYmxlICcpKTtcbn1cblxuZnVuY3Rpb24gd2FybklmUmVhY3RET01Db250YWluZXJJbkRFVihjb250YWluZXIpIHtcbiAge1xuICAgIGlmIChjb250YWluZXIubm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERSAmJiBjb250YWluZXIudGFnTmFtZSAmJiBjb250YWluZXIudGFnTmFtZS50b1VwcGVyQ2FzZSgpID09PSAnQk9EWScpIHtcbiAgICAgIGVycm9yKCdjcmVhdGVSb290KCk6IENyZWF0aW5nIHJvb3RzIGRpcmVjdGx5IHdpdGggZG9jdW1lbnQuYm9keSBpcyAnICsgJ2Rpc2NvdXJhZ2VkLCBzaW5jZSBpdHMgY2hpbGRyZW4gYXJlIG9mdGVuIG1hbmlwdWxhdGVkIGJ5IHRoaXJkLXBhcnR5ICcgKyAnc2NyaXB0cyBhbmQgYnJvd3NlciBleHRlbnNpb25zLiBUaGlzIG1heSBsZWFkIHRvIHN1YnRsZSAnICsgJ3JlY29uY2lsaWF0aW9uIGlzc3Vlcy4gVHJ5IHVzaW5nIGEgY29udGFpbmVyIGVsZW1lbnQgY3JlYXRlZCAnICsgJ2ZvciB5b3VyIGFwcC4nKTtcbiAgICB9XG5cbiAgICBpZiAoaXNDb250YWluZXJNYXJrZWRBc1Jvb3QoY29udGFpbmVyKSkge1xuICAgICAgaWYgKGNvbnRhaW5lci5fcmVhY3RSb290Q29udGFpbmVyKSB7XG4gICAgICAgIGVycm9yKCdZb3UgYXJlIGNhbGxpbmcgUmVhY3RET01DbGllbnQuY3JlYXRlUm9vdCgpIG9uIGEgY29udGFpbmVyIHRoYXQgd2FzIHByZXZpb3VzbHkgJyArICdwYXNzZWQgdG8gUmVhY3RET00ucmVuZGVyKCkuIFRoaXMgaXMgbm90IHN1cHBvcnRlZC4nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVycm9yKCdZb3UgYXJlIGNhbGxpbmcgUmVhY3RET01DbGllbnQuY3JlYXRlUm9vdCgpIG9uIGEgY29udGFpbmVyIHRoYXQgJyArICdoYXMgYWxyZWFkeSBiZWVuIHBhc3NlZCB0byBjcmVhdGVSb290KCkgYmVmb3JlLiBJbnN0ZWFkLCBjYWxsICcgKyAncm9vdC5yZW5kZXIoKSBvbiB0aGUgZXhpc3Rpbmcgcm9vdCBpbnN0ZWFkIGlmIHlvdSB3YW50IHRvIHVwZGF0ZSBpdC4nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudE93bmVyJDMgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRPd25lcjtcbnZhciB0b3BMZXZlbFVwZGF0ZVdhcm5pbmdzO1xuXG57XG4gIHRvcExldmVsVXBkYXRlV2FybmluZ3MgPSBmdW5jdGlvbiAoY29udGFpbmVyKSB7XG4gICAgaWYgKGNvbnRhaW5lci5fcmVhY3RSb290Q29udGFpbmVyICYmIGNvbnRhaW5lci5ub2RlVHlwZSAhPT0gQ09NTUVOVF9OT0RFKSB7XG4gICAgICB2YXIgaG9zdEluc3RhbmNlID0gZmluZEhvc3RJbnN0YW5jZVdpdGhOb1BvcnRhbHMoY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXIuY3VycmVudCk7XG5cbiAgICAgIGlmIChob3N0SW5zdGFuY2UpIHtcbiAgICAgICAgaWYgKGhvc3RJbnN0YW5jZS5wYXJlbnROb2RlICE9PSBjb250YWluZXIpIHtcbiAgICAgICAgICBlcnJvcigncmVuZGVyKC4uLik6IEl0IGxvb2tzIGxpa2UgdGhlIFJlYWN0LXJlbmRlcmVkIGNvbnRlbnQgb2YgdGhpcyAnICsgJ2NvbnRhaW5lciB3YXMgcmVtb3ZlZCB3aXRob3V0IHVzaW5nIFJlYWN0LiBUaGlzIGlzIG5vdCAnICsgJ3N1cHBvcnRlZCBhbmQgd2lsbCBjYXVzZSBlcnJvcnMuIEluc3RlYWQsIGNhbGwgJyArICdSZWFjdERPTS51bm1vdW50Q29tcG9uZW50QXROb2RlIHRvIGVtcHR5IGEgY29udGFpbmVyLicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGlzUm9vdFJlbmRlcmVkQnlTb21lUmVhY3QgPSAhIWNvbnRhaW5lci5fcmVhY3RSb290Q29udGFpbmVyO1xuICAgIHZhciByb290RWwgPSBnZXRSZWFjdFJvb3RFbGVtZW50SW5Db250YWluZXIoY29udGFpbmVyKTtcbiAgICB2YXIgaGFzTm9uUm9vdFJlYWN0Q2hpbGQgPSAhIShyb290RWwgJiYgZ2V0SW5zdGFuY2VGcm9tTm9kZShyb290RWwpKTtcblxuICAgIGlmIChoYXNOb25Sb290UmVhY3RDaGlsZCAmJiAhaXNSb290UmVuZGVyZWRCeVNvbWVSZWFjdCkge1xuICAgICAgZXJyb3IoJ3JlbmRlciguLi4pOiBSZXBsYWNpbmcgUmVhY3QtcmVuZGVyZWQgY2hpbGRyZW4gd2l0aCBhIG5ldyByb290ICcgKyAnY29tcG9uZW50LiBJZiB5b3UgaW50ZW5kZWQgdG8gdXBkYXRlIHRoZSBjaGlsZHJlbiBvZiB0aGlzIG5vZGUsICcgKyAneW91IHNob3VsZCBpbnN0ZWFkIGhhdmUgdGhlIGV4aXN0aW5nIGNoaWxkcmVuIHVwZGF0ZSB0aGVpciBzdGF0ZSAnICsgJ2FuZCByZW5kZXIgdGhlIG5ldyBjb21wb25lbnRzIGluc3RlYWQgb2YgY2FsbGluZyBSZWFjdERPTS5yZW5kZXIuJyk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFICYmIGNvbnRhaW5lci50YWdOYW1lICYmIGNvbnRhaW5lci50YWdOYW1lLnRvVXBwZXJDYXNlKCkgPT09ICdCT0RZJykge1xuICAgICAgZXJyb3IoJ3JlbmRlcigpOiBSZW5kZXJpbmcgY29tcG9uZW50cyBkaXJlY3RseSBpbnRvIGRvY3VtZW50LmJvZHkgaXMgJyArICdkaXNjb3VyYWdlZCwgc2luY2UgaXRzIGNoaWxkcmVuIGFyZSBvZnRlbiBtYW5pcHVsYXRlZCBieSB0aGlyZC1wYXJ0eSAnICsgJ3NjcmlwdHMgYW5kIGJyb3dzZXIgZXh0ZW5zaW9ucy4gVGhpcyBtYXkgbGVhZCB0byBzdWJ0bGUgJyArICdyZWNvbmNpbGlhdGlvbiBpc3N1ZXMuIFRyeSByZW5kZXJpbmcgaW50byBhIGNvbnRhaW5lciBlbGVtZW50IGNyZWF0ZWQgJyArICdmb3IgeW91ciBhcHAuJyk7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRSZWFjdFJvb3RFbGVtZW50SW5Db250YWluZXIoY29udGFpbmVyKSB7XG4gIGlmICghY29udGFpbmVyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAoY29udGFpbmVyLm5vZGVUeXBlID09PSBET0NVTUVOVF9OT0RFKSB7XG4gICAgcmV0dXJuIGNvbnRhaW5lci5kb2N1bWVudEVsZW1lbnQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNvbnRhaW5lci5maXJzdENoaWxkO1xuICB9XG59XG5cbmZ1bmN0aW9uIG5vb3BPblJlY292ZXJhYmxlRXJyb3IoKSB7Ly8gVGhpcyBpc24ndCByZWFjaGFibGUgYmVjYXVzZSBvblJlY292ZXJhYmxlRXJyb3IgaXNuJ3QgY2FsbGVkIGluIHRoZVxuICAvLyBsZWdhY3kgQVBJLlxufVxuXG5mdW5jdGlvbiBsZWdhY3lDcmVhdGVSb290RnJvbURPTUNvbnRhaW5lcihjb250YWluZXIsIGluaXRpYWxDaGlsZHJlbiwgcGFyZW50Q29tcG9uZW50LCBjYWxsYmFjaywgaXNIeWRyYXRpb25Db250YWluZXIpIHtcbiAgaWYgKGlzSHlkcmF0aW9uQ29udGFpbmVyKSB7XG4gICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdmFyIG9yaWdpbmFsQ2FsbGJhY2sgPSBjYWxsYmFjaztcblxuICAgICAgY2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBpbnN0YW5jZSA9IGdldFB1YmxpY1Jvb3RJbnN0YW5jZShyb290KTtcbiAgICAgICAgb3JpZ2luYWxDYWxsYmFjay5jYWxsKGluc3RhbmNlKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdmFyIHJvb3QgPSBjcmVhdGVIeWRyYXRpb25Db250YWluZXIoaW5pdGlhbENoaWxkcmVuLCBjYWxsYmFjaywgY29udGFpbmVyLCBMZWdhY3lSb290LCBudWxsLCAvLyBoeWRyYXRpb25DYWxsYmFja3NcbiAgICBmYWxzZSwgLy8gaXNTdHJpY3RNb2RlXG4gICAgZmFsc2UsIC8vIGNvbmN1cnJlbnRVcGRhdGVzQnlEZWZhdWx0T3ZlcnJpZGUsXG4gICAgJycsIC8vIGlkZW50aWZpZXJQcmVmaXhcbiAgICBub29wT25SZWNvdmVyYWJsZUVycm9yKTtcbiAgICBjb250YWluZXIuX3JlYWN0Um9vdENvbnRhaW5lciA9IHJvb3Q7XG4gICAgbWFya0NvbnRhaW5lckFzUm9vdChyb290LmN1cnJlbnQsIGNvbnRhaW5lcik7XG4gICAgdmFyIHJvb3RDb250YWluZXJFbGVtZW50ID0gY29udGFpbmVyLm5vZGVUeXBlID09PSBDT01NRU5UX05PREUgPyBjb250YWluZXIucGFyZW50Tm9kZSA6IGNvbnRhaW5lcjtcbiAgICBsaXN0ZW5Ub0FsbFN1cHBvcnRlZEV2ZW50cyhyb290Q29udGFpbmVyRWxlbWVudCk7XG4gICAgZmx1c2hTeW5jKCk7XG4gICAgcmV0dXJuIHJvb3Q7XG4gIH0gZWxzZSB7XG4gICAgLy8gRmlyc3QgY2xlYXIgYW55IGV4aXN0aW5nIGNvbnRlbnQuXG4gICAgdmFyIHJvb3RTaWJsaW5nO1xuXG4gICAgd2hpbGUgKHJvb3RTaWJsaW5nID0gY29udGFpbmVyLmxhc3RDaGlsZCkge1xuICAgICAgY29udGFpbmVyLnJlbW92ZUNoaWxkKHJvb3RTaWJsaW5nKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgX29yaWdpbmFsQ2FsbGJhY2sgPSBjYWxsYmFjaztcblxuICAgICAgY2FsbGJhY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBpbnN0YW5jZSA9IGdldFB1YmxpY1Jvb3RJbnN0YW5jZShfcm9vdCk7XG5cbiAgICAgICAgX29yaWdpbmFsQ2FsbGJhY2suY2FsbChpbnN0YW5jZSk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIHZhciBfcm9vdCA9IGNyZWF0ZUNvbnRhaW5lcihjb250YWluZXIsIExlZ2FjeVJvb3QsIG51bGwsIC8vIGh5ZHJhdGlvbkNhbGxiYWNrc1xuICAgIGZhbHNlLCAvLyBpc1N0cmljdE1vZGVcbiAgICBmYWxzZSwgLy8gY29uY3VycmVudFVwZGF0ZXNCeURlZmF1bHRPdmVycmlkZSxcbiAgICAnJywgLy8gaWRlbnRpZmllclByZWZpeFxuICAgIG5vb3BPblJlY292ZXJhYmxlRXJyb3IpO1xuXG4gICAgY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXIgPSBfcm9vdDtcbiAgICBtYXJrQ29udGFpbmVyQXNSb290KF9yb290LmN1cnJlbnQsIGNvbnRhaW5lcik7XG5cbiAgICB2YXIgX3Jvb3RDb250YWluZXJFbGVtZW50ID0gY29udGFpbmVyLm5vZGVUeXBlID09PSBDT01NRU5UX05PREUgPyBjb250YWluZXIucGFyZW50Tm9kZSA6IGNvbnRhaW5lcjtcblxuICAgIGxpc3RlblRvQWxsU3VwcG9ydGVkRXZlbnRzKF9yb290Q29udGFpbmVyRWxlbWVudCk7IC8vIEluaXRpYWwgbW91bnQgc2hvdWxkIG5vdCBiZSBiYXRjaGVkLlxuXG4gICAgZmx1c2hTeW5jKGZ1bmN0aW9uICgpIHtcbiAgICAgIHVwZGF0ZUNvbnRhaW5lcihpbml0aWFsQ2hpbGRyZW4sIF9yb290LCBwYXJlbnRDb21wb25lbnQsIGNhbGxiYWNrKTtcbiAgICB9KTtcbiAgICByZXR1cm4gX3Jvb3Q7XG4gIH1cbn1cblxuZnVuY3Rpb24gd2Fybk9uSW52YWxpZENhbGxiYWNrJDEoY2FsbGJhY2ssIGNhbGxlck5hbWUpIHtcbiAge1xuICAgIGlmIChjYWxsYmFjayAhPT0gbnVsbCAmJiB0eXBlb2YgY2FsbGJhY2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGVycm9yKCclcyguLi4pOiBFeHBlY3RlZCB0aGUgbGFzdCBvcHRpb25hbCBgY2FsbGJhY2tgIGFyZ3VtZW50IHRvIGJlIGEgJyArICdmdW5jdGlvbi4gSW5zdGVhZCByZWNlaXZlZDogJXMuJywgY2FsbGVyTmFtZSwgY2FsbGJhY2spO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBsZWdhY3lSZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcihwYXJlbnRDb21wb25lbnQsIGNoaWxkcmVuLCBjb250YWluZXIsIGZvcmNlSHlkcmF0ZSwgY2FsbGJhY2spIHtcbiAge1xuICAgIHRvcExldmVsVXBkYXRlV2FybmluZ3MoY29udGFpbmVyKTtcbiAgICB3YXJuT25JbnZhbGlkQ2FsbGJhY2skMShjYWxsYmFjayA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNhbGxiYWNrLCAncmVuZGVyJyk7XG4gIH1cblxuICB2YXIgbWF5YmVSb290ID0gY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXI7XG4gIHZhciByb290O1xuXG4gIGlmICghbWF5YmVSb290KSB7XG4gICAgLy8gSW5pdGlhbCBtb3VudFxuICAgIHJvb3QgPSBsZWdhY3lDcmVhdGVSb290RnJvbURPTUNvbnRhaW5lcihjb250YWluZXIsIGNoaWxkcmVuLCBwYXJlbnRDb21wb25lbnQsIGNhbGxiYWNrLCBmb3JjZUh5ZHJhdGUpO1xuICB9IGVsc2Uge1xuICAgIHJvb3QgPSBtYXliZVJvb3Q7XG5cbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgb3JpZ2luYWxDYWxsYmFjayA9IGNhbGxiYWNrO1xuXG4gICAgICBjYWxsYmFjayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIGluc3RhbmNlID0gZ2V0UHVibGljUm9vdEluc3RhbmNlKHJvb3QpO1xuICAgICAgICBvcmlnaW5hbENhbGxiYWNrLmNhbGwoaW5zdGFuY2UpO1xuICAgICAgfTtcbiAgICB9IC8vIFVwZGF0ZVxuXG5cbiAgICB1cGRhdGVDb250YWluZXIoY2hpbGRyZW4sIHJvb3QsIHBhcmVudENvbXBvbmVudCwgY2FsbGJhY2spO1xuICB9XG5cbiAgcmV0dXJuIGdldFB1YmxpY1Jvb3RJbnN0YW5jZShyb290KTtcbn1cblxuZnVuY3Rpb24gZmluZERPTU5vZGUoY29tcG9uZW50T3JFbGVtZW50KSB7XG4gIHtcbiAgICB2YXIgb3duZXIgPSBSZWFjdEN1cnJlbnRPd25lciQzLmN1cnJlbnQ7XG5cbiAgICBpZiAob3duZXIgIT09IG51bGwgJiYgb3duZXIuc3RhdGVOb2RlICE9PSBudWxsKSB7XG4gICAgICB2YXIgd2FybmVkQWJvdXRSZWZzSW5SZW5kZXIgPSBvd25lci5zdGF0ZU5vZGUuX3dhcm5lZEFib3V0UmVmc0luUmVuZGVyO1xuXG4gICAgICBpZiAoIXdhcm5lZEFib3V0UmVmc0luUmVuZGVyKSB7XG4gICAgICAgIGVycm9yKCclcyBpcyBhY2Nlc3NpbmcgZmluZERPTU5vZGUgaW5zaWRlIGl0cyByZW5kZXIoKS4gJyArICdyZW5kZXIoKSBzaG91bGQgYmUgYSBwdXJlIGZ1bmN0aW9uIG9mIHByb3BzIGFuZCBzdGF0ZS4gSXQgc2hvdWxkICcgKyAnbmV2ZXIgYWNjZXNzIHNvbWV0aGluZyB0aGF0IHJlcXVpcmVzIHN0YWxlIGRhdGEgZnJvbSB0aGUgcHJldmlvdXMgJyArICdyZW5kZXIsIHN1Y2ggYXMgcmVmcy4gTW92ZSB0aGlzIGxvZ2ljIHRvIGNvbXBvbmVudERpZE1vdW50IGFuZCAnICsgJ2NvbXBvbmVudERpZFVwZGF0ZSBpbnN0ZWFkLicsIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShvd25lci50eXBlKSB8fCAnQSBjb21wb25lbnQnKTtcbiAgICAgIH1cblxuICAgICAgb3duZXIuc3RhdGVOb2RlLl93YXJuZWRBYm91dFJlZnNJblJlbmRlciA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKGNvbXBvbmVudE9yRWxlbWVudCA9PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAoY29tcG9uZW50T3JFbGVtZW50Lm5vZGVUeXBlID09PSBFTEVNRU5UX05PREUpIHtcbiAgICByZXR1cm4gY29tcG9uZW50T3JFbGVtZW50O1xuICB9XG5cbiAge1xuICAgIHJldHVybiBmaW5kSG9zdEluc3RhbmNlV2l0aFdhcm5pbmcoY29tcG9uZW50T3JFbGVtZW50LCAnZmluZERPTU5vZGUnKTtcbiAgfVxufVxuZnVuY3Rpb24gaHlkcmF0ZShlbGVtZW50LCBjb250YWluZXIsIGNhbGxiYWNrKSB7XG4gIHtcbiAgICBlcnJvcignUmVhY3RET00uaHlkcmF0ZSBpcyBubyBsb25nZXIgc3VwcG9ydGVkIGluIFJlYWN0IDE4LiBVc2UgaHlkcmF0ZVJvb3QgJyArICdpbnN0ZWFkLiBVbnRpbCB5b3Ugc3dpdGNoIHRvIHRoZSBuZXcgQVBJLCB5b3VyIGFwcCB3aWxsIGJlaGF2ZSBhcyAnICsgXCJpZiBpdCdzIHJ1bm5pbmcgUmVhY3QgMTcuIExlYXJuIFwiICsgJ21vcmU6IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zd2l0Y2gtdG8tY3JlYXRlcm9vdCcpO1xuICB9XG5cbiAgaWYgKCFpc1ZhbGlkQ29udGFpbmVyTGVnYWN5KGNvbnRhaW5lcikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RhcmdldCBjb250YWluZXIgaXMgbm90IGEgRE9NIGVsZW1lbnQuJyk7XG4gIH1cblxuICB7XG4gICAgdmFyIGlzTW9kZXJuUm9vdCA9IGlzQ29udGFpbmVyTWFya2VkQXNSb290KGNvbnRhaW5lcikgJiYgY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXIgPT09IHVuZGVmaW5lZDtcblxuICAgIGlmIChpc01vZGVyblJvb3QpIHtcbiAgICAgIGVycm9yKCdZb3UgYXJlIGNhbGxpbmcgUmVhY3RET00uaHlkcmF0ZSgpIG9uIGEgY29udGFpbmVyIHRoYXQgd2FzIHByZXZpb3VzbHkgJyArICdwYXNzZWQgdG8gUmVhY3RET01DbGllbnQuY3JlYXRlUm9vdCgpLiBUaGlzIGlzIG5vdCBzdXBwb3J0ZWQuICcgKyAnRGlkIHlvdSBtZWFuIHRvIGNhbGwgaHlkcmF0ZVJvb3QoY29udGFpbmVyLCBlbGVtZW50KT8nKTtcbiAgICB9XG4gIH0gLy8gVE9ETzogdGhyb3cgb3Igd2FybiBpZiB3ZSBjb3VsZG4ndCBoeWRyYXRlP1xuXG5cbiAgcmV0dXJuIGxlZ2FjeVJlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyKG51bGwsIGVsZW1lbnQsIGNvbnRhaW5lciwgdHJ1ZSwgY2FsbGJhY2spO1xufVxuZnVuY3Rpb24gcmVuZGVyKGVsZW1lbnQsIGNvbnRhaW5lciwgY2FsbGJhY2spIHtcbiAge1xuICAgIGVycm9yKCdSZWFjdERPTS5yZW5kZXIgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCBpbiBSZWFjdCAxOC4gVXNlIGNyZWF0ZVJvb3QgJyArICdpbnN0ZWFkLiBVbnRpbCB5b3Ugc3dpdGNoIHRvIHRoZSBuZXcgQVBJLCB5b3VyIGFwcCB3aWxsIGJlaGF2ZSBhcyAnICsgXCJpZiBpdCdzIHJ1bm5pbmcgUmVhY3QgMTcuIExlYXJuIFwiICsgJ21vcmU6IGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zd2l0Y2gtdG8tY3JlYXRlcm9vdCcpO1xuICB9XG5cbiAgaWYgKCFpc1ZhbGlkQ29udGFpbmVyTGVnYWN5KGNvbnRhaW5lcikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RhcmdldCBjb250YWluZXIgaXMgbm90IGEgRE9NIGVsZW1lbnQuJyk7XG4gIH1cblxuICB7XG4gICAgdmFyIGlzTW9kZXJuUm9vdCA9IGlzQ29udGFpbmVyTWFya2VkQXNSb290KGNvbnRhaW5lcikgJiYgY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXIgPT09IHVuZGVmaW5lZDtcblxuICAgIGlmIChpc01vZGVyblJvb3QpIHtcbiAgICAgIGVycm9yKCdZb3UgYXJlIGNhbGxpbmcgUmVhY3RET00ucmVuZGVyKCkgb24gYSBjb250YWluZXIgdGhhdCB3YXMgcHJldmlvdXNseSAnICsgJ3Bhc3NlZCB0byBSZWFjdERPTUNsaWVudC5jcmVhdGVSb290KCkuIFRoaXMgaXMgbm90IHN1cHBvcnRlZC4gJyArICdEaWQgeW91IG1lYW4gdG8gY2FsbCByb290LnJlbmRlcihlbGVtZW50KT8nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbGVnYWN5UmVuZGVyU3VidHJlZUludG9Db250YWluZXIobnVsbCwgZWxlbWVudCwgY29udGFpbmVyLCBmYWxzZSwgY2FsbGJhY2spO1xufVxuZnVuY3Rpb24gdW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXIocGFyZW50Q29tcG9uZW50LCBlbGVtZW50LCBjb250YWluZXJOb2RlLCBjYWxsYmFjaykge1xuICB7XG4gICAgZXJyb3IoJ1JlYWN0RE9NLnVuc3RhYmxlX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyKCkgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCAnICsgJ2luIFJlYWN0IDE4LiBDb25zaWRlciB1c2luZyBhIHBvcnRhbCBpbnN0ZWFkLiBVbnRpbCB5b3Ugc3dpdGNoIHRvICcgKyBcInRoZSBjcmVhdGVSb290IEFQSSwgeW91ciBhcHAgd2lsbCBiZWhhdmUgYXMgaWYgaXQncyBydW5uaW5nIFJlYWN0IFwiICsgJzE3LiBMZWFybiBtb3JlOiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3dpdGNoLXRvLWNyZWF0ZXJvb3QnKTtcbiAgfVxuXG4gIGlmICghaXNWYWxpZENvbnRhaW5lckxlZ2FjeShjb250YWluZXJOb2RlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVGFyZ2V0IGNvbnRhaW5lciBpcyBub3QgYSBET00gZWxlbWVudC4nKTtcbiAgfVxuXG4gIGlmIChwYXJlbnRDb21wb25lbnQgPT0gbnVsbCB8fCAhaGFzKHBhcmVudENvbXBvbmVudCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhcmVudENvbXBvbmVudCBtdXN0IGJlIGEgdmFsaWQgUmVhY3QgQ29tcG9uZW50Jyk7XG4gIH1cblxuICByZXR1cm4gbGVnYWN5UmVuZGVyU3VidHJlZUludG9Db250YWluZXIocGFyZW50Q29tcG9uZW50LCBlbGVtZW50LCBjb250YWluZXJOb2RlLCBmYWxzZSwgY2FsbGJhY2spO1xufVxuZnVuY3Rpb24gdW5tb3VudENvbXBvbmVudEF0Tm9kZShjb250YWluZXIpIHtcbiAgaWYgKCFpc1ZhbGlkQ29udGFpbmVyTGVnYWN5KGNvbnRhaW5lcikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VubW91bnRDb21wb25lbnRBdE5vZGUoLi4uKTogVGFyZ2V0IGNvbnRhaW5lciBpcyBub3QgYSBET00gZWxlbWVudC4nKTtcbiAgfVxuXG4gIHtcbiAgICB2YXIgaXNNb2Rlcm5Sb290ID0gaXNDb250YWluZXJNYXJrZWRBc1Jvb3QoY29udGFpbmVyKSAmJiBjb250YWluZXIuX3JlYWN0Um9vdENvbnRhaW5lciA9PT0gdW5kZWZpbmVkO1xuXG4gICAgaWYgKGlzTW9kZXJuUm9vdCkge1xuICAgICAgZXJyb3IoJ1lvdSBhcmUgY2FsbGluZyBSZWFjdERPTS51bm1vdW50Q29tcG9uZW50QXROb2RlKCkgb24gYSBjb250YWluZXIgdGhhdCB3YXMgcHJldmlvdXNseSAnICsgJ3Bhc3NlZCB0byBSZWFjdERPTUNsaWVudC5jcmVhdGVSb290KCkuIFRoaXMgaXMgbm90IHN1cHBvcnRlZC4gRGlkIHlvdSBtZWFuIHRvIGNhbGwgcm9vdC51bm1vdW50KCk/Jyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGNvbnRhaW5lci5fcmVhY3RSb290Q29udGFpbmVyKSB7XG4gICAge1xuICAgICAgdmFyIHJvb3RFbCA9IGdldFJlYWN0Um9vdEVsZW1lbnRJbkNvbnRhaW5lcihjb250YWluZXIpO1xuICAgICAgdmFyIHJlbmRlcmVkQnlEaWZmZXJlbnRSZWFjdCA9IHJvb3RFbCAmJiAhZ2V0SW5zdGFuY2VGcm9tTm9kZShyb290RWwpO1xuXG4gICAgICBpZiAocmVuZGVyZWRCeURpZmZlcmVudFJlYWN0KSB7XG4gICAgICAgIGVycm9yKFwidW5tb3VudENvbXBvbmVudEF0Tm9kZSgpOiBUaGUgbm9kZSB5b3UncmUgYXR0ZW1wdGluZyB0byB1bm1vdW50IFwiICsgJ3dhcyByZW5kZXJlZCBieSBhbm90aGVyIGNvcHkgb2YgUmVhY3QuJyk7XG4gICAgICB9XG4gICAgfSAvLyBVbm1vdW50IHNob3VsZCBub3QgYmUgYmF0Y2hlZC5cblxuXG4gICAgZmx1c2hTeW5jKGZ1bmN0aW9uICgpIHtcbiAgICAgIGxlZ2FjeVJlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyKG51bGwsIG51bGwsIGNvbnRhaW5lciwgZmFsc2UsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gJEZsb3dGaXhNZSBUaGlzIHNob3VsZCBwcm9iYWJseSB1c2UgYGRlbGV0ZSBjb250YWluZXIuX3JlYWN0Um9vdENvbnRhaW5lcmBcbiAgICAgICAgY29udGFpbmVyLl9yZWFjdFJvb3RDb250YWluZXIgPSBudWxsO1xuICAgICAgICB1bm1hcmtDb250YWluZXJBc1Jvb3QoY29udGFpbmVyKTtcbiAgICAgIH0pO1xuICAgIH0pOyAvLyBJZiB5b3UgY2FsbCB1bm1vdW50Q29tcG9uZW50QXROb2RlIHR3aWNlIGluIHF1aWNrIHN1Y2Nlc3Npb24sIHlvdSdsbFxuICAgIC8vIGdldCBgdHJ1ZWAgdHdpY2UuIFRoYXQncyBwcm9iYWJseSBmaW5lP1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH0gZWxzZSB7XG4gICAge1xuICAgICAgdmFyIF9yb290RWwgPSBnZXRSZWFjdFJvb3RFbGVtZW50SW5Db250YWluZXIoY29udGFpbmVyKTtcblxuICAgICAgdmFyIGhhc05vblJvb3RSZWFjdENoaWxkID0gISEoX3Jvb3RFbCAmJiBnZXRJbnN0YW5jZUZyb21Ob2RlKF9yb290RWwpKTsgLy8gQ2hlY2sgaWYgdGhlIGNvbnRhaW5lciBpdHNlbGYgaXMgYSBSZWFjdCByb290IG5vZGUuXG5cbiAgICAgIHZhciBpc0NvbnRhaW5lclJlYWN0Um9vdCA9IGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gRUxFTUVOVF9OT0RFICYmIGlzVmFsaWRDb250YWluZXJMZWdhY3koY29udGFpbmVyLnBhcmVudE5vZGUpICYmICEhY29udGFpbmVyLnBhcmVudE5vZGUuX3JlYWN0Um9vdENvbnRhaW5lcjtcblxuICAgICAgaWYgKGhhc05vblJvb3RSZWFjdENoaWxkKSB7XG4gICAgICAgIGVycm9yKFwidW5tb3VudENvbXBvbmVudEF0Tm9kZSgpOiBUaGUgbm9kZSB5b3UncmUgYXR0ZW1wdGluZyB0byB1bm1vdW50IFwiICsgJ3dhcyByZW5kZXJlZCBieSBSZWFjdCBhbmQgaXMgbm90IGEgdG9wLWxldmVsIGNvbnRhaW5lci4gJXMnLCBpc0NvbnRhaW5lclJlYWN0Um9vdCA/ICdZb3UgbWF5IGhhdmUgYWNjaWRlbnRhbGx5IHBhc3NlZCBpbiBhIFJlYWN0IHJvb3Qgbm9kZSBpbnN0ZWFkICcgKyAnb2YgaXRzIGNvbnRhaW5lci4nIDogJ0luc3RlYWQsIGhhdmUgdGhlIHBhcmVudCBjb21wb25lbnQgdXBkYXRlIGl0cyBzdGF0ZSBhbmQgJyArICdyZXJlbmRlciBpbiBvcmRlciB0byByZW1vdmUgdGhpcyBjb21wb25lbnQuJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbnNldEF0dGVtcHRTeW5jaHJvbm91c0h5ZHJhdGlvbihhdHRlbXB0U3luY2hyb25vdXNIeWRyYXRpb24kMSk7XG5zZXRBdHRlbXB0Q29udGludW91c0h5ZHJhdGlvbihhdHRlbXB0Q29udGludW91c0h5ZHJhdGlvbiQxKTtcbnNldEF0dGVtcHRIeWRyYXRpb25BdEN1cnJlbnRQcmlvcml0eShhdHRlbXB0SHlkcmF0aW9uQXRDdXJyZW50UHJpb3JpdHkkMSk7XG5zZXRHZXRDdXJyZW50VXBkYXRlUHJpb3JpdHkoZ2V0Q3VycmVudFVwZGF0ZVByaW9yaXR5KTtcbnNldEF0dGVtcHRIeWRyYXRpb25BdFByaW9yaXR5KHJ1bldpdGhQcmlvcml0eSk7XG5cbntcbiAgaWYgKHR5cGVvZiBNYXAgIT09ICdmdW5jdGlvbicgfHwgLy8gJEZsb3dJc3N1ZSBGbG93IGluY29ycmVjdGx5IHRoaW5rcyBNYXAgaGFzIG5vIHByb3RvdHlwZVxuICBNYXAucHJvdG90eXBlID09IG51bGwgfHwgdHlwZW9mIE1hcC5wcm90b3R5cGUuZm9yRWFjaCAhPT0gJ2Z1bmN0aW9uJyB8fCB0eXBlb2YgU2V0ICE9PSAnZnVuY3Rpb24nIHx8IC8vICRGbG93SXNzdWUgRmxvdyBpbmNvcnJlY3RseSB0aGlua3MgU2V0IGhhcyBubyBwcm90b3R5cGVcbiAgU2V0LnByb3RvdHlwZSA9PSBudWxsIHx8IHR5cGVvZiBTZXQucHJvdG90eXBlLmNsZWFyICE9PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiBTZXQucHJvdG90eXBlLmZvckVhY2ggIT09ICdmdW5jdGlvbicpIHtcbiAgICBlcnJvcignUmVhY3QgZGVwZW5kcyBvbiBNYXAgYW5kIFNldCBidWlsdC1pbiB0eXBlcy4gTWFrZSBzdXJlIHRoYXQgeW91IGxvYWQgYSAnICsgJ3BvbHlmaWxsIGluIG9sZGVyIGJyb3dzZXJzLiBodHRwczovL3JlYWN0anMub3JnL2xpbmsvcmVhY3QtcG9seWZpbGxzJyk7XG4gIH1cbn1cblxuc2V0UmVzdG9yZUltcGxlbWVudGF0aW9uKHJlc3RvcmVDb250cm9sbGVkU3RhdGUkMyk7XG5zZXRCYXRjaGluZ0ltcGxlbWVudGF0aW9uKGJhdGNoZWRVcGRhdGVzJDEsIGRpc2NyZXRlVXBkYXRlcywgZmx1c2hTeW5jKTtcblxuZnVuY3Rpb24gY3JlYXRlUG9ydGFsJDEoY2hpbGRyZW4sIGNvbnRhaW5lcikge1xuICB2YXIga2V5ID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiBudWxsO1xuXG4gIGlmICghaXNWYWxpZENvbnRhaW5lcihjb250YWluZXIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUYXJnZXQgY29udGFpbmVyIGlzIG5vdCBhIERPTSBlbGVtZW50LicpO1xuICB9IC8vIFRPRE86IHBhc3MgUmVhY3RET00gcG9ydGFsIGltcGxlbWVudGF0aW9uIGFzIHRoaXJkIGFyZ3VtZW50XG4gIC8vICRGbG93Rml4TWUgVGhlIEZsb3cgdHlwZSBpcyBvcGFxdWUgYnV0IHRoZXJlJ3Mgbm8gd2F5IHRvIGFjdHVhbGx5IGNyZWF0ZSBpdC5cblxuXG4gIHJldHVybiBjcmVhdGVQb3J0YWwoY2hpbGRyZW4sIGNvbnRhaW5lciwgbnVsbCwga2V5KTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyU3VidHJlZUludG9Db250YWluZXIocGFyZW50Q29tcG9uZW50LCBlbGVtZW50LCBjb250YWluZXJOb2RlLCBjYWxsYmFjaykge1xuICByZXR1cm4gdW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXIocGFyZW50Q29tcG9uZW50LCBlbGVtZW50LCBjb250YWluZXJOb2RlLCBjYWxsYmFjayk7XG59XG5cbnZhciBJbnRlcm5hbHMgPSB7XG4gIHVzaW5nQ2xpZW50RW50cnlQb2ludDogZmFsc2UsXG4gIC8vIEtlZXAgaW4gc3luYyB3aXRoIFJlYWN0VGVzdFV0aWxzLmpzLlxuICAvLyBUaGlzIGlzIGFuIGFycmF5IGZvciBiZXR0ZXIgbWluaWZpY2F0aW9uLlxuICBFdmVudHM6IFtnZXRJbnN0YW5jZUZyb21Ob2RlLCBnZXROb2RlRnJvbUluc3RhbmNlLCBnZXRGaWJlckN1cnJlbnRQcm9wc0Zyb21Ob2RlLCBlbnF1ZXVlU3RhdGVSZXN0b3JlLCByZXN0b3JlU3RhdGVJZk5lZWRlZCwgYmF0Y2hlZFVwZGF0ZXMkMV1cbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZVJvb3QkMShjb250YWluZXIsIG9wdGlvbnMpIHtcbiAge1xuICAgIGlmICghSW50ZXJuYWxzLnVzaW5nQ2xpZW50RW50cnlQb2ludCAmJiAhZmFsc2UpIHtcbiAgICAgIGVycm9yKCdZb3UgYXJlIGltcG9ydGluZyBjcmVhdGVSb290IGZyb20gXCJyZWFjdC1kb21cIiB3aGljaCBpcyBub3Qgc3VwcG9ydGVkLiAnICsgJ1lvdSBzaG91bGQgaW5zdGVhZCBpbXBvcnQgaXQgZnJvbSBcInJlYWN0LWRvbS9jbGllbnRcIi4nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY3JlYXRlUm9vdChjb250YWluZXIsIG9wdGlvbnMpO1xufVxuXG5mdW5jdGlvbiBoeWRyYXRlUm9vdCQxKGNvbnRhaW5lciwgaW5pdGlhbENoaWxkcmVuLCBvcHRpb25zKSB7XG4gIHtcbiAgICBpZiAoIUludGVybmFscy51c2luZ0NsaWVudEVudHJ5UG9pbnQgJiYgIWZhbHNlKSB7XG4gICAgICBlcnJvcignWW91IGFyZSBpbXBvcnRpbmcgaHlkcmF0ZVJvb3QgZnJvbSBcInJlYWN0LWRvbVwiIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQuICcgKyAnWW91IHNob3VsZCBpbnN0ZWFkIGltcG9ydCBpdCBmcm9tIFwicmVhY3QtZG9tL2NsaWVudFwiLicpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBoeWRyYXRlUm9vdChjb250YWluZXIsIGluaXRpYWxDaGlsZHJlbiwgb3B0aW9ucyk7XG59IC8vIE92ZXJsb2FkIHRoZSBkZWZpbml0aW9uIHRvIHRoZSB0d28gdmFsaWQgc2lnbmF0dXJlcy5cbi8vIFdhcm5pbmcsIHRoaXMgb3B0cy1vdXQgb2YgY2hlY2tpbmcgdGhlIGZ1bmN0aW9uIGJvZHkuXG5cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlZGVjbGFyZVxuZnVuY3Rpb24gZmx1c2hTeW5jJDEoZm4pIHtcbiAge1xuICAgIGlmIChpc0FscmVhZHlSZW5kZXJpbmcoKSkge1xuICAgICAgZXJyb3IoJ2ZsdXNoU3luYyB3YXMgY2FsbGVkIGZyb20gaW5zaWRlIGEgbGlmZWN5Y2xlIG1ldGhvZC4gUmVhY3QgY2Fubm90ICcgKyAnZmx1c2ggd2hlbiBSZWFjdCBpcyBhbHJlYWR5IHJlbmRlcmluZy4gQ29uc2lkZXIgbW92aW5nIHRoaXMgY2FsbCB0byAnICsgJ2Egc2NoZWR1bGVyIHRhc2sgb3IgbWljcm8gdGFzay4nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmx1c2hTeW5jKGZuKTtcbn1cbnZhciBmb3VuZERldlRvb2xzID0gaW5qZWN0SW50b0RldlRvb2xzKHtcbiAgZmluZEZpYmVyQnlIb3N0SW5zdGFuY2U6IGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlLFxuICBidW5kbGVUeXBlOiAgMSAsXG4gIHZlcnNpb246IFJlYWN0VmVyc2lvbixcbiAgcmVuZGVyZXJQYWNrYWdlTmFtZTogJ3JlYWN0LWRvbSdcbn0pO1xuXG57XG4gIGlmICghZm91bmREZXZUb29scyAmJiBjYW5Vc2VET00gJiYgd2luZG93LnRvcCA9PT0gd2luZG93LnNlbGYpIHtcbiAgICAvLyBJZiB3ZSdyZSBpbiBDaHJvbWUgb3IgRmlyZWZveCwgcHJvdmlkZSBhIGRvd25sb2FkIGxpbmsgaWYgbm90IGluc3RhbGxlZC5cbiAgICBpZiAobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdDaHJvbWUnKSA+IC0xICYmIG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignRWRnZScpID09PSAtMSB8fCBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ0ZpcmVmb3gnKSA+IC0xKSB7XG4gICAgICB2YXIgcHJvdG9jb2wgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2w7IC8vIERvbid0IHdhcm4gaW4gZXhvdGljIGNhc2VzIGxpa2UgY2hyb21lLWV4dGVuc2lvbjovLy5cblxuICAgICAgaWYgKC9eKGh0dHBzP3xmaWxlKTokLy50ZXN0KHByb3RvY29sKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nXG4gICAgICAgIGNvbnNvbGUuaW5mbygnJWNEb3dubG9hZCB0aGUgUmVhY3QgRGV2VG9vbHMgJyArICdmb3IgYSBiZXR0ZXIgZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZTogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvcmVhY3QtZGV2dG9vbHMnICsgKHByb3RvY29sID09PSAnZmlsZTonID8gJ1xcbllvdSBtaWdodCBuZWVkIHRvIHVzZSBhIGxvY2FsIEhUVFAgc2VydmVyIChpbnN0ZWFkIG9mIGZpbGU6Ly8pOiAnICsgJ2h0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9yZWFjdC1kZXZ0b29scy1mYXEnIDogJycpLCAnZm9udC13ZWlnaHQ6Ym9sZCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnRzLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEID0gSW50ZXJuYWxzO1xuZXhwb3J0cy5jcmVhdGVQb3J0YWwgPSBjcmVhdGVQb3J0YWwkMTtcbmV4cG9ydHMuY3JlYXRlUm9vdCA9IGNyZWF0ZVJvb3QkMTtcbmV4cG9ydHMuZmluZERPTU5vZGUgPSBmaW5kRE9NTm9kZTtcbmV4cG9ydHMuZmx1c2hTeW5jID0gZmx1c2hTeW5jJDE7XG5leHBvcnRzLmh5ZHJhdGUgPSBoeWRyYXRlO1xuZXhwb3J0cy5oeWRyYXRlUm9vdCA9IGh5ZHJhdGVSb290JDE7XG5leHBvcnRzLnJlbmRlciA9IHJlbmRlcjtcbmV4cG9ydHMudW5tb3VudENvbXBvbmVudEF0Tm9kZSA9IHVubW91bnRDb21wb25lbnRBdE5vZGU7XG5leHBvcnRzLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzID0gYmF0Y2hlZFVwZGF0ZXMkMTtcbmV4cG9ydHMudW5zdGFibGVfcmVuZGVyU3VidHJlZUludG9Db250YWluZXIgPSByZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcjtcbmV4cG9ydHMudmVyc2lvbiA9IFJlYWN0VmVyc2lvbjtcbiAgICAgICAgICAvKiBnbG9iYWwgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICovXG5pZiAoXG4gIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gIT09ICd1bmRlZmluZWQnICYmXG4gIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0b3AgPT09XG4gICAgJ2Z1bmN0aW9uJ1xuKSB7XG4gIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RvcChuZXcgRXJyb3IoKSk7XG59XG4gICAgICAgIFxuICB9KSgpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgbSA9IHJlcXVpcmUoJ3JlYWN0LWRvbScpO1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgZXhwb3J0cy5jcmVhdGVSb290ID0gbS5jcmVhdGVSb290O1xuICBleHBvcnRzLmh5ZHJhdGVSb290ID0gbS5oeWRyYXRlUm9vdDtcbn0gZWxzZSB7XG4gIHZhciBpID0gbS5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRDtcbiAgZXhwb3J0cy5jcmVhdGVSb290ID0gZnVuY3Rpb24oYywgbykge1xuICAgIGkudXNpbmdDbGllbnRFbnRyeVBvaW50ID0gdHJ1ZTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIG0uY3JlYXRlUm9vdChjLCBvKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaS51c2luZ0NsaWVudEVudHJ5UG9pbnQgPSBmYWxzZTtcbiAgICB9XG4gIH07XG4gIGV4cG9ydHMuaHlkcmF0ZVJvb3QgPSBmdW5jdGlvbihjLCBoLCBvKSB7XG4gICAgaS51c2luZ0NsaWVudEVudHJ5UG9pbnQgPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbS5oeWRyYXRlUm9vdChjLCBoLCBvKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaS51c2luZ0NsaWVudEVudHJ5UG9pbnQgPSBmYWxzZTtcbiAgICB9XG4gIH07XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbmZ1bmN0aW9uIGNoZWNrRENFKCkge1xuICAvKiBnbG9iYWwgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICovXG4gIGlmIChcbiAgICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fID09PSAndW5kZWZpbmVkJyB8fFxuICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UgIT09ICdmdW5jdGlvbidcbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgLy8gVGhpcyBicmFuY2ggaXMgdW5yZWFjaGFibGUgYmVjYXVzZSB0aGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkXG4gICAgLy8gaW4gcHJvZHVjdGlvbiwgYnV0IHRoZSBjb25kaXRpb24gaXMgdHJ1ZSBvbmx5IGluIGRldmVsb3BtZW50LlxuICAgIC8vIFRoZXJlZm9yZSBpZiB0aGUgYnJhbmNoIGlzIHN0aWxsIGhlcmUsIGRlYWQgY29kZSBlbGltaW5hdGlvbiB3YXNuJ3RcbiAgICAvLyBwcm9wZXJseSBhcHBsaWVkLlxuICAgIC8vIERvbid0IGNoYW5nZSB0aGUgbWVzc2FnZS4gUmVhY3QgRGV2VG9vbHMgcmVsaWVzIG9uIGl0LiBBbHNvIG1ha2Ugc3VyZVxuICAgIC8vIHRoaXMgbWVzc2FnZSBkb2Vzbid0IG9jY3VyIGVsc2V3aGVyZSBpbiB0aGlzIGZ1bmN0aW9uLCBvciBpdCB3aWxsIGNhdXNlXG4gICAgLy8gYSBmYWxzZSBwb3NpdGl2ZS5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ15fXicpO1xuICB9XG4gIHRyeSB7XG4gICAgLy8gVmVyaWZ5IHRoYXQgdGhlIGNvZGUgYWJvdmUgaGFzIGJlZW4gZGVhZCBjb2RlIGVsaW1pbmF0ZWQgKERDRSdkKS5cbiAgICBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UoY2hlY2tEQ0UpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBEZXZUb29scyBzaG91bGRuJ3QgY3Jhc2ggUmVhY3QsIG5vIG1hdHRlciB3aGF0LlxuICAgIC8vIFdlIHNob3VsZCBzdGlsbCByZXBvcnQgaW4gY2FzZSB3ZSBicmVhayB0aGlzIGNvZGUuXG4gICAgY29uc29sZS5lcnJvcihlcnIpO1xuICB9XG59XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIC8vIERDRSBjaGVjayBzaG91bGQgaGFwcGVuIGJlZm9yZSBSZWFjdERPTSBidW5kbGUgZXhlY3V0ZXMgc28gdGhhdFxuICAvLyBEZXZUb29scyBjYW4gcmVwb3J0IGJhZCBtaW5pZmljYXRpb24gZHVyaW5nIGluamVjdGlvbi5cbiAgY2hlY2tEQ0UoKTtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtZG9tLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAoZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAndXNlIHN0cmljdCc7XG5cbi8qIGdsb2JhbCBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gKi9cbmlmIChcbiAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RhcnQgPT09XG4gICAgJ2Z1bmN0aW9uJ1xuKSB7XG4gIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RhcnQobmV3IEVycm9yKCkpO1xufVxuICAgICAgICAgIHZhciBSZWFjdFZlcnNpb24gPSAnMTguMi4wJztcblxuLy8gQVRURU5USU9OXG4vLyBXaGVuIGFkZGluZyBuZXcgc3ltYm9scyB0byB0aGlzIGZpbGUsXG4vLyBQbGVhc2UgY29uc2lkZXIgYWxzbyBhZGRpbmcgdG8gJ3JlYWN0LWRldnRvb2xzLXNoYXJlZC9zcmMvYmFja2VuZC9SZWFjdFN5bWJvbHMnXG4vLyBUaGUgU3ltYm9sIHVzZWQgdG8gdGFnIHRoZSBSZWFjdEVsZW1lbnQtbGlrZSB0eXBlcy5cbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50Jyk7XG52YXIgUkVBQ1RfUE9SVEFMX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5wb3J0YWwnKTtcbnZhciBSRUFDVF9GUkFHTUVOVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZnJhZ21lbnQnKTtcbnZhciBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3RyaWN0X21vZGUnKTtcbnZhciBSRUFDVF9QUk9GSUxFUl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucHJvZmlsZXInKTtcbnZhciBSRUFDVF9QUk9WSURFUl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucHJvdmlkZXInKTtcbnZhciBSRUFDVF9DT05URVhUX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5jb250ZXh0Jyk7XG52YXIgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmZvcndhcmRfcmVmJyk7XG52YXIgUkVBQ1RfU1VTUEVOU0VfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LnN1c3BlbnNlJyk7XG52YXIgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3VzcGVuc2VfbGlzdCcpO1xudmFyIFJFQUNUX01FTU9fVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0Lm1lbW8nKTtcbnZhciBSRUFDVF9MQVpZX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5sYXp5Jyk7XG52YXIgUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5vZmZzY3JlZW4nKTtcbnZhciBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgPSBTeW1ib2wuaXRlcmF0b3I7XG52YXIgRkFVWF9JVEVSQVRPUl9TWU1CT0wgPSAnQEBpdGVyYXRvcic7XG5mdW5jdGlvbiBnZXRJdGVyYXRvckZuKG1heWJlSXRlcmFibGUpIHtcbiAgaWYgKG1heWJlSXRlcmFibGUgPT09IG51bGwgfHwgdHlwZW9mIG1heWJlSXRlcmFibGUgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgbWF5YmVJdGVyYXRvciA9IE1BWUJFX0lURVJBVE9SX1NZTUJPTCAmJiBtYXliZUl0ZXJhYmxlW01BWUJFX0lURVJBVE9SX1NZTUJPTF0gfHwgbWF5YmVJdGVyYWJsZVtGQVVYX0lURVJBVE9SX1NZTUJPTF07XG5cbiAgaWYgKHR5cGVvZiBtYXliZUl0ZXJhdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIG1heWJlSXRlcmF0b3I7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudCBkaXNwYXRjaGVyLlxuICovXG52YXIgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciA9IHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAdHlwZSB7UmVhY3RDb21wb25lbnR9XG4gICAqL1xuICBjdXJyZW50OiBudWxsXG59O1xuXG4vKipcbiAqIEtlZXBzIHRyYWNrIG9mIHRoZSBjdXJyZW50IGJhdGNoJ3MgY29uZmlndXJhdGlvbiBzdWNoIGFzIGhvdyBsb25nIGFuIHVwZGF0ZVxuICogc2hvdWxkIHN1c3BlbmQgZm9yIGlmIGl0IG5lZWRzIHRvLlxuICovXG52YXIgUmVhY3RDdXJyZW50QmF0Y2hDb25maWcgPSB7XG4gIHRyYW5zaXRpb246IG51bGxcbn07XG5cbnZhciBSZWFjdEN1cnJlbnRBY3RRdWV1ZSA9IHtcbiAgY3VycmVudDogbnVsbCxcbiAgLy8gVXNlZCB0byByZXByb2R1Y2UgYmVoYXZpb3Igb2YgYGJhdGNoZWRVcGRhdGVzYCBpbiBsZWdhY3kgbW9kZS5cbiAgaXNCYXRjaGluZ0xlZ2FjeTogZmFsc2UsXG4gIGRpZFNjaGVkdWxlTGVnYWN5VXBkYXRlOiBmYWxzZVxufTtcblxuLyoqXG4gKiBLZWVwcyB0cmFjayBvZiB0aGUgY3VycmVudCBvd25lci5cbiAqXG4gKiBUaGUgY3VycmVudCBvd25lciBpcyB0aGUgY29tcG9uZW50IHdobyBzaG91bGQgb3duIGFueSBjb21wb25lbnRzIHRoYXQgYXJlXG4gKiBjdXJyZW50bHkgYmVpbmcgY29uc3RydWN0ZWQuXG4gKi9cbnZhciBSZWFjdEN1cnJlbnRPd25lciA9IHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAdHlwZSB7UmVhY3RDb21wb25lbnR9XG4gICAqL1xuICBjdXJyZW50OiBudWxsXG59O1xuXG52YXIgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSA9IHt9O1xudmFyIGN1cnJlbnRFeHRyYVN0YWNrRnJhbWUgPSBudWxsO1xuZnVuY3Rpb24gc2V0RXh0cmFTdGFja0ZyYW1lKHN0YWNrKSB7XG4gIHtcbiAgICBjdXJyZW50RXh0cmFTdGFja0ZyYW1lID0gc3RhY2s7XG4gIH1cbn1cblxue1xuICBSZWFjdERlYnVnQ3VycmVudEZyYW1lLnNldEV4dHJhU3RhY2tGcmFtZSA9IGZ1bmN0aW9uIChzdGFjaykge1xuICAgIHtcbiAgICAgIGN1cnJlbnRFeHRyYVN0YWNrRnJhbWUgPSBzdGFjaztcbiAgICB9XG4gIH07IC8vIFN0YWNrIGltcGxlbWVudGF0aW9uIGluamVjdGVkIGJ5IHRoZSBjdXJyZW50IHJlbmRlcmVyLlxuXG5cbiAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZS5nZXRDdXJyZW50U3RhY2sgPSBudWxsO1xuXG4gIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0U3RhY2tBZGRlbmR1bSA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgc3RhY2sgPSAnJzsgLy8gQWRkIGFuIGV4dHJhIHRvcCBmcmFtZSB3aGlsZSBhbiBlbGVtZW50IGlzIGJlaW5nIHZhbGlkYXRlZFxuXG4gICAgaWYgKGN1cnJlbnRFeHRyYVN0YWNrRnJhbWUpIHtcbiAgICAgIHN0YWNrICs9IGN1cnJlbnRFeHRyYVN0YWNrRnJhbWU7XG4gICAgfSAvLyBEZWxlZ2F0ZSB0byB0aGUgaW5qZWN0ZWQgcmVuZGVyZXItc3BlY2lmaWMgaW1wbGVtZW50YXRpb25cblxuXG4gICAgdmFyIGltcGwgPSBSZWFjdERlYnVnQ3VycmVudEZyYW1lLmdldEN1cnJlbnRTdGFjaztcblxuICAgIGlmIChpbXBsKSB7XG4gICAgICBzdGFjayArPSBpbXBsKCkgfHwgJyc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YWNrO1xuICB9O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG52YXIgZW5hYmxlU2NvcGVBUEkgPSBmYWxzZTsgLy8gRXhwZXJpbWVudGFsIENyZWF0ZSBFdmVudCBIYW5kbGUgQVBJLlxudmFyIGVuYWJsZUNhY2hlRWxlbWVudCA9IGZhbHNlO1xudmFyIGVuYWJsZVRyYW5zaXRpb25UcmFjaW5nID0gZmFsc2U7IC8vIE5vIGtub3duIGJ1Z3MsIGJ1dCBuZWVkcyBwZXJmb3JtYW5jZSB0ZXN0aW5nXG5cbnZhciBlbmFibGVMZWdhY3lIaWRkZW4gPSBmYWxzZTsgLy8gRW5hYmxlcyB1bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFjayBmZWF0dXJlIGluIEZpYmVyXG4vLyBzdHVmZi4gSW50ZW5kZWQgdG8gZW5hYmxlIFJlYWN0IGNvcmUgbWVtYmVycyB0byBtb3JlIGVhc2lseSBkZWJ1ZyBzY2hlZHVsaW5nXG4vLyBpc3N1ZXMgaW4gREVWIGJ1aWxkcy5cblxudmFyIGVuYWJsZURlYnVnVHJhY2luZyA9IGZhbHNlOyAvLyBUcmFjayB3aGljaCBGaWJlcihzKSBzY2hlZHVsZSByZW5kZXIgd29yay5cblxudmFyIFJlYWN0U2hhcmVkSW50ZXJuYWxzID0ge1xuICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyOiBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLFxuICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZzogUmVhY3RDdXJyZW50QmF0Y2hDb25maWcsXG4gIFJlYWN0Q3VycmVudE93bmVyOiBSZWFjdEN1cnJlbnRPd25lclxufTtcblxue1xuICBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcbiAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3RDdXJyZW50QWN0UXVldWUgPSBSZWFjdEN1cnJlbnRBY3RRdWV1ZTtcbn1cblxuLy8gYnkgY2FsbHMgdG8gdGhlc2UgbWV0aG9kcyBieSBhIEJhYmVsIHBsdWdpbi5cbi8vXG4vLyBJbiBQUk9EIChvciBpbiBwYWNrYWdlcyB3aXRob3V0IGFjY2VzcyB0byBSZWFjdCBpbnRlcm5hbHMpLFxuLy8gdGhleSBhcmUgbGVmdCBhcyB0aGV5IGFyZSBpbnN0ZWFkLlxuXG5mdW5jdGlvbiB3YXJuKGZvcm1hdCkge1xuICB7XG4gICAge1xuICAgICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiA+IDEgPyBfbGVuIC0gMSA6IDApLCBfa2V5ID0gMTsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgICBhcmdzW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICAgIH1cblxuICAgICAgcHJpbnRXYXJuaW5nKCd3YXJuJywgZm9ybWF0LCBhcmdzKTtcbiAgICB9XG4gIH1cbn1cbmZ1bmN0aW9uIGVycm9yKGZvcm1hdCkge1xuICB7XG4gICAge1xuICAgICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yID4gMSA/IF9sZW4yIC0gMSA6IDApLCBfa2V5MiA9IDE7IF9rZXkyIDwgX2xlbjI7IF9rZXkyKyspIHtcbiAgICAgICAgYXJnc1tfa2V5MiAtIDFdID0gYXJndW1lbnRzW19rZXkyXTtcbiAgICAgIH1cblxuICAgICAgcHJpbnRXYXJuaW5nKCdlcnJvcicsIGZvcm1hdCwgYXJncyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHByaW50V2FybmluZyhsZXZlbCwgZm9ybWF0LCBhcmdzKSB7XG4gIC8vIFdoZW4gY2hhbmdpbmcgdGhpcyBsb2dpYywgeW91IG1pZ2h0IHdhbnQgdG8gYWxzb1xuICAvLyB1cGRhdGUgY29uc29sZVdpdGhTdGFja0Rldi53d3cuanMgYXMgd2VsbC5cbiAge1xuICAgIHZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcbiAgICB2YXIgc3RhY2sgPSBSZWFjdERlYnVnQ3VycmVudEZyYW1lLmdldFN0YWNrQWRkZW5kdW0oKTtcblxuICAgIGlmIChzdGFjayAhPT0gJycpIHtcbiAgICAgIGZvcm1hdCArPSAnJXMnO1xuICAgICAgYXJncyA9IGFyZ3MuY29uY2F0KFtzdGFja10pO1xuICAgIH0gLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG5cblxuICAgIHZhciBhcmdzV2l0aEZvcm1hdCA9IGFyZ3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKGl0ZW0pO1xuICAgIH0pOyAvLyBDYXJlZnVsOiBSTiBjdXJyZW50bHkgZGVwZW5kcyBvbiB0aGlzIHByZWZpeFxuXG4gICAgYXJnc1dpdGhGb3JtYXQudW5zaGlmdCgnV2FybmluZzogJyArIGZvcm1hdCk7IC8vIFdlIGludGVudGlvbmFsbHkgZG9uJ3QgdXNlIHNwcmVhZCAob3IgLmFwcGx5KSBkaXJlY3RseSBiZWNhdXNlIGl0XG4gICAgLy8gYnJlYWtzIElFOTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMzYxMFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmdcblxuICAgIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKGNvbnNvbGVbbGV2ZWxdLCBjb25zb2xlLCBhcmdzV2l0aEZvcm1hdCk7XG4gIH1cbn1cblxudmFyIGRpZFdhcm5TdGF0ZVVwZGF0ZUZvclVubW91bnRlZENvbXBvbmVudCA9IHt9O1xuXG5mdW5jdGlvbiB3YXJuTm9vcChwdWJsaWNJbnN0YW5jZSwgY2FsbGVyTmFtZSkge1xuICB7XG4gICAgdmFyIF9jb25zdHJ1Y3RvciA9IHB1YmxpY0luc3RhbmNlLmNvbnN0cnVjdG9yO1xuICAgIHZhciBjb21wb25lbnROYW1lID0gX2NvbnN0cnVjdG9yICYmIChfY29uc3RydWN0b3IuZGlzcGxheU5hbWUgfHwgX2NvbnN0cnVjdG9yLm5hbWUpIHx8ICdSZWFjdENsYXNzJztcbiAgICB2YXIgd2FybmluZ0tleSA9IGNvbXBvbmVudE5hbWUgKyBcIi5cIiArIGNhbGxlck5hbWU7XG5cbiAgICBpZiAoZGlkV2FyblN0YXRlVXBkYXRlRm9yVW5tb3VudGVkQ29tcG9uZW50W3dhcm5pbmdLZXldKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZXJyb3IoXCJDYW4ndCBjYWxsICVzIG9uIGEgY29tcG9uZW50IHRoYXQgaXMgbm90IHlldCBtb3VudGVkLiBcIiArICdUaGlzIGlzIGEgbm8tb3AsIGJ1dCBpdCBtaWdodCBpbmRpY2F0ZSBhIGJ1ZyBpbiB5b3VyIGFwcGxpY2F0aW9uLiAnICsgJ0luc3RlYWQsIGFzc2lnbiB0byBgdGhpcy5zdGF0ZWAgZGlyZWN0bHkgb3IgZGVmaW5lIGEgYHN0YXRlID0ge307YCAnICsgJ2NsYXNzIHByb3BlcnR5IHdpdGggdGhlIGRlc2lyZWQgc3RhdGUgaW4gdGhlICVzIGNvbXBvbmVudC4nLCBjYWxsZXJOYW1lLCBjb21wb25lbnROYW1lKTtcblxuICAgIGRpZFdhcm5TdGF0ZVVwZGF0ZUZvclVubW91bnRlZENvbXBvbmVudFt3YXJuaW5nS2V5XSA9IHRydWU7XG4gIH1cbn1cbi8qKlxuICogVGhpcyBpcyB0aGUgYWJzdHJhY3QgQVBJIGZvciBhbiB1cGRhdGUgcXVldWUuXG4gKi9cblxuXG52YXIgUmVhY3ROb29wVXBkYXRlUXVldWUgPSB7XG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciBvciBub3QgdGhpcyBjb21wb3NpdGUgY29tcG9uZW50IGlzIG1vdW50ZWQuXG4gICAqIEBwYXJhbSB7UmVhY3RDbGFzc30gcHVibGljSW5zdGFuY2UgVGhlIGluc3RhbmNlIHdlIHdhbnQgdG8gdGVzdC5cbiAgICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBtb3VudGVkLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqIEBwcm90ZWN0ZWRcbiAgICogQGZpbmFsXG4gICAqL1xuICBpc01vdW50ZWQ6IGZ1bmN0aW9uIChwdWJsaWNJbnN0YW5jZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSxcblxuICAvKipcbiAgICogRm9yY2VzIGFuIHVwZGF0ZS4gVGhpcyBzaG91bGQgb25seSBiZSBpbnZva2VkIHdoZW4gaXQgaXMga25vd24gd2l0aFxuICAgKiBjZXJ0YWludHkgdGhhdCB3ZSBhcmUgKipub3QqKiBpbiBhIERPTSB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogWW91IG1heSB3YW50IHRvIGNhbGwgdGhpcyB3aGVuIHlvdSBrbm93IHRoYXQgc29tZSBkZWVwZXIgYXNwZWN0IG9mIHRoZVxuICAgKiBjb21wb25lbnQncyBzdGF0ZSBoYXMgY2hhbmdlZCBidXQgYHNldFN0YXRlYCB3YXMgbm90IGNhbGxlZC5cbiAgICpcbiAgICogVGhpcyB3aWxsIG5vdCBpbnZva2UgYHNob3VsZENvbXBvbmVudFVwZGF0ZWAsIGJ1dCBpdCB3aWxsIGludm9rZVxuICAgKiBgY29tcG9uZW50V2lsbFVwZGF0ZWAgYW5kIGBjb21wb25lbnREaWRVcGRhdGVgLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0aGF0IHNob3VsZCByZXJlbmRlci5cbiAgICogQHBhcmFtIHs/ZnVuY3Rpb259IGNhbGxiYWNrIENhbGxlZCBhZnRlciBjb21wb25lbnQgaXMgdXBkYXRlZC5cbiAgICogQHBhcmFtIHs/c3RyaW5nfSBjYWxsZXJOYW1lIG5hbWUgb2YgdGhlIGNhbGxpbmcgZnVuY3Rpb24gaW4gdGhlIHB1YmxpYyBBUEkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZW5xdWV1ZUZvcmNlVXBkYXRlOiBmdW5jdGlvbiAocHVibGljSW5zdGFuY2UsIGNhbGxiYWNrLCBjYWxsZXJOYW1lKSB7XG4gICAgd2Fybk5vb3AocHVibGljSW5zdGFuY2UsICdmb3JjZVVwZGF0ZScpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyBhbGwgb2YgdGhlIHN0YXRlLiBBbHdheXMgdXNlIHRoaXMgb3IgYHNldFN0YXRlYCB0byBtdXRhdGUgc3RhdGUuXG4gICAqIFlvdSBzaG91bGQgdHJlYXQgYHRoaXMuc3RhdGVgIGFzIGltbXV0YWJsZS5cbiAgICpcbiAgICogVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgYHRoaXMuc3RhdGVgIHdpbGwgYmUgaW1tZWRpYXRlbHkgdXBkYXRlZCwgc29cbiAgICogYWNjZXNzaW5nIGB0aGlzLnN0YXRlYCBhZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kIG1heSByZXR1cm4gdGhlIG9sZCB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFjdENsYXNzfSBwdWJsaWNJbnN0YW5jZSBUaGUgaW5zdGFuY2UgdGhhdCBzaG91bGQgcmVyZW5kZXIuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBjb21wbGV0ZVN0YXRlIE5leHQgc3RhdGUuXG4gICAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgY29tcG9uZW50IGlzIHVwZGF0ZWQuXG4gICAqIEBwYXJhbSB7P3N0cmluZ30gY2FsbGVyTmFtZSBuYW1lIG9mIHRoZSBjYWxsaW5nIGZ1bmN0aW9uIGluIHRoZSBwdWJsaWMgQVBJLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGVucXVldWVSZXBsYWNlU3RhdGU6IGZ1bmN0aW9uIChwdWJsaWNJbnN0YW5jZSwgY29tcGxldGVTdGF0ZSwgY2FsbGJhY2ssIGNhbGxlck5hbWUpIHtcbiAgICB3YXJuTm9vcChwdWJsaWNJbnN0YW5jZSwgJ3JlcGxhY2VTdGF0ZScpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBTZXRzIGEgc3Vic2V0IG9mIHRoZSBzdGF0ZS4gVGhpcyBvbmx5IGV4aXN0cyBiZWNhdXNlIF9wZW5kaW5nU3RhdGUgaXNcbiAgICogaW50ZXJuYWwuIFRoaXMgcHJvdmlkZXMgYSBtZXJnaW5nIHN0cmF0ZWd5IHRoYXQgaXMgbm90IGF2YWlsYWJsZSB0byBkZWVwXG4gICAqIHByb3BlcnRpZXMgd2hpY2ggaXMgY29uZnVzaW5nLiBUT0RPOiBFeHBvc2UgcGVuZGluZ1N0YXRlIG9yIGRvbid0IHVzZSBpdFxuICAgKiBkdXJpbmcgdGhlIG1lcmdlLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWN0Q2xhc3N9IHB1YmxpY0luc3RhbmNlIFRoZSBpbnN0YW5jZSB0aGF0IHNob3VsZCByZXJlbmRlci5cbiAgICogQHBhcmFtIHtvYmplY3R9IHBhcnRpYWxTdGF0ZSBOZXh0IHBhcnRpYWwgc3RhdGUgdG8gYmUgbWVyZ2VkIHdpdGggc3RhdGUuXG4gICAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgY29tcG9uZW50IGlzIHVwZGF0ZWQuXG4gICAqIEBwYXJhbSB7P3N0cmluZ30gTmFtZSBvZiB0aGUgY2FsbGluZyBmdW5jdGlvbiBpbiB0aGUgcHVibGljIEFQSS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBlbnF1ZXVlU2V0U3RhdGU6IGZ1bmN0aW9uIChwdWJsaWNJbnN0YW5jZSwgcGFydGlhbFN0YXRlLCBjYWxsYmFjaywgY2FsbGVyTmFtZSkge1xuICAgIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCAnc2V0U3RhdGUnKTtcbiAgfVxufTtcblxudmFyIGFzc2lnbiA9IE9iamVjdC5hc3NpZ247XG5cbnZhciBlbXB0eU9iamVjdCA9IHt9O1xuXG57XG4gIE9iamVjdC5mcmVlemUoZW1wdHlPYmplY3QpO1xufVxuLyoqXG4gKiBCYXNlIGNsYXNzIGhlbHBlcnMgZm9yIHRoZSB1cGRhdGluZyBzdGF0ZSBvZiBhIGNvbXBvbmVudC5cbiAqL1xuXG5cbmZ1bmN0aW9uIENvbXBvbmVudChwcm9wcywgY29udGV4dCwgdXBkYXRlcikge1xuICB0aGlzLnByb3BzID0gcHJvcHM7XG4gIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7IC8vIElmIGEgY29tcG9uZW50IGhhcyBzdHJpbmcgcmVmcywgd2Ugd2lsbCBhc3NpZ24gYSBkaWZmZXJlbnQgb2JqZWN0IGxhdGVyLlxuXG4gIHRoaXMucmVmcyA9IGVtcHR5T2JqZWN0OyAvLyBXZSBpbml0aWFsaXplIHRoZSBkZWZhdWx0IHVwZGF0ZXIgYnV0IHRoZSByZWFsIG9uZSBnZXRzIGluamVjdGVkIGJ5IHRoZVxuICAvLyByZW5kZXJlci5cblxuICB0aGlzLnVwZGF0ZXIgPSB1cGRhdGVyIHx8IFJlYWN0Tm9vcFVwZGF0ZVF1ZXVlO1xufVxuXG5Db21wb25lbnQucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQgPSB7fTtcbi8qKlxuICogU2V0cyBhIHN1YnNldCBvZiB0aGUgc3RhdGUuIEFsd2F5cyB1c2UgdGhpcyB0byBtdXRhdGVcbiAqIHN0YXRlLiBZb3Ugc2hvdWxkIHRyZWF0IGB0aGlzLnN0YXRlYCBhcyBpbW11dGFibGUuXG4gKlxuICogVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgYHRoaXMuc3RhdGVgIHdpbGwgYmUgaW1tZWRpYXRlbHkgdXBkYXRlZCwgc29cbiAqIGFjY2Vzc2luZyBgdGhpcy5zdGF0ZWAgYWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZCBtYXkgcmV0dXJuIHRoZSBvbGQgdmFsdWUuXG4gKlxuICogVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgY2FsbHMgdG8gYHNldFN0YXRlYCB3aWxsIHJ1biBzeW5jaHJvbm91c2x5LFxuICogYXMgdGhleSBtYXkgZXZlbnR1YWxseSBiZSBiYXRjaGVkIHRvZ2V0aGVyLiAgWW91IGNhbiBwcm92aWRlIGFuIG9wdGlvbmFsXG4gKiBjYWxsYmFjayB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgd2hlbiB0aGUgY2FsbCB0byBzZXRTdGF0ZSBpcyBhY3R1YWxseVxuICogY29tcGxldGVkLlxuICpcbiAqIFdoZW4gYSBmdW5jdGlvbiBpcyBwcm92aWRlZCB0byBzZXRTdGF0ZSwgaXQgd2lsbCBiZSBjYWxsZWQgYXQgc29tZSBwb2ludCBpblxuICogdGhlIGZ1dHVyZSAobm90IHN5bmNocm9ub3VzbHkpLiBJdCB3aWxsIGJlIGNhbGxlZCB3aXRoIHRoZSB1cCB0byBkYXRlXG4gKiBjb21wb25lbnQgYXJndW1lbnRzIChzdGF0ZSwgcHJvcHMsIGNvbnRleHQpLiBUaGVzZSB2YWx1ZXMgY2FuIGJlIGRpZmZlcmVudFxuICogZnJvbSB0aGlzLiogYmVjYXVzZSB5b3VyIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgYWZ0ZXIgcmVjZWl2ZVByb3BzIGJ1dCBiZWZvcmVcbiAqIHNob3VsZENvbXBvbmVudFVwZGF0ZSwgYW5kIHRoaXMgbmV3IHN0YXRlLCBwcm9wcywgYW5kIGNvbnRleHQgd2lsbCBub3QgeWV0IGJlXG4gKiBhc3NpZ25lZCB0byB0aGlzLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fGZ1bmN0aW9ufSBwYXJ0aWFsU3RhdGUgTmV4dCBwYXJ0aWFsIHN0YXRlIG9yIGZ1bmN0aW9uIHRvXG4gKiAgICAgICAgcHJvZHVjZSBuZXh0IHBhcnRpYWwgc3RhdGUgdG8gYmUgbWVyZ2VkIHdpdGggY3VycmVudCBzdGF0ZS5cbiAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgc3RhdGUgaXMgdXBkYXRlZC5cbiAqIEBmaW5hbFxuICogQHByb3RlY3RlZFxuICovXG5cbkNvbXBvbmVudC5wcm90b3R5cGUuc2V0U3RhdGUgPSBmdW5jdGlvbiAocGFydGlhbFN0YXRlLCBjYWxsYmFjaykge1xuICBpZiAodHlwZW9mIHBhcnRpYWxTdGF0ZSAhPT0gJ29iamVjdCcgJiYgdHlwZW9mIHBhcnRpYWxTdGF0ZSAhPT0gJ2Z1bmN0aW9uJyAmJiBwYXJ0aWFsU3RhdGUgIT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignc2V0U3RhdGUoLi4uKTogdGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSAnICsgJ2Z1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcy4nKTtcbiAgfVxuXG4gIHRoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcywgcGFydGlhbFN0YXRlLCBjYWxsYmFjaywgJ3NldFN0YXRlJyk7XG59O1xuLyoqXG4gKiBGb3JjZXMgYW4gdXBkYXRlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGludm9rZWQgd2hlbiBpdCBpcyBrbm93biB3aXRoXG4gKiBjZXJ0YWludHkgdGhhdCB3ZSBhcmUgKipub3QqKiBpbiBhIERPTSB0cmFuc2FjdGlvbi5cbiAqXG4gKiBZb3UgbWF5IHdhbnQgdG8gY2FsbCB0aGlzIHdoZW4geW91IGtub3cgdGhhdCBzb21lIGRlZXBlciBhc3BlY3Qgb2YgdGhlXG4gKiBjb21wb25lbnQncyBzdGF0ZSBoYXMgY2hhbmdlZCBidXQgYHNldFN0YXRlYCB3YXMgbm90IGNhbGxlZC5cbiAqXG4gKiBUaGlzIHdpbGwgbm90IGludm9rZSBgc2hvdWxkQ29tcG9uZW50VXBkYXRlYCwgYnV0IGl0IHdpbGwgaW52b2tlXG4gKiBgY29tcG9uZW50V2lsbFVwZGF0ZWAgYW5kIGBjb21wb25lbnREaWRVcGRhdGVgLlxuICpcbiAqIEBwYXJhbSB7P2Z1bmN0aW9ufSBjYWxsYmFjayBDYWxsZWQgYWZ0ZXIgdXBkYXRlIGlzIGNvbXBsZXRlLlxuICogQGZpbmFsXG4gKiBAcHJvdGVjdGVkXG4gKi9cblxuXG5Db21wb25lbnQucHJvdG90eXBlLmZvcmNlVXBkYXRlID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4gIHRoaXMudXBkYXRlci5lbnF1ZXVlRm9yY2VVcGRhdGUodGhpcywgY2FsbGJhY2ssICdmb3JjZVVwZGF0ZScpO1xufTtcbi8qKlxuICogRGVwcmVjYXRlZCBBUElzLiBUaGVzZSBBUElzIHVzZWQgdG8gZXhpc3Qgb24gY2xhc3NpYyBSZWFjdCBjbGFzc2VzIGJ1dCBzaW5jZVxuICogd2Ugd291bGQgbGlrZSB0byBkZXByZWNhdGUgdGhlbSwgd2UncmUgbm90IGdvaW5nIHRvIG1vdmUgdGhlbSBvdmVyIHRvIHRoaXNcbiAqIG1vZGVybiBiYXNlIGNsYXNzLiBJbnN0ZWFkLCB3ZSBkZWZpbmUgYSBnZXR0ZXIgdGhhdCB3YXJucyBpZiBpdCdzIGFjY2Vzc2VkLlxuICovXG5cblxue1xuICB2YXIgZGVwcmVjYXRlZEFQSXMgPSB7XG4gICAgaXNNb3VudGVkOiBbJ2lzTW91bnRlZCcsICdJbnN0ZWFkLCBtYWtlIHN1cmUgdG8gY2xlYW4gdXAgc3Vic2NyaXB0aW9ucyBhbmQgcGVuZGluZyByZXF1ZXN0cyBpbiAnICsgJ2NvbXBvbmVudFdpbGxVbm1vdW50IHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzLiddLFxuICAgIHJlcGxhY2VTdGF0ZTogWydyZXBsYWNlU3RhdGUnLCAnUmVmYWN0b3IgeW91ciBjb2RlIHRvIHVzZSBzZXRTdGF0ZSBpbnN0ZWFkIChzZWUgJyArICdodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzMyMzYpLiddXG4gIH07XG5cbiAgdmFyIGRlZmluZURlcHJlY2F0aW9uV2FybmluZyA9IGZ1bmN0aW9uIChtZXRob2ROYW1lLCBpbmZvKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENvbXBvbmVudC5wcm90b3R5cGUsIG1ldGhvZE5hbWUsIHtcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICB3YXJuKCclcyguLi4pIGlzIGRlcHJlY2F0ZWQgaW4gcGxhaW4gSmF2YVNjcmlwdCBSZWFjdCBjbGFzc2VzLiAlcycsIGluZm9bMF0sIGluZm9bMV0pO1xuXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgZm9yICh2YXIgZm5OYW1lIGluIGRlcHJlY2F0ZWRBUElzKSB7XG4gICAgaWYgKGRlcHJlY2F0ZWRBUElzLmhhc093blByb3BlcnR5KGZuTmFtZSkpIHtcbiAgICAgIGRlZmluZURlcHJlY2F0aW9uV2FybmluZyhmbk5hbWUsIGRlcHJlY2F0ZWRBUElzW2ZuTmFtZV0pO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBDb21wb25lbnREdW1teSgpIHt9XG5cbkNvbXBvbmVudER1bW15LnByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7XG4vKipcbiAqIENvbnZlbmllbmNlIGNvbXBvbmVudCB3aXRoIGRlZmF1bHQgc2hhbGxvdyBlcXVhbGl0eSBjaGVjayBmb3Igc0NVLlxuICovXG5cbmZ1bmN0aW9uIFB1cmVDb21wb25lbnQocHJvcHMsIGNvbnRleHQsIHVwZGF0ZXIpIHtcbiAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB0aGlzLmNvbnRleHQgPSBjb250ZXh0OyAvLyBJZiBhIGNvbXBvbmVudCBoYXMgc3RyaW5nIHJlZnMsIHdlIHdpbGwgYXNzaWduIGEgZGlmZmVyZW50IG9iamVjdCBsYXRlci5cblxuICB0aGlzLnJlZnMgPSBlbXB0eU9iamVjdDtcbiAgdGhpcy51cGRhdGVyID0gdXBkYXRlciB8fCBSZWFjdE5vb3BVcGRhdGVRdWV1ZTtcbn1cblxudmFyIHB1cmVDb21wb25lbnRQcm90b3R5cGUgPSBQdXJlQ29tcG9uZW50LnByb3RvdHlwZSA9IG5ldyBDb21wb25lbnREdW1teSgpO1xucHVyZUNvbXBvbmVudFByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFB1cmVDb21wb25lbnQ7IC8vIEF2b2lkIGFuIGV4dHJhIHByb3RvdHlwZSBqdW1wIGZvciB0aGVzZSBtZXRob2RzLlxuXG5hc3NpZ24ocHVyZUNvbXBvbmVudFByb3RvdHlwZSwgQ29tcG9uZW50LnByb3RvdHlwZSk7XG5wdXJlQ29tcG9uZW50UHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50ID0gdHJ1ZTtcblxuLy8gYW4gaW1tdXRhYmxlIG9iamVjdCB3aXRoIGEgc2luZ2xlIG11dGFibGUgdmFsdWVcbmZ1bmN0aW9uIGNyZWF0ZVJlZigpIHtcbiAgdmFyIHJlZk9iamVjdCA9IHtcbiAgICBjdXJyZW50OiBudWxsXG4gIH07XG5cbiAge1xuICAgIE9iamVjdC5zZWFsKHJlZk9iamVjdCk7XG4gIH1cblxuICByZXR1cm4gcmVmT2JqZWN0O1xufVxuXG52YXIgaXNBcnJheUltcGwgPSBBcnJheS5pc0FycmF5OyAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVkZWNsYXJlXG5cbmZ1bmN0aW9uIGlzQXJyYXkoYSkge1xuICByZXR1cm4gaXNBcnJheUltcGwoYSk7XG59XG5cbi8qXG4gKiBUaGUgYCcnICsgdmFsdWVgIHBhdHRlcm4gKHVzZWQgaW4gaW4gcGVyZi1zZW5zaXRpdmUgY29kZSkgdGhyb3dzIGZvciBTeW1ib2xcbiAqIGFuZCBUZW1wb3JhbC4qIHR5cGVzLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L3B1bGwvMjIwNjQuXG4gKlxuICogVGhlIGZ1bmN0aW9ucyBpbiB0aGlzIG1vZHVsZSB3aWxsIHRocm93IGFuIGVhc2llci10by11bmRlcnN0YW5kLFxuICogZWFzaWVyLXRvLWRlYnVnIGV4Y2VwdGlvbiB3aXRoIGEgY2xlYXIgZXJyb3JzIG1lc3NhZ2UgbWVzc2FnZSBleHBsYWluaW5nIHRoZVxuICogcHJvYmxlbS4gKEluc3RlYWQgb2YgYSBjb25mdXNpbmcgZXhjZXB0aW9uIHRocm93biBpbnNpZGUgdGhlIGltcGxlbWVudGF0aW9uXG4gKiBvZiB0aGUgYHZhbHVlYCBvYmplY3QpLlxuICovXG4vLyAkRmxvd0ZpeE1lIG9ubHkgY2FsbGVkIGluIERFViwgc28gdm9pZCByZXR1cm4gaXMgbm90IHBvc3NpYmxlLlxuZnVuY3Rpb24gdHlwZU5hbWUodmFsdWUpIHtcbiAge1xuICAgIC8vIHRvU3RyaW5nVGFnIGlzIG5lZWRlZCBmb3IgbmFtZXNwYWNlZCB0eXBlcyBsaWtlIFRlbXBvcmFsLkluc3RhbnRcbiAgICB2YXIgaGFzVG9TdHJpbmdUYWcgPSB0eXBlb2YgU3ltYm9sID09PSAnZnVuY3Rpb24nICYmIFN5bWJvbC50b1N0cmluZ1RhZztcbiAgICB2YXIgdHlwZSA9IGhhc1RvU3RyaW5nVGFnICYmIHZhbHVlW1N5bWJvbC50b1N0cmluZ1RhZ10gfHwgdmFsdWUuY29uc3RydWN0b3IubmFtZSB8fCAnT2JqZWN0JztcbiAgICByZXR1cm4gdHlwZTtcbiAgfVxufSAvLyAkRmxvd0ZpeE1lIG9ubHkgY2FsbGVkIGluIERFViwgc28gdm9pZCByZXR1cm4gaXMgbm90IHBvc3NpYmxlLlxuXG5cbmZ1bmN0aW9uIHdpbGxDb2VyY2lvblRocm93KHZhbHVlKSB7XG4gIHtcbiAgICB0cnkge1xuICAgICAgdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gIC8vIElmIHlvdSBlbmRlZCB1cCBoZXJlIGJ5IGZvbGxvd2luZyBhbiBleGNlcHRpb24gY2FsbCBzdGFjaywgaGVyZSdzIHdoYXQnc1xuICAvLyBoYXBwZW5lZDogeW91IHN1cHBsaWVkIGFuIG9iamVjdCBvciBzeW1ib2wgdmFsdWUgdG8gUmVhY3QgKGFzIGEgcHJvcCwga2V5LFxuICAvLyBET00gYXR0cmlidXRlLCBDU1MgcHJvcGVydHksIHN0cmluZyByZWYsIGV0Yy4pIGFuZCB3aGVuIFJlYWN0IHRyaWVkIHRvXG4gIC8vIGNvZXJjZSBpdCB0byBhIHN0cmluZyB1c2luZyBgJycgKyB2YWx1ZWAsIGFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duLlxuICAvL1xuICAvLyBUaGUgbW9zdCBjb21tb24gdHlwZXMgdGhhdCB3aWxsIGNhdXNlIHRoaXMgZXhjZXB0aW9uIGFyZSBgU3ltYm9sYCBpbnN0YW5jZXNcbiAgLy8gYW5kIFRlbXBvcmFsIG9iamVjdHMgbGlrZSBgVGVtcG9yYWwuSW5zdGFudGAuIEJ1dCBhbnkgb2JqZWN0IHRoYXQgaGFzIGFcbiAgLy8gYHZhbHVlT2ZgIG9yIGBbU3ltYm9sLnRvUHJpbWl0aXZlXWAgbWV0aG9kIHRoYXQgdGhyb3dzIHdpbGwgYWxzbyBjYXVzZSB0aGlzXG4gIC8vIGV4Y2VwdGlvbi4gKExpYnJhcnkgYXV0aG9ycyBkbyB0aGlzIHRvIHByZXZlbnQgdXNlcnMgZnJvbSB1c2luZyBidWlsdC1pblxuICAvLyBudW1lcmljIG9wZXJhdG9ycyBsaWtlIGArYCBvciBjb21wYXJpc29uIG9wZXJhdG9ycyBsaWtlIGA+PWAgYmVjYXVzZSBjdXN0b21cbiAgLy8gbWV0aG9kcyBhcmUgbmVlZGVkIHRvIHBlcmZvcm0gYWNjdXJhdGUgYXJpdGhtZXRpYyBvciBjb21wYXJpc29uLilcbiAgLy9cbiAgLy8gVG8gZml4IHRoZSBwcm9ibGVtLCBjb2VyY2UgdGhpcyBvYmplY3Qgb3Igc3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIGJlZm9yZVxuICAvLyBwYXNzaW5nIGl0IHRvIFJlYWN0LiBUaGUgbW9zdCByZWxpYWJsZSB3YXkgaXMgdXN1YWxseSBgU3RyaW5nKHZhbHVlKWAuXG4gIC8vXG4gIC8vIFRvIGZpbmQgd2hpY2ggdmFsdWUgaXMgdGhyb3dpbmcsIGNoZWNrIHRoZSBicm93c2VyIG9yIGRlYnVnZ2VyIGNvbnNvbGUuXG4gIC8vIEJlZm9yZSB0aGlzIGV4Y2VwdGlvbiB3YXMgdGhyb3duLCB0aGVyZSBzaG91bGQgYmUgYGNvbnNvbGUuZXJyb3JgIG91dHB1dFxuICAvLyB0aGF0IHNob3dzIHRoZSB0eXBlIChTeW1ib2wsIFRlbXBvcmFsLlBsYWluRGF0ZSwgZXRjLikgdGhhdCBjYXVzZWQgdGhlXG4gIC8vIHByb2JsZW0gYW5kIGhvdyB0aGF0IHR5cGUgd2FzIHVzZWQ6IGtleSwgYXRycmlidXRlLCBpbnB1dCB2YWx1ZSBwcm9wLCBldGMuXG4gIC8vIEluIG1vc3QgY2FzZXMsIHRoaXMgY29uc29sZSBvdXRwdXQgYWxzbyBzaG93cyB0aGUgY29tcG9uZW50IGFuZCBpdHNcbiAgLy8gYW5jZXN0b3IgY29tcG9uZW50cyB3aGVyZSB0aGUgZXhjZXB0aW9uIGhhcHBlbmVkLlxuICAvL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cbiAgcmV0dXJuICcnICsgdmFsdWU7XG59XG5mdW5jdGlvbiBjaGVja0tleVN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gIHtcbiAgICBpZiAod2lsbENvZXJjaW9uVGhyb3codmFsdWUpKSB7XG4gICAgICBlcnJvcignVGhlIHByb3ZpZGVkIGtleSBpcyBhbiB1bnN1cHBvcnRlZCB0eXBlICVzLicgKyAnIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSBiZWZvcmUgdXNpbmcgaXQgaGVyZS4nLCB0eXBlTmFtZSh2YWx1ZSkpO1xuXG4gICAgICByZXR1cm4gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTsgLy8gdGhyb3cgKHRvIGhlbHAgY2FsbGVycyBmaW5kIHRyb3VibGVzaG9vdGluZyBjb21tZW50cylcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0V3JhcHBlZE5hbWUob3V0ZXJUeXBlLCBpbm5lclR5cGUsIHdyYXBwZXJOYW1lKSB7XG4gIHZhciBkaXNwbGF5TmFtZSA9IG91dGVyVHlwZS5kaXNwbGF5TmFtZTtcblxuICBpZiAoZGlzcGxheU5hbWUpIHtcbiAgICByZXR1cm4gZGlzcGxheU5hbWU7XG4gIH1cblxuICB2YXIgZnVuY3Rpb25OYW1lID0gaW5uZXJUeXBlLmRpc3BsYXlOYW1lIHx8IGlubmVyVHlwZS5uYW1lIHx8ICcnO1xuICByZXR1cm4gZnVuY3Rpb25OYW1lICE9PSAnJyA/IHdyYXBwZXJOYW1lICsgXCIoXCIgKyBmdW5jdGlvbk5hbWUgKyBcIilcIiA6IHdyYXBwZXJOYW1lO1xufSAvLyBLZWVwIGluIHN5bmMgd2l0aCByZWFjdC1yZWNvbmNpbGVyL2dldENvbXBvbmVudE5hbWVGcm9tRmliZXJcblxuXG5mdW5jdGlvbiBnZXRDb250ZXh0TmFtZSh0eXBlKSB7XG4gIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8ICdDb250ZXh0Jztcbn0gLy8gTm90ZSB0aGF0IHRoZSByZWNvbmNpbGVyIHBhY2thZ2Ugc2hvdWxkIGdlbmVyYWxseSBwcmVmZXIgdG8gdXNlIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoKSBpbnN0ZWFkLlxuXG5cbmZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKSB7XG4gIGlmICh0eXBlID09IG51bGwpIHtcbiAgICAvLyBIb3N0IHJvb3QsIHRleHQgbm9kZSBvciBqdXN0IGludmFsaWQgdHlwZS5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHtcbiAgICBpZiAodHlwZW9mIHR5cGUudGFnID09PSAnbnVtYmVyJykge1xuICAgICAgZXJyb3IoJ1JlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgb2JqZWN0IGluIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSgpLiAnICsgJ1RoaXMgaXMgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgbnVsbDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgUkVBQ1RfRlJBR01FTlRfVFlQRTpcbiAgICAgIHJldHVybiAnRnJhZ21lbnQnO1xuXG4gICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgIHJldHVybiAnUG9ydGFsJztcblxuICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgIHJldHVybiAnUHJvZmlsZXInO1xuXG4gICAgY2FzZSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFOlxuICAgICAgcmV0dXJuICdTdHJpY3RNb2RlJztcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgIHJldHVybiAnU3VzcGVuc2UnO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICByZXR1cm4gJ1N1c3BlbnNlTGlzdCc7XG5cbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfQ09OVEVYVF9UWVBFOlxuICAgICAgICB2YXIgY29udGV4dCA9IHR5cGU7XG4gICAgICAgIHJldHVybiBnZXRDb250ZXh0TmFtZShjb250ZXh0KSArICcuQ29uc3VtZXInO1xuXG4gICAgICBjYXNlIFJFQUNUX1BST1ZJREVSX1RZUEU6XG4gICAgICAgIHZhciBwcm92aWRlciA9IHR5cGU7XG4gICAgICAgIHJldHVybiBnZXRDb250ZXh0TmFtZShwcm92aWRlci5fY29udGV4dCkgKyAnLlByb3ZpZGVyJztcblxuICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICByZXR1cm4gZ2V0V3JhcHBlZE5hbWUodHlwZSwgdHlwZS5yZW5kZXIsICdGb3J3YXJkUmVmJyk7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICB2YXIgb3V0ZXJOYW1lID0gdHlwZS5kaXNwbGF5TmFtZSB8fCBudWxsO1xuXG4gICAgICAgIGlmIChvdXRlck5hbWUgIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gb3V0ZXJOYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8ICdNZW1vJztcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGluaXQocGF5bG9hZCkpO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcblxudmFyIFJFU0VSVkVEX1BST1BTID0ge1xuICBrZXk6IHRydWUsXG4gIHJlZjogdHJ1ZSxcbiAgX19zZWxmOiB0cnVlLFxuICBfX3NvdXJjZTogdHJ1ZVxufTtcbnZhciBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biwgc3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd24sIGRpZFdhcm5BYm91dFN0cmluZ1JlZnM7XG5cbntcbiAgZGlkV2FybkFib3V0U3RyaW5nUmVmcyA9IHt9O1xufVxuXG5mdW5jdGlvbiBoYXNWYWxpZFJlZihjb25maWcpIHtcbiAge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgJ3JlZicpKSB7XG4gICAgICB2YXIgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjb25maWcsICdyZWYnKS5nZXQ7XG5cbiAgICAgIGlmIChnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uZmlnLnJlZiAhPT0gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBoYXNWYWxpZEtleShjb25maWcpIHtcbiAge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgJ2tleScpKSB7XG4gICAgICB2YXIgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjb25maWcsICdrZXknKS5nZXQ7XG5cbiAgICAgIGlmIChnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uZmlnLmtleSAhPT0gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpIHtcbiAgdmFyIHdhcm5BYm91dEFjY2Vzc2luZ0tleSA9IGZ1bmN0aW9uICgpIHtcbiAgICB7XG4gICAgICBpZiAoIXNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duKSB7XG4gICAgICAgIHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duID0gdHJ1ZTtcblxuICAgICAgICBlcnJvcignJXM6IGBrZXlgIGlzIG5vdCBhIHByb3AuIFRyeWluZyB0byBhY2Nlc3MgaXQgd2lsbCByZXN1bHQgJyArICdpbiBgdW5kZWZpbmVkYCBiZWluZyByZXR1cm5lZC4gSWYgeW91IG5lZWQgdG8gYWNjZXNzIHRoZSBzYW1lICcgKyAndmFsdWUgd2l0aGluIHRoZSBjaGlsZCBjb21wb25lbnQsIHlvdSBzaG91bGQgcGFzcyBpdCBhcyBhIGRpZmZlcmVudCAnICsgJ3Byb3AuIChodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3BlY2lhbC1wcm9wcyknLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHdhcm5BYm91dEFjY2Vzc2luZ0tleS5pc1JlYWN0V2FybmluZyA9IHRydWU7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9wcywgJ2tleScsIHtcbiAgICBnZXQ6IHdhcm5BYm91dEFjY2Vzc2luZ0tleSxcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGRlZmluZVJlZlByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSkge1xuICB2YXIgd2FybkFib3V0QWNjZXNzaW5nUmVmID0gZnVuY3Rpb24gKCkge1xuICAgIHtcbiAgICAgIGlmICghc3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd24pIHtcbiAgICAgICAgc3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd24gPSB0cnVlO1xuXG4gICAgICAgIGVycm9yKCclczogYHJlZmAgaXMgbm90IGEgcHJvcC4gVHJ5aW5nIHRvIGFjY2VzcyBpdCB3aWxsIHJlc3VsdCAnICsgJ2luIGB1bmRlZmluZWRgIGJlaW5nIHJldHVybmVkLiBJZiB5b3UgbmVlZCB0byBhY2Nlc3MgdGhlIHNhbWUgJyArICd2YWx1ZSB3aXRoaW4gdGhlIGNoaWxkIGNvbXBvbmVudCwgeW91IHNob3VsZCBwYXNzIGl0IGFzIGEgZGlmZmVyZW50ICcgKyAncHJvcC4gKGh0dHBzOi8vcmVhY3Rqcy5vcmcvbGluay9zcGVjaWFsLXByb3BzKScsIGRpc3BsYXlOYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgd2FybkFib3V0QWNjZXNzaW5nUmVmLmlzUmVhY3RXYXJuaW5nID0gdHJ1ZTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3BzLCAncmVmJywge1xuICAgIGdldDogd2FybkFib3V0QWNjZXNzaW5nUmVmLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICB9KTtcbn1cblxuZnVuY3Rpb24gd2FybklmU3RyaW5nUmVmQ2Fubm90QmVBdXRvQ29udmVydGVkKGNvbmZpZykge1xuICB7XG4gICAgaWYgKHR5cGVvZiBjb25maWcucmVmID09PSAnc3RyaW5nJyAmJiBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50ICYmIGNvbmZpZy5fX3NlbGYgJiYgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC5zdGF0ZU5vZGUgIT09IGNvbmZpZy5fX3NlbGYpIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQudHlwZSk7XG5cbiAgICAgIGlmICghZGlkV2FybkFib3V0U3RyaW5nUmVmc1tjb21wb25lbnROYW1lXSkge1xuICAgICAgICBlcnJvcignQ29tcG9uZW50IFwiJXNcIiBjb250YWlucyB0aGUgc3RyaW5nIHJlZiBcIiVzXCIuICcgKyAnU3VwcG9ydCBmb3Igc3RyaW5nIHJlZnMgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIG1ham9yIHJlbGVhc2UuICcgKyAnVGhpcyBjYXNlIGNhbm5vdCBiZSBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCB0byBhbiBhcnJvdyBmdW5jdGlvbi4gJyArICdXZSBhc2sgeW91IHRvIG1hbnVhbGx5IGZpeCB0aGlzIGNhc2UgYnkgdXNpbmcgdXNlUmVmKCkgb3IgY3JlYXRlUmVmKCkgaW5zdGVhZC4gJyArICdMZWFybiBtb3JlIGFib3V0IHVzaW5nIHJlZnMgc2FmZWx5IGhlcmU6ICcgKyAnaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3N0cmljdC1tb2RlLXN0cmluZy1yZWYnLCBjb21wb25lbnROYW1lLCBjb25maWcucmVmKTtcblxuICAgICAgICBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzW2NvbXBvbmVudE5hbWVdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8qKlxuICogRmFjdG9yeSBtZXRob2QgdG8gY3JlYXRlIGEgbmV3IFJlYWN0IGVsZW1lbnQuIFRoaXMgbm8gbG9uZ2VyIGFkaGVyZXMgdG9cbiAqIHRoZSBjbGFzcyBwYXR0ZXJuLCBzbyBkbyBub3QgdXNlIG5ldyB0byBjYWxsIGl0LiBBbHNvLCBpbnN0YW5jZW9mIGNoZWNrXG4gKiB3aWxsIG5vdCB3b3JrLiBJbnN0ZWFkIHRlc3QgJCR0eXBlb2YgZmllbGQgYWdhaW5zdCBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50JykgdG8gY2hlY2tcbiAqIGlmIHNvbWV0aGluZyBpcyBhIFJlYWN0IEVsZW1lbnQuXG4gKlxuICogQHBhcmFtIHsqfSB0eXBlXG4gKiBAcGFyYW0geyp9IHByb3BzXG4gKiBAcGFyYW0geyp9IGtleVxuICogQHBhcmFtIHtzdHJpbmd8b2JqZWN0fSByZWZcbiAqIEBwYXJhbSB7Kn0gb3duZXJcbiAqIEBwYXJhbSB7Kn0gc2VsZiBBICp0ZW1wb3JhcnkqIGhlbHBlciB0byBkZXRlY3QgcGxhY2VzIHdoZXJlIGB0aGlzYCBpc1xuICogZGlmZmVyZW50IGZyb20gdGhlIGBvd25lcmAgd2hlbiBSZWFjdC5jcmVhdGVFbGVtZW50IGlzIGNhbGxlZCwgc28gdGhhdCB3ZVxuICogY2FuIHdhcm4uIFdlIHdhbnQgdG8gZ2V0IHJpZCBvZiBvd25lciBhbmQgcmVwbGFjZSBzdHJpbmcgYHJlZmBzIHdpdGggYXJyb3dcbiAqIGZ1bmN0aW9ucywgYW5kIGFzIGxvbmcgYXMgYHRoaXNgIGFuZCBvd25lciBhcmUgdGhlIHNhbWUsIHRoZXJlIHdpbGwgYmUgbm9cbiAqIGNoYW5nZSBpbiBiZWhhdmlvci5cbiAqIEBwYXJhbSB7Kn0gc291cmNlIEFuIGFubm90YXRpb24gb2JqZWN0IChhZGRlZCBieSBhIHRyYW5zcGlsZXIgb3Igb3RoZXJ3aXNlKVxuICogaW5kaWNhdGluZyBmaWxlbmFtZSwgbGluZSBudW1iZXIsIGFuZC9vciBvdGhlciBpbmZvcm1hdGlvbi5cbiAqIEBpbnRlcm5hbFxuICovXG5cblxudmFyIFJlYWN0RWxlbWVudCA9IGZ1bmN0aW9uICh0eXBlLCBrZXksIHJlZiwgc2VsZiwgc291cmNlLCBvd25lciwgcHJvcHMpIHtcbiAgdmFyIGVsZW1lbnQgPSB7XG4gICAgLy8gVGhpcyB0YWcgYWxsb3dzIHVzIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoaXMgYXMgYSBSZWFjdCBFbGVtZW50XG4gICAgJCR0eXBlb2Y6IFJFQUNUX0VMRU1FTlRfVFlQRSxcbiAgICAvLyBCdWlsdC1pbiBwcm9wZXJ0aWVzIHRoYXQgYmVsb25nIG9uIHRoZSBlbGVtZW50XG4gICAgdHlwZTogdHlwZSxcbiAgICBrZXk6IGtleSxcbiAgICByZWY6IHJlZixcbiAgICBwcm9wczogcHJvcHMsXG4gICAgLy8gUmVjb3JkIHRoZSBjb21wb25lbnQgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIHRoaXMgZWxlbWVudC5cbiAgICBfb3duZXI6IG93bmVyXG4gIH07XG5cbiAge1xuICAgIC8vIFRoZSB2YWxpZGF0aW9uIGZsYWcgaXMgY3VycmVudGx5IG11dGF0aXZlLiBXZSBwdXQgaXQgb25cbiAgICAvLyBhbiBleHRlcm5hbCBiYWNraW5nIHN0b3JlIHNvIHRoYXQgd2UgY2FuIGZyZWV6ZSB0aGUgd2hvbGUgb2JqZWN0LlxuICAgIC8vIFRoaXMgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSBXZWFrTWFwIG9uY2UgdGhleSBhcmUgaW1wbGVtZW50ZWQgaW5cbiAgICAvLyBjb21tb25seSB1c2VkIGRldmVsb3BtZW50IGVudmlyb25tZW50cy5cbiAgICBlbGVtZW50Ll9zdG9yZSA9IHt9OyAvLyBUbyBtYWtlIGNvbXBhcmluZyBSZWFjdEVsZW1lbnRzIGVhc2llciBmb3IgdGVzdGluZyBwdXJwb3Nlcywgd2UgbWFrZVxuICAgIC8vIHRoZSB2YWxpZGF0aW9uIGZsYWcgbm9uLWVudW1lcmFibGUgKHdoZXJlIHBvc3NpYmxlLCB3aGljaCBzaG91bGRcbiAgICAvLyBpbmNsdWRlIGV2ZXJ5IGVudmlyb25tZW50IHdlIHJ1biB0ZXN0cyBpbiksIHNvIHRoZSB0ZXN0IGZyYW1ld29ya1xuICAgIC8vIGlnbm9yZXMgaXQuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudC5fc3RvcmUsICd2YWxpZGF0ZWQnLCB7XG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiBmYWxzZVxuICAgIH0pOyAvLyBzZWxmIGFuZCBzb3VyY2UgYXJlIERFViBvbmx5IHByb3BlcnRpZXMuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudCwgJ19zZWxmJywge1xuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgdmFsdWU6IHNlbGZcbiAgICB9KTsgLy8gVHdvIGVsZW1lbnRzIGNyZWF0ZWQgaW4gdHdvIGRpZmZlcmVudCBwbGFjZXMgc2hvdWxkIGJlIGNvbnNpZGVyZWRcbiAgICAvLyBlcXVhbCBmb3IgdGVzdGluZyBwdXJwb3NlcyBhbmQgdGhlcmVmb3JlIHdlIGhpZGUgaXQgZnJvbSBlbnVtZXJhdGlvbi5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX3NvdXJjZScsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgIHZhbHVlOiBzb3VyY2VcbiAgICB9KTtcblxuICAgIGlmIChPYmplY3QuZnJlZXplKSB7XG4gICAgICBPYmplY3QuZnJlZXplKGVsZW1lbnQucHJvcHMpO1xuICAgICAgT2JqZWN0LmZyZWV6ZShlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn07XG4vKipcbiAqIENyZWF0ZSBhbmQgcmV0dXJuIGEgbmV3IFJlYWN0RWxlbWVudCBvZiB0aGUgZ2l2ZW4gdHlwZS5cbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjY3JlYXRlZWxlbWVudFxuICovXG5cbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQodHlwZSwgY29uZmlnLCBjaGlsZHJlbikge1xuICB2YXIgcHJvcE5hbWU7IC8vIFJlc2VydmVkIG5hbWVzIGFyZSBleHRyYWN0ZWRcblxuICB2YXIgcHJvcHMgPSB7fTtcbiAgdmFyIGtleSA9IG51bGw7XG4gIHZhciByZWYgPSBudWxsO1xuICB2YXIgc2VsZiA9IG51bGw7XG4gIHZhciBzb3VyY2UgPSBudWxsO1xuXG4gIGlmIChjb25maWcgIT0gbnVsbCkge1xuICAgIGlmIChoYXNWYWxpZFJlZihjb25maWcpKSB7XG4gICAgICByZWYgPSBjb25maWcucmVmO1xuXG4gICAgICB7XG4gICAgICAgIHdhcm5JZlN0cmluZ1JlZkNhbm5vdEJlQXV0b0NvbnZlcnRlZChjb25maWcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChoYXNWYWxpZEtleShjb25maWcpKSB7XG4gICAgICB7XG4gICAgICAgIGNoZWNrS2V5U3RyaW5nQ29lcmNpb24oY29uZmlnLmtleSk7XG4gICAgICB9XG5cbiAgICAgIGtleSA9ICcnICsgY29uZmlnLmtleTtcbiAgICB9XG5cbiAgICBzZWxmID0gY29uZmlnLl9fc2VsZiA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNvbmZpZy5fX3NlbGY7XG4gICAgc291cmNlID0gY29uZmlnLl9fc291cmNlID09PSB1bmRlZmluZWQgPyBudWxsIDogY29uZmlnLl9fc291cmNlOyAvLyBSZW1haW5pbmcgcHJvcGVydGllcyBhcmUgYWRkZWQgdG8gYSBuZXcgcHJvcHMgb2JqZWN0XG5cbiAgICBmb3IgKHByb3BOYW1lIGluIGNvbmZpZykge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCBwcm9wTmFtZSkgJiYgIVJFU0VSVkVEX1BST1BTLmhhc093blByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBjb25maWdbcHJvcE5hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfSAvLyBDaGlsZHJlbiBjYW4gYmUgbW9yZSB0aGFuIG9uZSBhcmd1bWVudCwgYW5kIHRob3NlIGFyZSB0cmFuc2ZlcnJlZCBvbnRvXG4gIC8vIHRoZSBuZXdseSBhbGxvY2F0ZWQgcHJvcHMgb2JqZWN0LlxuXG5cbiAgdmFyIGNoaWxkcmVuTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCAtIDI7XG5cbiAgaWYgKGNoaWxkcmVuTGVuZ3RoID09PSAxKSB7XG4gICAgcHJvcHMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgfSBlbHNlIGlmIChjaGlsZHJlbkxlbmd0aCA+IDEpIHtcbiAgICB2YXIgY2hpbGRBcnJheSA9IEFycmF5KGNoaWxkcmVuTGVuZ3RoKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW5MZW5ndGg7IGkrKykge1xuICAgICAgY2hpbGRBcnJheVtpXSA9IGFyZ3VtZW50c1tpICsgMl07XG4gICAgfVxuXG4gICAge1xuICAgICAgaWYgKE9iamVjdC5mcmVlemUpIHtcbiAgICAgICAgT2JqZWN0LmZyZWV6ZShjaGlsZEFycmF5KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkQXJyYXk7XG4gIH0gLy8gUmVzb2x2ZSBkZWZhdWx0IHByb3BzXG5cblxuICBpZiAodHlwZSAmJiB0eXBlLmRlZmF1bHRQcm9wcykge1xuICAgIHZhciBkZWZhdWx0UHJvcHMgPSB0eXBlLmRlZmF1bHRQcm9wcztcblxuICAgIGZvciAocHJvcE5hbWUgaW4gZGVmYXVsdFByb3BzKSB7XG4gICAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gZGVmYXVsdFByb3BzW3Byb3BOYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB7XG4gICAgaWYgKGtleSB8fCByZWYpIHtcbiAgICAgIHZhciBkaXNwbGF5TmFtZSA9IHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nID8gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgJ1Vua25vd24nIDogdHlwZTtcblxuICAgICAgaWYgKGtleSkge1xuICAgICAgICBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVmKSB7XG4gICAgICAgIGRlZmluZVJlZlByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFJlYWN0RWxlbWVudCh0eXBlLCBrZXksIHJlZiwgc2VsZiwgc291cmNlLCBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LCBwcm9wcyk7XG59XG5mdW5jdGlvbiBjbG9uZUFuZFJlcGxhY2VLZXkob2xkRWxlbWVudCwgbmV3S2V5KSB7XG4gIHZhciBuZXdFbGVtZW50ID0gUmVhY3RFbGVtZW50KG9sZEVsZW1lbnQudHlwZSwgbmV3S2V5LCBvbGRFbGVtZW50LnJlZiwgb2xkRWxlbWVudC5fc2VsZiwgb2xkRWxlbWVudC5fc291cmNlLCBvbGRFbGVtZW50Ll9vd25lciwgb2xkRWxlbWVudC5wcm9wcyk7XG4gIHJldHVybiBuZXdFbGVtZW50O1xufVxuLyoqXG4gKiBDbG9uZSBhbmQgcmV0dXJuIGEgbmV3IFJlYWN0RWxlbWVudCB1c2luZyBlbGVtZW50IGFzIHRoZSBzdGFydGluZyBwb2ludC5cbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjY2xvbmVlbGVtZW50XG4gKi9cblxuZnVuY3Rpb24gY2xvbmVFbGVtZW50KGVsZW1lbnQsIGNvbmZpZywgY2hpbGRyZW4pIHtcbiAgaWYgKGVsZW1lbnQgPT09IG51bGwgfHwgZWxlbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiUmVhY3QuY2xvbmVFbGVtZW50KC4uLik6IFRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgXCIgKyBlbGVtZW50ICsgXCIuXCIpO1xuICB9XG5cbiAgdmFyIHByb3BOYW1lOyAvLyBPcmlnaW5hbCBwcm9wcyBhcmUgY29waWVkXG5cbiAgdmFyIHByb3BzID0gYXNzaWduKHt9LCBlbGVtZW50LnByb3BzKTsgLy8gUmVzZXJ2ZWQgbmFtZXMgYXJlIGV4dHJhY3RlZFxuXG4gIHZhciBrZXkgPSBlbGVtZW50LmtleTtcbiAgdmFyIHJlZiA9IGVsZW1lbnQucmVmOyAvLyBTZWxmIGlzIHByZXNlcnZlZCBzaW5jZSB0aGUgb3duZXIgaXMgcHJlc2VydmVkLlxuXG4gIHZhciBzZWxmID0gZWxlbWVudC5fc2VsZjsgLy8gU291cmNlIGlzIHByZXNlcnZlZCBzaW5jZSBjbG9uZUVsZW1lbnQgaXMgdW5saWtlbHkgdG8gYmUgdGFyZ2V0ZWQgYnkgYVxuICAvLyB0cmFuc3BpbGVyLCBhbmQgdGhlIG9yaWdpbmFsIHNvdXJjZSBpcyBwcm9iYWJseSBhIGJldHRlciBpbmRpY2F0b3Igb2YgdGhlXG4gIC8vIHRydWUgb3duZXIuXG5cbiAgdmFyIHNvdXJjZSA9IGVsZW1lbnQuX3NvdXJjZTsgLy8gT3duZXIgd2lsbCBiZSBwcmVzZXJ2ZWQsIHVubGVzcyByZWYgaXMgb3ZlcnJpZGRlblxuXG4gIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuXG4gIGlmIChjb25maWcgIT0gbnVsbCkge1xuICAgIGlmIChoYXNWYWxpZFJlZihjb25maWcpKSB7XG4gICAgICAvLyBTaWxlbnRseSBzdGVhbCB0aGUgcmVmIGZyb20gdGhlIHBhcmVudC5cbiAgICAgIHJlZiA9IGNvbmZpZy5yZWY7XG4gICAgICBvd25lciA9IFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQ7XG4gICAgfVxuXG4gICAgaWYgKGhhc1ZhbGlkS2V5KGNvbmZpZykpIHtcbiAgICAgIHtcbiAgICAgICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihjb25maWcua2V5KTtcbiAgICAgIH1cblxuICAgICAga2V5ID0gJycgKyBjb25maWcua2V5O1xuICAgIH0gLy8gUmVtYWluaW5nIHByb3BlcnRpZXMgb3ZlcnJpZGUgZXhpc3RpbmcgcHJvcHNcblxuXG4gICAgdmFyIGRlZmF1bHRQcm9wcztcblxuICAgIGlmIChlbGVtZW50LnR5cGUgJiYgZWxlbWVudC50eXBlLmRlZmF1bHRQcm9wcykge1xuICAgICAgZGVmYXVsdFByb3BzID0gZWxlbWVudC50eXBlLmRlZmF1bHRQcm9wcztcbiAgICB9XG5cbiAgICBmb3IgKHByb3BOYW1lIGluIGNvbmZpZykge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCBwcm9wTmFtZSkgJiYgIVJFU0VSVkVEX1BST1BTLmhhc093blByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgICBpZiAoY29uZmlnW3Byb3BOYW1lXSA9PT0gdW5kZWZpbmVkICYmIGRlZmF1bHRQcm9wcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gUmVzb2x2ZSBkZWZhdWx0IHByb3BzXG4gICAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gZGVmYXVsdFByb3BzW3Byb3BOYW1lXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBjb25maWdbcHJvcE5hbWVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IC8vIENoaWxkcmVuIGNhbiBiZSBtb3JlIHRoYW4gb25lIGFyZ3VtZW50LCBhbmQgdGhvc2UgYXJlIHRyYW5zZmVycmVkIG9udG9cbiAgLy8gdGhlIG5ld2x5IGFsbG9jYXRlZCBwcm9wcyBvYmplY3QuXG5cblxuICB2YXIgY2hpbGRyZW5MZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoIC0gMjtcblxuICBpZiAoY2hpbGRyZW5MZW5ndGggPT09IDEpIHtcbiAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICB9IGVsc2UgaWYgKGNoaWxkcmVuTGVuZ3RoID4gMSkge1xuICAgIHZhciBjaGlsZEFycmF5ID0gQXJyYXkoY2hpbGRyZW5MZW5ndGgpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbkxlbmd0aDsgaSsrKSB7XG4gICAgICBjaGlsZEFycmF5W2ldID0gYXJndW1lbnRzW2kgKyAyXTtcbiAgICB9XG5cbiAgICBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkQXJyYXk7XG4gIH1cblxuICByZXR1cm4gUmVhY3RFbGVtZW50KGVsZW1lbnQudHlwZSwga2V5LCByZWYsIHNlbGYsIHNvdXJjZSwgb3duZXIsIHByb3BzKTtcbn1cbi8qKlxuICogVmVyaWZpZXMgdGhlIG9iamVjdCBpcyBhIFJlYWN0RWxlbWVudC5cbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjaXN2YWxpZGVsZW1lbnRcbiAqIEBwYXJhbSB7P29iamVjdH0gb2JqZWN0XG4gKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIGBvYmplY3RgIGlzIGEgUmVhY3RFbGVtZW50LlxuICogQGZpbmFsXG4gKi9cblxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG59XG5cbnZhciBTRVBBUkFUT1IgPSAnLic7XG52YXIgU1VCU0VQQVJBVE9SID0gJzonO1xuLyoqXG4gKiBFc2NhcGUgYW5kIHdyYXAga2V5IHNvIGl0IGlzIHNhZmUgdG8gdXNlIGFzIGEgcmVhY3RpZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgdG8gYmUgZXNjYXBlZC5cbiAqIEByZXR1cm4ge3N0cmluZ30gdGhlIGVzY2FwZWQga2V5LlxuICovXG5cbmZ1bmN0aW9uIGVzY2FwZShrZXkpIHtcbiAgdmFyIGVzY2FwZVJlZ2V4ID0gL1s9Ol0vZztcbiAgdmFyIGVzY2FwZXJMb29rdXAgPSB7XG4gICAgJz0nOiAnPTAnLFxuICAgICc6JzogJz0yJ1xuICB9O1xuICB2YXIgZXNjYXBlZFN0cmluZyA9IGtleS5yZXBsYWNlKGVzY2FwZVJlZ2V4LCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICByZXR1cm4gZXNjYXBlckxvb2t1cFttYXRjaF07XG4gIH0pO1xuICByZXR1cm4gJyQnICsgZXNjYXBlZFN0cmluZztcbn1cbi8qKlxuICogVE9ETzogVGVzdCB0aGF0IGEgc2luZ2xlIGNoaWxkIGFuZCBhbiBhcnJheSB3aXRoIG9uZSBpdGVtIGhhdmUgdGhlIHNhbWUga2V5XG4gKiBwYXR0ZXJuLlxuICovXG5cblxudmFyIGRpZFdhcm5BYm91dE1hcHMgPSBmYWxzZTtcbnZhciB1c2VyUHJvdmlkZWRLZXlFc2NhcGVSZWdleCA9IC9cXC8rL2c7XG5cbmZ1bmN0aW9uIGVzY2FwZVVzZXJQcm92aWRlZEtleSh0ZXh0KSB7XG4gIHJldHVybiB0ZXh0LnJlcGxhY2UodXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXgsICckJi8nKTtcbn1cbi8qKlxuICogR2VuZXJhdGUgYSBrZXkgc3RyaW5nIHRoYXQgaWRlbnRpZmllcyBhIGVsZW1lbnQgd2l0aGluIGEgc2V0LlxuICpcbiAqIEBwYXJhbSB7Kn0gZWxlbWVudCBBIGVsZW1lbnQgdGhhdCBjb3VsZCBjb250YWluIGEgbWFudWFsIGtleS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCBJbmRleCB0aGF0IGlzIHVzZWQgaWYgYSBtYW51YWwga2V5IGlzIG5vdCBwcm92aWRlZC5cbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuXG5cbmZ1bmN0aW9uIGdldEVsZW1lbnRLZXkoZWxlbWVudCwgaW5kZXgpIHtcbiAgLy8gRG8gc29tZSB0eXBlY2hlY2tpbmcgaGVyZSBzaW5jZSB3ZSBjYWxsIHRoaXMgYmxpbmRseS4gV2Ugd2FudCB0byBlbnN1cmVcbiAgLy8gdGhhdCB3ZSBkb24ndCBibG9jayBwb3RlbnRpYWwgZnV0dXJlIEVTIEFQSXMuXG4gIGlmICh0eXBlb2YgZWxlbWVudCA9PT0gJ29iamVjdCcgJiYgZWxlbWVudCAhPT0gbnVsbCAmJiBlbGVtZW50LmtleSAhPSBudWxsKSB7XG4gICAgLy8gRXhwbGljaXQga2V5XG4gICAge1xuICAgICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihlbGVtZW50LmtleSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVzY2FwZSgnJyArIGVsZW1lbnQua2V5KTtcbiAgfSAvLyBJbXBsaWNpdCBrZXkgZGV0ZXJtaW5lZCBieSB0aGUgaW5kZXggaW4gdGhlIHNldFxuXG5cbiAgcmV0dXJuIGluZGV4LnRvU3RyaW5nKDM2KTtcbn1cblxuZnVuY3Rpb24gbWFwSW50b0FycmF5KGNoaWxkcmVuLCBhcnJheSwgZXNjYXBlZFByZWZpeCwgbmFtZVNvRmFyLCBjYWxsYmFjaykge1xuICB2YXIgdHlwZSA9IHR5cGVvZiBjaGlsZHJlbjtcblxuICBpZiAodHlwZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgLy8gQWxsIG9mIHRoZSBhYm92ZSBhcmUgcGVyY2VpdmVkIGFzIG51bGwuXG4gICAgY2hpbGRyZW4gPSBudWxsO1xuICB9XG5cbiAgdmFyIGludm9rZUNhbGxiYWNrID0gZmFsc2U7XG5cbiAgaWYgKGNoaWxkcmVuID09PSBudWxsKSB7XG4gICAgaW52b2tlQ2FsbGJhY2sgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgIGludm9rZUNhbGxiYWNrID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICAgIHN3aXRjaCAoY2hpbGRyZW4uJCR0eXBlb2YpIHtcbiAgICAgICAgICBjYXNlIFJFQUNUX0VMRU1FTlRfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgICAgaW52b2tlQ2FsbGJhY2sgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICB9XG4gIH1cblxuICBpZiAoaW52b2tlQ2FsbGJhY2spIHtcbiAgICB2YXIgX2NoaWxkID0gY2hpbGRyZW47XG4gICAgdmFyIG1hcHBlZENoaWxkID0gY2FsbGJhY2soX2NoaWxkKTsgLy8gSWYgaXQncyB0aGUgb25seSBjaGlsZCwgdHJlYXQgdGhlIG5hbWUgYXMgaWYgaXQgd2FzIHdyYXBwZWQgaW4gYW4gYXJyYXlcbiAgICAvLyBzbyB0aGF0IGl0J3MgY29uc2lzdGVudCBpZiB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIGdyb3dzOlxuXG4gICAgdmFyIGNoaWxkS2V5ID0gbmFtZVNvRmFyID09PSAnJyA/IFNFUEFSQVRPUiArIGdldEVsZW1lbnRLZXkoX2NoaWxkLCAwKSA6IG5hbWVTb0ZhcjtcblxuICAgIGlmIChpc0FycmF5KG1hcHBlZENoaWxkKSkge1xuICAgICAgdmFyIGVzY2FwZWRDaGlsZEtleSA9ICcnO1xuXG4gICAgICBpZiAoY2hpbGRLZXkgIT0gbnVsbCkge1xuICAgICAgICBlc2NhcGVkQ2hpbGRLZXkgPSBlc2NhcGVVc2VyUHJvdmlkZWRLZXkoY2hpbGRLZXkpICsgJy8nO1xuICAgICAgfVxuXG4gICAgICBtYXBJbnRvQXJyYXkobWFwcGVkQ2hpbGQsIGFycmF5LCBlc2NhcGVkQ2hpbGRLZXksICcnLCBmdW5jdGlvbiAoYykge1xuICAgICAgICByZXR1cm4gYztcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAobWFwcGVkQ2hpbGQgIT0gbnVsbCkge1xuICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KG1hcHBlZENoaWxkKSkge1xuICAgICAgICB7XG4gICAgICAgICAgLy8gVGhlIGBpZmAgc3RhdGVtZW50IGhlcmUgcHJldmVudHMgYXV0by1kaXNhYmxpbmcgb2YgdGhlIHNhZmVcbiAgICAgICAgICAvLyBjb2VyY2lvbiBFU0xpbnQgcnVsZSwgc28gd2UgbXVzdCBtYW51YWxseSBkaXNhYmxlIGl0IGJlbG93LlxuICAgICAgICAgIC8vICRGbG93Rml4TWUgRmxvdyBpbmNvcnJlY3RseSB0aGlua3MgUmVhY3QuUG9ydGFsIGRvZXNuJ3QgaGF2ZSBhIGtleVxuICAgICAgICAgIGlmIChtYXBwZWRDaGlsZC5rZXkgJiYgKCFfY2hpbGQgfHwgX2NoaWxkLmtleSAhPT0gbWFwcGVkQ2hpbGQua2V5KSkge1xuICAgICAgICAgICAgY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihtYXBwZWRDaGlsZC5rZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG1hcHBlZENoaWxkID0gY2xvbmVBbmRSZXBsYWNlS2V5KG1hcHBlZENoaWxkLCAvLyBLZWVwIGJvdGggdGhlIChtYXBwZWQpIGFuZCBvbGQga2V5cyBpZiB0aGV5IGRpZmZlciwganVzdCBhc1xuICAgICAgICAvLyB0cmF2ZXJzZUFsbENoaWxkcmVuIHVzZWQgdG8gZG8gZm9yIG9iamVjdHMgYXMgY2hpbGRyZW5cbiAgICAgICAgZXNjYXBlZFByZWZpeCArICggLy8gJEZsb3dGaXhNZSBGbG93IGluY29ycmVjdGx5IHRoaW5rcyBSZWFjdC5Qb3J0YWwgZG9lc24ndCBoYXZlIGEga2V5XG4gICAgICAgIG1hcHBlZENoaWxkLmtleSAmJiAoIV9jaGlsZCB8fCBfY2hpbGQua2V5ICE9PSBtYXBwZWRDaGlsZC5rZXkpID8gLy8gJEZsb3dGaXhNZSBGbG93IGluY29ycmVjdGx5IHRoaW5rcyBleGlzdGluZyBlbGVtZW50J3Mga2V5IGNhbiBiZSBhIG51bWJlclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cbiAgICAgICAgZXNjYXBlVXNlclByb3ZpZGVkS2V5KCcnICsgbWFwcGVkQ2hpbGQua2V5KSArICcvJyA6ICcnKSArIGNoaWxkS2V5KTtcbiAgICAgIH1cblxuICAgICAgYXJyYXkucHVzaChtYXBwZWRDaGlsZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICB2YXIgY2hpbGQ7XG4gIHZhciBuZXh0TmFtZTtcbiAgdmFyIHN1YnRyZWVDb3VudCA9IDA7IC8vIENvdW50IG9mIGNoaWxkcmVuIGZvdW5kIGluIHRoZSBjdXJyZW50IHN1YnRyZWUuXG5cbiAgdmFyIG5leHROYW1lUHJlZml4ID0gbmFtZVNvRmFyID09PSAnJyA/IFNFUEFSQVRPUiA6IG5hbWVTb0ZhciArIFNVQlNFUEFSQVRPUjtcblxuICBpZiAoaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjaGlsZCA9IGNoaWxkcmVuW2ldO1xuICAgICAgbmV4dE5hbWUgPSBuZXh0TmFtZVByZWZpeCArIGdldEVsZW1lbnRLZXkoY2hpbGQsIGkpO1xuICAgICAgc3VidHJlZUNvdW50ICs9IG1hcEludG9BcnJheShjaGlsZCwgYXJyYXksIGVzY2FwZWRQcmVmaXgsIG5leHROYW1lLCBjYWxsYmFjayk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihjaGlsZHJlbik7XG5cbiAgICBpZiAodHlwZW9mIGl0ZXJhdG9yRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhciBpdGVyYWJsZUNoaWxkcmVuID0gY2hpbGRyZW47XG5cbiAgICAgIHtcbiAgICAgICAgLy8gV2FybiBhYm91dCB1c2luZyBNYXBzIGFzIGNoaWxkcmVuXG4gICAgICAgIGlmIChpdGVyYXRvckZuID09PSBpdGVyYWJsZUNoaWxkcmVuLmVudHJpZXMpIHtcbiAgICAgICAgICBpZiAoIWRpZFdhcm5BYm91dE1hcHMpIHtcbiAgICAgICAgICAgIHdhcm4oJ1VzaW5nIE1hcHMgYXMgY2hpbGRyZW4gaXMgbm90IHN1cHBvcnRlZC4gJyArICdVc2UgYW4gYXJyYXkgb2Yga2V5ZWQgUmVhY3RFbGVtZW50cyBpbnN0ZWFkLicpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGRpZFdhcm5BYm91dE1hcHMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChpdGVyYWJsZUNoaWxkcmVuKTtcbiAgICAgIHZhciBzdGVwO1xuICAgICAgdmFyIGlpID0gMDtcblxuICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICBjaGlsZCA9IHN0ZXAudmFsdWU7XG4gICAgICAgIG5leHROYW1lID0gbmV4dE5hbWVQcmVmaXggKyBnZXRFbGVtZW50S2V5KGNoaWxkLCBpaSsrKTtcbiAgICAgICAgc3VidHJlZUNvdW50ICs9IG1hcEludG9BcnJheShjaGlsZCwgYXJyYXksIGVzY2FwZWRQcmVmaXgsIG5leHROYW1lLCBjYWxsYmFjayk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnb2JqZWN0Jykge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL3NhZmUtc3RyaW5nLWNvZXJjaW9uXG4gICAgICB2YXIgY2hpbGRyZW5TdHJpbmcgPSBTdHJpbmcoY2hpbGRyZW4pO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiBcIiArIChjaGlsZHJlblN0cmluZyA9PT0gJ1tvYmplY3QgT2JqZWN0XScgPyAnb2JqZWN0IHdpdGgga2V5cyB7JyArIE9iamVjdC5rZXlzKGNoaWxkcmVuKS5qb2luKCcsICcpICsgJ30nIDogY2hpbGRyZW5TdHJpbmcpICsgXCIpLiBcIiArICdJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29sbGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5ICcgKyAnaW5zdGVhZC4nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3VidHJlZUNvdW50O1xufVxuXG4vKipcbiAqIE1hcHMgY2hpbGRyZW4gdGhhdCBhcmUgdHlwaWNhbGx5IHNwZWNpZmllZCBhcyBgcHJvcHMuY2hpbGRyZW5gLlxuICpcbiAqIFNlZSBodHRwczovL3JlYWN0anMub3JnL2RvY3MvcmVhY3QtYXBpLmh0bWwjcmVhY3RjaGlsZHJlbm1hcFxuICpcbiAqIFRoZSBwcm92aWRlZCBtYXBGdW5jdGlvbihjaGlsZCwgaW5kZXgpIHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoXG4gKiBsZWFmIGNoaWxkLlxuICpcbiAqIEBwYXJhbSB7Pyp9IGNoaWxkcmVuIENoaWxkcmVuIHRyZWUgY29udGFpbmVyLlxuICogQHBhcmFtIHtmdW5jdGlvbigqLCBpbnQpfSBmdW5jIFRoZSBtYXAgZnVuY3Rpb24uXG4gKiBAcGFyYW0geyp9IGNvbnRleHQgQ29udGV4dCBmb3IgbWFwRnVuY3Rpb24uXG4gKiBAcmV0dXJuIHtvYmplY3R9IE9iamVjdCBjb250YWluaW5nIHRoZSBvcmRlcmVkIG1hcCBvZiByZXN1bHRzLlxuICovXG5mdW5jdGlvbiBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuYywgY29udGV4dCkge1xuICBpZiAoY2hpbGRyZW4gPT0gbnVsbCkge1xuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuXG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGNvdW50ID0gMDtcbiAgbWFwSW50b0FycmF5KGNoaWxkcmVuLCByZXN1bHQsICcnLCAnJywgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0dXJuIGZ1bmMuY2FsbChjb250ZXh0LCBjaGlsZCwgY291bnQrKyk7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuLyoqXG4gKiBDb3VudCB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXNcbiAqIGBwcm9wcy5jaGlsZHJlbmAuXG4gKlxuICogU2VlIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9yZWFjdC1hcGkuaHRtbCNyZWFjdGNoaWxkcmVuY291bnRcbiAqXG4gKiBAcGFyYW0gez8qfSBjaGlsZHJlbiBDaGlsZHJlbiB0cmVlIGNvbnRhaW5lci5cbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIG51bWJlciBvZiBjaGlsZHJlbi5cbiAqL1xuXG5cbmZ1bmN0aW9uIGNvdW50Q2hpbGRyZW4oY2hpbGRyZW4pIHtcbiAgdmFyIG4gPSAwO1xuICBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKCkge1xuICAgIG4rKzsgLy8gRG9uJ3QgcmV0dXJuIGFueXRoaW5nXG4gIH0pO1xuICByZXR1cm4gbjtcbn1cblxuLyoqXG4gKiBJdGVyYXRlcyB0aHJvdWdoIGNoaWxkcmVuIHRoYXQgYXJlIHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYHByb3BzLmNoaWxkcmVuYC5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW5mb3JlYWNoXG4gKlxuICogVGhlIHByb3ZpZGVkIGZvckVhY2hGdW5jKGNoaWxkLCBpbmRleCkgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2hcbiAqIGxlYWYgY2hpbGQuXG4gKlxuICogQHBhcmFtIHs/Kn0gY2hpbGRyZW4gQ2hpbGRyZW4gdHJlZSBjb250YWluZXIuXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKCosIGludCl9IGZvckVhY2hGdW5jXG4gKiBAcGFyYW0geyp9IGZvckVhY2hDb250ZXh0IENvbnRleHQgZm9yIGZvckVhY2hDb250ZXh0LlxuICovXG5mdW5jdGlvbiBmb3JFYWNoQ2hpbGRyZW4oY2hpbGRyZW4sIGZvckVhY2hGdW5jLCBmb3JFYWNoQ29udGV4dCkge1xuICBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKCkge1xuICAgIGZvckVhY2hGdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IC8vIERvbid0IHJldHVybiBhbnl0aGluZy5cbiAgfSwgZm9yRWFjaENvbnRleHQpO1xufVxuLyoqXG4gKiBGbGF0dGVuIGEgY2hpbGRyZW4gb2JqZWN0ICh0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGBwcm9wcy5jaGlsZHJlbmApIGFuZFxuICogcmV0dXJuIGFuIGFycmF5IHdpdGggYXBwcm9wcmlhdGVseSByZS1rZXllZCBjaGlsZHJlbi5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW50b2FycmF5XG4gKi9cblxuXG5mdW5jdGlvbiB0b0FycmF5KGNoaWxkcmVuKSB7XG4gIHJldHVybiBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgcmV0dXJuIGNoaWxkO1xuICB9KSB8fCBbXTtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgZmlyc3QgY2hpbGQgaW4gYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuIGFuZCB2ZXJpZmllcyB0aGF0IHRoZXJlXG4gKiBpcyBvbmx5IG9uZSBjaGlsZCBpbiB0aGUgY29sbGVjdGlvbi5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI3JlYWN0Y2hpbGRyZW5vbmx5XG4gKlxuICogVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRoYXQgYSBzaW5nbGUgY2hpbGQgZ2V0c1xuICogcGFzc2VkIHdpdGhvdXQgYSB3cmFwcGVyLCBidXQgdGhlIHB1cnBvc2Ugb2YgdGhpcyBoZWxwZXIgZnVuY3Rpb24gaXMgdG9cbiAqIGFic3RyYWN0IGF3YXkgdGhlIHBhcnRpY3VsYXIgc3RydWN0dXJlIG9mIGNoaWxkcmVuLlxuICpcbiAqIEBwYXJhbSB7P29iamVjdH0gY2hpbGRyZW4gQ2hpbGQgY29sbGVjdGlvbiBzdHJ1Y3R1cmUuXG4gKiBAcmV0dXJuIHtSZWFjdEVsZW1lbnR9IFRoZSBmaXJzdCBhbmQgb25seSBgUmVhY3RFbGVtZW50YCBjb250YWluZWQgaW4gdGhlXG4gKiBzdHJ1Y3R1cmUuXG4gKi9cblxuXG5mdW5jdGlvbiBvbmx5Q2hpbGQoY2hpbGRyZW4pIHtcbiAgaWYgKCFpc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLicpO1xuICB9XG5cbiAgcmV0dXJuIGNoaWxkcmVuO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVDb250ZXh0KGRlZmF1bHRWYWx1ZSkge1xuICAvLyBUT0RPOiBTZWNvbmQgYXJndW1lbnQgdXNlZCB0byBiZSBhbiBvcHRpb25hbCBgY2FsY3VsYXRlQ2hhbmdlZEJpdHNgXG4gIC8vIGZ1bmN0aW9uLiBXYXJuIHRvIHJlc2VydmUgZm9yIGZ1dHVyZSB1c2U/XG4gIHZhciBjb250ZXh0ID0ge1xuICAgICQkdHlwZW9mOiBSRUFDVF9DT05URVhUX1RZUEUsXG4gICAgLy8gQXMgYSB3b3JrYXJvdW5kIHRvIHN1cHBvcnQgbXVsdGlwbGUgY29uY3VycmVudCByZW5kZXJlcnMsIHdlIGNhdGVnb3JpemVcbiAgICAvLyBzb21lIHJlbmRlcmVycyBhcyBwcmltYXJ5IGFuZCBvdGhlcnMgYXMgc2Vjb25kYXJ5LiBXZSBvbmx5IGV4cGVjdFxuICAgIC8vIHRoZXJlIHRvIGJlIHR3byBjb25jdXJyZW50IHJlbmRlcmVycyBhdCBtb3N0OiBSZWFjdCBOYXRpdmUgKHByaW1hcnkpIGFuZFxuICAgIC8vIEZhYnJpYyAoc2Vjb25kYXJ5KTsgUmVhY3QgRE9NIChwcmltYXJ5KSBhbmQgUmVhY3QgQVJUIChzZWNvbmRhcnkpLlxuICAgIC8vIFNlY29uZGFyeSByZW5kZXJlcnMgc3RvcmUgdGhlaXIgY29udGV4dCB2YWx1ZXMgb24gc2VwYXJhdGUgZmllbGRzLlxuICAgIF9jdXJyZW50VmFsdWU6IGRlZmF1bHRWYWx1ZSxcbiAgICBfY3VycmVudFZhbHVlMjogZGVmYXVsdFZhbHVlLFxuICAgIC8vIFVzZWQgdG8gdHJhY2sgaG93IG1hbnkgY29uY3VycmVudCByZW5kZXJlcnMgdGhpcyBjb250ZXh0IGN1cnJlbnRseVxuICAgIC8vIHN1cHBvcnRzIHdpdGhpbiBpbiBhIHNpbmdsZSByZW5kZXJlci4gU3VjaCBhcyBwYXJhbGxlbCBzZXJ2ZXIgcmVuZGVyaW5nLlxuICAgIF90aHJlYWRDb3VudDogMCxcbiAgICAvLyBUaGVzZSBhcmUgY2lyY3VsYXJcbiAgICBQcm92aWRlcjogbnVsbCxcbiAgICBDb25zdW1lcjogbnVsbCxcbiAgICAvLyBBZGQgdGhlc2UgdG8gdXNlIHNhbWUgaGlkZGVuIGNsYXNzIGluIFZNIGFzIFNlcnZlckNvbnRleHRcbiAgICBfZGVmYXVsdFZhbHVlOiBudWxsLFxuICAgIF9nbG9iYWxOYW1lOiBudWxsXG4gIH07XG4gIGNvbnRleHQuUHJvdmlkZXIgPSB7XG4gICAgJCR0eXBlb2Y6IFJFQUNUX1BST1ZJREVSX1RZUEUsXG4gICAgX2NvbnRleHQ6IGNvbnRleHRcbiAgfTtcbiAgdmFyIGhhc1dhcm5lZEFib3V0VXNpbmdOZXN0ZWRDb250ZXh0Q29uc3VtZXJzID0gZmFsc2U7XG4gIHZhciBoYXNXYXJuZWRBYm91dFVzaW5nQ29uc3VtZXJQcm92aWRlciA9IGZhbHNlO1xuICB2YXIgaGFzV2FybmVkQWJvdXREaXNwbGF5TmFtZU9uQ29uc3VtZXIgPSBmYWxzZTtcblxuICB7XG4gICAgLy8gQSBzZXBhcmF0ZSBvYmplY3QsIGJ1dCBwcm94aWVzIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGNvbnRleHQgb2JqZWN0IGZvclxuICAgIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LiBJdCBoYXMgYSBkaWZmZXJlbnQgJCR0eXBlb2YsIHNvIHdlIGNhbiBwcm9wZXJseVxuICAgIC8vIHdhcm4gZm9yIHRoZSBpbmNvcnJlY3QgdXNhZ2Ugb2YgQ29udGV4dCBhcyBhIENvbnN1bWVyLlxuICAgIHZhciBDb25zdW1lciA9IHtcbiAgICAgICQkdHlwZW9mOiBSRUFDVF9DT05URVhUX1RZUEUsXG4gICAgICBfY29udGV4dDogY29udGV4dFxuICAgIH07IC8vICRGbG93Rml4TWU6IEZsb3cgY29tcGxhaW5zIGFib3V0IG5vdCBzZXR0aW5nIGEgdmFsdWUsIHdoaWNoIGlzIGludGVudGlvbmFsIGhlcmVcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKENvbnN1bWVyLCB7XG4gICAgICBQcm92aWRlcjoge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBpZiAoIWhhc1dhcm5lZEFib3V0VXNpbmdDb25zdW1lclByb3ZpZGVyKSB7XG4gICAgICAgICAgICBoYXNXYXJuZWRBYm91dFVzaW5nQ29uc3VtZXJQcm92aWRlciA9IHRydWU7XG5cbiAgICAgICAgICAgIGVycm9yKCdSZW5kZXJpbmcgPENvbnRleHQuQ29uc3VtZXIuUHJvdmlkZXI+IGlzIG5vdCBzdXBwb3J0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiAnICsgJ2EgZnV0dXJlIG1ham9yIHJlbGVhc2UuIERpZCB5b3UgbWVhbiB0byByZW5kZXIgPENvbnRleHQuUHJvdmlkZXI+IGluc3RlYWQ/Jyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGNvbnRleHQuUHJvdmlkZXI7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKF9Qcm92aWRlcikge1xuICAgICAgICAgIGNvbnRleHQuUHJvdmlkZXIgPSBfUHJvdmlkZXI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBfY3VycmVudFZhbHVlOiB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBjb250ZXh0Ll9jdXJyZW50VmFsdWU7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKF9jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICBjb250ZXh0Ll9jdXJyZW50VmFsdWUgPSBfY3VycmVudFZhbHVlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgX2N1cnJlbnRWYWx1ZTI6IHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnRleHQuX2N1cnJlbnRWYWx1ZTI7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKF9jdXJyZW50VmFsdWUyKSB7XG4gICAgICAgICAgY29udGV4dC5fY3VycmVudFZhbHVlMiA9IF9jdXJyZW50VmFsdWUyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgX3RocmVhZENvdW50OiB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBjb250ZXh0Ll90aHJlYWRDb3VudDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoX3RocmVhZENvdW50KSB7XG4gICAgICAgICAgY29udGV4dC5fdGhyZWFkQ291bnQgPSBfdGhyZWFkQ291bnQ7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBDb25zdW1lcjoge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBpZiAoIWhhc1dhcm5lZEFib3V0VXNpbmdOZXN0ZWRDb250ZXh0Q29uc3VtZXJzKSB7XG4gICAgICAgICAgICBoYXNXYXJuZWRBYm91dFVzaW5nTmVzdGVkQ29udGV4dENvbnN1bWVycyA9IHRydWU7XG5cbiAgICAgICAgICAgIGVycm9yKCdSZW5kZXJpbmcgPENvbnRleHQuQ29uc3VtZXIuQ29uc3VtZXI+IGlzIG5vdCBzdXBwb3J0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiAnICsgJ2EgZnV0dXJlIG1ham9yIHJlbGVhc2UuIERpZCB5b3UgbWVhbiB0byByZW5kZXIgPENvbnRleHQuQ29uc3VtZXI+IGluc3RlYWQ/Jyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGNvbnRleHQuQ29uc3VtZXI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBkaXNwbGF5TmFtZToge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gY29udGV4dC5kaXNwbGF5TmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAoZGlzcGxheU5hbWUpIHtcbiAgICAgICAgICBpZiAoIWhhc1dhcm5lZEFib3V0RGlzcGxheU5hbWVPbkNvbnN1bWVyKSB7XG4gICAgICAgICAgICB3YXJuKCdTZXR0aW5nIGBkaXNwbGF5TmFtZWAgb24gQ29udGV4dC5Db25zdW1lciBoYXMgbm8gZWZmZWN0LiAnICsgXCJZb3Ugc2hvdWxkIHNldCBpdCBkaXJlY3RseSBvbiB0aGUgY29udGV4dCB3aXRoIENvbnRleHQuZGlzcGxheU5hbWUgPSAnJXMnLlwiLCBkaXNwbGF5TmFtZSk7XG5cbiAgICAgICAgICAgIGhhc1dhcm5lZEFib3V0RGlzcGxheU5hbWVPbkNvbnN1bWVyID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTsgLy8gJEZsb3dGaXhNZTogRmxvdyBjb21wbGFpbnMgYWJvdXQgbWlzc2luZyBwcm9wZXJ0aWVzIGJlY2F1c2UgaXQgZG9lc24ndCB1bmRlcnN0YW5kIGRlZmluZVByb3BlcnR5XG5cbiAgICBjb250ZXh0LkNvbnN1bWVyID0gQ29uc3VtZXI7XG4gIH1cblxuICB7XG4gICAgY29udGV4dC5fY3VycmVudFJlbmRlcmVyID0gbnVsbDtcbiAgICBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIyID0gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBjb250ZXh0O1xufVxuXG52YXIgVW5pbml0aWFsaXplZCA9IC0xO1xudmFyIFBlbmRpbmcgPSAwO1xudmFyIFJlc29sdmVkID0gMTtcbnZhciBSZWplY3RlZCA9IDI7XG5cbmZ1bmN0aW9uIGxhenlJbml0aWFsaXplcihwYXlsb2FkKSB7XG4gIGlmIChwYXlsb2FkLl9zdGF0dXMgPT09IFVuaW5pdGlhbGl6ZWQpIHtcbiAgICB2YXIgY3RvciA9IHBheWxvYWQuX3Jlc3VsdDtcbiAgICB2YXIgdGhlbmFibGUgPSBjdG9yKCk7IC8vIFRyYW5zaXRpb24gdG8gdGhlIG5leHQgc3RhdGUuXG4gICAgLy8gVGhpcyBtaWdodCB0aHJvdyBlaXRoZXIgYmVjYXVzZSBpdCdzIG1pc3Npbmcgb3IgdGhyb3dzLiBJZiBzbywgd2UgdHJlYXQgaXRcbiAgICAvLyBhcyBzdGlsbCB1bmluaXRpYWxpemVkIGFuZCB0cnkgYWdhaW4gbmV4dCB0aW1lLiBXaGljaCBpcyB0aGUgc2FtZSBhcyB3aGF0XG4gICAgLy8gaGFwcGVucyBpZiB0aGUgY3RvciBvciBhbnkgd3JhcHBlcnMgcHJvY2Vzc2luZyB0aGUgY3RvciB0aHJvd3MuIFRoaXMgbWlnaHRcbiAgICAvLyBlbmQgdXAgZml4aW5nIGl0IGlmIHRoZSByZXNvbHV0aW9uIHdhcyBhIGNvbmN1cnJlbmN5IGJ1Zy5cblxuICAgIHRoZW5hYmxlLnRoZW4oZnVuY3Rpb24gKG1vZHVsZU9iamVjdCkge1xuICAgICAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gUGVuZGluZyB8fCBwYXlsb2FkLl9zdGF0dXMgPT09IFVuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgLy8gVHJhbnNpdGlvbiB0byB0aGUgbmV4dCBzdGF0ZS5cbiAgICAgICAgdmFyIHJlc29sdmVkID0gcGF5bG9hZDtcbiAgICAgICAgcmVzb2x2ZWQuX3N0YXR1cyA9IFJlc29sdmVkO1xuICAgICAgICByZXNvbHZlZC5fcmVzdWx0ID0gbW9kdWxlT2JqZWN0O1xuICAgICAgfVxuICAgIH0sIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgaWYgKHBheWxvYWQuX3N0YXR1cyA9PT0gUGVuZGluZyB8fCBwYXlsb2FkLl9zdGF0dXMgPT09IFVuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgLy8gVHJhbnNpdGlvbiB0byB0aGUgbmV4dCBzdGF0ZS5cbiAgICAgICAgdmFyIHJlamVjdGVkID0gcGF5bG9hZDtcbiAgICAgICAgcmVqZWN0ZWQuX3N0YXR1cyA9IFJlamVjdGVkO1xuICAgICAgICByZWplY3RlZC5fcmVzdWx0ID0gZXJyb3I7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAocGF5bG9hZC5fc3RhdHVzID09PSBVbmluaXRpYWxpemVkKSB7XG4gICAgICAvLyBJbiBjYXNlLCB3ZSdyZSBzdGlsbCB1bmluaXRpYWxpemVkLCB0aGVuIHdlJ3JlIHdhaXRpbmcgZm9yIHRoZSB0aGVuYWJsZVxuICAgICAgLy8gdG8gcmVzb2x2ZS4gU2V0IGl0IGFzIHBlbmRpbmcgaW4gdGhlIG1lYW50aW1lLlxuICAgICAgdmFyIHBlbmRpbmcgPSBwYXlsb2FkO1xuICAgICAgcGVuZGluZy5fc3RhdHVzID0gUGVuZGluZztcbiAgICAgIHBlbmRpbmcuX3Jlc3VsdCA9IHRoZW5hYmxlO1xuICAgIH1cbiAgfVxuXG4gIGlmIChwYXlsb2FkLl9zdGF0dXMgPT09IFJlc29sdmVkKSB7XG4gICAgdmFyIG1vZHVsZU9iamVjdCA9IHBheWxvYWQuX3Jlc3VsdDtcblxuICAgIHtcbiAgICAgIGlmIChtb2R1bGVPYmplY3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBlcnJvcignbGF6eTogRXhwZWN0ZWQgdGhlIHJlc3VsdCBvZiBhIGR5bmFtaWMgaW1wJyArICdvcnQoKSBjYWxsLiAnICsgJ0luc3RlYWQgcmVjZWl2ZWQ6ICVzXFxuXFxuWW91ciBjb2RlIHNob3VsZCBsb29rIGxpa2U6IFxcbiAgJyArIC8vIEJyZWFrIHVwIGltcG9ydHMgdG8gYXZvaWQgYWNjaWRlbnRhbGx5IHBhcnNpbmcgdGhlbSBhcyBkZXBlbmRlbmNpZXMuXG4gICAgICAgICdjb25zdCBNeUNvbXBvbmVudCA9IGxhenkoKCkgPT4gaW1wJyArIFwib3J0KCcuL015Q29tcG9uZW50JykpXFxuXFxuXCIgKyAnRGlkIHlvdSBhY2NpZGVudGFsbHkgcHV0IGN1cmx5IGJyYWNlcyBhcm91bmQgdGhlIGltcG9ydD8nLCBtb2R1bGVPYmplY3QpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHtcbiAgICAgIGlmICghKCdkZWZhdWx0JyBpbiBtb2R1bGVPYmplY3QpKSB7XG4gICAgICAgIGVycm9yKCdsYXp5OiBFeHBlY3RlZCB0aGUgcmVzdWx0IG9mIGEgZHluYW1pYyBpbXAnICsgJ29ydCgpIGNhbGwuICcgKyAnSW5zdGVhZCByZWNlaXZlZDogJXNcXG5cXG5Zb3VyIGNvZGUgc2hvdWxkIGxvb2sgbGlrZTogXFxuICAnICsgLy8gQnJlYWsgdXAgaW1wb3J0cyB0byBhdm9pZCBhY2NpZGVudGFsbHkgcGFyc2luZyB0aGVtIGFzIGRlcGVuZGVuY2llcy5cbiAgICAgICAgJ2NvbnN0IE15Q29tcG9uZW50ID0gbGF6eSgoKSA9PiBpbXAnICsgXCJvcnQoJy4vTXlDb21wb25lbnQnKSlcIiwgbW9kdWxlT2JqZWN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbW9kdWxlT2JqZWN0LmRlZmF1bHQ7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgcGF5bG9hZC5fcmVzdWx0O1xuICB9XG59XG5cbmZ1bmN0aW9uIGxhenkoY3Rvcikge1xuICB2YXIgcGF5bG9hZCA9IHtcbiAgICAvLyBXZSB1c2UgdGhlc2UgZmllbGRzIHRvIHN0b3JlIHRoZSByZXN1bHQuXG4gICAgX3N0YXR1czogVW5pbml0aWFsaXplZCxcbiAgICBfcmVzdWx0OiBjdG9yXG4gIH07XG4gIHZhciBsYXp5VHlwZSA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfTEFaWV9UWVBFLFxuICAgIF9wYXlsb2FkOiBwYXlsb2FkLFxuICAgIF9pbml0OiBsYXp5SW5pdGlhbGl6ZXJcbiAgfTtcblxuICB7XG4gICAgLy8gSW4gcHJvZHVjdGlvbiwgdGhpcyB3b3VsZCBqdXN0IHNldCBpdCBvbiB0aGUgb2JqZWN0LlxuICAgIHZhciBkZWZhdWx0UHJvcHM7XG4gICAgdmFyIHByb3BUeXBlczsgLy8gJEZsb3dGaXhNZVxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMobGF6eVR5cGUsIHtcbiAgICAgIGRlZmF1bHRQcm9wczoge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBkZWZhdWx0UHJvcHM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKG5ld0RlZmF1bHRQcm9wcykge1xuICAgICAgICAgIGVycm9yKCdSZWFjdC5sYXp5KC4uLik6IEl0IGlzIG5vdCBzdXBwb3J0ZWQgdG8gYXNzaWduIGBkZWZhdWx0UHJvcHNgIHRvICcgKyAnYSBsYXp5IGNvbXBvbmVudCBpbXBvcnQuIEVpdGhlciBzcGVjaWZ5IHRoZW0gd2hlcmUgdGhlIGNvbXBvbmVudCAnICsgJ2lzIGRlZmluZWQsIG9yIGNyZWF0ZSBhIHdyYXBwaW5nIGNvbXBvbmVudCBhcm91bmQgaXQuJyk7XG5cbiAgICAgICAgICBkZWZhdWx0UHJvcHMgPSBuZXdEZWZhdWx0UHJvcHM7IC8vIE1hdGNoIHByb2R1Y3Rpb24gYmVoYXZpb3IgbW9yZSBjbG9zZWx5OlxuICAgICAgICAgIC8vICRGbG93Rml4TWVcblxuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsYXp5VHlwZSwgJ2RlZmF1bHRQcm9wcycsIHtcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHByb3BUeXBlczoge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBwcm9wVHlwZXM7XG4gICAgICAgIH0sXG4gICAgICAgIHNldDogZnVuY3Rpb24gKG5ld1Byb3BUeXBlcykge1xuICAgICAgICAgIGVycm9yKCdSZWFjdC5sYXp5KC4uLik6IEl0IGlzIG5vdCBzdXBwb3J0ZWQgdG8gYXNzaWduIGBwcm9wVHlwZXNgIHRvICcgKyAnYSBsYXp5IGNvbXBvbmVudCBpbXBvcnQuIEVpdGhlciBzcGVjaWZ5IHRoZW0gd2hlcmUgdGhlIGNvbXBvbmVudCAnICsgJ2lzIGRlZmluZWQsIG9yIGNyZWF0ZSBhIHdyYXBwaW5nIGNvbXBvbmVudCBhcm91bmQgaXQuJyk7XG5cbiAgICAgICAgICBwcm9wVHlwZXMgPSBuZXdQcm9wVHlwZXM7IC8vIE1hdGNoIHByb2R1Y3Rpb24gYmVoYXZpb3IgbW9yZSBjbG9zZWx5OlxuICAgICAgICAgIC8vICRGbG93Rml4TWVcblxuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsYXp5VHlwZSwgJ3Byb3BUeXBlcycsIHtcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGxhenlUeXBlO1xufVxuXG5mdW5jdGlvbiBmb3J3YXJkUmVmKHJlbmRlcikge1xuICB7XG4gICAgaWYgKHJlbmRlciAhPSBudWxsICYmIHJlbmRlci4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFKSB7XG4gICAgICBlcnJvcignZm9yd2FyZFJlZiByZXF1aXJlcyBhIHJlbmRlciBmdW5jdGlvbiBidXQgcmVjZWl2ZWQgYSBgbWVtb2AgJyArICdjb21wb25lbnQuIEluc3RlYWQgb2YgZm9yd2FyZFJlZihtZW1vKC4uLikpLCB1c2UgJyArICdtZW1vKGZvcndhcmRSZWYoLi4uKSkuJyk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgcmVuZGVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBlcnJvcignZm9yd2FyZFJlZiByZXF1aXJlcyBhIHJlbmRlciBmdW5jdGlvbiBidXQgd2FzIGdpdmVuICVzLicsIHJlbmRlciA9PT0gbnVsbCA/ICdudWxsJyA6IHR5cGVvZiByZW5kZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocmVuZGVyLmxlbmd0aCAhPT0gMCAmJiByZW5kZXIubGVuZ3RoICE9PSAyKSB7XG4gICAgICAgIGVycm9yKCdmb3J3YXJkUmVmIHJlbmRlciBmdW5jdGlvbnMgYWNjZXB0IGV4YWN0bHkgdHdvIHBhcmFtZXRlcnM6IHByb3BzIGFuZCByZWYuICVzJywgcmVuZGVyLmxlbmd0aCA9PT0gMSA/ICdEaWQgeW91IGZvcmdldCB0byB1c2UgdGhlIHJlZiBwYXJhbWV0ZXI/JyA6ICdBbnkgYWRkaXRpb25hbCBwYXJhbWV0ZXIgd2lsbCBiZSB1bmRlZmluZWQuJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlbmRlciAhPSBudWxsKSB7XG4gICAgICBpZiAocmVuZGVyLmRlZmF1bHRQcm9wcyAhPSBudWxsIHx8IHJlbmRlci5wcm9wVHlwZXMgIT0gbnVsbCkge1xuICAgICAgICBlcnJvcignZm9yd2FyZFJlZiByZW5kZXIgZnVuY3Rpb25zIGRvIG5vdCBzdXBwb3J0IHByb3BUeXBlcyBvciBkZWZhdWx0UHJvcHMuICcgKyAnRGlkIHlvdSBhY2NpZGVudGFsbHkgcGFzcyBhIFJlYWN0IGNvbXBvbmVudD8nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgZWxlbWVudFR5cGUgPSB7XG4gICAgJCR0eXBlb2Y6IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUsXG4gICAgcmVuZGVyOiByZW5kZXJcbiAgfTtcblxuICB7XG4gICAgdmFyIG93bk5hbWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnRUeXBlLCAnZGlzcGxheU5hbWUnLCB7XG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gb3duTmFtZTtcbiAgICAgIH0sXG4gICAgICBzZXQ6IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgIG93bk5hbWUgPSBuYW1lOyAvLyBUaGUgaW5uZXIgY29tcG9uZW50IHNob3VsZG4ndCBpbmhlcml0IHRoaXMgZGlzcGxheSBuYW1lIGluIG1vc3QgY2FzZXMsXG4gICAgICAgIC8vIGJlY2F1c2UgdGhlIGNvbXBvbmVudCBtYXkgYmUgdXNlZCBlbHNld2hlcmUuXG4gICAgICAgIC8vIEJ1dCBpdCdzIG5pY2UgZm9yIGFub255bW91cyBmdW5jdGlvbnMgdG8gaW5oZXJpdCB0aGUgbmFtZSxcbiAgICAgICAgLy8gc28gdGhhdCBvdXIgY29tcG9uZW50LXN0YWNrIGdlbmVyYXRpb24gbG9naWMgd2lsbCBkaXNwbGF5IHRoZWlyIGZyYW1lcy5cbiAgICAgICAgLy8gQW4gYW5vbnltb3VzIGZ1bmN0aW9uIGdlbmVyYWxseSBzdWdnZXN0cyBhIHBhdHRlcm4gbGlrZTpcbiAgICAgICAgLy8gICBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7Li4ufSk7XG4gICAgICAgIC8vIFRoaXMga2luZCBvZiBpbm5lciBmdW5jdGlvbiBpcyBub3QgdXNlZCBlbHNld2hlcmUgc28gdGhlIHNpZGUgZWZmZWN0IGlzIG9rYXkuXG5cbiAgICAgICAgaWYgKCFyZW5kZXIubmFtZSAmJiAhcmVuZGVyLmRpc3BsYXlOYW1lKSB7XG4gICAgICAgICAgcmVuZGVyLmRpc3BsYXlOYW1lID0gbmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnRUeXBlO1xufVxuXG52YXIgUkVBQ1RfTU9EVUxFX1JFRkVSRU5DRTtcblxue1xuICBSRUFDVF9NT0RVTEVfUkVGRVJFTkNFID0gU3ltYm9sLmZvcigncmVhY3QubW9kdWxlLnJlZmVyZW5jZScpO1xufVxuXG5mdW5jdGlvbiBpc1ZhbGlkRWxlbWVudFR5cGUodHlwZSkge1xuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gLy8gTm90ZTogdHlwZW9mIG1pZ2h0IGJlIG90aGVyIHRoYW4gJ3N5bWJvbCcgb3IgJ251bWJlcicgKGUuZy4gaWYgaXQncyBhIHBvbHlmaWxsKS5cblxuXG4gIGlmICh0eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1BST0ZJTEVSX1RZUEUgfHwgZW5hYmxlRGVidWdUcmFjaW5nICB8fCB0eXBlID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX1RZUEUgfHwgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFIHx8IGVuYWJsZUxlZ2FjeUhpZGRlbiAgfHwgdHlwZSA9PT0gUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgfHwgZW5hYmxlU2NvcGVBUEkgIHx8IGVuYWJsZUNhY2hlRWxlbWVudCAgfHwgZW5hYmxlVHJhbnNpdGlvblRyYWNpbmcgKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwpIHtcbiAgICBpZiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9QUk9WSURFUl9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIHx8IC8vIFRoaXMgbmVlZHMgdG8gaW5jbHVkZSBhbGwgcG9zc2libGUgbW9kdWxlIHJlZmVyZW5jZSBvYmplY3RcbiAgICAvLyB0eXBlcyBzdXBwb3J0ZWQgYnkgYW55IEZsaWdodCBjb25maWd1cmF0aW9uIGFueXdoZXJlIHNpbmNlXG4gICAgLy8gd2UgZG9uJ3Qga25vdyB3aGljaCBGbGlnaHQgYnVpbGQgdGhpcyB3aWxsIGVuZCB1cCBiZWluZyB1c2VkXG4gICAgLy8gd2l0aC5cbiAgICB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NT0RVTEVfUkVGRVJFTkNFIHx8IHR5cGUuZ2V0TW9kdWxlSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBtZW1vKHR5cGUsIGNvbXBhcmUpIHtcbiAge1xuICAgIGlmICghaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpKSB7XG4gICAgICBlcnJvcignbWVtbzogVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBjb21wb25lbnQuIEluc3RlYWQgJyArICdyZWNlaXZlZDogJXMnLCB0eXBlID09PSBudWxsID8gJ251bGwnIDogdHlwZW9mIHR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIHZhciBlbGVtZW50VHlwZSA9IHtcbiAgICAkJHR5cGVvZjogUkVBQ1RfTUVNT19UWVBFLFxuICAgIHR5cGU6IHR5cGUsXG4gICAgY29tcGFyZTogY29tcGFyZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGNvbXBhcmVcbiAgfTtcblxuICB7XG4gICAgdmFyIG93bk5hbWU7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVsZW1lbnRUeXBlLCAnZGlzcGxheU5hbWUnLCB7XG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gb3duTmFtZTtcbiAgICAgIH0sXG4gICAgICBzZXQ6IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgIG93bk5hbWUgPSBuYW1lOyAvLyBUaGUgaW5uZXIgY29tcG9uZW50IHNob3VsZG4ndCBpbmhlcml0IHRoaXMgZGlzcGxheSBuYW1lIGluIG1vc3QgY2FzZXMsXG4gICAgICAgIC8vIGJlY2F1c2UgdGhlIGNvbXBvbmVudCBtYXkgYmUgdXNlZCBlbHNld2hlcmUuXG4gICAgICAgIC8vIEJ1dCBpdCdzIG5pY2UgZm9yIGFub255bW91cyBmdW5jdGlvbnMgdG8gaW5oZXJpdCB0aGUgbmFtZSxcbiAgICAgICAgLy8gc28gdGhhdCBvdXIgY29tcG9uZW50LXN0YWNrIGdlbmVyYXRpb24gbG9naWMgd2lsbCBkaXNwbGF5IHRoZWlyIGZyYW1lcy5cbiAgICAgICAgLy8gQW4gYW5vbnltb3VzIGZ1bmN0aW9uIGdlbmVyYWxseSBzdWdnZXN0cyBhIHBhdHRlcm4gbGlrZTpcbiAgICAgICAgLy8gICBSZWFjdC5tZW1vKChwcm9wcykgPT4gey4uLn0pO1xuICAgICAgICAvLyBUaGlzIGtpbmQgb2YgaW5uZXIgZnVuY3Rpb24gaXMgbm90IHVzZWQgZWxzZXdoZXJlIHNvIHRoZSBzaWRlIGVmZmVjdCBpcyBva2F5LlxuXG4gICAgICAgIGlmICghdHlwZS5uYW1lICYmICF0eXBlLmRpc3BsYXlOYW1lKSB7XG4gICAgICAgICAgdHlwZS5kaXNwbGF5TmFtZSA9IG5hbWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50VHlwZTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZURpc3BhdGNoZXIoKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50O1xuXG4gIHtcbiAgICBpZiAoZGlzcGF0Y2hlciA9PT0gbnVsbCkge1xuICAgICAgZXJyb3IoJ0ludmFsaWQgaG9vayBjYWxsLiBIb29rcyBjYW4gb25seSBiZSBjYWxsZWQgaW5zaWRlIG9mIHRoZSBib2R5IG9mIGEgZnVuY3Rpb24gY29tcG9uZW50LiBUaGlzIGNvdWxkIGhhcHBlbiBmb3InICsgJyBvbmUgb2YgdGhlIGZvbGxvd2luZyByZWFzb25zOlxcbicgKyAnMS4gWW91IG1pZ2h0IGhhdmUgbWlzbWF0Y2hpbmcgdmVyc2lvbnMgb2YgUmVhY3QgYW5kIHRoZSByZW5kZXJlciAoc3VjaCBhcyBSZWFjdCBET00pXFxuJyArICcyLiBZb3UgbWlnaHQgYmUgYnJlYWtpbmcgdGhlIFJ1bGVzIG9mIEhvb2tzXFxuJyArICczLiBZb3UgbWlnaHQgaGF2ZSBtb3JlIHRoYW4gb25lIGNvcHkgb2YgUmVhY3QgaW4gdGhlIHNhbWUgYXBwXFxuJyArICdTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL2ludmFsaWQtaG9vay1jYWxsIGZvciB0aXBzIGFib3V0IGhvdyB0byBkZWJ1ZyBhbmQgZml4IHRoaXMgcHJvYmxlbS4nKTtcbiAgICB9XG4gIH0gLy8gV2lsbCByZXN1bHQgaW4gYSBudWxsIGFjY2VzcyBlcnJvciBpZiBhY2Nlc3NlZCBvdXRzaWRlIHJlbmRlciBwaGFzZS4gV2VcbiAgLy8gaW50ZW50aW9uYWxseSBkb24ndCB0aHJvdyBvdXIgb3duIGVycm9yIGJlY2F1c2UgdGhpcyBpcyBpbiBhIGhvdCBwYXRoLlxuICAvLyBBbHNvIGhlbHBzIGVuc3VyZSB0aGlzIGlzIGlubGluZWQuXG5cblxuICByZXR1cm4gZGlzcGF0Y2hlcjtcbn1cbmZ1bmN0aW9uIHVzZUNvbnRleHQoQ29udGV4dCkge1xuICB2YXIgZGlzcGF0Y2hlciA9IHJlc29sdmVEaXNwYXRjaGVyKCk7XG5cbiAge1xuICAgIC8vIFRPRE86IGFkZCBhIG1vcmUgZ2VuZXJpYyB3YXJuaW5nIGZvciBpbnZhbGlkIHZhbHVlcy5cbiAgICBpZiAoQ29udGV4dC5fY29udGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB2YXIgcmVhbENvbnRleHQgPSBDb250ZXh0Ll9jb250ZXh0OyAvLyBEb24ndCBkZWR1cGxpY2F0ZSBiZWNhdXNlIHRoaXMgbGVnaXRpbWF0ZWx5IGNhdXNlcyBidWdzXG4gICAgICAvLyBhbmQgbm9ib2R5IHNob3VsZCBiZSB1c2luZyB0aGlzIGluIGV4aXN0aW5nIGNvZGUuXG5cbiAgICAgIGlmIChyZWFsQ29udGV4dC5Db25zdW1lciA9PT0gQ29udGV4dCkge1xuICAgICAgICBlcnJvcignQ2FsbGluZyB1c2VDb250ZXh0KENvbnRleHQuQ29uc3VtZXIpIGlzIG5vdCBzdXBwb3J0ZWQsIG1heSBjYXVzZSBidWdzLCBhbmQgd2lsbCBiZSAnICsgJ3JlbW92ZWQgaW4gYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gRGlkIHlvdSBtZWFuIHRvIGNhbGwgdXNlQ29udGV4dChDb250ZXh0KSBpbnN0ZWFkPycpO1xuICAgICAgfSBlbHNlIGlmIChyZWFsQ29udGV4dC5Qcm92aWRlciA9PT0gQ29udGV4dCkge1xuICAgICAgICBlcnJvcignQ2FsbGluZyB1c2VDb250ZXh0KENvbnRleHQuUHJvdmlkZXIpIGlzIG5vdCBzdXBwb3J0ZWQuICcgKyAnRGlkIHlvdSBtZWFuIHRvIGNhbGwgdXNlQ29udGV4dChDb250ZXh0KSBpbnN0ZWFkPycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkaXNwYXRjaGVyLnVzZUNvbnRleHQoQ29udGV4dCk7XG59XG5mdW5jdGlvbiB1c2VTdGF0ZShpbml0aWFsU3RhdGUpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VTdGF0ZShpbml0aWFsU3RhdGUpO1xufVxuZnVuY3Rpb24gdXNlUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTtcbn1cbmZ1bmN0aW9uIHVzZVJlZihpbml0aWFsVmFsdWUpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VSZWYoaW5pdGlhbFZhbHVlKTtcbn1cbmZ1bmN0aW9uIHVzZUVmZmVjdChjcmVhdGUsIGRlcHMpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbn1cbmZ1bmN0aW9uIHVzZUluc2VydGlvbkVmZmVjdChjcmVhdGUsIGRlcHMpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VJbnNlcnRpb25FZmZlY3QoY3JlYXRlLCBkZXBzKTtcbn1cbmZ1bmN0aW9uIHVzZUxheW91dEVmZmVjdChjcmVhdGUsIGRlcHMpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbn1cbmZ1bmN0aW9uIHVzZUNhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlQ2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpO1xufVxuZnVuY3Rpb24gdXNlTWVtbyhjcmVhdGUsIGRlcHMpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VNZW1vKGNyZWF0ZSwgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7XG59XG5mdW5jdGlvbiB1c2VEZWJ1Z1ZhbHVlKHZhbHVlLCBmb3JtYXR0ZXJGbikge1xuICB7XG4gICAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICAgIHJldHVybiBkaXNwYXRjaGVyLnVzZURlYnVnVmFsdWUodmFsdWUsIGZvcm1hdHRlckZuKTtcbiAgfVxufVxuZnVuY3Rpb24gdXNlVHJhbnNpdGlvbigpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VUcmFuc2l0aW9uKCk7XG59XG5mdW5jdGlvbiB1c2VEZWZlcnJlZFZhbHVlKHZhbHVlKSB7XG4gIHZhciBkaXNwYXRjaGVyID0gcmVzb2x2ZURpc3BhdGNoZXIoKTtcbiAgcmV0dXJuIGRpc3BhdGNoZXIudXNlRGVmZXJyZWRWYWx1ZSh2YWx1ZSk7XG59XG5mdW5jdGlvbiB1c2VJZCgpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VJZCgpO1xufVxuZnVuY3Rpb24gdXNlU3luY0V4dGVybmFsU3RvcmUoc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QpIHtcbiAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICByZXR1cm4gZGlzcGF0Y2hlci51c2VTeW5jRXh0ZXJuYWxTdG9yZShzdWJzY3JpYmUsIGdldFNuYXBzaG90LCBnZXRTZXJ2ZXJTbmFwc2hvdCk7XG59XG5cbi8vIEhlbHBlcnMgdG8gcGF0Y2ggY29uc29sZS5sb2dzIHRvIGF2b2lkIGxvZ2dpbmcgZHVyaW5nIHNpZGUtZWZmZWN0IGZyZWVcbi8vIHJlcGxheWluZyBvbiByZW5kZXIgZnVuY3Rpb24uIFRoaXMgY3VycmVudGx5IG9ubHkgcGF0Y2hlcyB0aGUgb2JqZWN0XG4vLyBsYXppbHkgd2hpY2ggd29uJ3QgY292ZXIgaWYgdGhlIGxvZyBmdW5jdGlvbiB3YXMgZXh0cmFjdGVkIGVhZ2VybHkuXG4vLyBXZSBjb3VsZCBhbHNvIGVhZ2VybHkgcGF0Y2ggdGhlIG1ldGhvZC5cbnZhciBkaXNhYmxlZERlcHRoID0gMDtcbnZhciBwcmV2TG9nO1xudmFyIHByZXZJbmZvO1xudmFyIHByZXZXYXJuO1xudmFyIHByZXZFcnJvcjtcbnZhciBwcmV2R3JvdXA7XG52YXIgcHJldkdyb3VwQ29sbGFwc2VkO1xudmFyIHByZXZHcm91cEVuZDtcblxuZnVuY3Rpb24gZGlzYWJsZWRMb2coKSB7fVxuXG5kaXNhYmxlZExvZy5fX3JlYWN0RGlzYWJsZWRMb2cgPSB0cnVlO1xuZnVuY3Rpb24gZGlzYWJsZUxvZ3MoKSB7XG4gIHtcbiAgICBpZiAoZGlzYWJsZWREZXB0aCA9PT0gMCkge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgcmVhY3QtaW50ZXJuYWwvbm8tcHJvZHVjdGlvbi1sb2dnaW5nICovXG4gICAgICBwcmV2TG9nID0gY29uc29sZS5sb2c7XG4gICAgICBwcmV2SW5mbyA9IGNvbnNvbGUuaW5mbztcbiAgICAgIHByZXZXYXJuID0gY29uc29sZS53YXJuO1xuICAgICAgcHJldkVycm9yID0gY29uc29sZS5lcnJvcjtcbiAgICAgIHByZXZHcm91cCA9IGNvbnNvbGUuZ3JvdXA7XG4gICAgICBwcmV2R3JvdXBDb2xsYXBzZWQgPSBjb25zb2xlLmdyb3VwQ29sbGFwc2VkO1xuICAgICAgcHJldkdyb3VwRW5kID0gY29uc29sZS5ncm91cEVuZDsgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xOTA5OVxuXG4gICAgICB2YXIgcHJvcHMgPSB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgdmFsdWU6IGRpc2FibGVkTG9nLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZVxuICAgICAgfTsgLy8gJEZsb3dGaXhNZSBGbG93IHRoaW5rcyBjb25zb2xlIGlzIGltbXV0YWJsZS5cblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY29uc29sZSwge1xuICAgICAgICBpbmZvOiBwcm9wcyxcbiAgICAgICAgbG9nOiBwcm9wcyxcbiAgICAgICAgd2FybjogcHJvcHMsXG4gICAgICAgIGVycm9yOiBwcm9wcyxcbiAgICAgICAgZ3JvdXA6IHByb3BzLFxuICAgICAgICBncm91cENvbGxhcHNlZDogcHJvcHMsXG4gICAgICAgIGdyb3VwRW5kOiBwcm9wc1xuICAgICAgfSk7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgIH1cblxuICAgIGRpc2FibGVkRGVwdGgrKztcbiAgfVxufVxuZnVuY3Rpb24gcmVlbmFibGVMb2dzKCkge1xuICB7XG4gICAgZGlzYWJsZWREZXB0aC0tO1xuXG4gICAgaWYgKGRpc2FibGVkRGVwdGggPT09IDApIHtcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgICAgdmFyIHByb3BzID0ge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lIEZsb3cgdGhpbmtzIGNvbnNvbGUgaXMgaW1tdXRhYmxlLlxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XG4gICAgICAgIGxvZzogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2TG9nXG4gICAgICAgIH0pLFxuICAgICAgICBpbmZvOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZJbmZvXG4gICAgICAgIH0pLFxuICAgICAgICB3YXJuOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZXYXJuXG4gICAgICAgIH0pLFxuICAgICAgICBlcnJvcjogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2RXJyb3JcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZHcm91cFxuICAgICAgICB9KSxcbiAgICAgICAgZ3JvdXBDb2xsYXBzZWQ6IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwQ29sbGFwc2VkXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cEVuZDogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBFbmRcbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgICAgLyogZXNsaW50LWVuYWJsZSByZWFjdC1pbnRlcm5hbC9uby1wcm9kdWN0aW9uLWxvZ2dpbmcgKi9cbiAgICB9XG5cbiAgICBpZiAoZGlzYWJsZWREZXB0aCA8IDApIHtcbiAgICAgIGVycm9yKCdkaXNhYmxlZERlcHRoIGZlbGwgYmVsb3cgemVyby4gJyArICdUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS4nKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXI7XG52YXIgcHJlZml4O1xuZnVuY3Rpb24gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICBpZiAocHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEV4dHJhY3QgdGhlIFZNIHNwZWNpZmljIHByZWZpeCB1c2VkIGJ5IGVhY2ggbGluZS5cbiAgICAgIHRyeSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIHZhciBtYXRjaCA9IHguc3RhY2sudHJpbSgpLm1hdGNoKC9cXG4oICooYXQgKT8pLyk7XG4gICAgICAgIHByZWZpeCA9IG1hdGNoICYmIG1hdGNoWzFdIHx8ICcnO1xuICAgICAgfVxuICAgIH0gLy8gV2UgdXNlIHRoZSBwcmVmaXggdG8gZW5zdXJlIG91ciBzdGFja3MgbGluZSB1cCB3aXRoIG5hdGl2ZSBzdGFjayBmcmFtZXMuXG5cblxuICAgIHJldHVybiAnXFxuJyArIHByZWZpeCArIG5hbWU7XG4gIH1cbn1cbnZhciByZWVudHJ5ID0gZmFsc2U7XG52YXIgY29tcG9uZW50RnJhbWVDYWNoZTtcblxue1xuICB2YXIgUG9zc2libHlXZWFrTWFwID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgPyBXZWFrTWFwIDogTWFwO1xuICBjb21wb25lbnRGcmFtZUNhY2hlID0gbmV3IFBvc3NpYmx5V2Vha01hcCgpO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZuLCBjb25zdHJ1Y3QpIHtcbiAgLy8gSWYgc29tZXRoaW5nIGFza2VkIGZvciBhIHN0YWNrIGluc2lkZSBhIGZha2UgcmVuZGVyLCBpdCBzaG91bGQgZ2V0IGlnbm9yZWQuXG4gIGlmICggIWZuIHx8IHJlZW50cnkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICB7XG4gICAgdmFyIGZyYW1lID0gY29tcG9uZW50RnJhbWVDYWNoZS5nZXQoZm4pO1xuXG4gICAgaWYgKGZyYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmcmFtZTtcbiAgICB9XG4gIH1cblxuICB2YXIgY29udHJvbDtcbiAgcmVlbnRyeSA9IHRydWU7XG4gIHZhciBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlID0gRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7IC8vICRGbG93Rml4TWUgSXQgZG9lcyBhY2NlcHQgdW5kZWZpbmVkLlxuXG4gIEVycm9yLnByZXBhcmVTdGFja1RyYWNlID0gdW5kZWZpbmVkO1xuICB2YXIgcHJldmlvdXNEaXNwYXRjaGVyO1xuXG4gIHtcbiAgICBwcmV2aW91c0Rpc3BhdGNoZXIgPSBSZWFjdEN1cnJlbnREaXNwYXRjaGVyJDEuY3VycmVudDsgLy8gU2V0IHRoZSBkaXNwYXRjaGVyIGluIERFViBiZWNhdXNlIHRoaXMgbWlnaHQgYmUgY2FsbCBpbiB0aGUgcmVuZGVyIGZ1bmN0aW9uXG4gICAgLy8gZm9yIHdhcm5pbmdzLlxuXG4gICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciQxLmN1cnJlbnQgPSBudWxsO1xuICAgIGRpc2FibGVMb2dzKCk7XG4gIH1cblxuICB0cnkge1xuICAgIC8vIFRoaXMgc2hvdWxkIHRocm93LlxuICAgIGlmIChjb25zdHJ1Y3QpIHtcbiAgICAgIC8vIFNvbWV0aGluZyBzaG91bGQgYmUgc2V0dGluZyB0aGUgcHJvcHMgaW4gdGhlIGNvbnN0cnVjdG9yLlxuICAgICAgdmFyIEZha2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lXG5cblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZha2UucHJvdG90eXBlLCAncHJvcHMnLCB7XG4gICAgICAgIHNldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIC8vIFdlIHVzZSBhIHRocm93aW5nIHNldHRlciBpbnN0ZWFkIG9mIGZyb3plbiBvciBub24td3JpdGFibGUgcHJvcHNcbiAgICAgICAgICAvLyBiZWNhdXNlIHRoYXQgd29uJ3QgdGhyb3cgaW4gYSBub24tc3RyaWN0IG1vZGUgZnVuY3Rpb24uXG4gICAgICAgICAgdGhyb3cgRXJyb3IoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gJ29iamVjdCcgJiYgUmVmbGVjdC5jb25zdHJ1Y3QpIHtcbiAgICAgICAgLy8gV2UgY29uc3RydWN0IGEgZGlmZmVyZW50IGNvbnRyb2wgZm9yIHRoaXMgY2FzZSB0byBpbmNsdWRlIGFueSBleHRyYVxuICAgICAgICAvLyBmcmFtZXMgYWRkZWQgYnkgdGhlIGNvbnN0cnVjdCBjYWxsLlxuICAgICAgICB0cnkge1xuICAgICAgICAgIFJlZmxlY3QuY29uc3RydWN0KEZha2UsIFtdKTtcbiAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgIGNvbnRyb2wgPSB4O1xuICAgICAgICB9XG5cbiAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoZm4sIFtdLCBGYWtlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgRmFrZS5jYWxsKCk7XG4gICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICBjb250cm9sID0geDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZuLmNhbGwoRmFrZS5wcm90b3R5cGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBjb250cm9sID0geDtcbiAgICAgIH1cblxuICAgICAgZm4oKTtcbiAgICB9XG4gIH0gY2F0Y2ggKHNhbXBsZSkge1xuICAgIC8vIFRoaXMgaXMgaW5saW5lZCBtYW51YWxseSBiZWNhdXNlIGNsb3N1cmUgZG9lc24ndCBkbyBpdCBmb3IgdXMuXG4gICAgaWYgKHNhbXBsZSAmJiBjb250cm9sICYmIHR5cGVvZiBzYW1wbGUuc3RhY2sgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBUaGlzIGV4dHJhY3RzIHRoZSBmaXJzdCBmcmFtZSBmcm9tIHRoZSBzYW1wbGUgdGhhdCBpc24ndCBhbHNvIGluIHRoZSBjb250cm9sLlxuICAgICAgLy8gU2tpcHBpbmcgb25lIGZyYW1lIHRoYXQgd2UgYXNzdW1lIGlzIHRoZSBmcmFtZSB0aGF0IGNhbGxzIHRoZSB0d28uXG4gICAgICB2YXIgc2FtcGxlTGluZXMgPSBzYW1wbGUuc3RhY2suc3BsaXQoJ1xcbicpO1xuICAgICAgdmFyIGNvbnRyb2xMaW5lcyA9IGNvbnRyb2wuc3RhY2suc3BsaXQoJ1xcbicpO1xuICAgICAgdmFyIHMgPSBzYW1wbGVMaW5lcy5sZW5ndGggLSAxO1xuICAgICAgdmFyIGMgPSBjb250cm9sTGluZXMubGVuZ3RoIC0gMTtcblxuICAgICAgd2hpbGUgKHMgPj0gMSAmJiBjID49IDAgJiYgc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAvLyBXZSBleHBlY3QgYXQgbGVhc3Qgb25lIHN0YWNrIGZyYW1lIHRvIGJlIHNoYXJlZC5cbiAgICAgICAgLy8gVHlwaWNhbGx5IHRoaXMgd2lsbCBiZSB0aGUgcm9vdCBtb3N0IG9uZS4gSG93ZXZlciwgc3RhY2sgZnJhbWVzIG1heSBiZVxuICAgICAgICAvLyBjdXQgb2ZmIGR1ZSB0byBtYXhpbXVtIHN0YWNrIGxpbWl0cy4gSW4gdGhpcyBjYXNlLCBvbmUgbWF5YmUgY3V0IG9mZlxuICAgICAgICAvLyBlYXJsaWVyIHRoYW4gdGhlIG90aGVyLiBXZSBhc3N1bWUgdGhhdCB0aGUgc2FtcGxlIGlzIGxvbmdlciBvciB0aGUgc2FtZVxuICAgICAgICAvLyBhbmQgdGhlcmUgZm9yIGN1dCBvZmYgZWFybGllci4gU28gd2Ugc2hvdWxkIGZpbmQgdGhlIHJvb3QgbW9zdCBmcmFtZSBpblxuICAgICAgICAvLyB0aGUgc2FtcGxlIHNvbWV3aGVyZSBpbiB0aGUgY29udHJvbC5cbiAgICAgICAgYy0tO1xuICAgICAgfVxuXG4gICAgICBmb3IgKDsgcyA+PSAxICYmIGMgPj0gMDsgcy0tLCBjLS0pIHtcbiAgICAgICAgLy8gTmV4dCB3ZSBmaW5kIHRoZSBmaXJzdCBvbmUgdGhhdCBpc24ndCB0aGUgc2FtZSB3aGljaCBzaG91bGQgYmUgdGhlXG4gICAgICAgIC8vIGZyYW1lIHRoYXQgY2FsbGVkIG91ciBzYW1wbGUgZnVuY3Rpb24gYW5kIHRoZSBjb250cm9sLlxuICAgICAgICBpZiAoc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAgIC8vIEluIFY4LCB0aGUgZmlyc3QgbGluZSBpcyBkZXNjcmliaW5nIHRoZSBtZXNzYWdlIGJ1dCBvdGhlciBWTXMgZG9uJ3QuXG4gICAgICAgICAgLy8gSWYgd2UncmUgYWJvdXQgdG8gcmV0dXJuIHRoZSBmaXJzdCBsaW5lLCBhbmQgdGhlIGNvbnRyb2wgaXMgYWxzbyBvbiB0aGUgc2FtZVxuICAgICAgICAgIC8vIGxpbmUsIHRoYXQncyBhIHByZXR0eSBnb29kIGluZGljYXRvciB0aGF0IG91ciBzYW1wbGUgdGhyZXcgYXQgc2FtZSBsaW5lIGFzXG4gICAgICAgICAgLy8gdGhlIGNvbnRyb2wuIEkuZS4gYmVmb3JlIHdlIGVudGVyZWQgdGhlIHNhbXBsZSBmcmFtZS4gU28gd2UgaWdub3JlIHRoaXMgcmVzdWx0LlxuICAgICAgICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB5b3UgcGFzc2VkIGEgY2xhc3MgdG8gZnVuY3Rpb24gY29tcG9uZW50LCBvciBub24tZnVuY3Rpb24uXG4gICAgICAgICAgaWYgKHMgIT09IDEgfHwgYyAhPT0gMSkge1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICBzLS07XG4gICAgICAgICAgICAgIGMtLTsgLy8gV2UgbWF5IHN0aWxsIGhhdmUgc2ltaWxhciBpbnRlcm1lZGlhdGUgZnJhbWVzIGZyb20gdGhlIGNvbnN0cnVjdCBjYWxsLlxuICAgICAgICAgICAgICAvLyBUaGUgbmV4dCBvbmUgdGhhdCBpc24ndCB0aGUgc2FtZSBzaG91bGQgYmUgb3VyIG1hdGNoIHRob3VnaC5cblxuICAgICAgICAgICAgICBpZiAoYyA8IDAgfHwgc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAgICAgICAgIC8vIFY4IGFkZHMgYSBcIm5ld1wiIHByZWZpeCBmb3IgbmF0aXZlIGNsYXNzZXMuIExldCdzIHJlbW92ZSBpdCB0byBtYWtlIGl0IHByZXR0aWVyLlxuICAgICAgICAgICAgICAgIHZhciBfZnJhbWUgPSAnXFxuJyArIHNhbXBsZUxpbmVzW3NdLnJlcGxhY2UoJyBhdCBuZXcgJywgJyBhdCAnKTsgLy8gSWYgb3VyIGNvbXBvbmVudCBmcmFtZSBpcyBsYWJlbGVkIFwiPGFub255bW91cz5cIlxuICAgICAgICAgICAgICAgIC8vIGJ1dCB3ZSBoYXZlIGEgdXNlci1wcm92aWRlZCBcImRpc3BsYXlOYW1lXCJcbiAgICAgICAgICAgICAgICAvLyBzcGxpY2UgaXQgaW4gdG8gbWFrZSB0aGUgc3RhY2sgbW9yZSByZWFkYWJsZS5cblxuXG4gICAgICAgICAgICAgICAgaWYgKGZuLmRpc3BsYXlOYW1lICYmIF9mcmFtZS5pbmNsdWRlcygnPGFub255bW91cz4nKSkge1xuICAgICAgICAgICAgICAgICAgX2ZyYW1lID0gX2ZyYW1lLnJlcGxhY2UoJzxhbm9ueW1vdXM+JywgZm4uZGlzcGxheU5hbWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50RnJhbWVDYWNoZS5zZXQoZm4sIF9mcmFtZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSAvLyBSZXR1cm4gdGhlIGxpbmUgd2UgZm91bmQuXG5cblxuICAgICAgICAgICAgICAgIHJldHVybiBfZnJhbWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gd2hpbGUgKHMgPj0gMSAmJiBjID49IDApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIHJlZW50cnkgPSBmYWxzZTtcblxuICAgIHtcbiAgICAgIFJlYWN0Q3VycmVudERpc3BhdGNoZXIkMS5jdXJyZW50ID0gcHJldmlvdXNEaXNwYXRjaGVyO1xuICAgICAgcmVlbmFibGVMb2dzKCk7XG4gICAgfVxuXG4gICAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlO1xuICB9IC8vIEZhbGxiYWNrIHRvIGp1c3QgdXNpbmcgdGhlIG5hbWUgaWYgd2UgY291bGRuJ3QgbWFrZSBpdCB0aHJvdy5cblxuXG4gIHZhciBuYW1lID0gZm4gPyBmbi5kaXNwbGF5TmFtZSB8fCBmbi5uYW1lIDogJyc7XG4gIHZhciBzeW50aGV0aWNGcmFtZSA9IG5hbWUgPyBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShuYW1lKSA6ICcnO1xuXG4gIHtcbiAgICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgc3ludGhldGljRnJhbWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzeW50aGV0aWNGcmFtZTtcbn1cbmZ1bmN0aW9uIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZShmbiwgc291cmNlLCBvd25lckZuKSB7XG4gIHtcbiAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmbiwgZmFsc2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNob3VsZENvbnN0cnVjdChDb21wb25lbnQpIHtcbiAgdmFyIHByb3RvdHlwZSA9IENvbXBvbmVudC5wcm90b3R5cGU7XG4gIHJldHVybiAhIShwcm90b3R5cGUgJiYgcHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQpO1xufVxuXG5mdW5jdGlvbiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYodHlwZSwgc291cmNlLCBvd25lckZuKSB7XG5cbiAgaWYgKHR5cGUgPT0gbnVsbCkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHtcbiAgICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKHR5cGUsIHNob3VsZENvbnN0cnVjdCh0eXBlKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSh0eXBlKTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfVFlQRTpcbiAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZSgnU3VzcGVuc2UnKTtcblxuICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZUxpc3QnKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICBzd2l0Y2ggKHR5cGUuJCR0eXBlb2YpIHtcbiAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZSh0eXBlLnJlbmRlcik7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAvLyBNZW1vIG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICByZXR1cm4gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUudHlwZSwgc291cmNlLCBvd25lckZuKTtcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBMYXp5IG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihpbml0KHBheWxvYWQpLCBzb3VyY2UsIG93bmVyRm4pO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHt9XG4gICAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbnZhciBsb2dnZWRUeXBlRmFpbHVyZXMgPSB7fTtcbnZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lJDEgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuXG5mdW5jdGlvbiBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KSB7XG4gIHtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICB2YXIgc3RhY2sgPSBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoZWxlbWVudC50eXBlLCBlbGVtZW50Ll9zb3VyY2UsIG93bmVyID8gb3duZXIudHlwZSA6IG51bGwpO1xuICAgICAgUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZSQxLnNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUkMS5zZXRFeHRyYVN0YWNrRnJhbWUobnVsbCk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrUHJvcFR5cGVzKHR5cGVTcGVjcywgdmFsdWVzLCBsb2NhdGlvbiwgY29tcG9uZW50TmFtZSwgZWxlbWVudCkge1xuICB7XG4gICAgLy8gJEZsb3dGaXhNZSBUaGlzIGlzIG9rYXkgYnV0IEZsb3cgZG9lc24ndCBrbm93IGl0LlxuICAgIHZhciBoYXMgPSBGdW5jdGlvbi5jYWxsLmJpbmQoaGFzT3duUHJvcGVydHkpO1xuXG4gICAgZm9yICh2YXIgdHlwZVNwZWNOYW1lIGluIHR5cGVTcGVjcykge1xuICAgICAgaWYgKGhhcyh0eXBlU3BlY3MsIHR5cGVTcGVjTmFtZSkpIHtcbiAgICAgICAgdmFyIGVycm9yJDEgPSB2b2lkIDA7IC8vIFByb3AgdHlwZSB2YWxpZGF0aW9uIG1heSB0aHJvdy4gSW4gY2FzZSB0aGV5IGRvLCB3ZSBkb24ndCB3YW50IHRvXG4gICAgICAgIC8vIGZhaWwgdGhlIHJlbmRlciBwaGFzZSB3aGVyZSBpdCBkaWRuJ3QgZmFpbCBiZWZvcmUuIFNvIHdlIGxvZyBpdC5cbiAgICAgICAgLy8gQWZ0ZXIgdGhlc2UgaGF2ZSBiZWVuIGNsZWFuZWQgdXAsIHdlJ2xsIGxldCB0aGVtIHRocm93LlxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGFuIGludmFyaWFudCB0aGF0IGdldHMgY2F1Z2h0LiBJdCdzIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYmVoYXZpb3IgYXMgd2l0aG91dCB0aGlzIHN0YXRlbWVudCBleGNlcHQgd2l0aCBhIGJldHRlciBtZXNzYWdlLlxuICAgICAgICAgIGlmICh0eXBlb2YgdHlwZVNwZWNzW3R5cGVTcGVjTmFtZV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1pbnRlcm5hbC9wcm9kLWVycm9yLWNvZGVzXG4gICAgICAgICAgICB2YXIgZXJyID0gRXJyb3IoKGNvbXBvbmVudE5hbWUgfHwgJ1JlYWN0IGNsYXNzJykgKyAnOiAnICsgbG9jYXRpb24gKyAnIHR5cGUgYCcgKyB0eXBlU3BlY05hbWUgKyAnYCBpcyBpbnZhbGlkOyAnICsgJ2l0IG11c3QgYmUgYSBmdW5jdGlvbiwgdXN1YWxseSBmcm9tIHRoZSBgcHJvcC10eXBlc2AgcGFja2FnZSwgYnV0IHJlY2VpdmVkIGAnICsgdHlwZW9mIHR5cGVTcGVjc1t0eXBlU3BlY05hbWVdICsgJ2AuJyArICdUaGlzIG9mdGVuIGhhcHBlbnMgYmVjYXVzZSBvZiB0eXBvcyBzdWNoIGFzIGBQcm9wVHlwZXMuZnVuY3Rpb25gIGluc3RlYWQgb2YgYFByb3BUeXBlcy5mdW5jYC4nKTtcbiAgICAgICAgICAgIGVyci5uYW1lID0gJ0ludmFyaWFudCBWaW9sYXRpb24nO1xuICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGVycm9yJDEgPSB0eXBlU3BlY3NbdHlwZVNwZWNOYW1lXSh2YWx1ZXMsIHR5cGVTcGVjTmFtZSwgY29tcG9uZW50TmFtZSwgbG9jYXRpb24sIG51bGwsICdTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCcpO1xuICAgICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAgIGVycm9yJDEgPSBleDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlcnJvciQxICYmICEoZXJyb3IkMSBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KGVsZW1lbnQpO1xuXG4gICAgICAgICAgZXJyb3IoJyVzOiB0eXBlIHNwZWNpZmljYXRpb24gb2YgJXMnICsgJyBgJXNgIGlzIGludmFsaWQ7IHRoZSB0eXBlIGNoZWNrZXIgJyArICdmdW5jdGlvbiBtdXN0IHJldHVybiBgbnVsbGAgb3IgYW4gYEVycm9yYCBidXQgcmV0dXJuZWQgYSAlcy4gJyArICdZb3UgbWF5IGhhdmUgZm9yZ290dGVuIHRvIHBhc3MgYW4gYXJndW1lbnQgdG8gdGhlIHR5cGUgY2hlY2tlciAnICsgJ2NyZWF0b3IgKGFycmF5T2YsIGluc3RhbmNlT2YsIG9iamVjdE9mLCBvbmVPZiwgb25lT2ZUeXBlLCBhbmQgJyArICdzaGFwZSBhbGwgcmVxdWlyZSBhbiBhcmd1bWVudCkuJywgY29tcG9uZW50TmFtZSB8fCAnUmVhY3QgY2xhc3MnLCBsb2NhdGlvbiwgdHlwZVNwZWNOYW1lLCB0eXBlb2YgZXJyb3IkMSk7XG5cbiAgICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlcnJvciQxIGluc3RhbmNlb2YgRXJyb3IgJiYgIShlcnJvciQxLm1lc3NhZ2UgaW4gbG9nZ2VkVHlwZUZhaWx1cmVzKSkge1xuICAgICAgICAgIC8vIE9ubHkgbW9uaXRvciB0aGlzIGZhaWx1cmUgb25jZSBiZWNhdXNlIHRoZXJlIHRlbmRzIHRvIGJlIGEgbG90IG9mIHRoZVxuICAgICAgICAgIC8vIHNhbWUgZXJyb3IuXG4gICAgICAgICAgbG9nZ2VkVHlwZUZhaWx1cmVzW2Vycm9yJDEubWVzc2FnZV0gPSB0cnVlO1xuICAgICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KGVsZW1lbnQpO1xuXG4gICAgICAgICAgZXJyb3IoJ0ZhaWxlZCAlcyB0eXBlOiAlcycsIGxvY2F0aW9uLCBlcnJvciQxLm1lc3NhZ2UpO1xuXG4gICAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShlbGVtZW50KSB7XG4gIHtcbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgdmFyIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICB2YXIgc3RhY2sgPSBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoZWxlbWVudC50eXBlLCBlbGVtZW50Ll9zb3VyY2UsIG93bmVyID8gb3duZXIudHlwZSA6IG51bGwpO1xuICAgICAgc2V0RXh0cmFTdGFja0ZyYW1lKHN0YWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0RXh0cmFTdGFja0ZyYW1lKG51bGwpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd247XG5cbntcbiAgcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24gPSBmYWxzZTtcbn1cblxuZnVuY3Rpb24gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCkge1xuICBpZiAoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCkge1xuICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQudHlwZSk7XG5cbiAgICBpZiAobmFtZSkge1xuICAgICAgcmV0dXJuICdcXG5cXG5DaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgJyArIG5hbWUgKyAnYC4nO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW0oc291cmNlKSB7XG4gIGlmIChzb3VyY2UgIT09IHVuZGVmaW5lZCkge1xuICAgIHZhciBmaWxlTmFtZSA9IHNvdXJjZS5maWxlTmFtZS5yZXBsYWNlKC9eLipbXFxcXFxcL10vLCAnJyk7XG4gICAgdmFyIGxpbmVOdW1iZXIgPSBzb3VyY2UubGluZU51bWJlcjtcbiAgICByZXR1cm4gJ1xcblxcbkNoZWNrIHlvdXIgY29kZSBhdCAnICsgZmlsZU5hbWUgKyAnOicgKyBsaW5lTnVtYmVyICsgJy4nO1xuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBnZXRTb3VyY2VJbmZvRXJyb3JBZGRlbmR1bUZvclByb3BzKGVsZW1lbnRQcm9wcykge1xuICBpZiAoZWxlbWVudFByb3BzICE9PSBudWxsICYmIGVsZW1lbnRQcm9wcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGdldFNvdXJjZUluZm9FcnJvckFkZGVuZHVtKGVsZW1lbnRQcm9wcy5fX3NvdXJjZSk7XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG4vKipcbiAqIFdhcm4gaWYgdGhlcmUncyBubyBrZXkgZXhwbGljaXRseSBzZXQgb24gZHluYW1pYyBhcnJheXMgb2YgY2hpbGRyZW4gb3JcbiAqIG9iamVjdCBrZXlzIGFyZSBub3QgdmFsaWQuIFRoaXMgYWxsb3dzIHVzIHRvIGtlZXAgdHJhY2sgb2YgY2hpbGRyZW4gYmV0d2VlblxuICogdXBkYXRlcy5cbiAqL1xuXG5cbnZhciBvd25lckhhc0tleVVzZVdhcm5pbmcgPSB7fTtcblxuZnVuY3Rpb24gZ2V0Q3VycmVudENvbXBvbmVudEVycm9ySW5mbyhwYXJlbnRUeXBlKSB7XG4gIHZhciBpbmZvID0gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCk7XG5cbiAgaWYgKCFpbmZvKSB7XG4gICAgdmFyIHBhcmVudE5hbWUgPSB0eXBlb2YgcGFyZW50VHlwZSA9PT0gJ3N0cmluZycgPyBwYXJlbnRUeXBlIDogcGFyZW50VHlwZS5kaXNwbGF5TmFtZSB8fCBwYXJlbnRUeXBlLm5hbWU7XG5cbiAgICBpZiAocGFyZW50TmFtZSkge1xuICAgICAgaW5mbyA9IFwiXFxuXFxuQ2hlY2sgdGhlIHRvcC1sZXZlbCByZW5kZXIgY2FsbCB1c2luZyA8XCIgKyBwYXJlbnROYW1lICsgXCI+LlwiO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBpbmZvO1xufVxuLyoqXG4gKiBXYXJuIGlmIHRoZSBlbGVtZW50IGRvZXNuJ3QgaGF2ZSBhbiBleHBsaWNpdCBrZXkgYXNzaWduZWQgdG8gaXQuXG4gKiBUaGlzIGVsZW1lbnQgaXMgaW4gYW4gYXJyYXkuIFRoZSBhcnJheSBjb3VsZCBncm93IGFuZCBzaHJpbmsgb3IgYmVcbiAqIHJlb3JkZXJlZC4gQWxsIGNoaWxkcmVuIHRoYXQgaGF2ZW4ndCBhbHJlYWR5IGJlZW4gdmFsaWRhdGVkIGFyZSByZXF1aXJlZCB0b1xuICogaGF2ZSBhIFwia2V5XCIgcHJvcGVydHkgYXNzaWduZWQgdG8gaXQuIEVycm9yIHN0YXR1c2VzIGFyZSBjYWNoZWQgc28gYSB3YXJuaW5nXG4gKiB3aWxsIG9ubHkgYmUgc2hvd24gb25jZS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBlbGVtZW50IEVsZW1lbnQgdGhhdCByZXF1aXJlcyBhIGtleS5cbiAqIEBwYXJhbSB7Kn0gcGFyZW50VHlwZSBlbGVtZW50J3MgcGFyZW50J3MgdHlwZS5cbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlRXhwbGljaXRLZXkoZWxlbWVudCwgcGFyZW50VHlwZSkge1xuICBpZiAoIWVsZW1lbnQuX3N0b3JlIHx8IGVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCB8fCBlbGVtZW50LmtleSAhPSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZWxlbWVudC5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgdmFyIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8gPSBnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvKHBhcmVudFR5cGUpO1xuXG4gIGlmIChvd25lckhhc0tleVVzZVdhcm5pbmdbY3VycmVudENvbXBvbmVudEVycm9ySW5mb10pIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBvd25lckhhc0tleVVzZVdhcm5pbmdbY3VycmVudENvbXBvbmVudEVycm9ySW5mb10gPSB0cnVlOyAvLyBVc3VhbGx5IHRoZSBjdXJyZW50IG93bmVyIGlzIHRoZSBvZmZlbmRlciwgYnV0IGlmIGl0IGFjY2VwdHMgY2hpbGRyZW4gYXMgYVxuICAvLyBwcm9wZXJ0eSwgaXQgbWF5IGJlIHRoZSBjcmVhdG9yIG9mIHRoZSBjaGlsZCB0aGF0J3MgcmVzcG9uc2libGUgZm9yXG4gIC8vIGFzc2lnbmluZyBpdCBhIGtleS5cblxuICB2YXIgY2hpbGRPd25lciA9ICcnO1xuXG4gIGlmIChlbGVtZW50ICYmIGVsZW1lbnQuX293bmVyICYmIGVsZW1lbnQuX293bmVyICE9PSBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50KSB7XG4gICAgLy8gR2l2ZSB0aGUgY29tcG9uZW50IHRoYXQgb3JpZ2luYWxseSBjcmVhdGVkIHRoaXMgY2hpbGQuXG4gICAgY2hpbGRPd25lciA9IFwiIEl0IHdhcyBwYXNzZWQgYSBjaGlsZCBmcm9tIFwiICsgZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGVsZW1lbnQuX293bmVyLnR5cGUpICsgXCIuXCI7XG4gIH1cblxuICB7XG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShlbGVtZW50KTtcblxuICAgIGVycm9yKCdFYWNoIGNoaWxkIGluIGEgbGlzdCBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcImtleVwiIHByb3AuJyArICclcyVzIFNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvd2FybmluZy1rZXlzIGZvciBtb3JlIGluZm9ybWF0aW9uLicsIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8sIGNoaWxkT3duZXIpO1xuXG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShudWxsKTtcbiAgfVxufVxuLyoqXG4gKiBFbnN1cmUgdGhhdCBldmVyeSBlbGVtZW50IGVpdGhlciBpcyBwYXNzZWQgaW4gYSBzdGF0aWMgbG9jYXRpb24sIGluIGFuXG4gKiBhcnJheSB3aXRoIGFuIGV4cGxpY2l0IGtleXMgcHJvcGVydHkgZGVmaW5lZCwgb3IgaW4gYW4gb2JqZWN0IGxpdGVyYWxcbiAqIHdpdGggdmFsaWQga2V5IHByb3BlcnR5LlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIHtSZWFjdE5vZGV9IG5vZGUgU3RhdGljYWxseSBwYXNzZWQgY2hpbGQgb2YgYW55IHR5cGUuXG4gKiBAcGFyYW0geyp9IHBhcmVudFR5cGUgbm9kZSdzIHBhcmVudCdzIHR5cGUuXG4gKi9cblxuXG5mdW5jdGlvbiB2YWxpZGF0ZUNoaWxkS2V5cyhub2RlLCBwYXJlbnRUeXBlKSB7XG4gIGlmICh0eXBlb2Ygbm9kZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoaXNBcnJheShub2RlKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGNoaWxkID0gbm9kZVtpXTtcblxuICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICB2YWxpZGF0ZUV4cGxpY2l0S2V5KGNoaWxkLCBwYXJlbnRUeXBlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNWYWxpZEVsZW1lbnQobm9kZSkpIHtcbiAgICAvLyBUaGlzIGVsZW1lbnQgd2FzIHBhc3NlZCBpbiBhIHZhbGlkIGxvY2F0aW9uLlxuICAgIGlmIChub2RlLl9zdG9yZSkge1xuICAgICAgbm9kZS5fc3RvcmUudmFsaWRhdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH0gZWxzZSBpZiAobm9kZSkge1xuICAgIHZhciBpdGVyYXRvckZuID0gZ2V0SXRlcmF0b3JGbihub2RlKTtcblxuICAgIGlmICh0eXBlb2YgaXRlcmF0b3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gRW50cnkgaXRlcmF0b3JzIHVzZWQgdG8gcHJvdmlkZSBpbXBsaWNpdCBrZXlzLFxuICAgICAgLy8gYnV0IG5vdyB3ZSBwcmludCBhIHNlcGFyYXRlIHdhcm5pbmcgZm9yIHRoZW0gbGF0ZXIuXG4gICAgICBpZiAoaXRlcmF0b3JGbiAhPT0gbm9kZS5lbnRyaWVzKSB7XG4gICAgICAgIHZhciBpdGVyYXRvciA9IGl0ZXJhdG9yRm4uY2FsbChub2RlKTtcbiAgICAgICAgdmFyIHN0ZXA7XG5cbiAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChzdGVwLnZhbHVlKSkge1xuICAgICAgICAgICAgdmFsaWRhdGVFeHBsaWNpdEtleShzdGVwLnZhbHVlLCBwYXJlbnRUeXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi8qKlxuICogR2l2ZW4gYW4gZWxlbWVudCwgdmFsaWRhdGUgdGhhdCBpdHMgcHJvcHMgZm9sbG93IHRoZSBwcm9wVHlwZXMgZGVmaW5pdGlvbixcbiAqIHByb3ZpZGVkIGJ5IHRoZSB0eXBlLlxuICpcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBlbGVtZW50XG4gKi9cblxuXG5mdW5jdGlvbiB2YWxpZGF0ZVByb3BUeXBlcyhlbGVtZW50KSB7XG4gIHtcbiAgICB2YXIgdHlwZSA9IGVsZW1lbnQudHlwZTtcblxuICAgIGlmICh0eXBlID09PSBudWxsIHx8IHR5cGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YXIgcHJvcFR5cGVzO1xuXG4gICAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwcm9wVHlwZXMgPSB0eXBlLnByb3BUeXBlcztcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fCAvLyBOb3RlOiBNZW1vIG9ubHkgY2hlY2tzIG91dGVyIHByb3BzIGhlcmUuXG4gICAgLy8gSW5uZXIgcHJvcHMgYXJlIGNoZWNrZWQgaW4gdGhlIHJlY29uY2lsZXIuXG4gICAgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTUVNT19UWVBFKSkge1xuICAgICAgcHJvcFR5cGVzID0gdHlwZS5wcm9wVHlwZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAocHJvcFR5cGVzKSB7XG4gICAgICAvLyBJbnRlbnRpb25hbGx5IGluc2lkZSB0byBhdm9pZCB0cmlnZ2VyaW5nIGxhenkgaW5pdGlhbGl6ZXJzOlxuICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSk7XG4gICAgICBjaGVja1Byb3BUeXBlcyhwcm9wVHlwZXMsIGVsZW1lbnQucHJvcHMsICdwcm9wJywgbmFtZSwgZWxlbWVudCk7XG4gICAgfSBlbHNlIGlmICh0eXBlLlByb3BUeXBlcyAhPT0gdW5kZWZpbmVkICYmICFwcm9wVHlwZXNNaXNzcGVsbFdhcm5pbmdTaG93bikge1xuICAgICAgcHJvcFR5cGVzTWlzc3BlbGxXYXJuaW5nU2hvd24gPSB0cnVlOyAvLyBJbnRlbnRpb25hbGx5IGluc2lkZSB0byBhdm9pZCB0cmlnZ2VyaW5nIGxhenkgaW5pdGlhbGl6ZXJzOlxuXG4gICAgICB2YXIgX25hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSk7XG5cbiAgICAgIGVycm9yKCdDb21wb25lbnQgJXMgZGVjbGFyZWQgYFByb3BUeXBlc2AgaW5zdGVhZCBvZiBgcHJvcFR5cGVzYC4gRGlkIHlvdSBtaXNzcGVsbCB0aGUgcHJvcGVydHkgYXNzaWdubWVudD8nLCBfbmFtZSB8fCAnVW5rbm93bicpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdHlwZS5nZXREZWZhdWx0UHJvcHMgPT09ICdmdW5jdGlvbicgJiYgIXR5cGUuZ2V0RGVmYXVsdFByb3BzLmlzUmVhY3RDbGFzc0FwcHJvdmVkKSB7XG4gICAgICBlcnJvcignZ2V0RGVmYXVsdFByb3BzIGlzIG9ubHkgdXNlZCBvbiBjbGFzc2ljIFJlYWN0LmNyZWF0ZUNsYXNzICcgKyAnZGVmaW5pdGlvbnMuIFVzZSBhIHN0YXRpYyBwcm9wZXJ0eSBuYW1lZCBgZGVmYXVsdFByb3BzYCBpbnN0ZWFkLicpO1xuICAgIH1cbiAgfVxufVxuLyoqXG4gKiBHaXZlbiBhIGZyYWdtZW50LCB2YWxpZGF0ZSB0aGF0IGl0IGNhbiBvbmx5IGJlIHByb3ZpZGVkIHdpdGggZnJhZ21lbnQgcHJvcHNcbiAqIEBwYXJhbSB7UmVhY3RFbGVtZW50fSBmcmFnbWVudFxuICovXG5cblxuZnVuY3Rpb24gdmFsaWRhdGVGcmFnbWVudFByb3BzKGZyYWdtZW50KSB7XG4gIHtcbiAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKGZyYWdtZW50LnByb3BzKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGtleSA9IGtleXNbaV07XG5cbiAgICAgIGlmIChrZXkgIT09ICdjaGlsZHJlbicgJiYga2V5ICE9PSAna2V5Jykge1xuICAgICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKGZyYWdtZW50KTtcblxuICAgICAgICBlcnJvcignSW52YWxpZCBwcm9wIGAlc2Agc3VwcGxpZWQgdG8gYFJlYWN0LkZyYWdtZW50YC4gJyArICdSZWFjdC5GcmFnbWVudCBjYW4gb25seSBoYXZlIGBrZXlgIGFuZCBgY2hpbGRyZW5gIHByb3BzLicsIGtleSk7XG5cbiAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShudWxsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZyYWdtZW50LnJlZiAhPT0gbnVsbCkge1xuICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQkMShmcmFnbWVudCk7XG5cbiAgICAgIGVycm9yKCdJbnZhbGlkIGF0dHJpYnV0ZSBgcmVmYCBzdXBwbGllZCB0byBgUmVhY3QuRnJhZ21lbnRgLicpO1xuXG4gICAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudCQxKG51bGwpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gY3JlYXRlRWxlbWVudFdpdGhWYWxpZGF0aW9uKHR5cGUsIHByb3BzLCBjaGlsZHJlbikge1xuICB2YXIgdmFsaWRUeXBlID0gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpOyAvLyBXZSB3YXJuIGluIHRoaXMgY2FzZSBidXQgZG9uJ3QgdGhyb3cuIFdlIGV4cGVjdCB0aGUgZWxlbWVudCBjcmVhdGlvbiB0b1xuICAvLyBzdWNjZWVkIGFuZCB0aGVyZSB3aWxsIGxpa2VseSBiZSBlcnJvcnMgaW4gcmVuZGVyLlxuXG4gIGlmICghdmFsaWRUeXBlKSB7XG4gICAgdmFyIGluZm8gPSAnJztcblxuICAgIGlmICh0eXBlID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIHR5cGUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IG51bGwgJiYgT2JqZWN0LmtleXModHlwZSkubGVuZ3RoID09PSAwKSB7XG4gICAgICBpbmZvICs9ICcgWW91IGxpa2VseSBmb3Jnb3QgdG8gZXhwb3J0IHlvdXIgY29tcG9uZW50IGZyb20gdGhlIGZpbGUgJyArIFwiaXQncyBkZWZpbmVkIGluLCBvciB5b3UgbWlnaHQgaGF2ZSBtaXhlZCB1cCBkZWZhdWx0IGFuZCBuYW1lZCBpbXBvcnRzLlwiO1xuICAgIH1cblxuICAgIHZhciBzb3VyY2VJbmZvID0gZ2V0U291cmNlSW5mb0Vycm9yQWRkZW5kdW1Gb3JQcm9wcyhwcm9wcyk7XG5cbiAgICBpZiAoc291cmNlSW5mbykge1xuICAgICAgaW5mbyArPSBzb3VyY2VJbmZvO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbmZvICs9IGdldERlY2xhcmF0aW9uRXJyb3JBZGRlbmR1bSgpO1xuICAgIH1cblxuICAgIHZhciB0eXBlU3RyaW5nO1xuXG4gICAgaWYgKHR5cGUgPT09IG51bGwpIHtcbiAgICAgIHR5cGVTdHJpbmcgPSAnbnVsbCc7XG4gICAgfSBlbHNlIGlmIChpc0FycmF5KHR5cGUpKSB7XG4gICAgICB0eXBlU3RyaW5nID0gJ2FycmF5JztcbiAgICB9IGVsc2UgaWYgKHR5cGUgIT09IHVuZGVmaW5lZCAmJiB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUpIHtcbiAgICAgIHR5cGVTdHJpbmcgPSBcIjxcIiArIChnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZS50eXBlKSB8fCAnVW5rbm93bicpICsgXCIgLz5cIjtcbiAgICAgIGluZm8gPSAnIERpZCB5b3UgYWNjaWRlbnRhbGx5IGV4cG9ydCBhIEpTWCBsaXRlcmFsIGluc3RlYWQgb2YgYSBjb21wb25lbnQ/JztcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZVN0cmluZyA9IHR5cGVvZiB0eXBlO1xuICAgIH1cblxuICAgIHtcbiAgICAgIGVycm9yKCdSZWFjdC5jcmVhdGVFbGVtZW50OiB0eXBlIGlzIGludmFsaWQgLS0gZXhwZWN0ZWQgYSBzdHJpbmcgKGZvciAnICsgJ2J1aWx0LWluIGNvbXBvbmVudHMpIG9yIGEgY2xhc3MvZnVuY3Rpb24gKGZvciBjb21wb3NpdGUgJyArICdjb21wb25lbnRzKSBidXQgZ290OiAlcy4lcycsIHR5cGVTdHJpbmcsIGluZm8pO1xuICAgIH1cbiAgfVxuXG4gIHZhciBlbGVtZW50ID0gY3JlYXRlRWxlbWVudC5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyAvLyBUaGUgcmVzdWx0IGNhbiBiZSBudWxsaXNoIGlmIGEgbW9jayBvciBhIGN1c3RvbSBmdW5jdGlvbiBpcyB1c2VkLlxuICAvLyBUT0RPOiBEcm9wIHRoaXMgd2hlbiB0aGVzZSBhcmUgbm8gbG9uZ2VyIGFsbG93ZWQgYXMgdGhlIHR5cGUgYXJndW1lbnQuXG5cbiAgaWYgKGVsZW1lbnQgPT0gbnVsbCkge1xuICAgIHJldHVybiBlbGVtZW50O1xuICB9IC8vIFNraXAga2V5IHdhcm5pbmcgaWYgdGhlIHR5cGUgaXNuJ3QgdmFsaWQgc2luY2Ugb3VyIGtleSB2YWxpZGF0aW9uIGxvZ2ljXG4gIC8vIGRvZXNuJ3QgZXhwZWN0IGEgbm9uLXN0cmluZy9mdW5jdGlvbiB0eXBlIGFuZCBjYW4gdGhyb3cgY29uZnVzaW5nIGVycm9ycy5cbiAgLy8gV2UgZG9uJ3Qgd2FudCBleGNlcHRpb24gYmVoYXZpb3IgdG8gZGlmZmVyIGJldHdlZW4gZGV2IGFuZCBwcm9kLlxuICAvLyAoUmVuZGVyaW5nIHdpbGwgdGhyb3cgd2l0aCBhIGhlbHBmdWwgbWVzc2FnZSBhbmQgYXMgc29vbiBhcyB0aGUgdHlwZSBpc1xuICAvLyBmaXhlZCwgdGhlIGtleSB3YXJuaW5ncyB3aWxsIGFwcGVhci4pXG5cblxuICBpZiAodmFsaWRUeXBlKSB7XG4gICAgZm9yICh2YXIgaSA9IDI7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGFyZ3VtZW50c1tpXSwgdHlwZSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUpIHtcbiAgICB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZWxlbWVudCk7XG4gIH0gZWxzZSB7XG4gICAgdmFsaWRhdGVQcm9wVHlwZXMoZWxlbWVudCk7XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn1cbnZhciBkaWRXYXJuQWJvdXREZXByZWNhdGVkQ3JlYXRlRmFjdG9yeSA9IGZhbHNlO1xuZnVuY3Rpb24gY3JlYXRlRmFjdG9yeVdpdGhWYWxpZGF0aW9uKHR5cGUpIHtcbiAgdmFyIHZhbGlkYXRlZEZhY3RvcnkgPSBjcmVhdGVFbGVtZW50V2l0aFZhbGlkYXRpb24uYmluZChudWxsLCB0eXBlKTtcbiAgdmFsaWRhdGVkRmFjdG9yeS50eXBlID0gdHlwZTtcblxuICB7XG4gICAgaWYgKCFkaWRXYXJuQWJvdXREZXByZWNhdGVkQ3JlYXRlRmFjdG9yeSkge1xuICAgICAgZGlkV2FybkFib3V0RGVwcmVjYXRlZENyZWF0ZUZhY3RvcnkgPSB0cnVlO1xuXG4gICAgICB3YXJuKCdSZWFjdC5jcmVhdGVGYWN0b3J5KCkgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluICcgKyAnYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gQ29uc2lkZXIgdXNpbmcgSlNYICcgKyAnb3IgdXNlIFJlYWN0LmNyZWF0ZUVsZW1lbnQoKSBkaXJlY3RseSBpbnN0ZWFkLicpO1xuICAgIH0gLy8gTGVnYWN5IGhvb2s6IHJlbW92ZSBpdFxuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsaWRhdGVkRmFjdG9yeSwgJ3R5cGUnLCB7XG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICB3YXJuKCdGYWN0b3J5LnR5cGUgaXMgZGVwcmVjYXRlZC4gQWNjZXNzIHRoZSBjbGFzcyBkaXJlY3RseSAnICsgJ2JlZm9yZSBwYXNzaW5nIGl0IHRvIGNyZWF0ZUZhY3RvcnkuJyk7XG5cbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICd0eXBlJywge1xuICAgICAgICAgIHZhbHVlOiB0eXBlXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB2YWxpZGF0ZWRGYWN0b3J5O1xufVxuZnVuY3Rpb24gY2xvbmVFbGVtZW50V2l0aFZhbGlkYXRpb24oZWxlbWVudCwgcHJvcHMsIGNoaWxkcmVuKSB7XG4gIHZhciBuZXdFbGVtZW50ID0gY2xvbmVFbGVtZW50LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG5cbiAgZm9yICh2YXIgaSA9IDI7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YWxpZGF0ZUNoaWxkS2V5cyhhcmd1bWVudHNbaV0sIG5ld0VsZW1lbnQudHlwZSk7XG4gIH1cblxuICB2YWxpZGF0ZVByb3BUeXBlcyhuZXdFbGVtZW50KTtcbiAgcmV0dXJuIG5ld0VsZW1lbnQ7XG59XG5cbmZ1bmN0aW9uIHN0YXJ0VHJhbnNpdGlvbihzY29wZSwgb3B0aW9ucykge1xuICB2YXIgcHJldlRyYW5zaXRpb24gPSBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZy50cmFuc2l0aW9uO1xuICBSZWFjdEN1cnJlbnRCYXRjaENvbmZpZy50cmFuc2l0aW9uID0ge307XG4gIHZhciBjdXJyZW50VHJhbnNpdGlvbiA9IFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb247XG5cbiAge1xuICAgIFJlYWN0Q3VycmVudEJhdGNoQ29uZmlnLnRyYW5zaXRpb24uX3VwZGF0ZWRGaWJlcnMgPSBuZXcgU2V0KCk7XG4gIH1cblxuICB0cnkge1xuICAgIHNjb3BlKCk7XG4gIH0gZmluYWxseSB7XG4gICAgUmVhY3RDdXJyZW50QmF0Y2hDb25maWcudHJhbnNpdGlvbiA9IHByZXZUcmFuc2l0aW9uO1xuXG4gICAge1xuICAgICAgaWYgKHByZXZUcmFuc2l0aW9uID09PSBudWxsICYmIGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzKSB7XG4gICAgICAgIHZhciB1cGRhdGVkRmliZXJzQ291bnQgPSBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycy5zaXplO1xuXG4gICAgICAgIGlmICh1cGRhdGVkRmliZXJzQ291bnQgPiAxMCkge1xuICAgICAgICAgIHdhcm4oJ0RldGVjdGVkIGEgbGFyZ2UgbnVtYmVyIG9mIHVwZGF0ZXMgaW5zaWRlIHN0YXJ0VHJhbnNpdGlvbi4gJyArICdJZiB0aGlzIGlzIGR1ZSB0byBhIHN1YnNjcmlwdGlvbiBwbGVhc2UgcmUtd3JpdGUgaXQgdG8gdXNlIFJlYWN0IHByb3ZpZGVkIGhvb2tzLiAnICsgJ090aGVyd2lzZSBjb25jdXJyZW50IG1vZGUgZ3VhcmFudGVlcyBhcmUgb2ZmIHRoZSB0YWJsZS4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzLmNsZWFyKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBkaWRXYXJuQWJvdXRNZXNzYWdlQ2hhbm5lbCA9IGZhbHNlO1xudmFyIGVucXVldWVUYXNrSW1wbCA9IG51bGw7XG5mdW5jdGlvbiBlbnF1ZXVlVGFzayh0YXNrKSB7XG4gIGlmIChlbnF1ZXVlVGFza0ltcGwgPT09IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgLy8gcmVhZCByZXF1aXJlIG9mZiB0aGUgbW9kdWxlIG9iamVjdCB0byBnZXQgYXJvdW5kIHRoZSBidW5kbGVycy5cbiAgICAgIC8vIHdlIGRvbid0IHdhbnQgdGhlbSB0byBkZXRlY3QgYSByZXF1aXJlIGFuZCBidW5kbGUgYSBOb2RlIHBvbHlmaWxsLlxuICAgICAgdmFyIHJlcXVpcmVTdHJpbmcgPSAoJ3JlcXVpcmUnICsgTWF0aC5yYW5kb20oKSkuc2xpY2UoMCwgNyk7XG4gICAgICB2YXIgbm9kZVJlcXVpcmUgPSBtb2R1bGUgJiYgbW9kdWxlW3JlcXVpcmVTdHJpbmddOyAvLyBhc3N1bWluZyB3ZSdyZSBpbiBub2RlLCBsZXQncyB0cnkgdG8gZ2V0IG5vZGUnc1xuICAgICAgLy8gdmVyc2lvbiBvZiBzZXRJbW1lZGlhdGUsIGJ5cGFzc2luZyBmYWtlIHRpbWVycyBpZiBhbnkuXG5cbiAgICAgIGVucXVldWVUYXNrSW1wbCA9IG5vZGVSZXF1aXJlLmNhbGwobW9kdWxlLCAndGltZXJzJykuc2V0SW1tZWRpYXRlO1xuICAgIH0gY2F0Y2ggKF9lcnIpIHtcbiAgICAgIC8vIHdlJ3JlIGluIGEgYnJvd3NlclxuICAgICAgLy8gd2UgY2FuJ3QgdXNlIHJlZ3VsYXIgdGltZXJzIGJlY2F1c2UgdGhleSBtYXkgc3RpbGwgYmUgZmFrZWRcbiAgICAgIC8vIHNvIHdlIHRyeSBNZXNzYWdlQ2hhbm5lbCtwb3N0TWVzc2FnZSBpbnN0ZWFkXG4gICAgICBlbnF1ZXVlVGFza0ltcGwgPSBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbiAgICAgICAge1xuICAgICAgICAgIGlmIChkaWRXYXJuQWJvdXRNZXNzYWdlQ2hhbm5lbCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGRpZFdhcm5BYm91dE1lc3NhZ2VDaGFubmVsID0gdHJ1ZTtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBNZXNzYWdlQ2hhbm5lbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgZXJyb3IoJ1RoaXMgYnJvd3NlciBkb2VzIG5vdCBoYXZlIGEgTWVzc2FnZUNoYW5uZWwgaW1wbGVtZW50YXRpb24sICcgKyAnc28gZW5xdWV1aW5nIHRhc2tzIHZpYSBhd2FpdCBhY3QoYXN5bmMgKCkgPT4gLi4uKSB3aWxsIGZhaWwuICcgKyAnUGxlYXNlIGZpbGUgYW4gaXNzdWUgYXQgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3VlcyAnICsgJ2lmIHlvdSBlbmNvdW50ZXIgdGhpcyB3YXJuaW5nLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7XG4gICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gY2FsbGJhY2s7XG4gICAgICAgIGNoYW5uZWwucG9ydDIucG9zdE1lc3NhZ2UodW5kZWZpbmVkKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVucXVldWVUYXNrSW1wbCh0YXNrKTtcbn1cblxudmFyIGFjdFNjb3BlRGVwdGggPSAwO1xudmFyIGRpZFdhcm5Ob0F3YWl0QWN0ID0gZmFsc2U7XG5mdW5jdGlvbiBhY3QoY2FsbGJhY2spIHtcbiAge1xuICAgIC8vIGBhY3RgIGNhbGxzIGNhbiBiZSBuZXN0ZWQsIHNvIHdlIHRyYWNrIHRoZSBkZXB0aC4gVGhpcyByZXByZXNlbnRzIHRoZVxuICAgIC8vIG51bWJlciBvZiBgYWN0YCBzY29wZXMgb24gdGhlIHN0YWNrLlxuICAgIHZhciBwcmV2QWN0U2NvcGVEZXB0aCA9IGFjdFNjb3BlRGVwdGg7XG4gICAgYWN0U2NvcGVEZXB0aCsrO1xuXG4gICAgaWYgKFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgIC8vIFRoaXMgaXMgdGhlIG91dGVybW9zdCBgYWN0YCBzY29wZS4gSW5pdGlhbGl6ZSB0aGUgcXVldWUuIFRoZSByZWNvbmNpbGVyXG4gICAgICAvLyB3aWxsIGRldGVjdCB0aGUgcXVldWUgYW5kIHVzZSBpdCBpbnN0ZWFkIG9mIFNjaGVkdWxlci5cbiAgICAgIFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQgPSBbXTtcbiAgICB9XG5cbiAgICB2YXIgcHJldklzQmF0Y2hpbmdMZWdhY3kgPSBSZWFjdEN1cnJlbnRBY3RRdWV1ZS5pc0JhdGNoaW5nTGVnYWN5O1xuICAgIHZhciByZXN1bHQ7XG5cbiAgICB0cnkge1xuICAgICAgLy8gVXNlZCB0byByZXByb2R1Y2UgYmVoYXZpb3Igb2YgYGJhdGNoZWRVcGRhdGVzYCBpbiBsZWdhY3kgbW9kZS4gT25seVxuICAgICAgLy8gc2V0IHRvIGB0cnVlYCB3aGlsZSB0aGUgZ2l2ZW4gY2FsbGJhY2sgaXMgZXhlY3V0ZWQsIG5vdCBmb3IgdXBkYXRlc1xuICAgICAgLy8gdHJpZ2dlcmVkIGR1cmluZyBhbiBhc3luYyBldmVudCwgYmVjYXVzZSB0aGlzIGlzIGhvdyB0aGUgbGVnYWN5XG4gICAgICAvLyBpbXBsZW1lbnRhdGlvbiBvZiBgYWN0YCBiZWhhdmVkLlxuICAgICAgUmVhY3RDdXJyZW50QWN0UXVldWUuaXNCYXRjaGluZ0xlZ2FjeSA9IHRydWU7XG4gICAgICByZXN1bHQgPSBjYWxsYmFjaygpOyAvLyBSZXBsaWNhdGUgYmVoYXZpb3Igb2Ygb3JpZ2luYWwgYGFjdGAgaW1wbGVtZW50YXRpb24gaW4gbGVnYWN5IG1vZGUsXG4gICAgICAvLyB3aGljaCBmbHVzaGVkIHVwZGF0ZXMgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHNjb3BlIGZ1bmN0aW9uIGV4aXRzLCBldmVuXG4gICAgICAvLyBpZiBpdCdzIGFuIGFzeW5jIGZ1bmN0aW9uLlxuXG4gICAgICBpZiAoIXByZXZJc0JhdGNoaW5nTGVnYWN5ICYmIFJlYWN0Q3VycmVudEFjdFF1ZXVlLmRpZFNjaGVkdWxlTGVnYWN5VXBkYXRlKSB7XG4gICAgICAgIHZhciBxdWV1ZSA9IFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQ7XG5cbiAgICAgICAgaWYgKHF1ZXVlICE9PSBudWxsKSB7XG4gICAgICAgICAgUmVhY3RDdXJyZW50QWN0UXVldWUuZGlkU2NoZWR1bGVMZWdhY3lVcGRhdGUgPSBmYWxzZTtcbiAgICAgICAgICBmbHVzaEFjdFF1ZXVlKHF1ZXVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBwb3BBY3RTY29wZShwcmV2QWN0U2NvcGVEZXB0aCk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgUmVhY3RDdXJyZW50QWN0UXVldWUuaXNCYXRjaGluZ0xlZ2FjeSA9IHByZXZJc0JhdGNoaW5nTGVnYWN5O1xuICAgIH1cblxuICAgIGlmIChyZXN1bHQgIT09IG51bGwgJiYgdHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIHJlc3VsdC50aGVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB2YXIgdGhlbmFibGVSZXN1bHQgPSByZXN1bHQ7IC8vIFRoZSBjYWxsYmFjayBpcyBhbiBhc3luYyBmdW5jdGlvbiAoaS5lLiByZXR1cm5lZCBhIHByb21pc2UpLiBXYWl0XG4gICAgICAvLyBmb3IgaXQgdG8gcmVzb2x2ZSBiZWZvcmUgZXhpdGluZyB0aGUgY3VycmVudCBzY29wZS5cblxuICAgICAgdmFyIHdhc0F3YWl0ZWQgPSBmYWxzZTtcbiAgICAgIHZhciB0aGVuYWJsZSA9IHtcbiAgICAgICAgdGhlbjogZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgIHdhc0F3YWl0ZWQgPSB0cnVlO1xuICAgICAgICAgIHRoZW5hYmxlUmVzdWx0LnRoZW4oZnVuY3Rpb24gKHJldHVyblZhbHVlKSB7XG4gICAgICAgICAgICBwb3BBY3RTY29wZShwcmV2QWN0U2NvcGVEZXB0aCk7XG5cbiAgICAgICAgICAgIGlmIChhY3RTY29wZURlcHRoID09PSAwKSB7XG4gICAgICAgICAgICAgIC8vIFdlJ3ZlIGV4aXRlZCB0aGUgb3V0ZXJtb3N0IGFjdCBzY29wZS4gUmVjdXJzaXZlbHkgZmx1c2ggdGhlXG4gICAgICAgICAgICAgIC8vIHF1ZXVlIHVudGlsIHRoZXJlJ3Mgbm8gcmVtYWluaW5nIHdvcmsuXG4gICAgICAgICAgICAgIHJlY3Vyc2l2ZWx5Rmx1c2hBc3luY0FjdFdvcmsocmV0dXJuVmFsdWUsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXNvbHZlKHJldHVyblZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgIC8vIFRoZSBjYWxsYmFjayB0aHJldyBhbiBlcnJvci5cbiAgICAgICAgICAgIHBvcEFjdFNjb3BlKHByZXZBY3RTY29wZURlcHRoKTtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHtcbiAgICAgICAgaWYgKCFkaWRXYXJuTm9Bd2FpdEFjdCAmJiB0eXBlb2YgUHJvbWlzZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uICgpIHt9KS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICghd2FzQXdhaXRlZCkge1xuICAgICAgICAgICAgICBkaWRXYXJuTm9Bd2FpdEFjdCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgZXJyb3IoJ1lvdSBjYWxsZWQgYWN0KGFzeW5jICgpID0+IC4uLikgd2l0aG91dCBhd2FpdC4gJyArICdUaGlzIGNvdWxkIGxlYWQgdG8gdW5leHBlY3RlZCB0ZXN0aW5nIGJlaGF2aW91ciwgJyArICdpbnRlcmxlYXZpbmcgbXVsdGlwbGUgYWN0IGNhbGxzIGFuZCBtaXhpbmcgdGhlaXIgJyArICdzY29wZXMuICcgKyAnWW91IHNob3VsZCAtIGF3YWl0IGFjdChhc3luYyAoKSA9PiAuLi4pOycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGVuYWJsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHJldHVyblZhbHVlID0gcmVzdWx0OyAvLyBUaGUgY2FsbGJhY2sgaXMgbm90IGFuIGFzeW5jIGZ1bmN0aW9uLiBFeGl0IHRoZSBjdXJyZW50IHNjb3BlXG4gICAgICAvLyBpbW1lZGlhdGVseSwgd2l0aG91dCBhd2FpdGluZy5cblxuICAgICAgcG9wQWN0U2NvcGUocHJldkFjdFNjb3BlRGVwdGgpO1xuXG4gICAgICBpZiAoYWN0U2NvcGVEZXB0aCA9PT0gMCkge1xuICAgICAgICAvLyBFeGl0aW5nIHRoZSBvdXRlcm1vc3QgYWN0IHNjb3BlLiBGbHVzaCB0aGUgcXVldWUuXG4gICAgICAgIHZhciBfcXVldWUgPSBSZWFjdEN1cnJlbnRBY3RRdWV1ZS5jdXJyZW50O1xuXG4gICAgICAgIGlmIChfcXVldWUgIT09IG51bGwpIHtcbiAgICAgICAgICBmbHVzaEFjdFF1ZXVlKF9xdWV1ZSk7XG4gICAgICAgICAgUmVhY3RDdXJyZW50QWN0UXVldWUuY3VycmVudCA9IG51bGw7XG4gICAgICAgIH0gLy8gUmV0dXJuIGEgdGhlbmFibGUuIElmIHRoZSB1c2VyIGF3YWl0cyBpdCwgd2UnbGwgZmx1c2ggYWdhaW4gaW5cbiAgICAgICAgLy8gY2FzZSBhZGRpdGlvbmFsIHdvcmsgd2FzIHNjaGVkdWxlZCBieSBhIG1pY3JvdGFzay5cblxuXG4gICAgICAgIHZhciBfdGhlbmFibGUgPSB7XG4gICAgICAgICAgdGhlbjogZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgLy8gQ29uZmlybSB3ZSBoYXZlbid0IHJlLWVudGVyZWQgYW5vdGhlciBgYWN0YCBzY29wZSwgaW4gY2FzZVxuICAgICAgICAgICAgLy8gdGhlIHVzZXIgZG9lcyBzb21ldGhpbmcgd2VpcmQgbGlrZSBhd2FpdCB0aGUgdGhlbmFibGVcbiAgICAgICAgICAgIC8vIG11bHRpcGxlIHRpbWVzLlxuICAgICAgICAgICAgaWYgKFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgLy8gUmVjdXJzaXZlbHkgZmx1c2ggdGhlIHF1ZXVlIHVudGlsIHRoZXJlJ3Mgbm8gcmVtYWluaW5nIHdvcmsuXG4gICAgICAgICAgICAgIFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQgPSBbXTtcbiAgICAgICAgICAgICAgcmVjdXJzaXZlbHlGbHVzaEFzeW5jQWN0V29yayhyZXR1cm5WYWx1ZSwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlc29sdmUocmV0dXJuVmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIF90aGVuYWJsZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFNpbmNlIHdlJ3JlIGluc2lkZSBhIG5lc3RlZCBgYWN0YCBzY29wZSwgdGhlIHJldHVybmVkIHRoZW5hYmxlXG4gICAgICAgIC8vIGltbWVkaWF0ZWx5IHJlc29sdmVzLiBUaGUgb3V0ZXIgc2NvcGUgd2lsbCBmbHVzaCB0aGUgcXVldWUuXG4gICAgICAgIHZhciBfdGhlbmFibGUyID0ge1xuICAgICAgICAgIHRoZW46IGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIHJlc29sdmUocmV0dXJuVmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIF90aGVuYWJsZTI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHBvcEFjdFNjb3BlKHByZXZBY3RTY29wZURlcHRoKSB7XG4gIHtcbiAgICBpZiAocHJldkFjdFNjb3BlRGVwdGggIT09IGFjdFNjb3BlRGVwdGggLSAxKSB7XG4gICAgICBlcnJvcignWW91IHNlZW0gdG8gaGF2ZSBvdmVybGFwcGluZyBhY3QoKSBjYWxscywgdGhpcyBpcyBub3Qgc3VwcG9ydGVkLiAnICsgJ0JlIHN1cmUgdG8gYXdhaXQgcHJldmlvdXMgYWN0KCkgY2FsbHMgYmVmb3JlIG1ha2luZyBhIG5ldyBvbmUuICcpO1xuICAgIH1cblxuICAgIGFjdFNjb3BlRGVwdGggPSBwcmV2QWN0U2NvcGVEZXB0aDtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWN1cnNpdmVseUZsdXNoQXN5bmNBY3RXb3JrKHJldHVyblZhbHVlLCByZXNvbHZlLCByZWplY3QpIHtcbiAge1xuICAgIHZhciBxdWV1ZSA9IFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQ7XG5cbiAgICBpZiAocXVldWUgIT09IG51bGwpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGZsdXNoQWN0UXVldWUocXVldWUpO1xuICAgICAgICBlbnF1ZXVlVGFzayhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKHF1ZXVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgLy8gTm8gYWRkaXRpb25hbCB3b3JrIHdhcyBzY2hlZHVsZWQuIEZpbmlzaC5cbiAgICAgICAgICAgIFJlYWN0Q3VycmVudEFjdFF1ZXVlLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgICAgcmVzb2x2ZShyZXR1cm5WYWx1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEtlZXAgZmx1c2hpbmcgd29yayB1bnRpbCB0aGVyZSdzIG5vbmUgbGVmdC5cbiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5Rmx1c2hBc3luY0FjdFdvcmsocmV0dXJuVmFsdWUsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc29sdmUocmV0dXJuVmFsdWUpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgaXNGbHVzaGluZyA9IGZhbHNlO1xuXG5mdW5jdGlvbiBmbHVzaEFjdFF1ZXVlKHF1ZXVlKSB7XG4gIHtcbiAgICBpZiAoIWlzRmx1c2hpbmcpIHtcbiAgICAgIC8vIFByZXZlbnQgcmUtZW50cmFuY2UuXG4gICAgICBpc0ZsdXNoaW5nID0gdHJ1ZTtcbiAgICAgIHZhciBpID0gMDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgZm9yICg7IGkgPCBxdWV1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBjYWxsYmFjayA9IHF1ZXVlW2ldO1xuXG4gICAgICAgICAgZG8ge1xuICAgICAgICAgICAgY2FsbGJhY2sgPSBjYWxsYmFjayh0cnVlKTtcbiAgICAgICAgICB9IHdoaWxlIChjYWxsYmFjayAhPT0gbnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBxdWV1ZS5sZW5ndGggPSAwO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gSWYgc29tZXRoaW5nIHRocm93cywgbGVhdmUgdGhlIHJlbWFpbmluZyBjYWxsYmFja3Mgb24gdGhlIHF1ZXVlLlxuICAgICAgICBxdWV1ZSA9IHF1ZXVlLnNsaWNlKGkgKyAxKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpc0ZsdXNoaW5nID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnZhciBjcmVhdGVFbGVtZW50JDEgPSAgY3JlYXRlRWxlbWVudFdpdGhWYWxpZGF0aW9uIDtcbnZhciBjbG9uZUVsZW1lbnQkMSA9ICBjbG9uZUVsZW1lbnRXaXRoVmFsaWRhdGlvbiA7XG52YXIgY3JlYXRlRmFjdG9yeSA9ICBjcmVhdGVGYWN0b3J5V2l0aFZhbGlkYXRpb24gO1xudmFyIENoaWxkcmVuID0ge1xuICBtYXA6IG1hcENoaWxkcmVuLFxuICBmb3JFYWNoOiBmb3JFYWNoQ2hpbGRyZW4sXG4gIGNvdW50OiBjb3VudENoaWxkcmVuLFxuICB0b0FycmF5OiB0b0FycmF5LFxuICBvbmx5OiBvbmx5Q2hpbGRcbn07XG5cbmV4cG9ydHMuQ2hpbGRyZW4gPSBDaGlsZHJlbjtcbmV4cG9ydHMuQ29tcG9uZW50ID0gQ29tcG9uZW50O1xuZXhwb3J0cy5GcmFnbWVudCA9IFJFQUNUX0ZSQUdNRU5UX1RZUEU7XG5leHBvcnRzLlByb2ZpbGVyID0gUkVBQ1RfUFJPRklMRVJfVFlQRTtcbmV4cG9ydHMuUHVyZUNvbXBvbmVudCA9IFB1cmVDb21wb25lbnQ7XG5leHBvcnRzLlN0cmljdE1vZGUgPSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xuZXhwb3J0cy5TdXNwZW5zZSA9IFJFQUNUX1NVU1BFTlNFX1RZUEU7XG5leHBvcnRzLl9fU0VDUkVUX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1lPVV9XSUxMX0JFX0ZJUkVEID0gUmVhY3RTaGFyZWRJbnRlcm5hbHM7XG5leHBvcnRzLmNsb25lRWxlbWVudCA9IGNsb25lRWxlbWVudCQxO1xuZXhwb3J0cy5jcmVhdGVDb250ZXh0ID0gY3JlYXRlQ29udGV4dDtcbmV4cG9ydHMuY3JlYXRlRWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQkMTtcbmV4cG9ydHMuY3JlYXRlRmFjdG9yeSA9IGNyZWF0ZUZhY3Rvcnk7XG5leHBvcnRzLmNyZWF0ZVJlZiA9IGNyZWF0ZVJlZjtcbmV4cG9ydHMuZm9yd2FyZFJlZiA9IGZvcndhcmRSZWY7XG5leHBvcnRzLmlzVmFsaWRFbGVtZW50ID0gaXNWYWxpZEVsZW1lbnQ7XG5leHBvcnRzLmxhenkgPSBsYXp5O1xuZXhwb3J0cy5tZW1vID0gbWVtbztcbmV4cG9ydHMuc3RhcnRUcmFuc2l0aW9uID0gc3RhcnRUcmFuc2l0aW9uO1xuZXhwb3J0cy51bnN0YWJsZV9hY3QgPSBhY3Q7XG5leHBvcnRzLnVzZUNhbGxiYWNrID0gdXNlQ2FsbGJhY2s7XG5leHBvcnRzLnVzZUNvbnRleHQgPSB1c2VDb250ZXh0O1xuZXhwb3J0cy51c2VEZWJ1Z1ZhbHVlID0gdXNlRGVidWdWYWx1ZTtcbmV4cG9ydHMudXNlRGVmZXJyZWRWYWx1ZSA9IHVzZURlZmVycmVkVmFsdWU7XG5leHBvcnRzLnVzZUVmZmVjdCA9IHVzZUVmZmVjdDtcbmV4cG9ydHMudXNlSWQgPSB1c2VJZDtcbmV4cG9ydHMudXNlSW1wZXJhdGl2ZUhhbmRsZSA9IHVzZUltcGVyYXRpdmVIYW5kbGU7XG5leHBvcnRzLnVzZUluc2VydGlvbkVmZmVjdCA9IHVzZUluc2VydGlvbkVmZmVjdDtcbmV4cG9ydHMudXNlTGF5b3V0RWZmZWN0ID0gdXNlTGF5b3V0RWZmZWN0O1xuZXhwb3J0cy51c2VNZW1vID0gdXNlTWVtbztcbmV4cG9ydHMudXNlUmVkdWNlciA9IHVzZVJlZHVjZXI7XG5leHBvcnRzLnVzZVJlZiA9IHVzZVJlZjtcbmV4cG9ydHMudXNlU3RhdGUgPSB1c2VTdGF0ZTtcbmV4cG9ydHMudXNlU3luY0V4dGVybmFsU3RvcmUgPSB1c2VTeW5jRXh0ZXJuYWxTdG9yZTtcbmV4cG9ydHMudXNlVHJhbnNpdGlvbiA9IHVzZVRyYW5zaXRpb247XG5leHBvcnRzLnZlcnNpb24gPSBSZWFjdFZlcnNpb247XG4gICAgICAgICAgLyogZ2xvYmFsIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAqL1xuaWYgKFxuICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICE9PSAndW5kZWZpbmVkJyAmJlxuICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdG9wID09PVxuICAgICdmdW5jdGlvbidcbikge1xuICBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0b3AobmV3IEVycm9yKCkpO1xufVxuICAgICAgICBcbiAgfSkoKTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC5kZXZlbG9wbWVudC5qcycpO1xufVxuIiwiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogc2NoZWR1bGVyLmRldmVsb3BtZW50LmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIChmdW5jdGlvbigpIHtcblxuICAgICAgICAgICd1c2Ugc3RyaWN0JztcblxuLyogZ2xvYmFsIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAqL1xuaWYgKFxuICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICE9PSAndW5kZWZpbmVkJyAmJlxuICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdGFydCA9PT1cbiAgICAnZnVuY3Rpb24nXG4pIHtcbiAgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdGFydChuZXcgRXJyb3IoKSk7XG59XG4gICAgICAgICAgdmFyIGVuYWJsZVNjaGVkdWxlckRlYnVnZ2luZyA9IGZhbHNlO1xudmFyIGVuYWJsZVByb2ZpbGluZyA9IGZhbHNlO1xudmFyIGZyYW1lWWllbGRNcyA9IDU7XG5cbmZ1bmN0aW9uIHB1c2goaGVhcCwgbm9kZSkge1xuICB2YXIgaW5kZXggPSBoZWFwLmxlbmd0aDtcbiAgaGVhcC5wdXNoKG5vZGUpO1xuICBzaWZ0VXAoaGVhcCwgbm9kZSwgaW5kZXgpO1xufVxuZnVuY3Rpb24gcGVlayhoZWFwKSB7XG4gIHJldHVybiBoZWFwLmxlbmd0aCA9PT0gMCA/IG51bGwgOiBoZWFwWzBdO1xufVxuZnVuY3Rpb24gcG9wKGhlYXApIHtcbiAgaWYgKGhlYXAubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB2YXIgZmlyc3QgPSBoZWFwWzBdO1xuICB2YXIgbGFzdCA9IGhlYXAucG9wKCk7XG5cbiAgaWYgKGxhc3QgIT09IGZpcnN0KSB7XG4gICAgaGVhcFswXSA9IGxhc3Q7XG4gICAgc2lmdERvd24oaGVhcCwgbGFzdCwgMCk7XG4gIH1cblxuICByZXR1cm4gZmlyc3Q7XG59XG5cbmZ1bmN0aW9uIHNpZnRVcChoZWFwLCBub2RlLCBpKSB7XG4gIHZhciBpbmRleCA9IGk7XG5cbiAgd2hpbGUgKGluZGV4ID4gMCkge1xuICAgIHZhciBwYXJlbnRJbmRleCA9IGluZGV4IC0gMSA+Pj4gMTtcbiAgICB2YXIgcGFyZW50ID0gaGVhcFtwYXJlbnRJbmRleF07XG5cbiAgICBpZiAoY29tcGFyZShwYXJlbnQsIG5vZGUpID4gMCkge1xuICAgICAgLy8gVGhlIHBhcmVudCBpcyBsYXJnZXIuIFN3YXAgcG9zaXRpb25zLlxuICAgICAgaGVhcFtwYXJlbnRJbmRleF0gPSBub2RlO1xuICAgICAgaGVhcFtpbmRleF0gPSBwYXJlbnQ7XG4gICAgICBpbmRleCA9IHBhcmVudEluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUaGUgcGFyZW50IGlzIHNtYWxsZXIuIEV4aXQuXG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHNpZnREb3duKGhlYXAsIG5vZGUsIGkpIHtcbiAgdmFyIGluZGV4ID0gaTtcbiAgdmFyIGxlbmd0aCA9IGhlYXAubGVuZ3RoO1xuICB2YXIgaGFsZkxlbmd0aCA9IGxlbmd0aCA+Pj4gMTtcblxuICB3aGlsZSAoaW5kZXggPCBoYWxmTGVuZ3RoKSB7XG4gICAgdmFyIGxlZnRJbmRleCA9IChpbmRleCArIDEpICogMiAtIDE7XG4gICAgdmFyIGxlZnQgPSBoZWFwW2xlZnRJbmRleF07XG4gICAgdmFyIHJpZ2h0SW5kZXggPSBsZWZ0SW5kZXggKyAxO1xuICAgIHZhciByaWdodCA9IGhlYXBbcmlnaHRJbmRleF07IC8vIElmIHRoZSBsZWZ0IG9yIHJpZ2h0IG5vZGUgaXMgc21hbGxlciwgc3dhcCB3aXRoIHRoZSBzbWFsbGVyIG9mIHRob3NlLlxuXG4gICAgaWYgKGNvbXBhcmUobGVmdCwgbm9kZSkgPCAwKSB7XG4gICAgICBpZiAocmlnaHRJbmRleCA8IGxlbmd0aCAmJiBjb21wYXJlKHJpZ2h0LCBsZWZ0KSA8IDApIHtcbiAgICAgICAgaGVhcFtpbmRleF0gPSByaWdodDtcbiAgICAgICAgaGVhcFtyaWdodEluZGV4XSA9IG5vZGU7XG4gICAgICAgIGluZGV4ID0gcmlnaHRJbmRleDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGhlYXBbaW5kZXhdID0gbGVmdDtcbiAgICAgICAgaGVhcFtsZWZ0SW5kZXhdID0gbm9kZTtcbiAgICAgICAgaW5kZXggPSBsZWZ0SW5kZXg7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChyaWdodEluZGV4IDwgbGVuZ3RoICYmIGNvbXBhcmUocmlnaHQsIG5vZGUpIDwgMCkge1xuICAgICAgaGVhcFtpbmRleF0gPSByaWdodDtcbiAgICAgIGhlYXBbcmlnaHRJbmRleF0gPSBub2RlO1xuICAgICAgaW5kZXggPSByaWdodEluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBOZWl0aGVyIGNoaWxkIGlzIHNtYWxsZXIuIEV4aXQuXG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNvbXBhcmUoYSwgYikge1xuICAvLyBDb21wYXJlIHNvcnQgaW5kZXggZmlyc3QsIHRoZW4gdGFzayBpZC5cbiAgdmFyIGRpZmYgPSBhLnNvcnRJbmRleCAtIGIuc29ydEluZGV4O1xuICByZXR1cm4gZGlmZiAhPT0gMCA/IGRpZmYgOiBhLmlkIC0gYi5pZDtcbn1cblxuLy8gVE9ETzogVXNlIHN5bWJvbHM/XG52YXIgSW1tZWRpYXRlUHJpb3JpdHkgPSAxO1xudmFyIFVzZXJCbG9ja2luZ1ByaW9yaXR5ID0gMjtcbnZhciBOb3JtYWxQcmlvcml0eSA9IDM7XG52YXIgTG93UHJpb3JpdHkgPSA0O1xudmFyIElkbGVQcmlvcml0eSA9IDU7XG5cbmZ1bmN0aW9uIG1hcmtUYXNrRXJyb3JlZCh0YXNrLCBtcykge1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby12YXIgKi9cblxudmFyIGhhc1BlcmZvcm1hbmNlTm93ID0gdHlwZW9mIHBlcmZvcm1hbmNlID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgcGVyZm9ybWFuY2Uubm93ID09PSAnZnVuY3Rpb24nO1xuXG5pZiAoaGFzUGVyZm9ybWFuY2VOb3cpIHtcbiAgdmFyIGxvY2FsUGVyZm9ybWFuY2UgPSBwZXJmb3JtYW5jZTtcblxuICBleHBvcnRzLnVuc3RhYmxlX25vdyA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gbG9jYWxQZXJmb3JtYW5jZS5ub3coKTtcbiAgfTtcbn0gZWxzZSB7XG4gIHZhciBsb2NhbERhdGUgPSBEYXRlO1xuICB2YXIgaW5pdGlhbFRpbWUgPSBsb2NhbERhdGUubm93KCk7XG5cbiAgZXhwb3J0cy51bnN0YWJsZV9ub3cgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGxvY2FsRGF0ZS5ub3coKSAtIGluaXRpYWxUaW1lO1xuICB9O1xufSAvLyBNYXggMzEgYml0IGludGVnZXIuIFRoZSBtYXggaW50ZWdlciBzaXplIGluIFY4IGZvciAzMi1iaXQgc3lzdGVtcy5cbi8vIE1hdGgucG93KDIsIDMwKSAtIDFcbi8vIDBiMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExXG5cblxudmFyIG1heFNpZ25lZDMxQml0SW50ID0gMTA3Mzc0MTgyMzsgLy8gVGltZXMgb3V0IGltbWVkaWF0ZWx5XG5cbnZhciBJTU1FRElBVEVfUFJJT1JJVFlfVElNRU9VVCA9IC0xOyAvLyBFdmVudHVhbGx5IHRpbWVzIG91dFxuXG52YXIgVVNFUl9CTE9DS0lOR19QUklPUklUWV9USU1FT1VUID0gMjUwO1xudmFyIE5PUk1BTF9QUklPUklUWV9USU1FT1VUID0gNTAwMDtcbnZhciBMT1dfUFJJT1JJVFlfVElNRU9VVCA9IDEwMDAwOyAvLyBOZXZlciB0aW1lcyBvdXRcblxudmFyIElETEVfUFJJT1JJVFlfVElNRU9VVCA9IG1heFNpZ25lZDMxQml0SW50OyAvLyBUYXNrcyBhcmUgc3RvcmVkIG9uIGEgbWluIGhlYXBcblxudmFyIHRhc2tRdWV1ZSA9IFtdO1xudmFyIHRpbWVyUXVldWUgPSBbXTsgLy8gSW5jcmVtZW50aW5nIGlkIGNvdW50ZXIuIFVzZWQgdG8gbWFpbnRhaW4gaW5zZXJ0aW9uIG9yZGVyLlxuXG52YXIgdGFza0lkQ291bnRlciA9IDE7IC8vIFBhdXNpbmcgdGhlIHNjaGVkdWxlciBpcyB1c2VmdWwgZm9yIGRlYnVnZ2luZy5cbnZhciBjdXJyZW50VGFzayA9IG51bGw7XG52YXIgY3VycmVudFByaW9yaXR5TGV2ZWwgPSBOb3JtYWxQcmlvcml0eTsgLy8gVGhpcyBpcyBzZXQgd2hpbGUgcGVyZm9ybWluZyB3b3JrLCB0byBwcmV2ZW50IHJlLWVudHJhbmNlLlxuXG52YXIgaXNQZXJmb3JtaW5nV29yayA9IGZhbHNlO1xudmFyIGlzSG9zdENhbGxiYWNrU2NoZWR1bGVkID0gZmFsc2U7XG52YXIgaXNIb3N0VGltZW91dFNjaGVkdWxlZCA9IGZhbHNlOyAvLyBDYXB0dXJlIGxvY2FsIHJlZmVyZW5jZXMgdG8gbmF0aXZlIEFQSXMsIGluIGNhc2UgYSBwb2x5ZmlsbCBvdmVycmlkZXMgdGhlbS5cblxudmFyIGxvY2FsU2V0VGltZW91dCA9IHR5cGVvZiBzZXRUaW1lb3V0ID09PSAnZnVuY3Rpb24nID8gc2V0VGltZW91dCA6IG51bGw7XG52YXIgbG9jYWxDbGVhclRpbWVvdXQgPSB0eXBlb2YgY2xlYXJUaW1lb3V0ID09PSAnZnVuY3Rpb24nID8gY2xlYXJUaW1lb3V0IDogbnVsbDtcbnZhciBsb2NhbFNldEltbWVkaWF0ZSA9IHR5cGVvZiBzZXRJbW1lZGlhdGUgIT09ICd1bmRlZmluZWQnID8gc2V0SW1tZWRpYXRlIDogbnVsbDsgLy8gSUUgYW5kIE5vZGUuanMgKyBqc2RvbVxuXG52YXIgaXNJbnB1dFBlbmRpbmcgPSB0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiBuYXZpZ2F0b3Iuc2NoZWR1bGluZyAhPT0gdW5kZWZpbmVkICYmIG5hdmlnYXRvci5zY2hlZHVsaW5nLmlzSW5wdXRQZW5kaW5nICE9PSB1bmRlZmluZWQgPyBuYXZpZ2F0b3Iuc2NoZWR1bGluZy5pc0lucHV0UGVuZGluZy5iaW5kKG5hdmlnYXRvci5zY2hlZHVsaW5nKSA6IG51bGw7XG5cbmZ1bmN0aW9uIGFkdmFuY2VUaW1lcnMoY3VycmVudFRpbWUpIHtcbiAgLy8gQ2hlY2sgZm9yIHRhc2tzIHRoYXQgYXJlIG5vIGxvbmdlciBkZWxheWVkIGFuZCBhZGQgdGhlbSB0byB0aGUgcXVldWUuXG4gIHZhciB0aW1lciA9IHBlZWsodGltZXJRdWV1ZSk7XG5cbiAgd2hpbGUgKHRpbWVyICE9PSBudWxsKSB7XG4gICAgaWYgKHRpbWVyLmNhbGxiYWNrID09PSBudWxsKSB7XG4gICAgICAvLyBUaW1lciB3YXMgY2FuY2VsbGVkLlxuICAgICAgcG9wKHRpbWVyUXVldWUpO1xuICAgIH0gZWxzZSBpZiAodGltZXIuc3RhcnRUaW1lIDw9IGN1cnJlbnRUaW1lKSB7XG4gICAgICAvLyBUaW1lciBmaXJlZC4gVHJhbnNmZXIgdG8gdGhlIHRhc2sgcXVldWUuXG4gICAgICBwb3AodGltZXJRdWV1ZSk7XG4gICAgICB0aW1lci5zb3J0SW5kZXggPSB0aW1lci5leHBpcmF0aW9uVGltZTtcbiAgICAgIHB1c2godGFza1F1ZXVlLCB0aW1lcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlbWFpbmluZyB0aW1lcnMgYXJlIHBlbmRpbmcuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGltZXIgPSBwZWVrKHRpbWVyUXVldWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhbmRsZVRpbWVvdXQoY3VycmVudFRpbWUpIHtcbiAgaXNIb3N0VGltZW91dFNjaGVkdWxlZCA9IGZhbHNlO1xuICBhZHZhbmNlVGltZXJzKGN1cnJlbnRUaW1lKTtcblxuICBpZiAoIWlzSG9zdENhbGxiYWNrU2NoZWR1bGVkKSB7XG4gICAgaWYgKHBlZWsodGFza1F1ZXVlKSAhPT0gbnVsbCkge1xuICAgICAgaXNIb3N0Q2FsbGJhY2tTY2hlZHVsZWQgPSB0cnVlO1xuICAgICAgcmVxdWVzdEhvc3RDYWxsYmFjayhmbHVzaFdvcmspO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgZmlyc3RUaW1lciA9IHBlZWsodGltZXJRdWV1ZSk7XG5cbiAgICAgIGlmIChmaXJzdFRpbWVyICE9PSBudWxsKSB7XG4gICAgICAgIHJlcXVlc3RIb3N0VGltZW91dChoYW5kbGVUaW1lb3V0LCBmaXJzdFRpbWVyLnN0YXJ0VGltZSAtIGN1cnJlbnRUaW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZmx1c2hXb3JrKGhhc1RpbWVSZW1haW5pbmcsIGluaXRpYWxUaW1lKSB7XG5cblxuICBpc0hvc3RDYWxsYmFja1NjaGVkdWxlZCA9IGZhbHNlO1xuXG4gIGlmIChpc0hvc3RUaW1lb3V0U2NoZWR1bGVkKSB7XG4gICAgLy8gV2Ugc2NoZWR1bGVkIGEgdGltZW91dCBidXQgaXQncyBubyBsb25nZXIgbmVlZGVkLiBDYW5jZWwgaXQuXG4gICAgaXNIb3N0VGltZW91dFNjaGVkdWxlZCA9IGZhbHNlO1xuICAgIGNhbmNlbEhvc3RUaW1lb3V0KCk7XG4gIH1cblxuICBpc1BlcmZvcm1pbmdXb3JrID0gdHJ1ZTtcbiAgdmFyIHByZXZpb3VzUHJpb3JpdHlMZXZlbCA9IGN1cnJlbnRQcmlvcml0eUxldmVsO1xuXG4gIHRyeSB7XG4gICAgaWYgKGVuYWJsZVByb2ZpbGluZykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHdvcmtMb29wKGhhc1RpbWVSZW1haW5pbmcsIGluaXRpYWxUaW1lKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChjdXJyZW50VGFzayAhPT0gbnVsbCkge1xuICAgICAgICAgIHZhciBjdXJyZW50VGltZSA9IGV4cG9ydHMudW5zdGFibGVfbm93KCk7XG4gICAgICAgICAgbWFya1Rhc2tFcnJvcmVkKGN1cnJlbnRUYXNrLCBjdXJyZW50VGltZSk7XG4gICAgICAgICAgY3VycmVudFRhc2suaXNRdWV1ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBObyBjYXRjaCBpbiBwcm9kIGNvZGUgcGF0aC5cbiAgICAgIHJldHVybiB3b3JrTG9vcChoYXNUaW1lUmVtYWluaW5nLCBpbml0aWFsVGltZSk7XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIGN1cnJlbnRUYXNrID0gbnVsbDtcbiAgICBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IHByZXZpb3VzUHJpb3JpdHlMZXZlbDtcbiAgICBpc1BlcmZvcm1pbmdXb3JrID0gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gd29ya0xvb3AoaGFzVGltZVJlbWFpbmluZywgaW5pdGlhbFRpbWUpIHtcbiAgdmFyIGN1cnJlbnRUaW1lID0gaW5pdGlhbFRpbWU7XG4gIGFkdmFuY2VUaW1lcnMoY3VycmVudFRpbWUpO1xuICBjdXJyZW50VGFzayA9IHBlZWsodGFza1F1ZXVlKTtcblxuICB3aGlsZSAoY3VycmVudFRhc2sgIT09IG51bGwgJiYgIShlbmFibGVTY2hlZHVsZXJEZWJ1Z2dpbmcgKSkge1xuICAgIGlmIChjdXJyZW50VGFzay5leHBpcmF0aW9uVGltZSA+IGN1cnJlbnRUaW1lICYmICghaGFzVGltZVJlbWFpbmluZyB8fCBzaG91bGRZaWVsZFRvSG9zdCgpKSkge1xuICAgICAgLy8gVGhpcyBjdXJyZW50VGFzayBoYXNuJ3QgZXhwaXJlZCwgYW5kIHdlJ3ZlIHJlYWNoZWQgdGhlIGRlYWRsaW5lLlxuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgdmFyIGNhbGxiYWNrID0gY3VycmVudFRhc2suY2FsbGJhY2s7XG5cbiAgICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjdXJyZW50VGFzay5jYWxsYmFjayA9IG51bGw7XG4gICAgICBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IGN1cnJlbnRUYXNrLnByaW9yaXR5TGV2ZWw7XG4gICAgICB2YXIgZGlkVXNlckNhbGxiYWNrVGltZW91dCA9IGN1cnJlbnRUYXNrLmV4cGlyYXRpb25UaW1lIDw9IGN1cnJlbnRUaW1lO1xuXG4gICAgICB2YXIgY29udGludWF0aW9uQ2FsbGJhY2sgPSBjYWxsYmFjayhkaWRVc2VyQ2FsbGJhY2tUaW1lb3V0KTtcbiAgICAgIGN1cnJlbnRUaW1lID0gZXhwb3J0cy51bnN0YWJsZV9ub3coKTtcblxuICAgICAgaWYgKHR5cGVvZiBjb250aW51YXRpb25DYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjdXJyZW50VGFzay5jYWxsYmFjayA9IGNvbnRpbnVhdGlvbkNhbGxiYWNrO1xuICAgICAgfSBlbHNlIHtcblxuICAgICAgICBpZiAoY3VycmVudFRhc2sgPT09IHBlZWsodGFza1F1ZXVlKSkge1xuICAgICAgICAgIHBvcCh0YXNrUXVldWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGFkdmFuY2VUaW1lcnMoY3VycmVudFRpbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwb3AodGFza1F1ZXVlKTtcbiAgICB9XG5cbiAgICBjdXJyZW50VGFzayA9IHBlZWsodGFza1F1ZXVlKTtcbiAgfSAvLyBSZXR1cm4gd2hldGhlciB0aGVyZSdzIGFkZGl0aW9uYWwgd29ya1xuXG5cbiAgaWYgKGN1cnJlbnRUYXNrICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGZpcnN0VGltZXIgPSBwZWVrKHRpbWVyUXVldWUpO1xuXG4gICAgaWYgKGZpcnN0VGltZXIgIT09IG51bGwpIHtcbiAgICAgIHJlcXVlc3RIb3N0VGltZW91dChoYW5kbGVUaW1lb3V0LCBmaXJzdFRpbWVyLnN0YXJ0VGltZSAtIGN1cnJlbnRUaW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gdW5zdGFibGVfcnVuV2l0aFByaW9yaXR5KHByaW9yaXR5TGV2ZWwsIGV2ZW50SGFuZGxlcikge1xuICBzd2l0Y2ggKHByaW9yaXR5TGV2ZWwpIHtcbiAgICBjYXNlIEltbWVkaWF0ZVByaW9yaXR5OlxuICAgIGNhc2UgVXNlckJsb2NraW5nUHJpb3JpdHk6XG4gICAgY2FzZSBOb3JtYWxQcmlvcml0eTpcbiAgICBjYXNlIExvd1ByaW9yaXR5OlxuICAgIGNhc2UgSWRsZVByaW9yaXR5OlxuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcHJpb3JpdHlMZXZlbCA9IE5vcm1hbFByaW9yaXR5O1xuICB9XG5cbiAgdmFyIHByZXZpb3VzUHJpb3JpdHlMZXZlbCA9IGN1cnJlbnRQcmlvcml0eUxldmVsO1xuICBjdXJyZW50UHJpb3JpdHlMZXZlbCA9IHByaW9yaXR5TGV2ZWw7XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gZXZlbnRIYW5kbGVyKCk7XG4gIH0gZmluYWxseSB7XG4gICAgY3VycmVudFByaW9yaXR5TGV2ZWwgPSBwcmV2aW91c1ByaW9yaXR5TGV2ZWw7XG4gIH1cbn1cblxuZnVuY3Rpb24gdW5zdGFibGVfbmV4dChldmVudEhhbmRsZXIpIHtcbiAgdmFyIHByaW9yaXR5TGV2ZWw7XG5cbiAgc3dpdGNoIChjdXJyZW50UHJpb3JpdHlMZXZlbCkge1xuICAgIGNhc2UgSW1tZWRpYXRlUHJpb3JpdHk6XG4gICAgY2FzZSBVc2VyQmxvY2tpbmdQcmlvcml0eTpcbiAgICBjYXNlIE5vcm1hbFByaW9yaXR5OlxuICAgICAgLy8gU2hpZnQgZG93biB0byBub3JtYWwgcHJpb3JpdHlcbiAgICAgIHByaW9yaXR5TGV2ZWwgPSBOb3JtYWxQcmlvcml0eTtcbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIC8vIEFueXRoaW5nIGxvd2VyIHRoYW4gbm9ybWFsIHByaW9yaXR5IHNob3VsZCByZW1haW4gYXQgdGhlIGN1cnJlbnQgbGV2ZWwuXG4gICAgICBwcmlvcml0eUxldmVsID0gY3VycmVudFByaW9yaXR5TGV2ZWw7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIHZhciBwcmV2aW91c1ByaW9yaXR5TGV2ZWwgPSBjdXJyZW50UHJpb3JpdHlMZXZlbDtcbiAgY3VycmVudFByaW9yaXR5TGV2ZWwgPSBwcmlvcml0eUxldmVsO1xuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGV2ZW50SGFuZGxlcigpO1xuICB9IGZpbmFsbHkge1xuICAgIGN1cnJlbnRQcmlvcml0eUxldmVsID0gcHJldmlvdXNQcmlvcml0eUxldmVsO1xuICB9XG59XG5cbmZ1bmN0aW9uIHVuc3RhYmxlX3dyYXBDYWxsYmFjayhjYWxsYmFjaykge1xuICB2YXIgcGFyZW50UHJpb3JpdHlMZXZlbCA9IGN1cnJlbnRQcmlvcml0eUxldmVsO1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIC8vIFRoaXMgaXMgYSBmb3JrIG9mIHJ1bldpdGhQcmlvcml0eSwgaW5saW5lZCBmb3IgcGVyZm9ybWFuY2UuXG4gICAgdmFyIHByZXZpb3VzUHJpb3JpdHlMZXZlbCA9IGN1cnJlbnRQcmlvcml0eUxldmVsO1xuICAgIGN1cnJlbnRQcmlvcml0eUxldmVsID0gcGFyZW50UHJpb3JpdHlMZXZlbDtcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gY2FsbGJhY2suYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgY3VycmVudFByaW9yaXR5TGV2ZWwgPSBwcmV2aW91c1ByaW9yaXR5TGV2ZWw7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiB1bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrKHByaW9yaXR5TGV2ZWwsIGNhbGxiYWNrLCBvcHRpb25zKSB7XG4gIHZhciBjdXJyZW50VGltZSA9IGV4cG9ydHMudW5zdGFibGVfbm93KCk7XG4gIHZhciBzdGFydFRpbWU7XG5cbiAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnb2JqZWN0JyAmJiBvcHRpb25zICE9PSBudWxsKSB7XG4gICAgdmFyIGRlbGF5ID0gb3B0aW9ucy5kZWxheTtcblxuICAgIGlmICh0eXBlb2YgZGVsYXkgPT09ICdudW1iZXInICYmIGRlbGF5ID4gMCkge1xuICAgICAgc3RhcnRUaW1lID0gY3VycmVudFRpbWUgKyBkZWxheTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhcnRUaW1lID0gY3VycmVudFRpbWU7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHN0YXJ0VGltZSA9IGN1cnJlbnRUaW1lO1xuICB9XG5cbiAgdmFyIHRpbWVvdXQ7XG5cbiAgc3dpdGNoIChwcmlvcml0eUxldmVsKSB7XG4gICAgY2FzZSBJbW1lZGlhdGVQcmlvcml0eTpcbiAgICAgIHRpbWVvdXQgPSBJTU1FRElBVEVfUFJJT1JJVFlfVElNRU9VVDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBVc2VyQmxvY2tpbmdQcmlvcml0eTpcbiAgICAgIHRpbWVvdXQgPSBVU0VSX0JMT0NLSU5HX1BSSU9SSVRZX1RJTUVPVVQ7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgSWRsZVByaW9yaXR5OlxuICAgICAgdGltZW91dCA9IElETEVfUFJJT1JJVFlfVElNRU9VVDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBMb3dQcmlvcml0eTpcbiAgICAgIHRpbWVvdXQgPSBMT1dfUFJJT1JJVFlfVElNRU9VVDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBOb3JtYWxQcmlvcml0eTpcbiAgICBkZWZhdWx0OlxuICAgICAgdGltZW91dCA9IE5PUk1BTF9QUklPUklUWV9USU1FT1VUO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICB2YXIgZXhwaXJhdGlvblRpbWUgPSBzdGFydFRpbWUgKyB0aW1lb3V0O1xuICB2YXIgbmV3VGFzayA9IHtcbiAgICBpZDogdGFza0lkQ291bnRlcisrLFxuICAgIGNhbGxiYWNrOiBjYWxsYmFjayxcbiAgICBwcmlvcml0eUxldmVsOiBwcmlvcml0eUxldmVsLFxuICAgIHN0YXJ0VGltZTogc3RhcnRUaW1lLFxuICAgIGV4cGlyYXRpb25UaW1lOiBleHBpcmF0aW9uVGltZSxcbiAgICBzb3J0SW5kZXg6IC0xXG4gIH07XG5cbiAgaWYgKHN0YXJ0VGltZSA+IGN1cnJlbnRUaW1lKSB7XG4gICAgLy8gVGhpcyBpcyBhIGRlbGF5ZWQgdGFzay5cbiAgICBuZXdUYXNrLnNvcnRJbmRleCA9IHN0YXJ0VGltZTtcbiAgICBwdXNoKHRpbWVyUXVldWUsIG5ld1Rhc2spO1xuXG4gICAgaWYgKHBlZWsodGFza1F1ZXVlKSA9PT0gbnVsbCAmJiBuZXdUYXNrID09PSBwZWVrKHRpbWVyUXVldWUpKSB7XG4gICAgICAvLyBBbGwgdGFza3MgYXJlIGRlbGF5ZWQsIGFuZCB0aGlzIGlzIHRoZSB0YXNrIHdpdGggdGhlIGVhcmxpZXN0IGRlbGF5LlxuICAgICAgaWYgKGlzSG9zdFRpbWVvdXRTY2hlZHVsZWQpIHtcbiAgICAgICAgLy8gQ2FuY2VsIGFuIGV4aXN0aW5nIHRpbWVvdXQuXG4gICAgICAgIGNhbmNlbEhvc3RUaW1lb3V0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpc0hvc3RUaW1lb3V0U2NoZWR1bGVkID0gdHJ1ZTtcbiAgICAgIH0gLy8gU2NoZWR1bGUgYSB0aW1lb3V0LlxuXG5cbiAgICAgIHJlcXVlc3RIb3N0VGltZW91dChoYW5kbGVUaW1lb3V0LCBzdGFydFRpbWUgLSBjdXJyZW50VGltZSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG5ld1Rhc2suc29ydEluZGV4ID0gZXhwaXJhdGlvblRpbWU7XG4gICAgcHVzaCh0YXNrUXVldWUsIG5ld1Rhc2spO1xuICAgIC8vIHdhaXQgdW50aWwgdGhlIG5leHQgdGltZSB3ZSB5aWVsZC5cblxuXG4gICAgaWYgKCFpc0hvc3RDYWxsYmFja1NjaGVkdWxlZCAmJiAhaXNQZXJmb3JtaW5nV29yaykge1xuICAgICAgaXNIb3N0Q2FsbGJhY2tTY2hlZHVsZWQgPSB0cnVlO1xuICAgICAgcmVxdWVzdEhvc3RDYWxsYmFjayhmbHVzaFdvcmspO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXdUYXNrO1xufVxuXG5mdW5jdGlvbiB1bnN0YWJsZV9wYXVzZUV4ZWN1dGlvbigpIHtcbn1cblxuZnVuY3Rpb24gdW5zdGFibGVfY29udGludWVFeGVjdXRpb24oKSB7XG5cbiAgaWYgKCFpc0hvc3RDYWxsYmFja1NjaGVkdWxlZCAmJiAhaXNQZXJmb3JtaW5nV29yaykge1xuICAgIGlzSG9zdENhbGxiYWNrU2NoZWR1bGVkID0gdHJ1ZTtcbiAgICByZXF1ZXN0SG9zdENhbGxiYWNrKGZsdXNoV29yayk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdW5zdGFibGVfZ2V0Rmlyc3RDYWxsYmFja05vZGUoKSB7XG4gIHJldHVybiBwZWVrKHRhc2tRdWV1ZSk7XG59XG5cbmZ1bmN0aW9uIHVuc3RhYmxlX2NhbmNlbENhbGxiYWNrKHRhc2spIHtcbiAgLy8gcmVtb3ZlIGZyb20gdGhlIHF1ZXVlIGJlY2F1c2UgeW91IGNhbid0IHJlbW92ZSBhcmJpdHJhcnkgbm9kZXMgZnJvbSBhblxuICAvLyBhcnJheSBiYXNlZCBoZWFwLCBvbmx5IHRoZSBmaXJzdCBvbmUuKVxuXG5cbiAgdGFzay5jYWxsYmFjayA9IG51bGw7XG59XG5cbmZ1bmN0aW9uIHVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsKCkge1xuICByZXR1cm4gY3VycmVudFByaW9yaXR5TGV2ZWw7XG59XG5cbnZhciBpc01lc3NhZ2VMb29wUnVubmluZyA9IGZhbHNlO1xudmFyIHNjaGVkdWxlZEhvc3RDYWxsYmFjayA9IG51bGw7XG52YXIgdGFza1RpbWVvdXRJRCA9IC0xOyAvLyBTY2hlZHVsZXIgcGVyaW9kaWNhbGx5IHlpZWxkcyBpbiBjYXNlIHRoZXJlIGlzIG90aGVyIHdvcmsgb24gdGhlIG1haW5cbi8vIHRocmVhZCwgbGlrZSB1c2VyIGV2ZW50cy4gQnkgZGVmYXVsdCwgaXQgeWllbGRzIG11bHRpcGxlIHRpbWVzIHBlciBmcmFtZS5cbi8vIEl0IGRvZXMgbm90IGF0dGVtcHQgdG8gYWxpZ24gd2l0aCBmcmFtZSBib3VuZGFyaWVzLCBzaW5jZSBtb3N0IHRhc2tzIGRvbid0XG4vLyBuZWVkIHRvIGJlIGZyYW1lIGFsaWduZWQ7IGZvciB0aG9zZSB0aGF0IGRvLCB1c2UgcmVxdWVzdEFuaW1hdGlvbkZyYW1lLlxuXG52YXIgZnJhbWVJbnRlcnZhbCA9IGZyYW1lWWllbGRNcztcbnZhciBzdGFydFRpbWUgPSAtMTtcblxuZnVuY3Rpb24gc2hvdWxkWWllbGRUb0hvc3QoKSB7XG4gIHZhciB0aW1lRWxhcHNlZCA9IGV4cG9ydHMudW5zdGFibGVfbm93KCkgLSBzdGFydFRpbWU7XG5cbiAgaWYgKHRpbWVFbGFwc2VkIDwgZnJhbWVJbnRlcnZhbCkge1xuICAgIC8vIFRoZSBtYWluIHRocmVhZCBoYXMgb25seSBiZWVuIGJsb2NrZWQgZm9yIGEgcmVhbGx5IHNob3J0IGFtb3VudCBvZiB0aW1lO1xuICAgIC8vIHNtYWxsZXIgdGhhbiBhIHNpbmdsZSBmcmFtZS4gRG9uJ3QgeWllbGQgeWV0LlxuICAgIHJldHVybiBmYWxzZTtcbiAgfSAvLyBUaGUgbWFpbiB0aHJlYWQgaGFzIGJlZW4gYmxvY2tlZCBmb3IgYSBub24tbmVnbGlnaWJsZSBhbW91bnQgb2YgdGltZS4gV2VcblxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiByZXF1ZXN0UGFpbnQoKSB7XG5cbn1cblxuZnVuY3Rpb24gZm9yY2VGcmFtZVJhdGUoZnBzKSB7XG4gIGlmIChmcHMgPCAwIHx8IGZwcyA+IDEyNSkge1xuICAgIC8vIFVzaW5nIGNvbnNvbGVbJ2Vycm9yJ10gdG8gZXZhZGUgQmFiZWwgYW5kIEVTTGludFxuICAgIGNvbnNvbGVbJ2Vycm9yJ10oJ2ZvcmNlRnJhbWVSYXRlIHRha2VzIGEgcG9zaXRpdmUgaW50IGJldHdlZW4gMCBhbmQgMTI1LCAnICsgJ2ZvcmNpbmcgZnJhbWUgcmF0ZXMgaGlnaGVyIHRoYW4gMTI1IGZwcyBpcyBub3Qgc3VwcG9ydGVkJyk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGZwcyA+IDApIHtcbiAgICBmcmFtZUludGVydmFsID0gTWF0aC5mbG9vcigxMDAwIC8gZnBzKTtcbiAgfSBlbHNlIHtcbiAgICAvLyByZXNldCB0aGUgZnJhbWVyYXRlXG4gICAgZnJhbWVJbnRlcnZhbCA9IGZyYW1lWWllbGRNcztcbiAgfVxufVxuXG52YXIgcGVyZm9ybVdvcmtVbnRpbERlYWRsaW5lID0gZnVuY3Rpb24gKCkge1xuICBpZiAoc2NoZWR1bGVkSG9zdENhbGxiYWNrICE9PSBudWxsKSB7XG4gICAgdmFyIGN1cnJlbnRUaW1lID0gZXhwb3J0cy51bnN0YWJsZV9ub3coKTsgLy8gS2VlcCB0cmFjayBvZiB0aGUgc3RhcnQgdGltZSBzbyB3ZSBjYW4gbWVhc3VyZSBob3cgbG9uZyB0aGUgbWFpbiB0aHJlYWRcbiAgICAvLyBoYXMgYmVlbiBibG9ja2VkLlxuXG4gICAgc3RhcnRUaW1lID0gY3VycmVudFRpbWU7XG4gICAgdmFyIGhhc1RpbWVSZW1haW5pbmcgPSB0cnVlOyAvLyBJZiBhIHNjaGVkdWxlciB0YXNrIHRocm93cywgZXhpdCB0aGUgY3VycmVudCBicm93c2VyIHRhc2sgc28gdGhlXG4gICAgLy8gZXJyb3IgY2FuIGJlIG9ic2VydmVkLlxuICAgIC8vXG4gICAgLy8gSW50ZW50aW9uYWxseSBub3QgdXNpbmcgYSB0cnktY2F0Y2gsIHNpbmNlIHRoYXQgbWFrZXMgc29tZSBkZWJ1Z2dpbmdcbiAgICAvLyB0ZWNobmlxdWVzIGhhcmRlci4gSW5zdGVhZCwgaWYgYHNjaGVkdWxlZEhvc3RDYWxsYmFja2AgZXJyb3JzLCB0aGVuXG4gICAgLy8gYGhhc01vcmVXb3JrYCB3aWxsIHJlbWFpbiB0cnVlLCBhbmQgd2UnbGwgY29udGludWUgdGhlIHdvcmsgbG9vcC5cblxuICAgIHZhciBoYXNNb3JlV29yayA9IHRydWU7XG5cbiAgICB0cnkge1xuICAgICAgaGFzTW9yZVdvcmsgPSBzY2hlZHVsZWRIb3N0Q2FsbGJhY2soaGFzVGltZVJlbWFpbmluZywgY3VycmVudFRpbWUpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoaGFzTW9yZVdvcmspIHtcbiAgICAgICAgLy8gSWYgdGhlcmUncyBtb3JlIHdvcmssIHNjaGVkdWxlIHRoZSBuZXh0IG1lc3NhZ2UgZXZlbnQgYXQgdGhlIGVuZFxuICAgICAgICAvLyBvZiB0aGUgcHJlY2VkaW5nIG9uZS5cbiAgICAgICAgc2NoZWR1bGVQZXJmb3JtV29ya1VudGlsRGVhZGxpbmUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlzTWVzc2FnZUxvb3BSdW5uaW5nID0gZmFsc2U7XG4gICAgICAgIHNjaGVkdWxlZEhvc3RDYWxsYmFjayA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlzTWVzc2FnZUxvb3BSdW5uaW5nID0gZmFsc2U7XG4gIH0gLy8gWWllbGRpbmcgdG8gdGhlIGJyb3dzZXIgd2lsbCBnaXZlIGl0IGEgY2hhbmNlIHRvIHBhaW50LCBzbyB3ZSBjYW5cbn07XG5cbnZhciBzY2hlZHVsZVBlcmZvcm1Xb3JrVW50aWxEZWFkbGluZTtcblxuaWYgKHR5cGVvZiBsb2NhbFNldEltbWVkaWF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAvLyBOb2RlLmpzIGFuZCBvbGQgSUUuXG4gIC8vIFRoZXJlJ3MgYSBmZXcgcmVhc29ucyBmb3Igd2h5IHdlIHByZWZlciBzZXRJbW1lZGlhdGUuXG4gIC8vXG4gIC8vIFVubGlrZSBNZXNzYWdlQ2hhbm5lbCwgaXQgZG9lc24ndCBwcmV2ZW50IGEgTm9kZS5qcyBwcm9jZXNzIGZyb20gZXhpdGluZy5cbiAgLy8gKEV2ZW4gdGhvdWdoIHRoaXMgaXMgYSBET00gZm9yayBvZiB0aGUgU2NoZWR1bGVyLCB5b3UgY291bGQgZ2V0IGhlcmVcbiAgLy8gd2l0aCBhIG1peCBvZiBOb2RlLmpzIDE1Kywgd2hpY2ggaGFzIGEgTWVzc2FnZUNoYW5uZWwsIGFuZCBqc2RvbS4pXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMjA3NTZcbiAgLy9cbiAgLy8gQnV0IGFsc28sIGl0IHJ1bnMgZWFybGllciB3aGljaCBpcyB0aGUgc2VtYW50aWMgd2Ugd2FudC5cbiAgLy8gSWYgb3RoZXIgYnJvd3NlcnMgZXZlciBpbXBsZW1lbnQgaXQsIGl0J3MgYmV0dGVyIHRvIHVzZSBpdC5cbiAgLy8gQWx0aG91Z2ggYm90aCBvZiB0aGVzZSB3b3VsZCBiZSBpbmZlcmlvciB0byBuYXRpdmUgc2NoZWR1bGluZy5cbiAgc2NoZWR1bGVQZXJmb3JtV29ya1VudGlsRGVhZGxpbmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgbG9jYWxTZXRJbW1lZGlhdGUocGVyZm9ybVdvcmtVbnRpbERlYWRsaW5lKTtcbiAgfTtcbn0gZWxzZSBpZiAodHlwZW9mIE1lc3NhZ2VDaGFubmVsICE9PSAndW5kZWZpbmVkJykge1xuICAvLyBET00gYW5kIFdvcmtlciBlbnZpcm9ubWVudHMuXG4gIC8vIFdlIHByZWZlciBNZXNzYWdlQ2hhbm5lbCBiZWNhdXNlIG9mIHRoZSA0bXMgc2V0VGltZW91dCBjbGFtcGluZy5cbiAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTtcbiAgdmFyIHBvcnQgPSBjaGFubmVsLnBvcnQyO1xuICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHBlcmZvcm1Xb3JrVW50aWxEZWFkbGluZTtcblxuICBzY2hlZHVsZVBlcmZvcm1Xb3JrVW50aWxEZWFkbGluZSA9IGZ1bmN0aW9uICgpIHtcbiAgICBwb3J0LnBvc3RNZXNzYWdlKG51bGwpO1xuICB9O1xufSBlbHNlIHtcbiAgLy8gV2Ugc2hvdWxkIG9ubHkgZmFsbGJhY2sgaGVyZSBpbiBub24tYnJvd3NlciBlbnZpcm9ubWVudHMuXG4gIHNjaGVkdWxlUGVyZm9ybVdvcmtVbnRpbERlYWRsaW5lID0gZnVuY3Rpb24gKCkge1xuICAgIGxvY2FsU2V0VGltZW91dChwZXJmb3JtV29ya1VudGlsRGVhZGxpbmUsIDApO1xuICB9O1xufVxuXG5mdW5jdGlvbiByZXF1ZXN0SG9zdENhbGxiYWNrKGNhbGxiYWNrKSB7XG4gIHNjaGVkdWxlZEhvc3RDYWxsYmFjayA9IGNhbGxiYWNrO1xuXG4gIGlmICghaXNNZXNzYWdlTG9vcFJ1bm5pbmcpIHtcbiAgICBpc01lc3NhZ2VMb29wUnVubmluZyA9IHRydWU7XG4gICAgc2NoZWR1bGVQZXJmb3JtV29ya1VudGlsRGVhZGxpbmUoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXF1ZXN0SG9zdFRpbWVvdXQoY2FsbGJhY2ssIG1zKSB7XG4gIHRhc2tUaW1lb3V0SUQgPSBsb2NhbFNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgIGNhbGxiYWNrKGV4cG9ydHMudW5zdGFibGVfbm93KCkpO1xuICB9LCBtcyk7XG59XG5cbmZ1bmN0aW9uIGNhbmNlbEhvc3RUaW1lb3V0KCkge1xuICBsb2NhbENsZWFyVGltZW91dCh0YXNrVGltZW91dElEKTtcbiAgdGFza1RpbWVvdXRJRCA9IC0xO1xufVxuXG52YXIgdW5zdGFibGVfcmVxdWVzdFBhaW50ID0gcmVxdWVzdFBhaW50O1xudmFyIHVuc3RhYmxlX1Byb2ZpbGluZyA9ICBudWxsO1xuXG5leHBvcnRzLnVuc3RhYmxlX0lkbGVQcmlvcml0eSA9IElkbGVQcmlvcml0eTtcbmV4cG9ydHMudW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHkgPSBJbW1lZGlhdGVQcmlvcml0eTtcbmV4cG9ydHMudW5zdGFibGVfTG93UHJpb3JpdHkgPSBMb3dQcmlvcml0eTtcbmV4cG9ydHMudW5zdGFibGVfTm9ybWFsUHJpb3JpdHkgPSBOb3JtYWxQcmlvcml0eTtcbmV4cG9ydHMudW5zdGFibGVfUHJvZmlsaW5nID0gdW5zdGFibGVfUHJvZmlsaW5nO1xuZXhwb3J0cy51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eSA9IFVzZXJCbG9ja2luZ1ByaW9yaXR5O1xuZXhwb3J0cy51bnN0YWJsZV9jYW5jZWxDYWxsYmFjayA9IHVuc3RhYmxlX2NhbmNlbENhbGxiYWNrO1xuZXhwb3J0cy51bnN0YWJsZV9jb250aW51ZUV4ZWN1dGlvbiA9IHVuc3RhYmxlX2NvbnRpbnVlRXhlY3V0aW9uO1xuZXhwb3J0cy51bnN0YWJsZV9mb3JjZUZyYW1lUmF0ZSA9IGZvcmNlRnJhbWVSYXRlO1xuZXhwb3J0cy51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbCA9IHVuc3RhYmxlX2dldEN1cnJlbnRQcmlvcml0eUxldmVsO1xuZXhwb3J0cy51bnN0YWJsZV9nZXRGaXJzdENhbGxiYWNrTm9kZSA9IHVuc3RhYmxlX2dldEZpcnN0Q2FsbGJhY2tOb2RlO1xuZXhwb3J0cy51bnN0YWJsZV9uZXh0ID0gdW5zdGFibGVfbmV4dDtcbmV4cG9ydHMudW5zdGFibGVfcGF1c2VFeGVjdXRpb24gPSB1bnN0YWJsZV9wYXVzZUV4ZWN1dGlvbjtcbmV4cG9ydHMudW5zdGFibGVfcmVxdWVzdFBhaW50ID0gdW5zdGFibGVfcmVxdWVzdFBhaW50O1xuZXhwb3J0cy51bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHkgPSB1bnN0YWJsZV9ydW5XaXRoUHJpb3JpdHk7XG5leHBvcnRzLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2sgPSB1bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrO1xuZXhwb3J0cy51bnN0YWJsZV9zaG91bGRZaWVsZCA9IHNob3VsZFlpZWxkVG9Ib3N0O1xuZXhwb3J0cy51bnN0YWJsZV93cmFwQ2FsbGJhY2sgPSB1bnN0YWJsZV93cmFwQ2FsbGJhY2s7XG4gICAgICAgICAgLyogZ2xvYmFsIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAqL1xuaWYgKFxuICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICE9PSAndW5kZWZpbmVkJyAmJlxuICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdG9wID09PVxuICAgICdmdW5jdGlvbidcbikge1xuICBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0b3AobmV3IEVycm9yKCkpO1xufVxuICAgICAgICBcbiAgfSkoKTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5taW4uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvc2NoZWR1bGVyLmRldmVsb3BtZW50LmpzJyk7XG59XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vdWkuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5vcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vdWkuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBzdHlsZXNJbkRPTSA9IFtdO1xuZnVuY3Rpb24gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcikge1xuICB2YXIgcmVzdWx0ID0gLTE7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGVzSW5ET00ubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoc3R5bGVzSW5ET01baV0uaWRlbnRpZmllciA9PT0gaWRlbnRpZmllcikge1xuICAgICAgcmVzdWx0ID0gaTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuZnVuY3Rpb24gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpIHtcbiAgdmFyIGlkQ291bnRNYXAgPSB7fTtcbiAgdmFyIGlkZW50aWZpZXJzID0gW107XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpdGVtID0gbGlzdFtpXTtcbiAgICB2YXIgaWQgPSBvcHRpb25zLmJhc2UgPyBpdGVtWzBdICsgb3B0aW9ucy5iYXNlIDogaXRlbVswXTtcbiAgICB2YXIgY291bnQgPSBpZENvdW50TWFwW2lkXSB8fCAwO1xuICAgIHZhciBpZGVudGlmaWVyID0gXCJcIi5jb25jYXQoaWQsIFwiIFwiKS5jb25jYXQoY291bnQpO1xuICAgIGlkQ291bnRNYXBbaWRdID0gY291bnQgKyAxO1xuICAgIHZhciBpbmRleEJ5SWRlbnRpZmllciA9IGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICAgIHZhciBvYmogPSB7XG4gICAgICBjc3M6IGl0ZW1bMV0sXG4gICAgICBtZWRpYTogaXRlbVsyXSxcbiAgICAgIHNvdXJjZU1hcDogaXRlbVszXSxcbiAgICAgIHN1cHBvcnRzOiBpdGVtWzRdLFxuICAgICAgbGF5ZXI6IGl0ZW1bNV1cbiAgICB9O1xuICAgIGlmIChpbmRleEJ5SWRlbnRpZmllciAhPT0gLTEpIHtcbiAgICAgIHN0eWxlc0luRE9NW2luZGV4QnlJZGVudGlmaWVyXS5yZWZlcmVuY2VzKys7XG4gICAgICBzdHlsZXNJbkRPTVtpbmRleEJ5SWRlbnRpZmllcl0udXBkYXRlcihvYmopO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgdXBkYXRlciA9IGFkZEVsZW1lbnRTdHlsZShvYmosIG9wdGlvbnMpO1xuICAgICAgb3B0aW9ucy5ieUluZGV4ID0gaTtcbiAgICAgIHN0eWxlc0luRE9NLnNwbGljZShpLCAwLCB7XG4gICAgICAgIGlkZW50aWZpZXI6IGlkZW50aWZpZXIsXG4gICAgICAgIHVwZGF0ZXI6IHVwZGF0ZXIsXG4gICAgICAgIHJlZmVyZW5jZXM6IDFcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZGVudGlmaWVycy5wdXNoKGlkZW50aWZpZXIpO1xuICB9XG4gIHJldHVybiBpZGVudGlmaWVycztcbn1cbmZ1bmN0aW9uIGFkZEVsZW1lbnRTdHlsZShvYmosIG9wdGlvbnMpIHtcbiAgdmFyIGFwaSA9IG9wdGlvbnMuZG9tQVBJKG9wdGlvbnMpO1xuICBhcGkudXBkYXRlKG9iaik7XG4gIHZhciB1cGRhdGVyID0gZnVuY3Rpb24gdXBkYXRlcihuZXdPYmopIHtcbiAgICBpZiAobmV3T2JqKSB7XG4gICAgICBpZiAobmV3T2JqLmNzcyA9PT0gb2JqLmNzcyAmJiBuZXdPYmoubWVkaWEgPT09IG9iai5tZWRpYSAmJiBuZXdPYmouc291cmNlTWFwID09PSBvYmouc291cmNlTWFwICYmIG5ld09iai5zdXBwb3J0cyA9PT0gb2JqLnN1cHBvcnRzICYmIG5ld09iai5sYXllciA9PT0gb2JqLmxheWVyKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGFwaS51cGRhdGUob2JqID0gbmV3T2JqKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbW92ZSgpO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHVwZGF0ZXI7XG59XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChsaXN0LCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICBsaXN0ID0gbGlzdCB8fCBbXTtcbiAgdmFyIGxhc3RJZGVudGlmaWVycyA9IG1vZHVsZXNUb0RvbShsaXN0LCBvcHRpb25zKTtcbiAgcmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZShuZXdMaXN0KSB7XG4gICAgbmV3TGlzdCA9IG5ld0xpc3QgfHwgW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsYXN0SWRlbnRpZmllcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBpZGVudGlmaWVyID0gbGFzdElkZW50aWZpZXJzW2ldO1xuICAgICAgdmFyIGluZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcik7XG4gICAgICBzdHlsZXNJbkRPTVtpbmRleF0ucmVmZXJlbmNlcy0tO1xuICAgIH1cbiAgICB2YXIgbmV3TGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKG5ld0xpc3QsIG9wdGlvbnMpO1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBsYXN0SWRlbnRpZmllcnMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICB2YXIgX2lkZW50aWZpZXIgPSBsYXN0SWRlbnRpZmllcnNbX2ldO1xuICAgICAgdmFyIF9pbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKF9pZGVudGlmaWVyKTtcbiAgICAgIGlmIChzdHlsZXNJbkRPTVtfaW5kZXhdLnJlZmVyZW5jZXMgPT09IDApIHtcbiAgICAgICAgc3R5bGVzSW5ET01bX2luZGV4XS51cGRhdGVyKCk7XG4gICAgICAgIHN0eWxlc0luRE9NLnNwbGljZShfaW5kZXgsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgICBsYXN0SWRlbnRpZmllcnMgPSBuZXdMYXN0SWRlbnRpZmllcnM7XG4gIH07XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgbWVtbyA9IHt9O1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGdldFRhcmdldCh0YXJnZXQpIHtcbiAgaWYgKHR5cGVvZiBtZW1vW3RhcmdldF0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICB2YXIgc3R5bGVUYXJnZXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRhcmdldCk7XG5cbiAgICAvLyBTcGVjaWFsIGNhc2UgdG8gcmV0dXJuIGhlYWQgb2YgaWZyYW1lIGluc3RlYWQgb2YgaWZyYW1lIGl0c2VsZlxuICAgIGlmICh3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQgJiYgc3R5bGVUYXJnZXQgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIFRoaXMgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24gaWYgYWNjZXNzIHRvIGlmcmFtZSBpcyBibG9ja2VkXG4gICAgICAgIC8vIGR1ZSB0byBjcm9zcy1vcmlnaW4gcmVzdHJpY3Rpb25zXG4gICAgICAgIHN0eWxlVGFyZ2V0ID0gc3R5bGVUYXJnZXQuY29udGVudERvY3VtZW50LmhlYWQ7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gICAgICAgIHN0eWxlVGFyZ2V0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gICAgbWVtb1t0YXJnZXRdID0gc3R5bGVUYXJnZXQ7XG4gIH1cbiAgcmV0dXJuIG1lbW9bdGFyZ2V0XTtcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBpbnNlcnRCeVNlbGVjdG9yKGluc2VydCwgc3R5bGUpIHtcbiAgdmFyIHRhcmdldCA9IGdldFRhcmdldChpbnNlcnQpO1xuICBpZiAoIXRhcmdldCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGZpbmQgYSBzdHlsZSB0YXJnZXQuIFRoaXMgcHJvYmFibHkgbWVhbnMgdGhhdCB0aGUgdmFsdWUgZm9yIHRoZSAnaW5zZXJ0JyBwYXJhbWV0ZXIgaXMgaW52YWxpZC5cIik7XG4gIH1cbiAgdGFyZ2V0LmFwcGVuZENoaWxkKHN0eWxlKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gaW5zZXJ0QnlTZWxlY3RvcjsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucykge1xuICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcbiAgb3B0aW9ucy5zZXRBdHRyaWJ1dGVzKGVsZW1lbnQsIG9wdGlvbnMuYXR0cmlidXRlcyk7XG4gIG9wdGlvbnMuaW5zZXJ0KGVsZW1lbnQsIG9wdGlvbnMub3B0aW9ucyk7XG4gIHJldHVybiBlbGVtZW50O1xufVxubW9kdWxlLmV4cG9ydHMgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzKHN0eWxlRWxlbWVudCkge1xuICB2YXIgbm9uY2UgPSB0eXBlb2YgX193ZWJwYWNrX25vbmNlX18gIT09IFwidW5kZWZpbmVkXCIgPyBfX3dlYnBhY2tfbm9uY2VfXyA6IG51bGw7XG4gIGlmIChub25jZSkge1xuICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJub25jZVwiLCBub25jZSk7XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzID0gc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGFwcGx5KHN0eWxlRWxlbWVudCwgb3B0aW9ucywgb2JqKSB7XG4gIHZhciBjc3MgPSBcIlwiO1xuICBpZiAob2JqLnN1cHBvcnRzKSB7XG4gICAgY3NzICs9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQob2JqLnN1cHBvcnRzLCBcIikge1wiKTtcbiAgfVxuICBpZiAob2JqLm1lZGlhKSB7XG4gICAgY3NzICs9IFwiQG1lZGlhIFwiLmNvbmNhdChvYmoubWVkaWEsIFwiIHtcIik7XG4gIH1cbiAgdmFyIG5lZWRMYXllciA9IHR5cGVvZiBvYmoubGF5ZXIgIT09IFwidW5kZWZpbmVkXCI7XG4gIGlmIChuZWVkTGF5ZXIpIHtcbiAgICBjc3MgKz0gXCJAbGF5ZXJcIi5jb25jYXQob2JqLmxheWVyLmxlbmd0aCA+IDAgPyBcIiBcIi5jb25jYXQob2JqLmxheWVyKSA6IFwiXCIsIFwiIHtcIik7XG4gIH1cbiAgY3NzICs9IG9iai5jc3M7XG4gIGlmIChuZWVkTGF5ZXIpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cbiAgaWYgKG9iai5tZWRpYSkge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuICBpZiAob2JqLnN1cHBvcnRzKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG4gIHZhciBzb3VyY2VNYXAgPSBvYmouc291cmNlTWFwO1xuICBpZiAoc291cmNlTWFwICYmIHR5cGVvZiBidG9hICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgY3NzICs9IFwiXFxuLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxcIi5jb25jYXQoYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSkpKSwgXCIgKi9cIik7XG4gIH1cblxuICAvLyBGb3Igb2xkIElFXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAgKi9cbiAgb3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybShjc3MsIHN0eWxlRWxlbWVudCwgb3B0aW9ucy5vcHRpb25zKTtcbn1cbmZ1bmN0aW9uIHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZUVsZW1lbnQpIHtcbiAgLy8gaXN0YW5idWwgaWdub3JlIGlmXG4gIGlmIChzdHlsZUVsZW1lbnQucGFyZW50Tm9kZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBzdHlsZUVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzdHlsZUVsZW1lbnQpO1xufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGRvbUFQSShvcHRpb25zKSB7XG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUoKSB7fSxcbiAgICAgIHJlbW92ZTogZnVuY3Rpb24gcmVtb3ZlKCkge31cbiAgICB9O1xuICB9XG4gIHZhciBzdHlsZUVsZW1lbnQgPSBvcHRpb25zLmluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKTtcbiAgcmV0dXJuIHtcbiAgICB1cGRhdGU6IGZ1bmN0aW9uIHVwZGF0ZShvYmopIHtcbiAgICAgIGFwcGx5KHN0eWxlRWxlbWVudCwgb3B0aW9ucywgb2JqKTtcbiAgICB9LFxuICAgIHJlbW92ZTogZnVuY3Rpb24gcmVtb3ZlKCkge1xuICAgICAgcmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlRWxlbWVudCk7XG4gICAgfVxuICB9O1xufVxubW9kdWxlLmV4cG9ydHMgPSBkb21BUEk7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gc3R5bGVUYWdUcmFuc2Zvcm0oY3NzLCBzdHlsZUVsZW1lbnQpIHtcbiAgaWYgKHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0KSB7XG4gICAgc3R5bGVFbGVtZW50LnN0eWxlU2hlZXQuY3NzVGV4dCA9IGNzcztcbiAgfSBlbHNlIHtcbiAgICB3aGlsZSAoc3R5bGVFbGVtZW50LmZpcnN0Q2hpbGQpIHtcbiAgICAgIHN0eWxlRWxlbWVudC5yZW1vdmVDaGlsZChzdHlsZUVsZW1lbnQuZmlyc3RDaGlsZCk7XG4gICAgfVxuICAgIHN0eWxlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpKTtcbiAgfVxufVxubW9kdWxlLmV4cG9ydHMgPSBzdHlsZVRhZ1RyYW5zZm9ybTsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdGlkOiBtb2R1bGVJZCxcblx0XHRsb2FkZWQ6IGZhbHNlLFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcblx0bW9kdWxlLmxvYWRlZCA9IHRydWU7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm5tZCA9IChtb2R1bGUpID0+IHtcblx0bW9kdWxlLnBhdGhzID0gW107XG5cdGlmICghbW9kdWxlLmNoaWxkcmVuKSBtb2R1bGUuY2hpbGRyZW4gPSBbXTtcblx0cmV0dXJuIG1vZHVsZTtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5uYyA9IHVuZGVmaW5lZDsiLCJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgKiBhcyBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20vY2xpZW50JztcbmltcG9ydCAqIGFzIEpTWmlwIGZyb20gJ2pzemlwJztcbmltcG9ydCAnLi91aS5jc3MnO1xubGV0IHRva2Vuc1ppcDtcbmNvbnN0IGFkZFRvWmlwID0gKGJsb2IsIGZpbGVOYW1lLCBmb2xkZXJOYW1lcywgemlwKSA9PiB7XG4gICAgLy8gQWRkIGRvd25sb2FkIGZpbGVzIHRvIGZvbGRlciBzdHJ1Y3R1cmVcbiAgICBmb2xkZXJOYW1lcy5mb3JFYWNoKChmb2xkZXJOYW1lKSA9PiB7XG4gICAgICAgIHppcC5mb2xkZXIoZm9sZGVyTmFtZSkuZmlsZShmaWxlTmFtZSwgYmxvYik7XG4gICAgfSk7XG59O1xuY29uc3Qgc2F2ZVZhcnMgPSAodGV4dCwgc2V0SnNvbkZpbGVzLCBzZXRaaXBGaWxlKSA9PiB7XG4gICAgbGV0IHNwbGl0RmlsZXMgPSB0ZXh0LnNwbGl0KCdcXG5cXG5cXG4nKTtcbiAgICB0b2tlbnNaaXAgPSBuZXcgSlNaaXAoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwbGl0RmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qgc3BsaXRGaWxlTmFtZSA9IHNwbGl0RmlsZXNbaV0uc3BsaXQoJ1xcbicsIDEpWzBdO1xuICAgICAgICBsZXQgc2F2ZUZpbGVOYW1lID0gJyc7XG4gICAgICAgIGxldCBzYXZlRm9sZGVyTmFtZXMgPSBbXTtcbiAgICAgICAgc3dpdGNoIChzcGxpdEZpbGVOYW1lKSB7XG4gICAgICAgICAgICAvLyBDb2xvciBwYWxldHRlXG4gICAgICAgICAgICBjYXNlICcvKiBDb2xvciBQYWxldHRlLk1vZGUgMS50b2tlbnMuanNvbiAqLyc6XG4gICAgICAgICAgICAgICAgc2F2ZUZpbGVOYW1lID0gJ3BhbGV0dGUuY29sb3IuanNvbic7XG4gICAgICAgICAgICAgICAgc2F2ZUZvbGRlck5hbWVzID0gWydkZWZhdWx0L2xpZ2h0JywgJ2RlZmF1bHQvZGFyaycsICdkZWZhdWx0L2hpZ2hjb250cmFzdCcsICdkZWZhdWx0L2hpZ2hjb250cmFzdC1kYXJrJywgJ2RlZmF1bHQvZ2xhc3MnLCAnZGVmYXVsdC9nbGFzcy1kYXJrJ107XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAvLyBCYXNlIHRva2Vuc1xuICAgICAgICAgICAgLy8gQmFzZSBjb2xvclxuICAgICAgICAgICAgY2FzZSAnLyogQmFzZSBDb2xvciBUb2tlbnMgLSBMaWdodC5WYWx1ZS50b2tlbnMuanNvbiAqLyc6XG4gICAgICAgICAgICAgICAgc2F2ZUZpbGVOYW1lID0gJ2Jhc2UuanNvbic7XG4gICAgICAgICAgICAgICAgc2F2ZUZvbGRlck5hbWVzID0gWydkZWZhdWx0L2xpZ2h0JywgJ2RlZmF1bHQvaGlnaGNvbnRyYXN0JywgJ2RlZmF1bHQvZ2xhc3MnXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIC8vIEJhc2UgY29sb3IgLSBkYXJrXG4gICAgICAgICAgICBjYXNlICcvKiBCYXNlIENvbG9yIFRva2VucyAtIERhcmsuVmFsdWUudG9rZW5zLmpzb24gKi8nOlxuICAgICAgICAgICAgICAgIHNhdmVGaWxlTmFtZSA9ICdiYXNlLmRhcmsuanNvbic7XG4gICAgICAgICAgICAgICAgc2F2ZUZvbGRlck5hbWVzID0gWydkZWZhdWx0L2RhcmsnLCAnZGVmYXVsdC9oaWdoY29udHJhc3QtZGFyaycsICdkZWZhdWx0L2dsYXNzLWRhcmsnXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIC8vIEJhc2UgZGltZW5zaW9uXG4gICAgICAgICAgICBjYXNlICcvKiBCYXNlIERpbWVuc2lvbiBUb2tlbnMuTW9kZSAxLnRva2Vucy5qc29uICovJzpcbiAgICAgICAgICAgICAgICBzYXZlRmlsZU5hbWUgPSAnYmFzZS5kaW1lbnNpb24uanNvbic7XG4gICAgICAgICAgICAgICAgc2F2ZUZvbGRlck5hbWVzID0gWydkZWZhdWx0L2xpZ2h0JywgJ2RlZmF1bHQvaGlnaGNvbnRyYXN0JywgJ2RlZmF1bHQvZ2xhc3MnXTsgLy93aHkgbm90IGRhcms/XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAvLyBCYXNlIG1vdGlvblxuICAgICAgICAgICAgY2FzZSAnLyogQmFzZSBNb3Rpb24gVG9rZW5zLk1vZGUgMS50b2tlbnMuanNvbiAqLyc6XG4gICAgICAgICAgICAgICAgc2F2ZUZpbGVOYW1lID0gJ2Jhc2UubW90aW9uLmpzb24nO1xuICAgICAgICAgICAgICAgIHNhdmVGb2xkZXJOYW1lcyA9IFsnZGVmYXVsdC9saWdodCddO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgLy8gU2VtYW50aWMgdG9rZW5zXG4gICAgICAgICAgICAvLyBTZW1hbnRpYyBjb2xvclxuICAgICAgICAgICAgY2FzZSAnLyogRGVmYXVsdCBTZW1hbnRpYyBDb2xvciBUb2tlbnMuTGlnaHQudG9rZW5zLmpzb24gKi8nOlxuICAgICAgICAgICAgICAgIHNhdmVGaWxlTmFtZSA9ICdzZW1hbnRpYy5qc29uJztcbiAgICAgICAgICAgICAgICBzYXZlRm9sZGVyTmFtZXMgPSBbJ2RlZmF1bHQvbGlnaHQnXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIC8vIFNlbWFudGljIGNvbG9yIC0gZGFya1xuICAgICAgICAgICAgY2FzZSAnLyogRGVmYXVsdCBTZW1hbnRpYyBDb2xvciBUb2tlbnMuRGFyay50b2tlbnMuanNvbiAqLyc6XG4gICAgICAgICAgICAgICAgc2F2ZUZpbGVOYW1lID0gJ3NlbWFudGljLmRhcmsuanNvbic7XG4gICAgICAgICAgICAgICAgc2F2ZUZvbGRlck5hbWVzID0gWydkZWZhdWx0L2RhcmsnXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIC8vIFNlbWFudGljIGNvbG9yIC0gZ2xhc3NcbiAgICAgICAgICAgIGNhc2UgJy8qIERlZmF1bHQgU2VtYW50aWMgQ29sb3IgVG9rZW5zLkxpZ2h0IC0gR2xhc3MudG9rZW5zLmpzb24gKi8nOlxuICAgICAgICAgICAgICAgIHNhdmVGaWxlTmFtZSA9ICdzZW1hbnRpYy5nbGFzcy5qc29uJztcbiAgICAgICAgICAgICAgICBzYXZlRm9sZGVyTmFtZXMgPSBbJ2RlZmF1bHQvZ2xhc3MnXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIC8vIFNlbWFudGljIGNvbG9yIC0gZGFyayBnbGFzc1xuICAgICAgICAgICAgY2FzZSAnLyogRGVmYXVsdCBTZW1hbnRpYyBDb2xvciBUb2tlbnMuRGFyayAtIEdsYXNzLnRva2Vucy5qc29uICovJzpcbiAgICAgICAgICAgICAgICBzYXZlRmlsZU5hbWUgPSAnc2VtYW50aWMuZ2xhc3MuZGFyay5qc29uJztcbiAgICAgICAgICAgICAgICBzYXZlRm9sZGVyTmFtZXMgPSBbJ2RlZmF1bHQvZ2xhc3MtZGFyayddO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgLy8gU2VtYW50aWMgY29sb3IgLSBoaWdoIGNvbnRyYXN0XG4gICAgICAgICAgICBjYXNlICcvKiBEZWZhdWx0IFNlbWFudGljIENvbG9yIFRva2Vucy5MaWdodCAtIEhpZ2ggQ29udHJhc3QgKEJldGEpLnRva2Vucy5qc29uICovJzpcbiAgICAgICAgICAgICAgICBzYXZlRmlsZU5hbWUgPSAnc2VtYW50aWMuaGlnaGNvbnRyYXN0Lmpzb24nO1xuICAgICAgICAgICAgICAgIHNhdmVGb2xkZXJOYW1lcyA9IFsnZGVmYXVsdC9oaWdoY29udHJhc3QnXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIC8vIFNlbWFudGljIGNvbG9yIC0gaGlnaCBjb250cmFzdCAtIGRhcmtcbiAgICAgICAgICAgIGNhc2UgJy8qIERlZmF1bHQgU2VtYW50aWMgQ29sb3IgVG9rZW5zLkRhcmsgLSBIaWdoIENvbnRyYXN0IChCZXRhKS50b2tlbnMuanNvbiAqLyc6XG4gICAgICAgICAgICAgICAgc2F2ZUZpbGVOYW1lID0gJ3NlbWFudGljLmhpZ2hjb250cmFzdC5kYXJrLmpzb24nO1xuICAgICAgICAgICAgICAgIHNhdmVGb2xkZXJOYW1lcyA9IFsnZGVmYXVsdC9oaWdoY29udHJhc3QtZGFyayddO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgLy8gU2VtYW50aWMgZGltZW5zaW9uXG4gICAgICAgICAgICBjYXNlICgnLyogRGVmYXVsdCBTZW1hbnRpYyBEaW1lbnNpb24gVG9rZW5zLkRlZmF1bHQudG9rZW5zLmpzb24gKi8nKTpcbiAgICAgICAgICAgICAgICBzYXZlRmlsZU5hbWUgPSAnc2VtYW50aWMuZGltZW5zaW9uLmpzb24nO1xuICAgICAgICAgICAgICAgIHNhdmVGb2xkZXJOYW1lcyA9IFsnZGVmYXVsdC9saWdodCddO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgLy8gU2VtYW50aWMgZGltZW5zaW9uIC0gaGlnaCBjb250cmFzdFxuICAgICAgICAgICAgY2FzZSAnLyogRGVmYXVsdCBTZW1hbnRpYyBEaW1lbnNpb24gVG9rZW5zLkhpZ2ggQ29udHJhc3QgLSBCZXRhLnRva2Vucy5qc29uICovJzpcbiAgICAgICAgICAgICAgICBzYXZlRmlsZU5hbWUgPSAnc2VtYW50aWMuZGltZW5zaW9uLmhpZ2hjb250cmFzdC5qc29uJztcbiAgICAgICAgICAgICAgICBzYXZlRm9sZGVyTmFtZXMgPSBbJ2RlZmF1bHQvaGlnaGNvbnRyYXN0J107XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICgnLyogRGVmYXVsdCBTZW1hbnRpYyBEaW1lbnNpb24gVG9rZW5zLkdsYXNzLnRva2Vucy5qc29uICovJyk6XG4gICAgICAgICAgICAgICAgc2F2ZUZpbGVOYW1lID0gJ3NlbWFudGljLmRpbWVuc2lvbi5nbGFzcy5qc29uJztcbiAgICAgICAgICAgICAgICBzYXZlRm9sZGVyTmFtZXMgPSBbJ2RlZmF1bHQvZ2xhc3MnXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIC8vIFNlbWFudGljIG1vdGlvblxuICAgICAgICAgICAgY2FzZSAnLyogU2VtYW50aWMgTW90aW9uIFRva2Vucy5TZW1hbnRpYyBNb3Rpb24gdG9rZW5zLnRva2Vucy5qc29uICovJzpcbiAgICAgICAgICAgICAgICBzYXZlRmlsZU5hbWUgPSAnc2VtYW50aWMubW90aW9uLmpzb24nO1xuICAgICAgICAgICAgICAgIHNhdmVGb2xkZXJOYW1lcyA9IFsnZGVmYXVsdC9saWdodCddO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgLy8gQ2hhcnRzIHRva2Vuc1xuICAgICAgICAgICAgLy8gQ2hhcnRzXG4gICAgICAgICAgICBjYXNlICcvKiBDaGFydHMuTGlnaHQudG9rZW5zLmpzb24gKi8nOlxuICAgICAgICAgICAgICAgIHNhdmVGaWxlTmFtZSA9ICdjaGFydHMuanNvbic7XG4gICAgICAgICAgICAgICAgc2F2ZUZvbGRlck5hbWVzID0gWydkZWZhdWx0L2xpZ2h0J107XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAvLyBDaGFydHMgLSBkYXJrXG4gICAgICAgICAgICBjYXNlICcvKiBDaGFydHMuRGFyay50b2tlbnMuanNvbiAqLyc6XG4gICAgICAgICAgICAgICAgc2F2ZUZpbGVOYW1lID0gJ2NoYXJ0cy5kYXJrLmpzb24nO1xuICAgICAgICAgICAgICAgIHNhdmVGb2xkZXJOYW1lcyA9IFsnZGVmYXVsdC9kYXJrJ107XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAvLyBDaGFydHMgLSBoaWdoIGNvbnRyYXN0IC0gbGlnaHRcbiAgICAgICAgICAgIGNhc2UgJy8qIENoYXJ0cy5IaWdoIENvbnRyYXN0IC0gTGlnaHQudG9rZW5zLmpzb24gKi8nOlxuICAgICAgICAgICAgICAgIHNhdmVGaWxlTmFtZSA9ICdjaGFydHMuaGlnaGNvbnRyYXN0Lmpzb24nO1xuICAgICAgICAgICAgICAgIHNhdmVGb2xkZXJOYW1lcyA9IFsnZGVmYXVsdC9saWdodCddO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgLy8gQ2hhcnRzIC0gaGlnaCBjb250cmFzdCAtIGRhcmtcbiAgICAgICAgICAgIGNhc2UgJy8qIENoYXJ0cy5IaWdoIENvbnRyYXN0IC0gRGFyay50b2tlbnMuanNvbiAqLyc6XG4gICAgICAgICAgICAgICAgc2F2ZUZpbGVOYW1lID0gJ2NoYXJ0cy5oaWdoY29udHJhc3QuZGFyay5qc29uJztcbiAgICAgICAgICAgICAgICBzYXZlRm9sZGVyTmFtZXMgPSBbJ2RlZmF1bHQvZGFyayddO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgLy8gRmVsdCBjb2xvciB0b2tlbnNcbiAgICAgICAgICAgIGNhc2UgJy8qIEZlbHQgQ29sb3IgVG9rZW5zLkxpZ2h0LnRva2Vucy5qc29uICovJzpcbiAgICAgICAgICAgICAgICBzYXZlRmlsZU5hbWUgPSAnZmVsdC5jb2xvci5qc29uJztcbiAgICAgICAgICAgICAgICBzYXZlRm9sZGVyTmFtZXMgPSBbJ2ZlbHQvbGlnaHQnXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJy8qIEZlbHQgQ29sb3IgVG9rZW5zLkRhcmsudG9rZW5zLmpzb24gKi8nOlxuICAgICAgICAgICAgICAgIHNhdmVGaWxlTmFtZSA9ICdmZWx0LmNvbG9yLmRhcmsuanNvbic7XG4gICAgICAgICAgICAgICAgc2F2ZUZvbGRlck5hbWVzID0gWydmZWx0L2RhcmsnXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJy8qIEZlbHQgQ29sb3IgVG9rZW5zLkxpZ2h0IC0gR2xhc3MudG9rZW5zLmpzb24gKi8nOlxuICAgICAgICAgICAgICAgIHNhdmVGaWxlTmFtZSA9ICdmZWx0LmNvbG9yLmdsYXNzLmpzb24nO1xuICAgICAgICAgICAgICAgIHNhdmVGb2xkZXJOYW1lcyA9IFsnZmVsdC9nbGFzcyddO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnLyogRmVsdCBDb2xvciBUb2tlbnMuRGFyayAtIEdsYXNzLnRva2Vucy5qc29uICovJzpcbiAgICAgICAgICAgICAgICBzYXZlRmlsZU5hbWUgPSAnZmVsdC5jb2xvci5nbGFzcy5kYXJrLmpzb24nO1xuICAgICAgICAgICAgICAgIHNhdmVGb2xkZXJOYW1lcyA9IFsnZmVsdC9nbGFzcy1kYXJrJ107XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICcvKiBGZWx0IENvbG9yIFRva2Vucy5MaWdodCAtIEhpZ2ggQ29udHJhc3QgKEJldGEpLnRva2Vucy5qc29uICovJzpcbiAgICAgICAgICAgICAgICBzYXZlRmlsZU5hbWUgPSAnZmVsdC5jb2xvci5oaWdoY29udHJhc3QuanNvbic7XG4gICAgICAgICAgICAgICAgc2F2ZUZvbGRlck5hbWVzID0gWydmZWx0L2hpZ2hjb250cmFzdCddO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnLyogRmVsdCBDb2xvciBUb2tlbnMuRGFyayAtIEhpZ2ggQ29udHJhc3QgKEJldGEpLnRva2Vucy5qc29uICovJzpcbiAgICAgICAgICAgICAgICBzYXZlRmlsZU5hbWUgPSAnZmVsdC5jb2xvci5oaWdoY29udHJhc3QuZGFyay5qc29uJztcbiAgICAgICAgICAgICAgICBzYXZlRm9sZGVyTmFtZXMgPSBbJ2ZlbHQvaGlnaGNvbnRyYXN0LWRhcmsnXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIC8vIEZlbHQgZGltZW5zaW9uIHRva2Vuc1xuICAgICAgICAgICAgY2FzZSAnLyogRmVsdCBEaW1lbnNpb24gVG9rZW5zLkRlZmF1bHQudG9rZW5zLmpzb24gKi8nOlxuICAgICAgICAgICAgICAgIHNhdmVGaWxlTmFtZSA9ICdmZWx0LmRpbWVuc2lvbi5qc29uJztcbiAgICAgICAgICAgICAgICBzYXZlRm9sZGVyTmFtZXMgPSBbJ2ZlbHQvbGlnaHQnXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJy8qIEZlbHQgRGltZW5zaW9uIFRva2Vucy5HbGFzcy50b2tlbnMuanNvbiAqLyc6XG4gICAgICAgICAgICAgICAgc2F2ZUZpbGVOYW1lID0gJ2ZlbHQuZGltZW5zaW9uLmdsYXNzLmpzb24nO1xuICAgICAgICAgICAgICAgIHNhdmVGb2xkZXJOYW1lcyA9IFsnZmVsdC9nbGFzcyddO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnLyogRmVsdCBEaW1lbnNpb24gVG9rZW5zLkhpZ2ggQ29udHJhc3QgLSBCZXRhLnRva2Vucy5qc29uICovJzpcbiAgICAgICAgICAgICAgICBzYXZlRmlsZU5hbWUgPSAnZmVsdC5kaW1lbnNpb24uaGlnaGNvbnRyYXN0Lmpzb24nO1xuICAgICAgICAgICAgICAgIHNhdmVGb2xkZXJOYW1lcyA9IFsnZmVsdC9oaWdoY29udHJhc3QnXTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgc2F2ZUZpbGVOYW1lID0gc3BsaXRGaWxlc1tpXS5zcGxpdCgnXFxuJywgMSlbMF07XG4gICAgICAgICAgICAgICAgc2F2ZUZvbGRlck5hbWVzID0gWydkZWZhdWx0L2xpZ2h0J107XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmlsZVRvRXhwb3J0ID0gc3BsaXRGaWxlc1tpXS5zdWJzdHJpbmcoc3BsaXRGaWxlc1tpXS5pbmRleE9mKCdcXG4nKSArIDEpO1xuICAgICAgICBjb25zdCB0ZXh0VG9TYXZlQXNCbG9iID0gbmV3IEJsb2IoW2ZpbGVUb0V4cG9ydF0sIHsgdHlwZTogJ3RleHQvcGxhaW4nIH0pO1xuICAgICAgICAvLyBjcmVhdGUgZG93bmxvYWQgbGluayBwZXIgZmlsZVxuICAgICAgICBjb25zdCBqc29uTGluayA9IGNyZWF0ZUxpbmsodGV4dFRvU2F2ZUFzQmxvYiwgc2F2ZUZpbGVOYW1lKTtcbiAgICAgICAgc2V0SnNvbkZpbGVzKChwcmV2KSA9PiBbLi4ucHJldiwganNvbkxpbmtdKTtcbiAgICAgICAgLy8gYWRkIGVhY2ggZmlsZSB6aXBcbiAgICAgICAgYWRkVG9aaXAodGV4dFRvU2F2ZUFzQmxvYiwgc2F2ZUZpbGVOYW1lLCBzYXZlRm9sZGVyTmFtZXMsIHRva2Vuc1ppcCk7XG4gICAgfVxuICAgIC8vIGNyZWF0ZSBkb3dubG9hZCBsaW5rIGZvciBmaW5pc2hlZCB6aXAgZmlsZVxuICAgIHRva2Vuc1ppcC5nZW5lcmF0ZUFzeW5jKHsgdHlwZTogJ2Jsb2InIH0pLnRoZW4oKGJsb2IpID0+IHtcbiAgICAgICAgY29uc3QgemlwTGluayA9IGNyZWF0ZUxpbmsoYmxvYiwgJ3Rva2Vucy56aXAnKTtcbiAgICAgICAgc2V0WmlwRmlsZSh6aXBMaW5rKTtcbiAgICB9KTtcbn07XG5jb25zdCBjcmVhdGVMaW5rID0gKHRleHQsIGZpbGUpID0+IHtcbiAgICBjb25zdCB0ZXh0VG9TYXZlQXNVUkwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTCh0ZXh0KTtcbiAgICByZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIHsga2V5OiBmaWxlLCBkb3dubG9hZDogZmlsZSwgaHJlZjogdGV4dFRvU2F2ZUFzVVJMIH0sIGZpbGUpKTtcbn07XG5jb25zdCBleHBvcnRUb2tlbnMgPSAoKSA9PiBwYXJlbnQucG9zdE1lc3NhZ2UoeyBwbHVnaW5NZXNzYWdlOiB7IHR5cGU6ICdFWFBPUlQnIH0gfSwgJyonKTtcbmNvbnN0IEFwcCA9ICgpID0+IHtcbiAgICBjb25zdCBbanNvbkZpbGVzLCBzZXRKc29uRmlsZXNdID0gUmVhY3QudXNlU3RhdGUoW10pO1xuICAgIGNvbnN0IFt6aXBGaWxlLCBzZXRaaXBGaWxlXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IHJlc2V0RG93bmxvYWRzID0gKCkgPT4ge1xuICAgICAgICBzZXRKc29uRmlsZXMoW10pO1xuICAgICAgICBzZXRaaXBGaWxlKG51bGwpO1xuICAgIH07XG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgZXhwb3J0VG9rZW5zKCk7XG4gICAgICAgIC8vIExpc3RlbiBmb3IgbWVzc2FnZXMgc2VudCBmcm9tIHRoZSBwbHVnaW4gY29kZS50cyBmaWxlXG4gICAgICAgIHdpbmRvdy5vbm1lc3NhZ2UgPSAoeyBkYXRhOiB7IHBsdWdpbk1lc3NhZ2UgfSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoKHBsdWdpbk1lc3NhZ2UgPT09IG51bGwgfHwgcGx1Z2luTWVzc2FnZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGx1Z2luTWVzc2FnZS50eXBlKSA9PT0gJ0VYUE9SVF9SRVNVTFQnKSB7XG4gICAgICAgICAgICAgICAgLy8gUmVzZXQgZG93bmxvYWQgZmlsZXNcbiAgICAgICAgICAgICAgICByZXNldERvd25sb2FkcygpO1xuICAgICAgICAgICAgICAgIC8vIERpc3BsYXkgYWxsIHRva2VucyBpbiB0ZXh0YXJlYVxuICAgICAgICAgICAgICAgIGxldCB0ZXh0T3V0cHV0ID0gcGx1Z2luTWVzc2FnZS5maWxlc1xuICAgICAgICAgICAgICAgICAgICAubWFwKCh7IGZpbGVOYW1lLCBib2R5IH0pID0+IGAvKiAke2ZpbGVOYW1lfSAqL1xcblxcbiR7SlNPTi5zdHJpbmdpZnkoYm9keSwgbnVsbCwgMil9YClcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJ1xcblxcblxcbicpO1xuICAgICAgICAgICAgICAgIHRleHRPdXRwdXQgPSB0ZXh0T3V0cHV0LnJlcGxhY2VBbGwoJyR0eXBlJywgJ3R5cGUnKS5yZXBsYWNlQWxsKCckdmFsdWUnLCAndmFsdWUnKTtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd0ZXh0YXJlYScpLmlubmVySFRNTCA9IHRleHRPdXRwdXQ7XG4gICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGRvd25sb2FkYWJsZSB0b2tlbiBmaWxlc1xuICAgICAgICAgICAgICAgIHNhdmVWYXJzKHRleHRPdXRwdXQsIHNldEpzb25GaWxlcywgc2V0WmlwRmlsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuICAgIHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcIm1haW5cIiwgbnVsbCxcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJidXR0b24tY29udGFpbmVyXCIgfSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIiwgeyB0eXBlOiBcImJ1dHRvblwiLCBvbkNsaWNrOiBleHBvcnRUb2tlbnMgfSwgXCJFeHBvcnQgVG9rZW5zXCIpKSxcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInRleHRhcmVhXCIsIHsgcGxhY2Vob2xkZXI6IFwiQWxsIGV4cG9ydGVkIHRva2VucyB3aWxsIHJlbmRlciBoZXJlLi4uXCIsIHJlYWRPbmx5OiB0cnVlIH0pLFxuICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcInRva2Vucy1kb3dubG9hZC13cmFwcGVyIHppcC13cmFwcGVyXCIgfSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwXCIsIG51bGwsIFwiRG93bmxvYWQgYWxsIGZpbGVzOlwiKSxcbiAgICAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwiemlwLWRvd25sb2Fkc1wiIH0sIHppcEZpbGUpKSxcbiAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJ0b2tlbnMtZG93bmxvYWQtd3JhcHBlciBqc29uLXdyYXBwZXJcIiB9LFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcInBcIiwgbnVsbCwgXCJEb3dubG9hZCBpbmRpdmlkdWFsIEpTT04gZmlsZXM6XCIpLFxuICAgICAgICAgICAgUmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJqc29uLWRvd25sb2Fkc1wiIH0sIGpzb25GaWxlcykpKSk7XG59O1xuUmVhY3RET00uY3JlYXRlUm9vdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwb3J0LXBhdHRlcm5mbHktdG9rZW5zLWFwcCcpKS5yZW5kZXIoUmVhY3QuY3JlYXRlRWxlbWVudChBcHAsIG51bGwpKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file diff --git a/packages/module/plugins/export-patternfly-tokens/src/ui.tsx b/packages/module/plugins/export-patternfly-tokens/src/ui.tsx index b148f86..066db4b 100644 --- a/packages/module/plugins/export-patternfly-tokens/src/ui.tsx +++ b/packages/module/plugins/export-patternfly-tokens/src/ui.tsx @@ -35,7 +35,7 @@ const saveVars = (text, setJsonFiles, setZipFile) => { saveFolderNames = ['default/light', 'default/highcontrast', 'default/glass']; break; // Base color - dark - case '/* Base Color Tokens - Dark.Mode 1.tokens.json */': + case '/* Base Color Tokens - Dark.Value.tokens.json */': saveFileName = 'base.dark.json'; saveFolderNames = ['default/dark', 'default/highcontrast-dark', 'default/glass-dark']; break; @@ -82,21 +82,21 @@ const saveVars = (text, setJsonFiles, setZipFile) => { saveFolderNames = ['default/highcontrast-dark']; break; // Semantic dimension - case ('/* Semantic Dimension Tokens.Default.tokens.json */'): + case ('/* Default Semantic Dimension Tokens.Default.tokens.json */'): saveFileName = 'semantic.dimension.json'; saveFolderNames = ['default/light']; break; // Semantic dimension - high contrast - case '/* Semantic Dimension Tokens.High Contrast - Beta.tokens.json */': + case '/* Default Semantic Dimension Tokens.High Contrast - Beta.tokens.json */': saveFileName = 'semantic.dimension.highcontrast.json'; saveFolderNames = ['default/highcontrast']; break; - case ('/* Semantic Dimension Tokens.Glass.tokens.json */'): + case ('/* Default Semantic Dimension Tokens.Glass.tokens.json */'): saveFileName = 'semantic.dimension.glass.json'; saveFolderNames = ['default/glass']; break; // Semantic motion - case '/* Semantic Motion Tokens.Mode 1.tokens.json */': + case '/* Semantic Motion Tokens.Semantic Motion tokens.tokens.json */': saveFileName = 'semantic.motion.json'; saveFolderNames = ['default/light']; break; @@ -112,44 +112,54 @@ const saveVars = (text, setJsonFiles, setZipFile) => { saveFileName = 'charts.dark.json'; saveFolderNames = ['default/dark']; break; + // Charts - high contrast - light + case '/* Charts.High Contrast - Light.tokens.json */': + saveFileName = 'charts.highcontrast.json'; + saveFolderNames = ['default/light']; + break; + // Charts - high contrast - dark + case '/* Charts.High Contrast - Dark.tokens.json */': + saveFileName = 'charts.highcontrast.dark.json'; + saveFolderNames = ['default/dark']; + break; - // Red Hat color tokens - case '/* Red Hat Color Tokens.Light.tokens.json */': - saveFileName = 'redhat.color.json'; - saveFolderNames = ['redhat/light']; + // Felt color tokens + case '/* Felt Color Tokens.Light.tokens.json */': + saveFileName = 'felt.color.json'; + saveFolderNames = ['felt/light']; break; - case '/* Red Hat Color Tokens.Dark.tokens.json */': - saveFileName = 'redhat.color.dark.json'; - saveFolderNames = ['redhat/dark']; + case '/* Felt Color Tokens.Dark.tokens.json */': + saveFileName = 'felt.color.dark.json'; + saveFolderNames = ['felt/dark']; break; - case '/* Red Hat Color Tokens.Light - Glass.tokens.json */': - saveFileName = 'redhat.color.glass.json'; - saveFolderNames = ['redhat/glass']; + case '/* Felt Color Tokens.Light - Glass.tokens.json */': + saveFileName = 'felt.color.glass.json'; + saveFolderNames = ['felt/glass']; break; - case '/* Red Hat Color Tokens.Dark - Glass.tokens.json */': - saveFileName = 'redhat.color.glass.dark.json'; - saveFolderNames = ['redhat/glass-dark']; + case '/* Felt Color Tokens.Dark - Glass.tokens.json */': + saveFileName = 'felt.color.glass.dark.json'; + saveFolderNames = ['felt/glass-dark']; break; - case '/* Red Hat Color Tokens.Light - High Contrast (Beta).tokens.json */': - saveFileName = 'redhat.color.highcontrast.json'; - saveFolderNames = ['redhat/highcontrast']; + case '/* Felt Color Tokens.Light - High Contrast (Beta).tokens.json */': + saveFileName = 'felt.color.highcontrast.json'; + saveFolderNames = ['felt/highcontrast']; break; - case '/* Red Hat Color Tokens.Dark - High Contrast (Beta).tokens.json */': - saveFileName = 'redhat.color.highcontrast.dark.json'; - saveFolderNames = ['redhat/highcontrast-dark']; + case '/* Felt Color Tokens.Dark - High Contrast (Beta).tokens.json */': + saveFileName = 'felt.color.highcontrast.dark.json'; + saveFolderNames = ['felt/highcontrast-dark']; break; - // Red Hat dimension tokens - case '/* Red Hat Dimension Tokens.Default.tokens.json */': - saveFileName = 'redhat.dimension.json'; - saveFolderNames = ['redhat/light']; + // Felt dimension tokens + case '/* Felt Dimension Tokens.Default.tokens.json */': + saveFileName = 'felt.dimension.json'; + saveFolderNames = ['felt/light']; break; - case '/* Red Hat Dimension Tokens.Glass.tokens.json */': - saveFileName = 'redhat.dimension.glass.json'; - saveFolderNames = ['redhat/glass']; + case '/* Felt Dimension Tokens.Glass.tokens.json */': + saveFileName = 'felt.dimension.glass.json'; + saveFolderNames = ['felt/glass']; break; - case '/* Red Hat Dimension Tokens.High Contrast - Beta.tokens.json */': - saveFileName = 'redhat.dimension.highcontrast.json'; - saveFolderNames = ['redhat/highcontrast']; + case '/* Felt Dimension Tokens.High Contrast - Beta.tokens.json */': + saveFileName = 'felt.dimension.highcontrast.json'; + saveFolderNames = ['felt/highcontrast']; break; default: saveFileName = splitFiles[i].split('\n', 1)[0]; diff --git a/packages/module/tokens/default/dark/base.dark.json b/packages/module/tokens/default/dark/base.dark.json index f5c4c85..e87c528 100644 --- a/packages/module/tokens/default/dark/base.dark.json +++ b/packages/module/tokens/default/dark/base.dark.json @@ -127,6 +127,48 @@ "value": "{color.yellow.20}" } }, + "severity": { + "undefined": { + "100": { + "type": "color", + "value": "{color.gray.40}" + } + }, + "none": { + "100": { + "type": "color", + "value": "{color.blue.30}" + } + }, + "minor": { + "100": { + "type": "color", + "value": "{color.gray.30}" + } + }, + "moderate": { + "100": { + "type": "color", + "value": "{color.yellow.30}" + } + }, + "important": { + "100": { + "type": "color", + "value": "{color.orange.40}" + } + }, + "critical": { + "100": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "200": { + "type": "color", + "value": "{color.red-orange.40}" + } + } + }, "status": { "success": { "100": { @@ -199,48 +241,6 @@ } } }, - "severity": { - "undefined": { - "100": { - "type": "color", - "value": "{color.gray.40}" - } - }, - "none": { - "100": { - "type": "color", - "value": "{color.blue.30}" - } - }, - "minor": { - "100": { - "type": "color", - "value": "{color.gray.30}" - } - }, - "moderate": { - "100": { - "type": "color", - "value": "{color.yellow.30}" - } - }, - "important": { - "100": { - "type": "color", - "value": "{color.orange.40}" - } - }, - "critical": { - "100": { - "type": "color", - "value": "{color.red-orange.50}" - }, - "200": { - "type": "color", - "value": "{color.red-orange.40}" - } - } - }, "nonstatus": { "red": { "100": { diff --git a/packages/module/tokens/default/dark/charts.dark.json b/packages/module/tokens/default/dark/charts.dark.json index 9e3c831..81c46a6 100644 --- a/packages/module/tokens/default/dark/charts.dark.json +++ b/packages/module/tokens/default/dark/charts.dark.json @@ -180,6 +180,18 @@ } }, "global": { + "letter-spacing": { + "type": "string", + "value": "normal" + }, + "stroke-line-cap": { + "type": "string", + "value": "round" + }, + "stroke-line-join": { + "type": "string", + "value": "round" + }, "BorderWidth": { "xs": { "type": "number", @@ -288,10 +300,6 @@ "value": 22 } }, - "letter-spacing": { - "type": "string", - "value": "normal" - }, "layout": { "padding": { "type": "number", @@ -306,10 +314,6 @@ "value": 450 } }, - "stroke-line-cap": { - "type": "string", - "value": "round" - }, "label": { "padding": { "type": "number", @@ -319,14 +323,6 @@ "type": "number", "value": 8 }, - "stroke": { - "width": { - "type": "number", - "value": 0 - }, - "type": "string", - "value": "transparent" - }, "text-anchor": { "type": "string", "value": "middle" @@ -334,11 +330,15 @@ "fill": { "type": "color", "value": "{color.white}" + }, + "stroke": { + "width": { + "type": "number", + "value": 0 + }, + "type": "string", + "value": "transparent" } - }, - "stroke-line-join": { - "type": "string", - "value": "round" } }, "theme": { diff --git a/packages/module/tokens/default/dark/charts.highcontrast.dark.json b/packages/module/tokens/default/dark/charts.highcontrast.dark.json new file mode 100644 index 0000000..24158a2 --- /dev/null +++ b/packages/module/tokens/default/dark/charts.highcontrast.dark.json @@ -0,0 +1,765 @@ + +{ + "chart": { + "color": { + "blue": { + "100": { + "type": "color", + "value": "{color.blue.50}" + }, + "200": { + "type": "color", + "value": "{color.blue.40}" + }, + "300": { + "type": "color", + "value": "{color.blue.30}" + }, + "400": { + "type": "color", + "value": "{color.blue.20}" + }, + "500": { + "type": "color", + "value": "{color.blue.10}" + } + }, + "green": { + "100": { + "type": "color", + "value": "{color.green.50}" + }, + "200": { + "type": "color", + "value": "{color.green.40}" + }, + "300": { + "type": "color", + "value": "{color.green.30}" + }, + "400": { + "type": "color", + "value": "{color.green.20}" + }, + "500": { + "type": "color", + "value": "{color.green.10}" + } + }, + "teal": { + "100": { + "type": "color", + "value": "{color.teal.50}" + }, + "200": { + "type": "color", + "value": "{color.teal.40}" + }, + "300": { + "type": "color", + "value": "{color.teal.30}" + }, + "400": { + "type": "color", + "value": "{color.teal.20}" + }, + "500": { + "type": "color", + "value": "{color.teal.10}" + } + }, + "purple": { + "100": { + "type": "color", + "value": "{color.purple.50}" + }, + "200": { + "type": "color", + "value": "{color.purple.40}" + }, + "300": { + "type": "color", + "value": "{color.purple.30}" + }, + "400": { + "type": "color", + "value": "{color.purple.20}" + }, + "500": { + "type": "color", + "value": "{color.purple.10}" + } + }, + "yellow": { + "100": { + "type": "color", + "value": "{color.yellow.50}" + }, + "200": { + "type": "color", + "value": "{color.yellow.40}" + }, + "300": { + "type": "color", + "value": "{color.yellow.30}" + }, + "400": { + "type": "color", + "value": "{color.yellow.20}" + }, + "500": { + "type": "color", + "value": "{color.yellow.10}" + } + }, + "orange": { + "100": { + "type": "color", + "value": "{color.orange.50}" + }, + "200": { + "type": "color", + "value": "{color.orange.40}" + }, + "300": { + "type": "color", + "value": "{color.orange.30}" + }, + "400": { + "type": "color", + "value": "{color.orange.20}" + }, + "500": { + "type": "color", + "value": "{color.orange.10}" + } + }, + "red-orange": { + "100": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "200": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "300": { + "type": "color", + "value": "{color.red-orange.30}" + }, + "400": { + "type": "color", + "value": "{color.red-orange.20}" + }, + "500": { + "type": "color", + "value": "{color.red-orange.10}" + } + }, + "black": { + "100": { + "type": "color", + "value": "{color.gray.50}" + }, + "200": { + "type": "color", + "value": "{color.gray.40}" + }, + "300": { + "type": "color", + "value": "{color.gray.30}" + }, + "400": { + "type": "color", + "value": "{color.gray.20}" + }, + "500": { + "type": "color", + "value": "{color.gray.10}" + } + } + }, + "global": { + "letter-spacing": { + "type": "string", + "value": "normal" + }, + "stroke-line-cap": { + "type": "string", + "value": "round" + }, + "stroke-line-join": { + "type": "string", + "value": "round" + }, + "BorderWidth": { + "xs": { + "type": "number", + "value": 1 + }, + "sm": { + "type": "number", + "value": 2 + }, + "lg": { + "type": "number", + "value": 8 + } + }, + "stroke": { + "width": { + "xs": { + "type": "number", + "value": 1 + }, + "sm": { + "type": "number", + "value": 2 + } + } + }, + "fill": { + "color": { + "100": { + "type": "color", + "value": "{color.gray.60}" + }, + "200": { + "type": "color", + "value": "{color.gray.50}" + }, + "300": { + "type": "color", + "value": "{color.gray.40}" + }, + "400": { + "type": "color", + "value": "{color.gray.30}" + }, + "500": { + "type": "color", + "value": "{color.gray.20}" + }, + "700": { + "type": "color", + "value": "{color.gray.10}" + }, + "900": { + "type": "color", + "value": "{color.white}" + }, + "white": { + "type": "color", + "value": "{color.white}" + } + } + }, + "warning": { + "color": { + "100": { + "type": "color", + "value": "{color.orange.30}" + }, + "200": { + "type": "color", + "value": "{color.yellow.30}" + } + } + }, + "success": { + "color": { + "100": { + "type": "color", + "value": "{color.blue.30}" + } + } + }, + "danger": { + "color": { + "100": { + "type": "color", + "value": "{color.red-orange.40}" + } + } + }, + "FontSize": { + "xs": { + "type": "number", + "value": 12 + }, + "sm": { + "type": "number", + "value": 14 + }, + "lg": { + "type": "number", + "value": 18 + }, + "2xl": { + "type": "number", + "value": 22 + } + }, + "layout": { + "padding": { + "type": "number", + "value": 50 + }, + "height": { + "type": "number", + "value": 300 + }, + "width": { + "type": "number", + "value": 450 + } + }, + "label": { + "padding": { + "type": "number", + "value": 10 + }, + "margin": { + "type": "number", + "value": 8 + }, + "text-anchor": { + "type": "string", + "value": "middle" + }, + "fill": { + "type": "color", + "value": "{color.white}" + }, + "stroke": { + "width": { + "type": "number", + "value": 0 + }, + "type": "string", + "value": "transparent" + } + } + }, + "theme": { + "colorscales": { + "blue": { + "colorscale": { + "100": { + "type": "color", + "value": "{chart.color.blue.300}" + }, + "200": { + "type": "color", + "value": "{chart.color.blue.100}" + }, + "300": { + "type": "color", + "value": "{chart.color.blue.500}" + }, + "400": { + "type": "color", + "value": "{chart.color.blue.200}" + }, + "500": { + "type": "color", + "value": "{chart.color.blue.400}" + } + } + }, + "teal": { + "colorscale": { + "100": { + "type": "color", + "value": "{chart.color.teal.300}" + }, + "200": { + "type": "color", + "value": "{chart.color.teal.100}" + }, + "300": { + "type": "color", + "value": "{chart.color.teal.500}" + }, + "400": { + "type": "color", + "value": "{chart.color.teal.200}" + }, + "500": { + "type": "color", + "value": "{chart.color.teal.400}" + } + } + }, + "yellow": { + "colorscale": { + "100": { + "type": "color", + "value": "{chart.color.yellow.300}" + }, + "200": { + "type": "color", + "value": "{chart.color.yellow.100}" + }, + "300": { + "type": "color", + "value": "{chart.color.yellow.500}" + }, + "400": { + "type": "color", + "value": "{chart.color.yellow.200}" + }, + "500": { + "type": "color", + "value": "{chart.color.yellow.400}" + } + } + }, + "gray": { + "colorscale": { + "100": { + "type": "color", + "value": "{chart.color.black.300}" + }, + "200": { + "type": "color", + "value": "{chart.color.black.100}" + }, + "300": { + "type": "color", + "value": "{chart.color.black.500}" + }, + "400": { + "type": "color", + "value": "{chart.color.black.200}" + }, + "500": { + "type": "color", + "value": "{chart.color.black.400}" + } + } + }, + "green": { + "colorscale": { + "100": { + "type": "color", + "value": "{chart.color.green.300}" + }, + "200": { + "type": "color", + "value": "{chart.color.green.100}" + }, + "300": { + "type": "color", + "value": "{chart.color.green.500}" + }, + "400": { + "type": "color", + "value": "{chart.color.green.200}" + }, + "500": { + "type": "color", + "value": "{chart.color.green.400}" + } + } + }, + "purple": { + "colorscale": { + "100": { + "type": "color", + "value": "{chart.color.purple.300}" + }, + "200": { + "type": "color", + "value": "{chart.color.purple.100}" + }, + "300": { + "type": "color", + "value": "{chart.color.purple.500}" + }, + "400": { + "type": "color", + "value": "{chart.color.purple.200}" + }, + "500": { + "type": "color", + "value": "{chart.color.purple.400}" + } + } + }, + "orange": { + "colorscale": { + "100": { + "type": "color", + "value": "{chart.color.orange.300}" + }, + "200": { + "type": "color", + "value": "{chart.color.orange.100}" + }, + "300": { + "type": "color", + "value": "{chart.color.orange.500}" + }, + "400": { + "type": "color", + "value": "{chart.color.orange.200}" + }, + "500": { + "type": "color", + "value": "{chart.color.orange.400}" + } + } + }, + "multi-colored-ordered": { + "colorscale": { + "100": { + "type": "color", + "value": "{chart.color.blue.200}" + }, + "200": { + "type": "color", + "value": "{chart.color.green.300}" + }, + "300": { + "type": "color", + "value": "{chart.color.teal.200}" + }, + "400": { + "type": "color", + "value": "{chart.color.yellow.300}" + }, + "500": { + "type": "color", + "value": "{chart.color.orange.200}" + }, + "600": { + "type": "color", + "value": "{chart.color.blue.300}" + }, + "700": { + "type": "color", + "value": "{chart.color.green.200}" + }, + "800": { + "type": "color", + "value": "{chart.color.teal.300}" + }, + "900": { + "type": "color", + "value": "{chart.color.yellow.200}" + }, + "1000": { + "type": "color", + "value": "{chart.color.orange.300}" + }, + "1100": { + "type": "color", + "value": "{chart.color.blue.500}" + }, + "1200": { + "type": "color", + "value": "{chart.color.green.100}" + }, + "1300": { + "type": "color", + "value": "{chart.color.teal.500}" + }, + "1400": { + "type": "color", + "value": "{chart.color.yellow.100}" + }, + "1500": { + "type": "color", + "value": "{chart.color.orange.500}" + }, + "1600": { + "type": "color", + "value": "{chart.color.blue.100}" + }, + "1700": { + "type": "color", + "value": "{chart.color.green.500}" + }, + "1800": { + "type": "color", + "value": "{chart.color.teal.100}" + }, + "1900": { + "type": "color", + "value": "{chart.color.yellow.500}" + }, + "2000": { + "type": "color", + "value": "{chart.color.orange.100}" + }, + "2100": { + "type": "color", + "value": "{chart.color.blue.400}" + }, + "2200": { + "type": "color", + "value": "{chart.color.green.400}" + }, + "2300": { + "type": "color", + "value": "{chart.color.teal.400}" + }, + "2400": { + "type": "color", + "value": "{chart.color.yellow.400}" + }, + "2500": { + "type": "color", + "value": "{chart.color.orange.400}" + } + } + }, + "multi-colored-unordered": { + "colorscale": { + "100": { + "type": "color", + "value": "{chart.color.blue.200}" + }, + "200": { + "type": "color", + "value": "{chart.color.yellow.300}" + }, + "300": { + "type": "color", + "value": "{chart.color.green.200}" + }, + "400": { + "type": "color", + "value": "{chart.color.purple.300}" + }, + "500": { + "type": "color", + "value": "{chart.color.orange.200}" + }, + "600": { + "type": "color", + "value": "{chart.color.teal.300}" + }, + "700": { + "type": "color", + "value": "{chart.color.black.200}" + }, + "800": { + "type": "color", + "value": "{chart.color.blue.300}" + }, + "900": { + "type": "color", + "value": "{chart.color.yellow.200}" + }, + "1000": { + "type": "color", + "value": "{chart.color.green.300}" + }, + "1100": { + "type": "color", + "value": "{chart.color.purple.200}" + }, + "1200": { + "type": "color", + "value": "{chart.color.orange.300}" + }, + "1300": { + "type": "color", + "value": "{chart.color.teal.200}" + }, + "1400": { + "type": "color", + "value": "{chart.color.black.300}" + }, + "1500": { + "type": "color", + "value": "{chart.color.blue.100}" + }, + "1600": { + "type": "color", + "value": "{chart.color.yellow.500}" + }, + "1700": { + "type": "color", + "value": "{chart.color.green.100}" + }, + "1800": { + "type": "color", + "value": "{chart.color.purple.500}" + }, + "1900": { + "type": "color", + "value": "{chart.color.orange.100}" + }, + "2000": { + "type": "color", + "value": "{chart.color.teal.500}" + }, + "2100": { + "type": "color", + "value": "{chart.color.black.100}" + }, + "2200": { + "type": "color", + "value": "{chart.color.blue.500}" + }, + "2300": { + "type": "color", + "value": "{chart.color.yellow.100}" + }, + "2400": { + "type": "color", + "value": "{chart.color.green.500}" + }, + "2500": { + "type": "color", + "value": "{chart.color.purple.100}" + }, + "2600": { + "type": "color", + "value": "{chart.color.orange.500}" + }, + "2700": { + "type": "color", + "value": "{chart.color.teal.100}" + }, + "2800": { + "type": "color", + "value": "{chart.color.black.500}" + }, + "2900": { + "type": "color", + "value": "{chart.color.blue.400}" + }, + "3000": { + "type": "color", + "value": "{chart.color.yellow.400}" + }, + "3100": { + "type": "color", + "value": "{chart.color.green.400}" + }, + "3200": { + "type": "color", + "value": "{chart.color.purple.400}" + }, + "3300": { + "type": "color", + "value": "{chart.color.orange.400}" + }, + "3400": { + "type": "color", + "value": "{chart.color.teal.400}" + }, + "3500": { + "type": "color", + "value": "{chart.color.black.400}" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/packages/module/tokens/default/dark/palette.color.json b/packages/module/tokens/default/dark/palette.color.json index be0c456..3be3b0c 100644 --- a/packages/module/tokens/default/dark/palette.color.json +++ b/packages/module/tokens/default/dark/palette.color.json @@ -5,6 +5,10 @@ "type": "color", "value": "#ffffff" }, + "black": { + "type": "color", + "value": "#000000" + }, "gray": { "10": { "type": "color", @@ -51,10 +55,6 @@ "value": "#151515" } }, - "black": { - "type": "color", - "value": "#000000" - }, "blue": { "10": { "type": "color", diff --git a/packages/module/tokens/default/dark/semantic.dark.json b/packages/module/tokens/default/dark/semantic.dark.json index c797861..f3a7dcf 100644 --- a/packages/module/tokens/default/dark/semantic.dark.json +++ b/packages/module/tokens/default/dark/semantic.dark.json @@ -559,6 +559,31 @@ }, "icon": { "color": { + "regular": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "subtle": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "{global.dark.icon.color.200}" + }, + "inverse": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "disabled": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "{global.dark.color.disabled.200}" + }, + "on-disabled": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "{global.dark.color.disabled.300}" + }, "brand": { "default": { "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", @@ -869,31 +894,6 @@ } } }, - "regular": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", - "type": "color", - "value": "{global.dark.icon.color.100}" - }, - "subtle": { - "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", - "type": "color", - "value": "{global.dark.icon.color.200}" - }, - "inverse": { - "description": "Use as the color for icons that are placed on an inverse background color", - "type": "color", - "value": "{global.dark.icon.color.300}" - }, - "disabled": { - "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", - "type": "color", - "value": "{global.dark.color.disabled.200}" - }, - "on-disabled": { - "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", - "type": "color", - "value": "{global.dark.color.disabled.300}" - }, "severity": { "undefined": { "default": { @@ -1097,14 +1097,52 @@ }, "border": { "color": { + "high-contrast": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "rgba(255, 255, 255, 0.0000)" + }, + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.border.color.100}" + }, + "hover": { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.brand.100}" + }, + "clicked": { + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "subtle": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.border.color.100}" + }, + "disabled": { + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.disabled.200}" + }, + "alt": { + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "on-secondary": { + "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "type": "color", + "value": "{global.dark.border.color.200}" + }, "control": { "default": { - "description": "Use as the default border for control elements like form inputs, menu toggles, and clickable cards", "type": "color", "value": "{global.dark.border.color.200}" }, "read-only": { - "description": "Use as the read-only border for control elements like form inputs, menu toggles.", "type": "color", "value": "{global.dark.border.color.100}" } @@ -1127,34 +1165,34 @@ }, "accent": { "default": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.default}" }, "hover": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.hover}" }, "clicked": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.clicked}" } }, "subtle": { "default": { - "description": "Use as the default border color for any subtle brand element like toggle groups", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.dark.color.brand.subtle.200}" }, "hover": { - "description": "Use as the hover border color for any subtle brand element like toggle groups", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.dark.color.brand.subtle.300}" }, "clicked": { - "description": "Use as the clicked border color for any subtle brand element like toggle groups", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.dark.color.brand.subtle.300}" } @@ -1247,46 +1285,6 @@ } } }, - "high-contrast": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "rgba(255, 255, 255, 0.0000)" - }, - "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.dark.border.color.100}" - }, - "hover": { - "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.dark.color.brand.100}" - }, - "clicked": { - "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.dark.color.brand.200}" - }, - "subtle": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.dark.border.color.100}" - }, - "disabled": { - "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.dark.color.disabled.200}" - }, - "alt": { - "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", - "type": "color", - "value": "{global.background.color.primary.default}" - }, - "on-secondary": { - "description": "Use on borders/dividers that are placed on a secondary bkg color.", - "type": "color", - "value": "{global.dark.border.color.200}" - }, "glass": { "default": { "type": "color", @@ -1458,6 +1456,46 @@ }, "text": { "color": { + "regular": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "subtle": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "{global.dark.text.color.200}" + }, + "inverse": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "placeholder": { + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "type": "color", + "value": "{global.text.color.subtle}" + }, + "disabled": { + "description": "Use as the color of text on disabled elements, like disabled menu items.", + "type": "color", + "value": "{global.dark.color.disabled.200}" + }, + "on-disabled": { + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", + "type": "color", + "value": "{global.dark.color.disabled.300}" + }, + "required": { + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", + "type": "color", + "value": "{global.dark.text.color.400}" + }, + "on-highlight": { + "description": "Use as the color of text that is highlighted.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, "link": { "default": { "description": "Use as the default text color for links.", @@ -1492,21 +1530,6 @@ "value": "{global.dark.color.brand.300}" } }, - "regular": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", - "type": "color", - "value": "{global.dark.text.color.100}" - }, - "subtle": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", - "type": "color", - "value": "{global.dark.text.color.200}" - }, - "inverse": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", - "type": "color", - "value": "{global.dark.text.color.300}" - }, "on-brand": { "default": { "description": "Use as the default color for text placed on a brand-colored background.", @@ -1558,31 +1581,6 @@ } } }, - "placeholder": { - "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", - "type": "color", - "value": "{global.text.color.subtle}" - }, - "disabled": { - "description": "Use as the color of text on disabled elements, like disabled menu items.", - "type": "color", - "value": "{global.dark.color.disabled.200}" - }, - "on-disabled": { - "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", - "type": "color", - "value": "{global.dark.color.disabled.300}" - }, - "required": { - "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", - "type": "color", - "value": "{global.dark.text.color.400}" - }, - "on-highlight": { - "description": "Use as the color of text that is highlighted.", - "type": "color", - "value": "{global.dark.text.color.300}" - }, "status": { "success": { "default": { @@ -1982,15 +1980,6 @@ } } }, - "focus-ring": { - "color": { - "default": { - "description": "Use as color value for custom focus rings", - "type": "color", - "value": "{global.dark.focus-ring.color.100}" - } - } - }, "text-decoration": { "color": { "default": { @@ -2002,6 +1991,15 @@ "value": "{global.border.color.hover}" } } + }, + "focus-ring": { + "color": { + "default": { + "description": "Use as color value for custom focus rings", + "type": "color", + "value": "{global.dark.focus-ring.color.100}" + } + } } } } \ No newline at end of file diff --git a/packages/module/tokens/default/glass-dark/base.dark.json b/packages/module/tokens/default/glass-dark/base.dark.json index f5c4c85..e87c528 100644 --- a/packages/module/tokens/default/glass-dark/base.dark.json +++ b/packages/module/tokens/default/glass-dark/base.dark.json @@ -127,6 +127,48 @@ "value": "{color.yellow.20}" } }, + "severity": { + "undefined": { + "100": { + "type": "color", + "value": "{color.gray.40}" + } + }, + "none": { + "100": { + "type": "color", + "value": "{color.blue.30}" + } + }, + "minor": { + "100": { + "type": "color", + "value": "{color.gray.30}" + } + }, + "moderate": { + "100": { + "type": "color", + "value": "{color.yellow.30}" + } + }, + "important": { + "100": { + "type": "color", + "value": "{color.orange.40}" + } + }, + "critical": { + "100": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "200": { + "type": "color", + "value": "{color.red-orange.40}" + } + } + }, "status": { "success": { "100": { @@ -199,48 +241,6 @@ } } }, - "severity": { - "undefined": { - "100": { - "type": "color", - "value": "{color.gray.40}" - } - }, - "none": { - "100": { - "type": "color", - "value": "{color.blue.30}" - } - }, - "minor": { - "100": { - "type": "color", - "value": "{color.gray.30}" - } - }, - "moderate": { - "100": { - "type": "color", - "value": "{color.yellow.30}" - } - }, - "important": { - "100": { - "type": "color", - "value": "{color.orange.40}" - } - }, - "critical": { - "100": { - "type": "color", - "value": "{color.red-orange.50}" - }, - "200": { - "type": "color", - "value": "{color.red-orange.40}" - } - } - }, "nonstatus": { "red": { "100": { diff --git a/packages/module/tokens/default/glass-dark/palette.color.json b/packages/module/tokens/default/glass-dark/palette.color.json index be0c456..3be3b0c 100644 --- a/packages/module/tokens/default/glass-dark/palette.color.json +++ b/packages/module/tokens/default/glass-dark/palette.color.json @@ -5,6 +5,10 @@ "type": "color", "value": "#ffffff" }, + "black": { + "type": "color", + "value": "#000000" + }, "gray": { "10": { "type": "color", @@ -51,10 +55,6 @@ "value": "#151515" } }, - "black": { - "type": "color", - "value": "#000000" - }, "blue": { "10": { "type": "color", diff --git a/packages/module/tokens/default/glass-dark/semantic.glass.dark.json b/packages/module/tokens/default/glass-dark/semantic.glass.dark.json index dc984f0..0b99ae9 100644 --- a/packages/module/tokens/default/glass-dark/semantic.glass.dark.json +++ b/packages/module/tokens/default/glass-dark/semantic.glass.dark.json @@ -559,6 +559,31 @@ }, "icon": { "color": { + "regular": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "subtle": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "{global.dark.icon.color.200}" + }, + "inverse": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "disabled": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "{global.dark.color.disabled.200}" + }, + "on-disabled": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "{global.dark.color.disabled.300}" + }, "brand": { "default": { "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", @@ -869,31 +894,6 @@ } } }, - "regular": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", - "type": "color", - "value": "{global.dark.icon.color.100}" - }, - "subtle": { - "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", - "type": "color", - "value": "{global.dark.icon.color.200}" - }, - "inverse": { - "description": "Use as the color for icons that are placed on an inverse background color", - "type": "color", - "value": "{global.dark.icon.color.300}" - }, - "disabled": { - "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", - "type": "color", - "value": "{global.dark.color.disabled.200}" - }, - "on-disabled": { - "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", - "type": "color", - "value": "{global.dark.color.disabled.300}" - }, "severity": { "undefined": { "default": { @@ -1097,14 +1097,52 @@ }, "border": { "color": { + "high-contrast": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "rgba(255, 255, 255, 0.0000)" + }, + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.border.color.100}" + }, + "hover": { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.brand.100}" + }, + "clicked": { + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "subtle": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.border.color.50}" + }, + "disabled": { + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.disabled.200}" + }, + "alt": { + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "on-secondary": { + "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "type": "color", + "value": "{global.dark.border.color.200}" + }, "control": { "default": { - "description": "Use as the default border for control elements like form inputs, menu toggles, and clickable cards", "type": "color", "value": "{global.dark.border.color.200}" }, "read-only": { - "description": "Use as the read-only border for control elements like form inputs, menu toggles.", "type": "color", "value": "{global.dark.border.color.50}" } @@ -1127,34 +1165,34 @@ }, "accent": { "default": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.default}" }, "hover": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.hover}" }, "clicked": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.clicked}" } }, "subtle": { "default": { - "description": "Use as the default border color for any subtle brand element like toggle groups", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.dark.color.brand.subtle.200}" }, "hover": { - "description": "Use as the hover border color for any subtle brand element like toggle groups", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.dark.color.brand.subtle.300}" }, "clicked": { - "description": "Use as the clicked border color for any subtle brand element like toggle groups", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.dark.color.brand.subtle.300}" } @@ -1247,46 +1285,6 @@ } } }, - "high-contrast": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "rgba(255, 255, 255, 0.0000)" - }, - "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.dark.border.color.100}" - }, - "hover": { - "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.dark.color.brand.100}" - }, - "clicked": { - "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.dark.color.brand.200}" - }, - "subtle": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.dark.border.color.50}" - }, - "disabled": { - "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.dark.color.disabled.200}" - }, - "alt": { - "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", - "type": "color", - "value": "{global.background.color.primary.default}" - }, - "on-secondary": { - "description": "Use on borders/dividers that are placed on a secondary bkg color.", - "type": "color", - "value": "{global.dark.border.color.200}" - }, "glass": { "default": { "type": "color", @@ -1458,6 +1456,46 @@ }, "text": { "color": { + "regular": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "subtle": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "{global.dark.text.color.200}" + }, + "inverse": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "placeholder": { + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "type": "color", + "value": "{global.text.color.subtle}" + }, + "disabled": { + "description": "Use as the color of text on disabled elements, like disabled menu items.", + "type": "color", + "value": "{global.dark.color.disabled.200}" + }, + "on-disabled": { + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", + "type": "color", + "value": "{global.dark.color.disabled.300}" + }, + "required": { + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", + "type": "color", + "value": "{global.dark.text.color.400}" + }, + "on-highlight": { + "description": "Use as the color of text that is highlighted.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, "link": { "default": { "description": "Use as the default text color for links.", @@ -1492,21 +1530,6 @@ "value": "{global.dark.color.brand.300}" } }, - "regular": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", - "type": "color", - "value": "{global.dark.text.color.100}" - }, - "subtle": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", - "type": "color", - "value": "{global.dark.text.color.200}" - }, - "inverse": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", - "type": "color", - "value": "{global.dark.text.color.300}" - }, "on-brand": { "default": { "description": "Use as the default color for text placed on a brand-colored background.", @@ -1558,31 +1581,6 @@ } } }, - "placeholder": { - "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", - "type": "color", - "value": "{global.text.color.subtle}" - }, - "disabled": { - "description": "Use as the color of text on disabled elements, like disabled menu items.", - "type": "color", - "value": "{global.dark.color.disabled.200}" - }, - "on-disabled": { - "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", - "type": "color", - "value": "{global.dark.color.disabled.300}" - }, - "required": { - "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", - "type": "color", - "value": "{global.dark.text.color.400}" - }, - "on-highlight": { - "description": "Use as the color of text that is highlighted.", - "type": "color", - "value": "{global.dark.text.color.300}" - }, "status": { "success": { "default": { @@ -1982,15 +1980,6 @@ } } }, - "focus-ring": { - "color": { - "default": { - "description": "Use as color value for custom focus rings", - "type": "color", - "value": "{global.dark.focus-ring.color.100}" - } - } - }, "text-decoration": { "color": { "default": { @@ -2002,6 +1991,15 @@ "value": "{global.border.color.hover}" } } + }, + "focus-ring": { + "color": { + "default": { + "description": "Use as color value for custom focus rings", + "type": "color", + "value": "{global.dark.focus-ring.color.100}" + } + } } } } \ No newline at end of file diff --git a/packages/module/tokens/default/glass/base.dimension.json b/packages/module/tokens/default/glass/base.dimension.json index e7d1c4b..580f7b1 100644 --- a/packages/module/tokens/default/glass/base.dimension.json +++ b/packages/module/tokens/default/glass/base.dimension.json @@ -110,6 +110,20 @@ } }, "font": { + "family": { + "100": { + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + }, + "200": { + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + }, + "300": { + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" + } + }, "line-height": { "100": { "type": "number", @@ -171,20 +185,6 @@ "type": "number", "value": 36 } - }, - "family": { - "100": { - "type": "string", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" - }, - "200": { - "type": "string", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" - }, - "300": { - "type": "string", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" - } } }, "z-index": { diff --git a/packages/module/tokens/default/glass/palette.color.json b/packages/module/tokens/default/glass/palette.color.json index be0c456..3be3b0c 100644 --- a/packages/module/tokens/default/glass/palette.color.json +++ b/packages/module/tokens/default/glass/palette.color.json @@ -5,6 +5,10 @@ "type": "color", "value": "#ffffff" }, + "black": { + "type": "color", + "value": "#000000" + }, "gray": { "10": { "type": "color", @@ -51,10 +55,6 @@ "value": "#151515" } }, - "black": { - "type": "color", - "value": "#000000" - }, "blue": { "10": { "type": "color", diff --git a/packages/module/tokens/default/glass/semantic.dimension.glass.json b/packages/module/tokens/default/glass/semantic.dimension.glass.json index 5d455bf..82214d2 100644 --- a/packages/module/tokens/default/glass/semantic.dimension.glass.json +++ b/packages/module/tokens/default/glass/semantic.dimension.glass.json @@ -33,12 +33,6 @@ "type": "number", "value": "{global.border.radius.500}" }, - "glass": { - "default": { - "type": "number", - "value": "{global.border.radius.medium}" - } - }, "control": { "default": { "type": "number", @@ -49,20 +43,41 @@ "value": "{global.border.radius.small}" } }, + "glass": { + "default": { + "type": "number", + "value": "{global.border.radius.medium}" + } + }, "action": { + "default": { + "type": "number", + "value": "{global.border.radius.pill}" + }, "plain": { "default": { "type": "number", "value": "{global.border.radius.small}" } - }, - "default": { - "type": "number", - "value": "{global.border.radius.pill}" } } }, "width": { + "regular": { + "description": "Use as the default border width for elements.", + "type": "number", + "value": "{global.border.width.100}" + }, + "strong": { + "description": "Use as a stronger/wider border width for elements.", + "type": "number", + "value": "{global.border.width.200}" + }, + "extra-strong": { + "description": "Use as the strongest/widest border width for elements.", + "type": "number", + "value": "{global.border.width.300}" + }, "divider": { "default": { "description": "Use as the default border width for dividers.", @@ -80,21 +95,6 @@ "value": "{global.border.width.100}" } }, - "regular": { - "description": "Use as the default border width for elements.", - "type": "number", - "value": "{global.border.width.100}" - }, - "strong": { - "description": "Use as a stronger/wider border width for elements.", - "type": "number", - "value": "{global.border.width.200}" - }, - "extra-strong": { - "description": "Use as the strongest/widest border width for elements.", - "type": "number", - "value": "{global.border.width.300}" - }, "glass": { "default": { "type": "number", @@ -156,6 +156,16 @@ "type": "number", "value": "{global.border.width.100}" }, + "hover": { + "description": "Use as the hover state border width for actions like secondary and tertiary buttons", + "type": "number", + "value": "{global.border.width.200}" + }, + "clicked": { + "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", + "type": "number", + "value": "{global.border.width.200}" + }, "plain": { "default": { "description": "Use as the default border width for plain actions", @@ -172,16 +182,6 @@ "type": "number", "value": 0 } - }, - "hover": { - "description": "Use as the hover state border width for actions like secondary and tertiary buttons", - "type": "number", - "value": "{global.border.width.200}" - }, - "clicked": { - "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", - "type": "number", - "value": "{global.border.width.200}" } }, "control": { @@ -297,6 +297,16 @@ "type": "number", "value": "{global.spacer.lg}" }, + "compact": { + "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", + "type": "number", + "value": "{global.spacer.md}" + }, + "spacious": { + "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", + "type": "number", + "value": "{global.spacer.xl}" + }, "plain": { "default": { "description": "Use to set the horizontal padding inside a plain action, like plain buttons.", @@ -308,16 +318,6 @@ "type": "number", "value": "{global.spacer.xs}" } - }, - "compact": { - "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", - "type": "number", - "value": "{global.spacer.md}" - }, - "spacious": { - "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", - "type": "number", - "value": "{global.spacer.xl}" } } }, @@ -438,6 +438,46 @@ "value": "{global.icon.size.500}" }, "font": { + "xs": { + "description": "Use for icons that are placed inline with font–size–xs text", + "type": "number", + "value": "{global.font.size.xs}" + }, + "sm": { + "description": "Use for icons that are placed inline with font–size–sm text", + "type": "number", + "value": "{global.font.size.sm}" + }, + "md": { + "description": "Use for icons that are placed inline with font–size–md text", + "type": "number", + "value": "{global.font.size.md}" + }, + "lg": { + "description": "Use for icons that are placed inline with font–size–lg text", + "type": "number", + "value": "{global.font.size.lg}" + }, + "xl": { + "description": "Use for icons that are placed inline with font–size–xl text", + "type": "number", + "value": "{global.font.size.xl}" + }, + "2xl": { + "description": "Use for icons that are placed inline with font–size–2xl text", + "type": "number", + "value": "{global.font.size.2xl}" + }, + "3xl": { + "description": "Use for icons that are placed inline with font–size–3xl text", + "type": "number", + "value": "{global.font.size.3xl}" + }, + "4xl": { + "description": "Use for icons that are placed inline with font–size–3xl text", + "type": "number", + "value": "{global.font.size.4xl}" + }, "heading": { "h1": { "description": "Use for icons that are placed inline with first level headings", @@ -486,63 +526,11 @@ "type": "number", "value": "{global.font.size.body.lg}" } - }, - "xs": { - "description": "Use for icons that are placed inline with font–size–xs text", - "type": "number", - "value": "{global.font.size.xs}" - }, - "sm": { - "description": "Use for icons that are placed inline with font–size–sm text", - "type": "number", - "value": "{global.font.size.sm}" - }, - "md": { - "description": "Use for icons that are placed inline with font–size–md text", - "type": "number", - "value": "{global.font.size.md}" - }, - "lg": { - "description": "Use for icons that are placed inline with font–size–lg text", - "type": "number", - "value": "{global.font.size.lg}" - }, - "xl": { - "description": "Use for icons that are placed inline with font–size–xl text", - "type": "number", - "value": "{global.font.size.xl}" - }, - "2xl": { - "description": "Use for icons that are placed inline with font–size–2xl text", - "type": "number", - "value": "{global.font.size.2xl}" - }, - "3xl": { - "description": "Use for icons that are placed inline with font–size–3xl text", - "type": "number", - "value": "{global.font.size.3xl}" - }, - "4xl": { - "description": "Use for icons that are placed inline with font–size–3xl text", - "type": "number", - "value": "{global.font.size.4xl}" } } } }, "font": { - "line-height": { - "body": { - "description": "Use to define the line height for body text", - "type": "number", - "value": "{global.font.line-height.200}" - }, - "heading": { - "description": "Use to define the line height for heading text", - "type": "number", - "value": "{global.font.line-height.100}" - } - }, "weight": { "body": { "default": { @@ -569,6 +557,18 @@ } } }, + "line-height": { + "body": { + "description": "Use to define the line height for body text", + "type": "number", + "value": "{global.font.line-height.200}" + }, + "heading": { + "description": "Use to define the line height for heading text", + "type": "number", + "value": "{global.font.line-height.100}" + } + }, "family": { "body": { "description": "Use to define the font family for body text", @@ -587,6 +587,45 @@ } }, "size": { + "xs": { + "type": "number", + "value": "{global.font.size.100}" + }, + "sm": { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.200}" + }, + "md": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" + }, + "lg": { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.400}" + }, + "xl": { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.500}" + }, + "2xl": { + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.600}" + }, + "3xl": { + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.700}" + }, + "4xl": { + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.800}" + }, "body": { "sm": { "description": "Use for a smaller font size in body sections.", @@ -635,45 +674,6 @@ "type": "number", "value": "{global.font.size.md}" } - }, - "xs": { - "type": "number", - "value": "{global.font.size.100}" - }, - "sm": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.200}" - }, - "md": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.300}" - }, - "lg": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.400}" - }, - "xl": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.500}" - }, - "2xl": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.600}" - }, - "3xl": { - "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.700}" - }, - "4xl": { - "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.800}" } } }, @@ -999,7 +999,7 @@ }, "hover": { "type": "number", - "value": "{global.border.width.strong}" + "value": "{global.border.width.regular}" } }, "offset": { diff --git a/packages/module/tokens/default/glass/semantic.glass.json b/packages/module/tokens/default/glass/semantic.glass.json index 0e694c9..2c8feb4 100644 --- a/packages/module/tokens/default/glass/semantic.glass.json +++ b/packages/module/tokens/default/glass/semantic.glass.json @@ -559,6 +559,31 @@ }, "icon": { "color": { + "regular": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "subtle": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "{global.icon.color.200}" + }, + "inverse": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "disabled": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "{global.color.disabled.200}" + }, + "on-disabled": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "{global.color.disabled.300}" + }, "brand": { "default": { "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", @@ -869,31 +894,6 @@ } } }, - "regular": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", - "type": "color", - "value": "{global.icon.color.100}" - }, - "subtle": { - "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", - "type": "color", - "value": "{global.icon.color.200}" - }, - "inverse": { - "description": "Use as the color for icons that are placed on an inverse background color", - "type": "color", - "value": "{global.icon.color.300}" - }, - "disabled": { - "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", - "type": "color", - "value": "{global.color.disabled.200}" - }, - "on-disabled": { - "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", - "type": "color", - "value": "{global.color.disabled.300}" - }, "severity": { "undefined": { "default": { @@ -1097,14 +1097,52 @@ }, "border": { "color": { + "high-contrast": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "rgba(255, 255, 255, 0.0000)" + }, + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.border.color.50}" + }, + "hover": { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.color.brand.100}" + }, + "clicked": { + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.color.brand.200}" + }, + "subtle": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.border.color.50}" + }, + "disabled": { + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.color.disabled.200}" + }, + "alt": { + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "on-secondary": { + "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "type": "color", + "value": "{global.border.color.300}" + }, "control": { "default": { - "description": "Use as the default border for control elements like form inputs, menu toggles, and clickable cards", "type": "color", "value": "{global.border.color.300}" }, "read-only": { - "description": "Use as the read-only border for control elements like form inputs, menu toggles.", "type": "color", "value": "{global.border.color.100}" } @@ -1127,34 +1165,34 @@ }, "accent": { "default": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.default}" }, "hover": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.hover}" }, "clicked": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.clicked}" } }, "subtle": { "default": { - "description": "Use as the default border color for any subtle brand element like toggle groups", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.subtle.200}" }, "hover": { - "description": "Use as the hover border color for any subtle brand element like toggle groups", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.subtle.300}" }, "clicked": { - "description": "Use as the clicked border color for any subtle brand element like toggle groups", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.subtle.300}" } @@ -1247,46 +1285,6 @@ } } }, - "high-contrast": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "rgba(255, 255, 255, 0.0000)" - }, - "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.border.color.100}" - }, - "hover": { - "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.color.brand.100}" - }, - "clicked": { - "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.color.brand.200}" - }, - "subtle": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.border.color.50}" - }, - "disabled": { - "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.color.disabled.200}" - }, - "alt": { - "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", - "type": "color", - "value": "{global.background.color.primary.default}" - }, - "on-secondary": { - "description": "Use on borders/dividers that are placed on a secondary bkg color.", - "type": "color", - "value": "{global.border.color.300}" - }, "glass": { "default": { "type": "color", @@ -1458,6 +1456,46 @@ }, "text": { "color": { + "regular": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "subtle": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "{global.text.color.200}" + }, + "inverse": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "placeholder": { + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "type": "color", + "value": "{global.text.color.subtle}" + }, + "disabled": { + "description": "Use as the color of text on disabled elements, like disabled menu items.", + "type": "color", + "value": "{global.color.disabled.200}" + }, + "on-disabled": { + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", + "type": "color", + "value": "{global.color.disabled.300}" + }, + "required": { + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", + "type": "color", + "value": "{global.text.color.400}" + }, + "on-highlight": { + "description": "Use as the color of text that is highlighted.", + "type": "color", + "value": "{global.text.color.100}" + }, "link": { "default": { "description": "Use as the default text color for links.", @@ -1492,21 +1530,6 @@ "value": "{global.color.brand.clicked}" } }, - "regular": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", - "type": "color", - "value": "{global.text.color.100}" - }, - "subtle": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", - "type": "color", - "value": "{global.text.color.200}" - }, - "inverse": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", - "type": "color", - "value": "{global.text.color.300}" - }, "on-brand": { "default": { "description": "Use as the default color for text placed on a brand-colored background.", @@ -1558,31 +1581,6 @@ } } }, - "placeholder": { - "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", - "type": "color", - "value": "{global.text.color.subtle}" - }, - "disabled": { - "description": "Use as the color of text on disabled elements, like disabled menu items.", - "type": "color", - "value": "{global.color.disabled.200}" - }, - "on-disabled": { - "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", - "type": "color", - "value": "{global.color.disabled.300}" - }, - "required": { - "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", - "type": "color", - "value": "{global.text.color.400}" - }, - "on-highlight": { - "description": "Use as the color of text that is highlighted.", - "type": "color", - "value": "{global.text.color.100}" - }, "status": { "success": { "default": { @@ -1982,15 +1980,6 @@ } } }, - "focus-ring": { - "color": { - "default": { - "description": "Use as color value for custom focus rings", - "type": "color", - "value": "{global.focus-ring.color.100}" - } - } - }, "text-decoration": { "color": { "default": { @@ -2002,6 +1991,15 @@ "value": "{global.border.color.hover}" } } + }, + "focus-ring": { + "color": { + "default": { + "description": "Use as color value for custom focus rings", + "type": "color", + "value": "{global.focus-ring.color.100}" + } + } } } } \ No newline at end of file diff --git a/packages/module/tokens/default/highcontrast-dark/base.dark.json b/packages/module/tokens/default/highcontrast-dark/base.dark.json index f5c4c85..e87c528 100644 --- a/packages/module/tokens/default/highcontrast-dark/base.dark.json +++ b/packages/module/tokens/default/highcontrast-dark/base.dark.json @@ -127,6 +127,48 @@ "value": "{color.yellow.20}" } }, + "severity": { + "undefined": { + "100": { + "type": "color", + "value": "{color.gray.40}" + } + }, + "none": { + "100": { + "type": "color", + "value": "{color.blue.30}" + } + }, + "minor": { + "100": { + "type": "color", + "value": "{color.gray.30}" + } + }, + "moderate": { + "100": { + "type": "color", + "value": "{color.yellow.30}" + } + }, + "important": { + "100": { + "type": "color", + "value": "{color.orange.40}" + } + }, + "critical": { + "100": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "200": { + "type": "color", + "value": "{color.red-orange.40}" + } + } + }, "status": { "success": { "100": { @@ -199,48 +241,6 @@ } } }, - "severity": { - "undefined": { - "100": { - "type": "color", - "value": "{color.gray.40}" - } - }, - "none": { - "100": { - "type": "color", - "value": "{color.blue.30}" - } - }, - "minor": { - "100": { - "type": "color", - "value": "{color.gray.30}" - } - }, - "moderate": { - "100": { - "type": "color", - "value": "{color.yellow.30}" - } - }, - "important": { - "100": { - "type": "color", - "value": "{color.orange.40}" - } - }, - "critical": { - "100": { - "type": "color", - "value": "{color.red-orange.50}" - }, - "200": { - "type": "color", - "value": "{color.red-orange.40}" - } - } - }, "nonstatus": { "red": { "100": { diff --git a/packages/module/tokens/default/highcontrast-dark/palette.color.json b/packages/module/tokens/default/highcontrast-dark/palette.color.json index be0c456..3be3b0c 100644 --- a/packages/module/tokens/default/highcontrast-dark/palette.color.json +++ b/packages/module/tokens/default/highcontrast-dark/palette.color.json @@ -5,6 +5,10 @@ "type": "color", "value": "#ffffff" }, + "black": { + "type": "color", + "value": "#000000" + }, "gray": { "10": { "type": "color", @@ -51,10 +55,6 @@ "value": "#151515" } }, - "black": { - "type": "color", - "value": "#000000" - }, "blue": { "10": { "type": "color", diff --git a/packages/module/tokens/default/highcontrast-dark/semantic.highcontrast.dark.json b/packages/module/tokens/default/highcontrast-dark/semantic.highcontrast.dark.json index ac5514a..625d56d 100644 --- a/packages/module/tokens/default/highcontrast-dark/semantic.highcontrast.dark.json +++ b/packages/module/tokens/default/highcontrast-dark/semantic.highcontrast.dark.json @@ -559,6 +559,31 @@ }, "icon": { "color": { + "regular": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.dark.icon.color.100}" + }, + "subtle": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "{global.dark.icon.color.200}" + }, + "inverse": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.dark.icon.color.300}" + }, + "disabled": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "{global.dark.color.disabled.200}" + }, + "on-disabled": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "{global.dark.color.disabled.300}" + }, "brand": { "default": { "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", @@ -869,31 +894,6 @@ } } }, - "regular": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", - "type": "color", - "value": "{global.dark.icon.color.100}" - }, - "subtle": { - "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", - "type": "color", - "value": "{global.dark.icon.color.200}" - }, - "inverse": { - "description": "Use as the color for icons that are placed on an inverse background color", - "type": "color", - "value": "{global.dark.icon.color.300}" - }, - "disabled": { - "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", - "type": "color", - "value": "{global.dark.color.disabled.200}" - }, - "on-disabled": { - "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", - "type": "color", - "value": "{global.dark.color.disabled.300}" - }, "severity": { "undefined": { "default": { @@ -1097,14 +1097,52 @@ }, "border": { "color": { + "high-contrast": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.border.color.default}" + }, + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.border.color.300}" + }, + "hover": { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.brand.100}" + }, + "clicked": { + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.brand.200}" + }, + "subtle": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.border.color.300}" + }, + "disabled": { + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.dark.color.disabled.100}" + }, + "alt": { + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "on-secondary": { + "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "type": "color", + "value": "{global.dark.border.color.300}" + }, "control": { "default": { - "description": "Use as the default border for control elements like form inputs, menu toggles, and clickable cards", "type": "color", "value": "{global.dark.border.color.300}" }, "read-only": { - "description": "Use as the read-only border for control elements like form inputs, menu toggles.", "type": "color", "value": "{global.dark.border.color.50}" } @@ -1127,34 +1165,34 @@ }, "accent": { "default": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.default}" }, "hover": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.hover}" }, "clicked": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.clicked}" } }, "subtle": { "default": { - "description": "Use as the default border color for any subtle brand element like toggle groups", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.dark.color.brand.subtle.200}" }, "hover": { - "description": "Use as the hover border color for any subtle brand element like toggle groups", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.dark.color.brand.subtle.300}" }, "clicked": { - "description": "Use as the clicked border color for any subtle brand element like toggle groups", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.dark.color.brand.subtle.300}" } @@ -1247,46 +1285,6 @@ } } }, - "high-contrast": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.border.color.default}" - }, - "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.dark.border.color.300}" - }, - "hover": { - "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.dark.color.brand.100}" - }, - "clicked": { - "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.dark.color.brand.200}" - }, - "subtle": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.dark.border.color.300}" - }, - "disabled": { - "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.dark.color.disabled.100}" - }, - "alt": { - "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", - "type": "color", - "value": "{global.background.color.primary.default}" - }, - "on-secondary": { - "description": "Use on borders/dividers that are placed on a secondary bkg color.", - "type": "color", - "value": "{global.dark.border.color.300}" - }, "glass": { "default": { "type": "color", @@ -1458,6 +1456,46 @@ }, "text": { "color": { + "regular": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.dark.text.color.100}" + }, + "subtle": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "{global.dark.text.color.200}" + }, + "inverse": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, + "placeholder": { + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "type": "color", + "value": "{global.text.color.subtle}" + }, + "disabled": { + "description": "Use as the color of text on disabled elements, like disabled menu items.", + "type": "color", + "value": "{global.dark.color.disabled.200}" + }, + "on-disabled": { + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", + "type": "color", + "value": "{global.dark.color.disabled.400}" + }, + "required": { + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", + "type": "color", + "value": "{global.dark.text.color.400}" + }, + "on-highlight": { + "description": "Use as the color of text that is highlighted.", + "type": "color", + "value": "{global.dark.text.color.300}" + }, "link": { "default": { "description": "Use as the default text color for links.", @@ -1492,21 +1530,6 @@ "value": "{global.dark.color.brand.300}" } }, - "regular": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", - "type": "color", - "value": "{global.dark.text.color.100}" - }, - "subtle": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", - "type": "color", - "value": "{global.dark.text.color.200}" - }, - "inverse": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", - "type": "color", - "value": "{global.dark.text.color.300}" - }, "on-brand": { "default": { "description": "Use as the default color for text placed on a brand-colored background.", @@ -1558,31 +1581,6 @@ } } }, - "placeholder": { - "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", - "type": "color", - "value": "{global.text.color.subtle}" - }, - "disabled": { - "description": "Use as the color of text on disabled elements, like disabled menu items.", - "type": "color", - "value": "{global.dark.color.disabled.200}" - }, - "on-disabled": { - "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", - "type": "color", - "value": "{global.dark.color.disabled.400}" - }, - "required": { - "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", - "type": "color", - "value": "{global.dark.text.color.400}" - }, - "on-highlight": { - "description": "Use as the color of text that is highlighted.", - "type": "color", - "value": "{global.dark.text.color.300}" - }, "status": { "success": { "default": { @@ -1982,15 +1980,6 @@ } } }, - "focus-ring": { - "color": { - "default": { - "description": "Use as color value for custom focus rings", - "type": "color", - "value": "{global.dark.focus-ring.color.100}" - } - } - }, "text-decoration": { "color": { "default": { @@ -2002,6 +1991,15 @@ "value": "{global.border.color.hover}" } } + }, + "focus-ring": { + "color": { + "default": { + "description": "Use as color value for custom focus rings", + "type": "color", + "value": "{global.dark.focus-ring.color.100}" + } + } } } } \ No newline at end of file diff --git a/packages/module/tokens/default/highcontrast/base.dimension.json b/packages/module/tokens/default/highcontrast/base.dimension.json index e7d1c4b..580f7b1 100644 --- a/packages/module/tokens/default/highcontrast/base.dimension.json +++ b/packages/module/tokens/default/highcontrast/base.dimension.json @@ -110,6 +110,20 @@ } }, "font": { + "family": { + "100": { + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + }, + "200": { + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + }, + "300": { + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" + } + }, "line-height": { "100": { "type": "number", @@ -171,20 +185,6 @@ "type": "number", "value": 36 } - }, - "family": { - "100": { - "type": "string", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" - }, - "200": { - "type": "string", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" - }, - "300": { - "type": "string", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" - } } }, "z-index": { diff --git a/packages/module/tokens/default/highcontrast/palette.color.json b/packages/module/tokens/default/highcontrast/palette.color.json index be0c456..3be3b0c 100644 --- a/packages/module/tokens/default/highcontrast/palette.color.json +++ b/packages/module/tokens/default/highcontrast/palette.color.json @@ -5,6 +5,10 @@ "type": "color", "value": "#ffffff" }, + "black": { + "type": "color", + "value": "#000000" + }, "gray": { "10": { "type": "color", @@ -51,10 +55,6 @@ "value": "#151515" } }, - "black": { - "type": "color", - "value": "#000000" - }, "blue": { "10": { "type": "color", diff --git a/packages/module/tokens/default/highcontrast/semantic.dimension.highcontrast.json b/packages/module/tokens/default/highcontrast/semantic.dimension.highcontrast.json index 66317f1..f8e0864 100644 --- a/packages/module/tokens/default/highcontrast/semantic.dimension.highcontrast.json +++ b/packages/module/tokens/default/highcontrast/semantic.dimension.highcontrast.json @@ -33,12 +33,6 @@ "type": "number", "value": "{global.border.radius.500}" }, - "glass": { - "default": { - "type": "number", - "value": "{global.border.radius.medium}" - } - }, "control": { "default": { "type": "number", @@ -49,20 +43,41 @@ "value": "{global.border.radius.small}" } }, + "glass": { + "default": { + "type": "number", + "value": "{global.border.radius.medium}" + } + }, "action": { + "default": { + "type": "number", + "value": "{global.border.radius.pill}" + }, "plain": { "default": { "type": "number", "value": "{global.border.radius.small}" } - }, - "default": { - "type": "number", - "value": "{global.border.radius.pill}" } } }, "width": { + "regular": { + "description": "Use as the default border width for elements.", + "type": "number", + "value": "{global.border.width.100}" + }, + "strong": { + "description": "Use as a stronger/wider border width for elements.", + "type": "number", + "value": "{global.border.width.200}" + }, + "extra-strong": { + "description": "Use as the strongest/widest border width for elements.", + "type": "number", + "value": "{global.border.width.300}" + }, "divider": { "default": { "description": "Use as the default border width for dividers.", @@ -80,21 +95,6 @@ "value": "{global.border.width.100}" } }, - "regular": { - "description": "Use as the default border width for elements.", - "type": "number", - "value": "{global.border.width.100}" - }, - "strong": { - "description": "Use as a stronger/wider border width for elements.", - "type": "number", - "value": "{global.border.width.200}" - }, - "extra-strong": { - "description": "Use as the strongest/widest border width for elements.", - "type": "number", - "value": "{global.border.width.300}" - }, "glass": { "default": { "type": "number", @@ -156,6 +156,16 @@ "type": "number", "value": "{global.border.width.100}" }, + "hover": { + "description": "Use as the hover state border width for actions like secondary and tertiary buttons", + "type": "number", + "value": "{global.border.width.200}" + }, + "clicked": { + "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", + "type": "number", + "value": "{global.border.width.200}" + }, "plain": { "default": { "description": "Use as the default border width for plain actions", @@ -172,16 +182,6 @@ "type": "number", "value": "{global.border.width.200}" } - }, - "hover": { - "description": "Use as the hover state border width for actions like secondary and tertiary buttons", - "type": "number", - "value": "{global.border.width.200}" - }, - "clicked": { - "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", - "type": "number", - "value": "{global.border.width.200}" } }, "control": { @@ -297,6 +297,16 @@ "type": "number", "value": "{global.spacer.lg}" }, + "compact": { + "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", + "type": "number", + "value": "{global.spacer.md}" + }, + "spacious": { + "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", + "type": "number", + "value": "{global.spacer.xl}" + }, "plain": { "default": { "description": "Use to set the horizontal padding inside a plain action, like plain buttons.", @@ -308,16 +318,6 @@ "type": "number", "value": "{global.spacer.xs}" } - }, - "compact": { - "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", - "type": "number", - "value": "{global.spacer.md}" - }, - "spacious": { - "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", - "type": "number", - "value": "{global.spacer.xl}" } } }, @@ -438,6 +438,46 @@ "value": "{global.icon.size.500}" }, "font": { + "xs": { + "description": "Use for icons that are placed inline with font–size–xs text", + "type": "number", + "value": "{global.font.size.xs}" + }, + "sm": { + "description": "Use for icons that are placed inline with font–size–sm text", + "type": "number", + "value": "{global.font.size.sm}" + }, + "md": { + "description": "Use for icons that are placed inline with font–size–md text", + "type": "number", + "value": "{global.font.size.md}" + }, + "lg": { + "description": "Use for icons that are placed inline with font–size–lg text", + "type": "number", + "value": "{global.font.size.lg}" + }, + "xl": { + "description": "Use for icons that are placed inline with font–size–xl text", + "type": "number", + "value": "{global.font.size.xl}" + }, + "2xl": { + "description": "Use for icons that are placed inline with font–size–2xl text", + "type": "number", + "value": "{global.font.size.2xl}" + }, + "3xl": { + "description": "Use for icons that are placed inline with font–size–3xl text", + "type": "number", + "value": "{global.font.size.3xl}" + }, + "4xl": { + "description": "Use for icons that are placed inline with font–size–3xl text", + "type": "number", + "value": "{global.font.size.4xl}" + }, "heading": { "h1": { "description": "Use for icons that are placed inline with first level headings", @@ -486,63 +526,11 @@ "type": "number", "value": "{global.font.size.body.lg}" } - }, - "xs": { - "description": "Use for icons that are placed inline with font–size–xs text", - "type": "number", - "value": "{global.font.size.xs}" - }, - "sm": { - "description": "Use for icons that are placed inline with font–size–sm text", - "type": "number", - "value": "{global.font.size.sm}" - }, - "md": { - "description": "Use for icons that are placed inline with font–size–md text", - "type": "number", - "value": "{global.font.size.md}" - }, - "lg": { - "description": "Use for icons that are placed inline with font–size–lg text", - "type": "number", - "value": "{global.font.size.lg}" - }, - "xl": { - "description": "Use for icons that are placed inline with font–size–xl text", - "type": "number", - "value": "{global.font.size.xl}" - }, - "2xl": { - "description": "Use for icons that are placed inline with font–size–2xl text", - "type": "number", - "value": "{global.font.size.2xl}" - }, - "3xl": { - "description": "Use for icons that are placed inline with font–size–3xl text", - "type": "number", - "value": "{global.font.size.3xl}" - }, - "4xl": { - "description": "Use for icons that are placed inline with font–size–3xl text", - "type": "number", - "value": "{global.font.size.4xl}" } } } }, "font": { - "line-height": { - "body": { - "description": "Use to define the line height for body text", - "type": "number", - "value": "{global.font.line-height.200}" - }, - "heading": { - "description": "Use to define the line height for heading text", - "type": "number", - "value": "{global.font.line-height.100}" - } - }, "weight": { "body": { "default": { @@ -569,6 +557,18 @@ } } }, + "line-height": { + "body": { + "description": "Use to define the line height for body text", + "type": "number", + "value": "{global.font.line-height.200}" + }, + "heading": { + "description": "Use to define the line height for heading text", + "type": "number", + "value": "{global.font.line-height.100}" + } + }, "family": { "body": { "description": "Use to define the font family for body text", @@ -587,6 +587,45 @@ } }, "size": { + "xs": { + "type": "number", + "value": "{global.font.size.100}" + }, + "sm": { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.200}" + }, + "md": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" + }, + "lg": { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.400}" + }, + "xl": { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.500}" + }, + "2xl": { + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.600}" + }, + "3xl": { + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.700}" + }, + "4xl": { + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.800}" + }, "body": { "sm": { "description": "Use for a smaller font size in body sections.", @@ -635,45 +674,6 @@ "type": "number", "value": "{global.font.size.md}" } - }, - "xs": { - "type": "number", - "value": "{global.font.size.100}" - }, - "sm": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.200}" - }, - "md": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.300}" - }, - "lg": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.400}" - }, - "xl": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.500}" - }, - "2xl": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.600}" - }, - "3xl": { - "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.700}" - }, - "4xl": { - "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.800}" } } }, diff --git a/packages/module/tokens/default/highcontrast/semantic.highcontrast.json b/packages/module/tokens/default/highcontrast/semantic.highcontrast.json index f346adf..ea4906f 100644 --- a/packages/module/tokens/default/highcontrast/semantic.highcontrast.json +++ b/packages/module/tokens/default/highcontrast/semantic.highcontrast.json @@ -559,6 +559,31 @@ }, "icon": { "color": { + "regular": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "subtle": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "{global.icon.color.150}" + }, + "inverse": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "disabled": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "{global.color.disabled.200}" + }, + "on-disabled": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "{global.color.disabled.300}" + }, "brand": { "default": { "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", @@ -869,31 +894,6 @@ } } }, - "regular": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", - "type": "color", - "value": "{global.icon.color.100}" - }, - "subtle": { - "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", - "type": "color", - "value": "{global.icon.color.150}" - }, - "inverse": { - "description": "Use as the color for icons that are placed on an inverse background color", - "type": "color", - "value": "{global.icon.color.300}" - }, - "disabled": { - "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", - "type": "color", - "value": "{global.color.disabled.200}" - }, - "on-disabled": { - "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", - "type": "color", - "value": "{global.color.disabled.300}" - }, "severity": { "undefined": { "default": { @@ -1097,14 +1097,52 @@ }, "border": { "color": { + "high-contrast": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.border.color.default}" + }, + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.border.color.400}" + }, + "hover": { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.color.brand.300}" + }, + "clicked": { + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.color.brand.400}" + }, + "subtle": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.border.color.400}" + }, + "disabled": { + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.color.disabled.200}" + }, + "alt": { + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "on-secondary": { + "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "type": "color", + "value": "{global.border.color.400}" + }, "control": { "default": { - "description": "Use as the default border for control elements like form inputs, menu toggles, and clickable cards", "type": "color", "value": "{global.border.color.400}" }, "read-only": { - "description": "Use as the read-only border for control elements like form inputs, menu toggles.", "type": "color", "value": "{global.border.color.100}" } @@ -1127,34 +1165,34 @@ }, "accent": { "default": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.default}" }, "hover": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.hover}" }, "clicked": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.clicked}" } }, "subtle": { "default": { - "description": "Use as the default border color for any subtle brand element like toggle groups", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.subtle.200}" }, "hover": { - "description": "Use as the hover border color for any subtle brand element like toggle groups", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.subtle.400}" }, "clicked": { - "description": "Use as the clicked border color for any subtle brand element like toggle groups", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.subtle.400}" } @@ -1247,46 +1285,6 @@ } } }, - "high-contrast": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.border.color.default}" - }, - "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.border.color.400}" - }, - "hover": { - "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.color.brand.300}" - }, - "clicked": { - "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.color.brand.400}" - }, - "subtle": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.border.color.400}" - }, - "disabled": { - "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.color.disabled.200}" - }, - "alt": { - "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", - "type": "color", - "value": "{global.background.color.primary.default}" - }, - "on-secondary": { - "description": "Use on borders/dividers that are placed on a secondary bkg color.", - "type": "color", - "value": "{global.border.color.400}" - }, "glass": { "default": { "type": "color", @@ -1458,6 +1456,46 @@ }, "text": { "color": { + "regular": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "subtle": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "{global.text.color.250}" + }, + "inverse": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "placeholder": { + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "type": "color", + "value": "{global.text.color.subtle}" + }, + "disabled": { + "description": "Use as the color of text on disabled elements, like disabled menu items.", + "type": "color", + "value": "{global.color.disabled.200}" + }, + "on-disabled": { + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", + "type": "color", + "value": "{global.color.disabled.300}" + }, + "required": { + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", + "type": "color", + "value": "{global.text.color.500}" + }, + "on-highlight": { + "description": "Use as the color of text that is highlighted.", + "type": "color", + "value": "{global.text.color.100}" + }, "link": { "default": { "description": "Use as the default text color for links.", @@ -1492,21 +1530,6 @@ "value": "{global.color.brand.500}" } }, - "regular": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", - "type": "color", - "value": "{global.text.color.100}" - }, - "subtle": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", - "type": "color", - "value": "{global.text.color.250}" - }, - "inverse": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", - "type": "color", - "value": "{global.text.color.300}" - }, "on-brand": { "default": { "description": "Use as the default color for text placed on a brand-colored background.", @@ -1558,31 +1581,6 @@ } } }, - "placeholder": { - "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", - "type": "color", - "value": "{global.text.color.subtle}" - }, - "disabled": { - "description": "Use as the color of text on disabled elements, like disabled menu items.", - "type": "color", - "value": "{global.color.disabled.200}" - }, - "on-disabled": { - "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", - "type": "color", - "value": "{global.color.disabled.300}" - }, - "required": { - "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", - "type": "color", - "value": "{global.text.color.500}" - }, - "on-highlight": { - "description": "Use as the color of text that is highlighted.", - "type": "color", - "value": "{global.text.color.100}" - }, "status": { "success": { "default": { @@ -1982,15 +1980,6 @@ } } }, - "focus-ring": { - "color": { - "default": { - "description": "Use as color value for custom focus rings", - "type": "color", - "value": "{global.focus-ring.color.200}" - } - } - }, "text-decoration": { "color": { "default": { @@ -2002,6 +1991,15 @@ "value": "{global.border.color.hover}" } } + }, + "focus-ring": { + "color": { + "default": { + "description": "Use as color value for custom focus rings", + "type": "color", + "value": "{global.focus-ring.color.200}" + } + } } } } \ No newline at end of file diff --git a/packages/module/tokens/default/light/base.dimension.json b/packages/module/tokens/default/light/base.dimension.json index e7d1c4b..580f7b1 100644 --- a/packages/module/tokens/default/light/base.dimension.json +++ b/packages/module/tokens/default/light/base.dimension.json @@ -110,6 +110,20 @@ } }, "font": { + "family": { + "100": { + "type": "string", + "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + }, + "200": { + "type": "string", + "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" + }, + "300": { + "type": "string", + "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" + } + }, "line-height": { "100": { "type": "number", @@ -171,20 +185,6 @@ "type": "number", "value": 36 } - }, - "family": { - "100": { - "type": "string", - "value": "\"Red Hat Text\", \"RedHatText\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" - }, - "200": { - "type": "string", - "value": "\"Red Hat Display\", \"RedHatDisplay\", \"Noto Sans Arabic\", \"Noto Sans Hebrew\", \"Noto Sans JP\", \"Noto Sans KR\", \"Noto Sans Malayalam\", \"Noto Sans SC\", \"Noto Sans TC\", \"Noto Sans Thai\", Helvetica, Arial, sans-serif" - }, - "300": { - "type": "string", - "value": "\"Red Hat Mono\", \"RedHatMono\", \"Courier New\", Courier, monospace" - } } }, "z-index": { diff --git a/packages/module/tokens/default/light/charts.highcontrast.json b/packages/module/tokens/default/light/charts.highcontrast.json new file mode 100644 index 0000000..43c164a --- /dev/null +++ b/packages/module/tokens/default/light/charts.highcontrast.json @@ -0,0 +1,765 @@ + +{ + "chart": { + "color": { + "blue": { + "100": { + "type": "color", + "value": "{color.blue.40}" + }, + "200": { + "type": "color", + "value": "{color.blue.50}" + }, + "300": { + "type": "color", + "value": "{color.blue.60}" + }, + "400": { + "type": "color", + "value": "{color.blue.70}" + }, + "500": { + "type": "color", + "value": "{color.blue.80}" + } + }, + "green": { + "100": { + "type": "color", + "value": "{color.green.40}" + }, + "200": { + "type": "color", + "value": "{color.green.50}" + }, + "300": { + "type": "color", + "value": "{color.green.60}" + }, + "400": { + "type": "color", + "value": "{color.green.70}" + }, + "500": { + "type": "color", + "value": "{color.green.80}" + } + }, + "teal": { + "100": { + "type": "color", + "value": "{color.teal.40}" + }, + "200": { + "type": "color", + "value": "{color.teal.50}" + }, + "300": { + "type": "color", + "value": "{color.teal.60}" + }, + "400": { + "type": "color", + "value": "{color.teal.70}" + }, + "500": { + "type": "color", + "value": "{color.teal.80}" + } + }, + "purple": { + "100": { + "type": "color", + "value": "{color.purple.40}" + }, + "200": { + "type": "color", + "value": "{color.purple.50}" + }, + "300": { + "type": "color", + "value": "{color.purple.60}" + }, + "400": { + "type": "color", + "value": "{color.purple.70}" + }, + "500": { + "type": "color", + "value": "{color.purple.80}" + } + }, + "yellow": { + "100": { + "type": "color", + "value": "{color.yellow.40}" + }, + "200": { + "type": "color", + "value": "{color.yellow.50}" + }, + "300": { + "type": "color", + "value": "{color.yellow.60}" + }, + "400": { + "type": "color", + "value": "{color.yellow.70}" + }, + "500": { + "type": "color", + "value": "{color.yellow.80}" + } + }, + "orange": { + "100": { + "type": "color", + "value": "{color.orange.40}" + }, + "200": { + "type": "color", + "value": "{color.orange.50}" + }, + "300": { + "type": "color", + "value": "{color.orange.60}" + }, + "400": { + "type": "color", + "value": "{color.orange.70}" + }, + "500": { + "type": "color", + "value": "{color.orange.80}" + } + }, + "red-orange": { + "100": { + "type": "color", + "value": "{color.red-orange.40}" + }, + "200": { + "type": "color", + "value": "{color.red-orange.50}" + }, + "300": { + "type": "color", + "value": "{color.red-orange.60}" + }, + "400": { + "type": "color", + "value": "{color.red-orange.70}" + }, + "500": { + "type": "color", + "value": "{color.red-orange.80}" + } + }, + "black": { + "100": { + "type": "color", + "value": "{color.gray.40}" + }, + "200": { + "type": "color", + "value": "{color.gray.50}" + }, + "300": { + "type": "color", + "value": "{color.gray.60}" + }, + "400": { + "type": "color", + "value": "{color.gray.70}" + }, + "500": { + "type": "color", + "value": "{color.gray.80}" + } + } + }, + "global": { + "letter-spacing": { + "type": "string", + "value": "normal" + }, + "stroke-line-cap": { + "type": "string", + "value": "round" + }, + "stroke-line-join": { + "type": "string", + "value": "round" + }, + "BorderWidth": { + "xs": { + "type": "number", + "value": 1 + }, + "sm": { + "type": "number", + "value": 2 + }, + "lg": { + "type": "number", + "value": 8 + } + }, + "stroke": { + "width": { + "xs": { + "type": "number", + "value": 1 + }, + "sm": { + "type": "number", + "value": 2 + } + } + }, + "fill": { + "color": { + "100": { + "type": "color", + "value": "{color.gray.10}" + }, + "200": { + "type": "color", + "value": "{color.gray.20}" + }, + "300": { + "type": "color", + "value": "{color.gray.30}" + }, + "400": { + "type": "color", + "value": "{color.gray.40}" + }, + "500": { + "type": "color", + "value": "{color.gray.50}" + }, + "700": { + "type": "color", + "value": "{color.gray.90}" + }, + "900": { + "type": "color", + "value": "{color.gray.95}" + }, + "white": { + "type": "color", + "value": "{color.white}" + } + } + }, + "warning": { + "color": { + "100": { + "type": "color", + "value": "{color.orange.50}" + }, + "200": { + "type": "color", + "value": "{color.yellow.50}" + } + } + }, + "success": { + "color": { + "100": { + "type": "color", + "value": "{color.blue.60}" + } + } + }, + "danger": { + "color": { + "100": { + "type": "color", + "value": "{color.red-orange.60}" + } + } + }, + "FontSize": { + "xs": { + "type": "number", + "value": 12 + }, + "sm": { + "type": "number", + "value": 14 + }, + "lg": { + "type": "number", + "value": 18 + }, + "2xl": { + "type": "number", + "value": 22 + } + }, + "layout": { + "padding": { + "type": "number", + "value": 50 + }, + "height": { + "type": "number", + "value": 300 + }, + "width": { + "type": "number", + "value": 450 + } + }, + "label": { + "padding": { + "type": "number", + "value": 10 + }, + "margin": { + "type": "number", + "value": 8 + }, + "text-anchor": { + "type": "string", + "value": "middle" + }, + "fill": { + "type": "color", + "value": "{color.gray.90}" + }, + "stroke": { + "width": { + "type": "number", + "value": 0 + }, + "type": "string", + "value": "transparent" + } + } + }, + "theme": { + "colorscales": { + "blue": { + "colorscale": { + "100": { + "type": "color", + "value": "{chart.color.blue.300}" + }, + "200": { + "type": "color", + "value": "{chart.color.blue.100}" + }, + "300": { + "type": "color", + "value": "{chart.color.blue.500}" + }, + "400": { + "type": "color", + "value": "{chart.color.blue.200}" + }, + "500": { + "type": "color", + "value": "{chart.color.blue.400}" + } + } + }, + "teal": { + "colorscale": { + "100": { + "type": "color", + "value": "{chart.color.teal.300}" + }, + "200": { + "type": "color", + "value": "{chart.color.teal.100}" + }, + "300": { + "type": "color", + "value": "{chart.color.teal.500}" + }, + "400": { + "type": "color", + "value": "{chart.color.teal.200}" + }, + "500": { + "type": "color", + "value": "{chart.color.teal.400}" + } + } + }, + "yellow": { + "colorscale": { + "100": { + "type": "color", + "value": "{chart.color.yellow.300}" + }, + "200": { + "type": "color", + "value": "{chart.color.yellow.100}" + }, + "300": { + "type": "color", + "value": "{chart.color.yellow.500}" + }, + "400": { + "type": "color", + "value": "{chart.color.yellow.200}" + }, + "500": { + "type": "color", + "value": "{chart.color.yellow.400}" + } + } + }, + "gray": { + "colorscale": { + "100": { + "type": "color", + "value": "{chart.color.black.300}" + }, + "200": { + "type": "color", + "value": "{chart.color.black.100}" + }, + "300": { + "type": "color", + "value": "{chart.color.black.500}" + }, + "400": { + "type": "color", + "value": "{chart.color.black.200}" + }, + "500": { + "type": "color", + "value": "{chart.color.black.400}" + } + } + }, + "green": { + "colorscale": { + "100": { + "type": "color", + "value": "{chart.color.green.300}" + }, + "200": { + "type": "color", + "value": "{chart.color.green.100}" + }, + "300": { + "type": "color", + "value": "{chart.color.green.500}" + }, + "400": { + "type": "color", + "value": "{chart.color.green.200}" + }, + "500": { + "type": "color", + "value": "{chart.color.green.400}" + } + } + }, + "purple": { + "colorscale": { + "100": { + "type": "color", + "value": "{chart.color.purple.300}" + }, + "200": { + "type": "color", + "value": "{chart.color.purple.100}" + }, + "300": { + "type": "color", + "value": "{chart.color.purple.500}" + }, + "400": { + "type": "color", + "value": "{chart.color.purple.200}" + }, + "500": { + "type": "color", + "value": "{chart.color.purple.400}" + } + } + }, + "orange": { + "colorscale": { + "100": { + "type": "color", + "value": "{chart.color.orange.300}" + }, + "200": { + "type": "color", + "value": "{chart.color.orange.100}" + }, + "300": { + "type": "color", + "value": "{chart.color.orange.500}" + }, + "400": { + "type": "color", + "value": "{chart.color.orange.200}" + }, + "500": { + "type": "color", + "value": "{chart.color.orange.400}" + } + } + }, + "multi-colored-ordered": { + "colorscale": { + "100": { + "type": "color", + "value": "{chart.color.blue.300}" + }, + "200": { + "type": "color", + "value": "{chart.color.green.300}" + }, + "300": { + "type": "color", + "value": "{chart.color.teal.300}" + }, + "400": { + "type": "color", + "value": "{chart.color.yellow.300}" + }, + "500": { + "type": "color", + "value": "{chart.color.orange.300}" + }, + "600": { + "type": "color", + "value": "{chart.color.blue.100}" + }, + "700": { + "type": "color", + "value": "{chart.color.green.500}" + }, + "800": { + "type": "color", + "value": "{chart.color.teal.100}" + }, + "900": { + "type": "color", + "value": "{chart.color.yellow.500}" + }, + "1000": { + "type": "color", + "value": "{chart.color.orange.100}" + }, + "1100": { + "type": "color", + "value": "{chart.color.blue.500}" + }, + "1200": { + "type": "color", + "value": "{chart.color.green.100}" + }, + "1300": { + "type": "color", + "value": "{chart.color.teal.500}" + }, + "1400": { + "type": "color", + "value": "{chart.color.yellow.100}" + }, + "1500": { + "type": "color", + "value": "{chart.color.orange.500}" + }, + "1600": { + "type": "color", + "value": "{chart.color.blue.200}" + }, + "1700": { + "type": "color", + "value": "{chart.color.green.400}" + }, + "1800": { + "type": "color", + "value": "{chart.color.teal.200}" + }, + "1900": { + "type": "color", + "value": "{chart.color.yellow.400}" + }, + "2000": { + "type": "color", + "value": "{chart.color.orange.200}" + }, + "2100": { + "type": "color", + "value": "{chart.color.blue.400}" + }, + "2200": { + "type": "color", + "value": "{chart.color.green.200}" + }, + "2300": { + "type": "color", + "value": "{chart.color.teal.400}" + }, + "2400": { + "type": "color", + "value": "{chart.color.yellow.200}" + }, + "2500": { + "type": "color", + "value": "{chart.color.orange.400}" + } + } + }, + "multi-colored-unordered": { + "colorscale": { + "100": { + "type": "color", + "value": "{chart.color.blue.300}" + }, + "200": { + "type": "color", + "value": "{chart.color.yellow.300}" + }, + "300": { + "type": "color", + "value": "{chart.color.green.300}" + }, + "400": { + "type": "color", + "value": "{chart.color.purple.300}" + }, + "500": { + "type": "color", + "value": "{chart.color.orange.300}" + }, + "600": { + "type": "color", + "value": "{chart.color.teal.300}" + }, + "700": { + "type": "color", + "value": "{chart.color.black.300}" + }, + "800": { + "type": "color", + "value": "{chart.color.blue.100}" + }, + "900": { + "type": "color", + "value": "{chart.color.yellow.500}" + }, + "1000": { + "type": "color", + "value": "{chart.color.green.100}" + }, + "1100": { + "type": "color", + "value": "{chart.color.purple.500}" + }, + "1200": { + "type": "color", + "value": "{chart.color.orange.100}" + }, + "1300": { + "type": "color", + "value": "{chart.color.teal.500}" + }, + "1400": { + "type": "color", + "value": "{chart.color.black.100}" + }, + "1500": { + "type": "color", + "value": "{chart.color.blue.500}" + }, + "1600": { + "type": "color", + "value": "{chart.color.yellow.100}" + }, + "1700": { + "type": "color", + "value": "{chart.color.green.500}" + }, + "1800": { + "type": "color", + "value": "{chart.color.purple.100}" + }, + "1900": { + "type": "color", + "value": "{chart.color.orange.500}" + }, + "2000": { + "type": "color", + "value": "{chart.color.teal.100}" + }, + "2100": { + "type": "color", + "value": "{chart.color.black.500}" + }, + "2200": { + "type": "color", + "value": "{chart.color.blue.200}" + }, + "2300": { + "type": "color", + "value": "{chart.color.yellow.400}" + }, + "2400": { + "type": "color", + "value": "{chart.color.green.200}" + }, + "2500": { + "type": "color", + "value": "{chart.color.purple.400}" + }, + "2600": { + "type": "color", + "value": "{chart.color.orange.200}" + }, + "2700": { + "type": "color", + "value": "{chart.color.teal.400}" + }, + "2800": { + "type": "color", + "value": "{chart.color.black.200}" + }, + "2900": { + "type": "color", + "value": "{chart.color.blue.400}" + }, + "3000": { + "type": "color", + "value": "{chart.color.yellow.200}" + }, + "3100": { + "type": "color", + "value": "{chart.color.green.400}" + }, + "3200": { + "type": "color", + "value": "{chart.color.purple.200}" + }, + "3300": { + "type": "color", + "value": "{chart.color.orange.400}" + }, + "3400": { + "type": "color", + "value": "{chart.color.teal.200}" + }, + "3500": { + "type": "color", + "value": "{chart.color.black.400}" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/packages/module/tokens/default/light/charts.json b/packages/module/tokens/default/light/charts.json index e36893c..59f1917 100644 --- a/packages/module/tokens/default/light/charts.json +++ b/packages/module/tokens/default/light/charts.json @@ -180,6 +180,18 @@ } }, "global": { + "letter-spacing": { + "type": "string", + "value": "normal" + }, + "stroke-line-cap": { + "type": "string", + "value": "round" + }, + "stroke-line-join": { + "type": "string", + "value": "round" + }, "BorderWidth": { "xs": { "type": "number", @@ -288,10 +300,6 @@ "value": 22 } }, - "letter-spacing": { - "type": "string", - "value": "normal" - }, "layout": { "padding": { "type": "number", @@ -306,10 +314,6 @@ "value": 450 } }, - "stroke-line-cap": { - "type": "string", - "value": "round" - }, "label": { "padding": { "type": "number", @@ -319,14 +323,6 @@ "type": "number", "value": 8 }, - "stroke": { - "width": { - "type": "number", - "value": 0 - }, - "type": "string", - "value": "transparent" - }, "text-anchor": { "type": "string", "value": "middle" @@ -334,11 +330,15 @@ "fill": { "type": "color", "value": "{color.gray.90}" + }, + "stroke": { + "width": { + "type": "number", + "value": 0 + }, + "type": "string", + "value": "transparent" } - }, - "stroke-line-join": { - "type": "string", - "value": "round" } }, "theme": { diff --git a/packages/module/tokens/default/light/palette.color.json b/packages/module/tokens/default/light/palette.color.json index be0c456..3be3b0c 100644 --- a/packages/module/tokens/default/light/palette.color.json +++ b/packages/module/tokens/default/light/palette.color.json @@ -5,6 +5,10 @@ "type": "color", "value": "#ffffff" }, + "black": { + "type": "color", + "value": "#000000" + }, "gray": { "10": { "type": "color", @@ -51,10 +55,6 @@ "value": "#151515" } }, - "black": { - "type": "color", - "value": "#000000" - }, "blue": { "10": { "type": "color", diff --git a/packages/module/tokens/default/light/semantic.dimension.json b/packages/module/tokens/default/light/semantic.dimension.json index 3aa8028..6bd8fdb 100644 --- a/packages/module/tokens/default/light/semantic.dimension.json +++ b/packages/module/tokens/default/light/semantic.dimension.json @@ -33,12 +33,6 @@ "type": "number", "value": "{global.border.radius.500}" }, - "glass": { - "default": { - "type": "number", - "value": "{global.border.radius.medium}" - } - }, "control": { "default": { "type": "number", @@ -49,20 +43,41 @@ "value": "{global.border.radius.small}" } }, + "glass": { + "default": { + "type": "number", + "value": "{global.border.radius.medium}" + } + }, "action": { + "default": { + "type": "number", + "value": "{global.border.radius.pill}" + }, "plain": { "default": { "type": "number", "value": "{global.border.radius.small}" } - }, - "default": { - "type": "number", - "value": "{global.border.radius.pill}" } } }, "width": { + "regular": { + "description": "Use as the default border width for elements.", + "type": "number", + "value": "{global.border.width.100}" + }, + "strong": { + "description": "Use as a stronger/wider border width for elements.", + "type": "number", + "value": "{global.border.width.200}" + }, + "extra-strong": { + "description": "Use as the strongest/widest border width for elements.", + "type": "number", + "value": "{global.border.width.300}" + }, "divider": { "default": { "description": "Use as the default border width for dividers.", @@ -80,21 +95,6 @@ "value": "{global.border.width.100}" } }, - "regular": { - "description": "Use as the default border width for elements.", - "type": "number", - "value": "{global.border.width.100}" - }, - "strong": { - "description": "Use as a stronger/wider border width for elements.", - "type": "number", - "value": "{global.border.width.200}" - }, - "extra-strong": { - "description": "Use as the strongest/widest border width for elements.", - "type": "number", - "value": "{global.border.width.300}" - }, "glass": { "default": { "type": "number", @@ -156,6 +156,16 @@ "type": "number", "value": "{global.border.width.100}" }, + "hover": { + "description": "Use as the hover state border width for actions like secondary and tertiary buttons", + "type": "number", + "value": "{global.border.width.200}" + }, + "clicked": { + "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", + "type": "number", + "value": "{global.border.width.200}" + }, "plain": { "default": { "description": "Use as the default border width for plain actions", @@ -172,16 +182,6 @@ "type": "number", "value": 0 } - }, - "hover": { - "description": "Use as the hover state border width for actions like secondary and tertiary buttons", - "type": "number", - "value": "{global.border.width.200}" - }, - "clicked": { - "description": "Use as the clicked state border width for actions like secondary and tertiary buttons", - "type": "number", - "value": "{global.border.width.200}" } }, "control": { @@ -297,6 +297,16 @@ "type": "number", "value": "{global.spacer.lg}" }, + "compact": { + "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", + "type": "number", + "value": "{global.spacer.md}" + }, + "spacious": { + "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", + "type": "number", + "value": "{global.spacer.xl}" + }, "plain": { "default": { "description": "Use to set the horizontal padding inside a plain action, like plain buttons.", @@ -308,16 +318,6 @@ "type": "number", "value": "{global.spacer.xs}" } - }, - "compact": { - "description": "Use to set the horizontal padding inside a compact action, like compact buttons.", - "type": "number", - "value": "{global.spacer.md}" - }, - "spacious": { - "description": "Use to set the horizontal padding inside a large/display action, like CTAs.", - "type": "number", - "value": "{global.spacer.xl}" } } }, @@ -438,6 +438,46 @@ "value": "{global.icon.size.500}" }, "font": { + "xs": { + "description": "Use for icons that are placed inline with font–size–xs text", + "type": "number", + "value": "{global.font.size.xs}" + }, + "sm": { + "description": "Use for icons that are placed inline with font–size–sm text", + "type": "number", + "value": "{global.font.size.sm}" + }, + "md": { + "description": "Use for icons that are placed inline with font–size–md text", + "type": "number", + "value": "{global.font.size.md}" + }, + "lg": { + "description": "Use for icons that are placed inline with font–size–lg text", + "type": "number", + "value": "{global.font.size.lg}" + }, + "xl": { + "description": "Use for icons that are placed inline with font–size–xl text", + "type": "number", + "value": "{global.font.size.xl}" + }, + "2xl": { + "description": "Use for icons that are placed inline with font–size–2xl text", + "type": "number", + "value": "{global.font.size.2xl}" + }, + "3xl": { + "description": "Use for icons that are placed inline with font–size–3xl text", + "type": "number", + "value": "{global.font.size.3xl}" + }, + "4xl": { + "description": "Use for icons that are placed inline with font–size–3xl text", + "type": "number", + "value": "{global.font.size.4xl}" + }, "heading": { "h1": { "description": "Use for icons that are placed inline with first level headings", @@ -486,63 +526,11 @@ "type": "number", "value": "{global.font.size.body.lg}" } - }, - "xs": { - "description": "Use for icons that are placed inline with font–size–xs text", - "type": "number", - "value": "{global.font.size.xs}" - }, - "sm": { - "description": "Use for icons that are placed inline with font–size–sm text", - "type": "number", - "value": "{global.font.size.sm}" - }, - "md": { - "description": "Use for icons that are placed inline with font–size–md text", - "type": "number", - "value": "{global.font.size.md}" - }, - "lg": { - "description": "Use for icons that are placed inline with font–size–lg text", - "type": "number", - "value": "{global.font.size.lg}" - }, - "xl": { - "description": "Use for icons that are placed inline with font–size–xl text", - "type": "number", - "value": "{global.font.size.xl}" - }, - "2xl": { - "description": "Use for icons that are placed inline with font–size–2xl text", - "type": "number", - "value": "{global.font.size.2xl}" - }, - "3xl": { - "description": "Use for icons that are placed inline with font–size–3xl text", - "type": "number", - "value": "{global.font.size.3xl}" - }, - "4xl": { - "description": "Use for icons that are placed inline with font–size–3xl text", - "type": "number", - "value": "{global.font.size.4xl}" } } } }, "font": { - "line-height": { - "body": { - "description": "Use to define the line height for body text", - "type": "number", - "value": "{global.font.line-height.200}" - }, - "heading": { - "description": "Use to define the line height for heading text", - "type": "number", - "value": "{global.font.line-height.100}" - } - }, "weight": { "body": { "default": { @@ -569,6 +557,18 @@ } } }, + "line-height": { + "body": { + "description": "Use to define the line height for body text", + "type": "number", + "value": "{global.font.line-height.200}" + }, + "heading": { + "description": "Use to define the line height for heading text", + "type": "number", + "value": "{global.font.line-height.100}" + } + }, "family": { "body": { "description": "Use to define the font family for body text", @@ -587,6 +587,45 @@ } }, "size": { + "xs": { + "type": "number", + "value": "{global.font.size.100}" + }, + "sm": { + "description": "Use as the font size for small text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.200}" + }, + "md": { + "description": "Use as the font size for medium text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.300}" + }, + "lg": { + "description": "Use as the font size for large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.400}" + }, + "xl": { + "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.500}" + }, + "2xl": { + "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.600}" + }, + "3xl": { + "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.700}" + }, + "4xl": { + "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", + "type": "number", + "value": "{global.font.size.800}" + }, "body": { "sm": { "description": "Use for a smaller font size in body sections.", @@ -635,45 +674,6 @@ "type": "number", "value": "{global.font.size.md}" } - }, - "xs": { - "type": "number", - "value": "{global.font.size.100}" - }, - "sm": { - "description": "Use as the font size for small text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.200}" - }, - "md": { - "description": "Use as the font size for medium text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.300}" - }, - "lg": { - "description": "Use as the font size for large text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.400}" - }, - "xl": { - "description": "Use as the font size for extra large text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.500}" - }, - "2xl": { - "description": "Use as the font size for double extra large text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.600}" - }, - "3xl": { - "description": "Use as the font size for triple extra large text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.700}" - }, - "4xl": { - "description": "Use as the font size for quadruple extra large text that isn’t a heading or in a body section.", - "type": "number", - "value": "{global.font.size.800}" } } }, @@ -999,7 +999,7 @@ }, "hover": { "type": "number", - "value": "{global.border.width.strong}" + "value": "{global.border.width.regular}" } }, "offset": { diff --git a/packages/module/tokens/default/light/semantic.json b/packages/module/tokens/default/light/semantic.json index 26508b2..b15cbef 100644 --- a/packages/module/tokens/default/light/semantic.json +++ b/packages/module/tokens/default/light/semantic.json @@ -559,6 +559,31 @@ }, "icon": { "color": { + "regular": { + "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", + "type": "color", + "value": "{global.icon.color.100}" + }, + "subtle": { + "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", + "type": "color", + "value": "{global.icon.color.200}" + }, + "inverse": { + "description": "Use as the color for icons that are placed on an inverse background color", + "type": "color", + "value": "{global.icon.color.300}" + }, + "disabled": { + "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", + "type": "color", + "value": "{global.color.disabled.200}" + }, + "on-disabled": { + "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", + "type": "color", + "value": "{global.color.disabled.300}" + }, "brand": { "default": { "description": "Use as the color for icons that convey your brand and/or are paired with branded text color.", @@ -869,31 +894,6 @@ } } }, - "regular": { - "description": "Use as the default color for icons in icon buttons and/or when paired with regular-colored text", - "type": "color", - "value": "{global.icon.color.100}" - }, - "subtle": { - "description": "Use as the color for icons when you want the icon to have less emphasis and/or when paired with subtle-colored text", - "type": "color", - "value": "{global.icon.color.200}" - }, - "inverse": { - "description": "Use as the color for icons that are placed on an inverse background color", - "type": "color", - "value": "{global.icon.color.300}" - }, - "disabled": { - "description": "Use as the color for icons that show in disabled icon buttons and/or when paired with disabled-color text", - "type": "color", - "value": "{global.color.disabled.200}" - }, - "on-disabled": { - "description": "Use as the color for icons that are placed on a disabled background color and/or are paired with on-disabled colored text.", - "type": "color", - "value": "{global.color.disabled.300}" - }, "severity": { "undefined": { "default": { @@ -1097,14 +1097,52 @@ }, "border": { "color": { + "high-contrast": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "rgba(255, 255, 255, 0.0000)" + }, + "default": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.border.color.50}" + }, + "hover": { + "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.color.brand.100}" + }, + "clicked": { + "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.color.brand.200}" + }, + "subtle": { + "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.border.color.50}" + }, + "disabled": { + "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", + "type": "color", + "value": "{global.color.disabled.200}" + }, + "alt": { + "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", + "type": "color", + "value": "{global.background.color.primary.default}" + }, + "on-secondary": { + "description": "Use on borders/dividers that are placed on a secondary bkg color.", + "type": "color", + "value": "{global.border.color.300}" + }, "control": { "default": { - "description": "Use as the default border for control elements like form inputs, menu toggles, and clickable cards", "type": "color", "value": "{global.border.color.300}" }, "read-only": { - "description": "Use as the read-only border for control elements like form inputs, menu toggles.", "type": "color", "value": "{global.border.color.100}" } @@ -1127,34 +1165,34 @@ }, "accent": { "default": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.default}" }, "hover": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.hover}" }, "clicked": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.clicked}" } }, "subtle": { "default": { - "description": "Use as the default border color for any subtle brand element like toggle groups", + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.subtle.200}" }, "hover": { - "description": "Use as the hover border color for any subtle brand element like toggle groups", + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.subtle.300}" }, "clicked": { - "description": "Use as the clicked border color for any subtle brand element like toggle groups", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.subtle.300}" } @@ -1247,46 +1285,6 @@ } } }, - "high-contrast": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "rgba(255, 255, 255, 0.0000)" - }, - "default": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.border.color.100}" - }, - "hover": { - "description": "Use as the hover state border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.color.brand.100}" - }, - "clicked": { - "description": "Use as the clicked state border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.color.brand.200}" - }, - "subtle": { - "description": "Use as the default border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.border.color.50}" - }, - "disabled": { - "description": "Use as the disabled border color for elements like form inputs, menu toggles, cards, etc.", - "type": "color", - "value": "{global.color.disabled.200}" - }, - "alt": { - "description": "Use when border color needs to match the primary bkg color – helpful when you want a divider to look like negative space when shown on a colored bkg", - "type": "color", - "value": "{global.background.color.primary.default}" - }, - "on-secondary": { - "description": "Use on borders/dividers that are placed on a secondary bkg color.", - "type": "color", - "value": "{global.border.color.300}" - }, "glass": { "default": { "type": "color", @@ -1458,6 +1456,46 @@ }, "text": { "color": { + "regular": { + "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", + "type": "color", + "value": "{global.text.color.100}" + }, + "subtle": { + "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", + "type": "color", + "value": "{global.text.color.200}" + }, + "inverse": { + "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", + "type": "color", + "value": "{global.text.color.300}" + }, + "placeholder": { + "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", + "type": "color", + "value": "{global.text.color.subtle}" + }, + "disabled": { + "description": "Use as the color of text on disabled elements, like disabled menu items.", + "type": "color", + "value": "{global.color.disabled.200}" + }, + "on-disabled": { + "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", + "type": "color", + "value": "{global.color.disabled.300}" + }, + "required": { + "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", + "type": "color", + "value": "{global.text.color.400}" + }, + "on-highlight": { + "description": "Use as the color of text that is highlighted.", + "type": "color", + "value": "{global.text.color.100}" + }, "link": { "default": { "description": "Use as the default text color for links.", @@ -1492,21 +1530,6 @@ "value": "{global.color.brand.clicked}" } }, - "regular": { - "description": "Use as the primary color for standard text, like heading/body copy. Icons paired with regular text should inherit this color or should use global/icon/color/regular.", - "type": "color", - "value": "{global.text.color.100}" - }, - "subtle": { - "description": "Use as a subtle text color for text in an element that is secondary or less important, like descriptions or inactive tab labels.", - "type": "color", - "value": "{global.text.color.200}" - }, - "inverse": { - "description": "Use as the color of text that is placed on an inverse background color, like tooltips.", - "type": "color", - "value": "{global.text.color.300}" - }, "on-brand": { "default": { "description": "Use as the default color for text placed on a brand-colored background.", @@ -1558,31 +1581,6 @@ } } }, - "placeholder": { - "description": "Use as the color of text that serves as a placeholder, like within a search bar/input.", - "type": "color", - "value": "{global.text.color.subtle}" - }, - "disabled": { - "description": "Use as the color of text on disabled elements, like disabled menu items.", - "type": "color", - "value": "{global.color.disabled.200}" - }, - "on-disabled": { - "description": "Use as the color of text that is placed on a disabled background, like disabled menu toggles or tabs.", - "type": "color", - "value": "{global.color.disabled.300}" - }, - "required": { - "description": "Use as the color of text that signals that action/information is required from users, like asterisks placed beside form fields or checkboxes.", - "type": "color", - "value": "{global.text.color.400}" - }, - "on-highlight": { - "description": "Use as the color of text that is highlighted.", - "type": "color", - "value": "{global.text.color.100}" - }, "status": { "success": { "default": { @@ -1982,15 +1980,6 @@ } } }, - "focus-ring": { - "color": { - "default": { - "description": "Use as color value for custom focus rings", - "type": "color", - "value": "{global.focus-ring.color.100}" - } - } - }, "text-decoration": { "color": { "default": { @@ -2002,6 +1991,15 @@ "value": "{global.border.color.hover}" } } + }, + "focus-ring": { + "color": { + "default": { + "description": "Use as color value for custom focus rings", + "type": "color", + "value": "{global.focus-ring.color.100}" + } + } } } } \ No newline at end of file diff --git a/packages/module/tokens/default/light/semantic.motion.json b/packages/module/tokens/default/light/semantic.motion.json index 1cdcab2..1873aba 100644 --- a/packages/module/tokens/default/light/semantic.motion.json +++ b/packages/module/tokens/default/light/semantic.motion.json @@ -38,6 +38,23 @@ "type": "number", "value": "{global.duration.600}" }, + "slide-out": { + "short": { + "description": "Use for a shorter duration of a slide-out animation, which moves an element out of the viewport.", + "type": "number", + "value": "{global.motion.duration.lg}" + }, + "default": { + "description": "Use as the default duration of a slide-out animation, which moves an element out of the viewport.", + "type": "number", + "value": "{global.motion.duration.xl}" + }, + "long": { + "description": "Use for a longer duration of a slide-out animation, which moves an element out of the viewport.", + "type": "number", + "value": "{global.motion.duration.2xl}" + } + }, "slide-in": { "short": { "description": "Use for a short duration of a slide-in animation, which moves an offscreen element into the viewport.", @@ -72,23 +89,6 @@ "value": "{global.motion.duration.lg}" } }, - "slide-out": { - "short": { - "description": "Use for a shorter duration of a slide-out animation, which moves an element out of the viewport.", - "type": "number", - "value": "{global.motion.duration.lg}" - }, - "default": { - "description": "Use as the default duration of a slide-out animation, which moves an element out of the viewport.", - "type": "number", - "value": "{global.motion.duration.xl}" - }, - "long": { - "description": "Use for a longer duration of a slide-out animation, which moves an element out of the viewport.", - "type": "number", - "value": "{global.motion.duration.2xl}" - } - }, "icon": { "short": { "description": "Use a short duration on an icon that requires a fast/snappy transition. Used to define the speed at which an icon may animate. Used on a notification badge(stateful button).", diff --git a/packages/module/tokens/redhat/dark/redhat.color.dark.json b/packages/module/tokens/felt/dark/felt.color.dark.json similarity index 91% rename from packages/module/tokens/redhat/dark/redhat.color.dark.json rename to packages/module/tokens/felt/dark/felt.color.dark.json index 4409337..244e5f5 100644 --- a/packages/module/tokens/redhat/dark/redhat.color.dark.json +++ b/packages/module/tokens/felt/dark/felt.color.dark.json @@ -4,11 +4,6 @@ "color": { "brand": { "accent": { - "default": { - "description": "Use this color for elements that you want to reinforce your brand", - "type": "color", - "value": "{global.dark.color.brand.accent.100}" - }, "hover": { "description": "Use as the hover state for elements that have a branded background color", "type": "color", @@ -18,6 +13,11 @@ "description": "Use as the clicked state for elements that have a brand background color", "type": "color", "value": "{global.dark.color.brand.accent.200}" + }, + "default": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.accent.100}" } } } @@ -26,18 +26,18 @@ "color": { "brand": { "accent": { - "default": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", + "hover": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.dark.color.brand.accent.400}" }, "clicked": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.dark.color.brand.accent.400}" }, - "hover": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", + "default": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.dark.color.brand.accent.400}" } @@ -45,61 +45,61 @@ } } }, - "icon": { + "text": { "color": { "on-brand": { "accent": { "clicked": { - "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.icon.color.regular}" + "value": "{global.text.color.regular}" }, "hover": { - "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.icon.color.regular}" + "value": "{global.text.color.regular}" }, "default": { - "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the default color for text placed on a brand-colored background.", "type": "color", - "value": "{global.icon.color.regular}" + "value": "{global.text.color.regular}" } } - }, + } + } + }, + "icon": { + "color": { "brand": { "accent": { - "clicked": { - "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "hover": { + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", "type": "color", "value": "{global.dark.color.brand.accent.300}" }, - "hover": { - "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "clicked": { + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", "type": "color", "value": "{global.dark.color.brand.accent.300}" } } - } - } - }, - "text": { - "color": { + }, "on-brand": { "accent": { "default": { - "description": "Use as the default color for text placed on a brand-colored background.", + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.text.color.regular}" + "value": "{global.icon.color.regular}" }, - "clicked": { - "description": "Use as the clicked state color for text placed on a brand-colored background.", + "hover": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.text.color.regular}" + "value": "{global.icon.color.regular}" }, - "hover": { - "description": "Use as the hover state color for text placed on a brand-colored background.", + "clicked": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.text.color.regular}" + "value": "{global.icon.color.regular}" } } } diff --git a/packages/module/tokens/redhat/glass-dark/redhat.color.glass.dark.json b/packages/module/tokens/felt/glass-dark/felt.color.glass.dark.json similarity index 91% rename from packages/module/tokens/redhat/glass-dark/redhat.color.glass.dark.json rename to packages/module/tokens/felt/glass-dark/felt.color.glass.dark.json index 4409337..244e5f5 100644 --- a/packages/module/tokens/redhat/glass-dark/redhat.color.glass.dark.json +++ b/packages/module/tokens/felt/glass-dark/felt.color.glass.dark.json @@ -4,11 +4,6 @@ "color": { "brand": { "accent": { - "default": { - "description": "Use this color for elements that you want to reinforce your brand", - "type": "color", - "value": "{global.dark.color.brand.accent.100}" - }, "hover": { "description": "Use as the hover state for elements that have a branded background color", "type": "color", @@ -18,6 +13,11 @@ "description": "Use as the clicked state for elements that have a brand background color", "type": "color", "value": "{global.dark.color.brand.accent.200}" + }, + "default": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.accent.100}" } } } @@ -26,18 +26,18 @@ "color": { "brand": { "accent": { - "default": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", + "hover": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.dark.color.brand.accent.400}" }, "clicked": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.dark.color.brand.accent.400}" }, - "hover": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", + "default": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.dark.color.brand.accent.400}" } @@ -45,61 +45,61 @@ } } }, - "icon": { + "text": { "color": { "on-brand": { "accent": { "clicked": { - "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the clicked state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.icon.color.regular}" + "value": "{global.text.color.regular}" }, "hover": { - "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the hover state color for text placed on a brand-colored background.", "type": "color", - "value": "{global.icon.color.regular}" + "value": "{global.text.color.regular}" }, "default": { - "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", + "description": "Use as the default color for text placed on a brand-colored background.", "type": "color", - "value": "{global.icon.color.regular}" + "value": "{global.text.color.regular}" } } - }, + } + } + }, + "icon": { + "color": { "brand": { "accent": { - "clicked": { - "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", + "hover": { + "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", "type": "color", "value": "{global.dark.color.brand.accent.300}" }, - "hover": { - "description": "Use as the hover state color for icons that convey your brand and/or are paired with branded text color.", + "clicked": { + "description": "Use as the clicked state for icons that convey your brand and/or are paired with branded text color.", "type": "color", "value": "{global.dark.color.brand.accent.300}" } } - } - } - }, - "text": { - "color": { + }, "on-brand": { "accent": { "default": { - "description": "Use as the default color for text placed on a brand-colored background.", + "description": "Use as the default color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.text.color.regular}" + "value": "{global.icon.color.regular}" }, - "clicked": { - "description": "Use as the clicked state color for text placed on a brand-colored background.", + "hover": { + "description": "Use as the hover state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.text.color.regular}" + "value": "{global.icon.color.regular}" }, - "hover": { - "description": "Use as the hover state color for text placed on a brand-colored background.", + "clicked": { + "description": "Use as the clicked state color for icons that are placed on a brand background color and/or are paired with on-brand colored text.", "type": "color", - "value": "{global.text.color.regular}" + "value": "{global.icon.color.regular}" } } } diff --git a/packages/module/tokens/redhat/light/redhat.color.json b/packages/module/tokens/felt/glass/felt.color.glass.json similarity index 79% rename from packages/module/tokens/redhat/light/redhat.color.json rename to packages/module/tokens/felt/glass/felt.color.glass.json index 02f2072..0267a23 100644 --- a/packages/module/tokens/redhat/light/redhat.color.json +++ b/packages/module/tokens/felt/glass/felt.color.glass.json @@ -4,11 +4,6 @@ "color": { "brand": { "accent": { - "default": { - "description": "Use this color for elements that you want to reinforce your brand", - "type": "color", - "value": "{global.color.brand.accent.100}" - }, "hover": { "description": "Use as the hover state for elements that have a branded background color", "type": "color", @@ -18,6 +13,11 @@ "description": "Use as the clicked state for elements that have a brand background color", "type": "color", "value": "{global.color.brand.accent.200}" + }, + "default": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.color.brand.accent.100}" } } } @@ -26,18 +26,18 @@ "color": { "brand": { "accent": { - "default": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", + "hover": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.400}" }, "clicked": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.400}" }, - "hover": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", + "default": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.400}" } diff --git a/packages/module/tokens/redhat/highcontrast/redhat.dimension.highcontrast.json b/packages/module/tokens/felt/glass/felt.dimension.glass.json similarity index 100% rename from packages/module/tokens/redhat/highcontrast/redhat.dimension.highcontrast.json rename to packages/module/tokens/felt/glass/felt.dimension.glass.json index 7d754c2..6a9f617 100644 --- a/packages/module/tokens/redhat/highcontrast/redhat.dimension.highcontrast.json +++ b/packages/module/tokens/felt/glass/felt.dimension.glass.json @@ -3,6 +3,12 @@ "global": { "border": { "radius": { + "control": { + "default": { + "type": "number", + "value": "{global.border.radius.pill}" + } + }, "action": { "plain": { "default": { @@ -10,12 +16,6 @@ "value": "{global.border.radius.pill}" } } - }, - "control": { - "default": { - "type": "number", - "value": "{global.border.radius.pill}" - } } } } diff --git a/packages/module/tokens/redhat/highcontrast-dark/redhat.color.highcontrast.dark.json b/packages/module/tokens/felt/highcontrast-dark/felt.color.highcontrast.dark.json similarity index 80% rename from packages/module/tokens/redhat/highcontrast-dark/redhat.color.highcontrast.dark.json rename to packages/module/tokens/felt/highcontrast-dark/felt.color.highcontrast.dark.json index abc601d..0826474 100644 --- a/packages/module/tokens/redhat/highcontrast-dark/redhat.color.highcontrast.dark.json +++ b/packages/module/tokens/felt/highcontrast-dark/felt.color.highcontrast.dark.json @@ -4,11 +4,6 @@ "color": { "brand": { "accent": { - "default": { - "description": "Use this color for elements that you want to reinforce your brand", - "type": "color", - "value": "{global.dark.color.brand.accent.400}" - }, "hover": { "description": "Use as the hover state for elements that have a branded background color", "type": "color", @@ -18,6 +13,11 @@ "description": "Use as the clicked state for elements that have a brand background color", "type": "color", "value": "{global.dark.color.brand.accent.350}" + }, + "default": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.dark.color.brand.accent.400}" } } } @@ -26,18 +26,18 @@ "color": { "brand": { "accent": { - "default": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", + "hover": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.dark.color.brand.accent.400}" }, "clicked": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.dark.color.brand.accent.400}" }, - "hover": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", + "default": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.dark.color.brand.accent.400}" } diff --git a/packages/module/tokens/redhat/highcontrast/redhat.color.highcontrast.json b/packages/module/tokens/felt/highcontrast/felt.color.highcontrast.json similarity index 79% rename from packages/module/tokens/redhat/highcontrast/redhat.color.highcontrast.json rename to packages/module/tokens/felt/highcontrast/felt.color.highcontrast.json index 3e01d9e..2997152 100644 --- a/packages/module/tokens/redhat/highcontrast/redhat.color.highcontrast.json +++ b/packages/module/tokens/felt/highcontrast/felt.color.highcontrast.json @@ -4,11 +4,6 @@ "color": { "brand": { "accent": { - "default": { - "description": "Use this color for elements that you want to reinforce your brand", - "type": "color", - "value": "{global.color.brand.accent.400}" - }, "hover": { "description": "Use as the hover state for elements that have a branded background color", "type": "color", @@ -18,6 +13,11 @@ "description": "Use as the clicked state for elements that have a brand background color", "type": "color", "value": "{global.color.brand.accent.300}" + }, + "default": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.color.brand.accent.400}" } } } @@ -26,18 +26,18 @@ "color": { "brand": { "accent": { - "default": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", + "hover": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.400}" }, "clicked": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.400}" }, - "hover": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", + "default": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.400}" } diff --git a/packages/module/tokens/redhat/light/redhat.dimension.json b/packages/module/tokens/felt/highcontrast/felt.dimension.highcontrast.json similarity index 100% rename from packages/module/tokens/redhat/light/redhat.dimension.json rename to packages/module/tokens/felt/highcontrast/felt.dimension.highcontrast.json index 7d754c2..6a9f617 100644 --- a/packages/module/tokens/redhat/light/redhat.dimension.json +++ b/packages/module/tokens/felt/highcontrast/felt.dimension.highcontrast.json @@ -3,6 +3,12 @@ "global": { "border": { "radius": { + "control": { + "default": { + "type": "number", + "value": "{global.border.radius.pill}" + } + }, "action": { "plain": { "default": { @@ -10,12 +16,6 @@ "value": "{global.border.radius.pill}" } } - }, - "control": { - "default": { - "type": "number", - "value": "{global.border.radius.pill}" - } } } } diff --git a/packages/module/tokens/redhat/glass/redhat.color.glass.json b/packages/module/tokens/felt/light/felt.color.json similarity index 79% rename from packages/module/tokens/redhat/glass/redhat.color.glass.json rename to packages/module/tokens/felt/light/felt.color.json index 02f2072..0267a23 100644 --- a/packages/module/tokens/redhat/glass/redhat.color.glass.json +++ b/packages/module/tokens/felt/light/felt.color.json @@ -4,11 +4,6 @@ "color": { "brand": { "accent": { - "default": { - "description": "Use this color for elements that you want to reinforce your brand", - "type": "color", - "value": "{global.color.brand.accent.100}" - }, "hover": { "description": "Use as the hover state for elements that have a branded background color", "type": "color", @@ -18,6 +13,11 @@ "description": "Use as the clicked state for elements that have a brand background color", "type": "color", "value": "{global.color.brand.accent.200}" + }, + "default": { + "description": "Use this color for elements that you want to reinforce your brand", + "type": "color", + "value": "{global.color.brand.accent.100}" } } } @@ -26,18 +26,18 @@ "color": { "brand": { "accent": { - "default": { - "description": "Use as the default border color for any accented branded element, like secondary CTAs", + "hover": { + "description": "Use as the hover state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.400}" }, "clicked": { - "description": "Use as the clicked border color for any accented branded element, like secondary CTAs", + "description": "Use as the clicked state border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.400}" }, - "hover": { - "description": "Use as the hover border color for any accented branded element, like secondary CTAs", + "default": { + "description": "Use as the default border color for any branded element, like color-coded labels, banners, etc.", "type": "color", "value": "{global.color.brand.accent.400}" } diff --git a/packages/module/tokens/redhat/glass/redhat.dimension.glass.json b/packages/module/tokens/felt/light/felt.dimension.json similarity index 100% rename from packages/module/tokens/redhat/glass/redhat.dimension.glass.json rename to packages/module/tokens/felt/light/felt.dimension.json index 7d754c2..6a9f617 100644 --- a/packages/module/tokens/redhat/glass/redhat.dimension.glass.json +++ b/packages/module/tokens/felt/light/felt.dimension.json @@ -3,6 +3,12 @@ "global": { "border": { "radius": { + "control": { + "default": { + "type": "number", + "value": "{global.border.radius.pill}" + } + }, "action": { "plain": { "default": { @@ -10,12 +16,6 @@ "value": "{global.border.radius.pill}" } } - }, - "control": { - "default": { - "type": "number", - "value": "{global.border.radius.pill}" - } } } }